summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorechohack <echohack@users.noreply.github.com>2019-06-20 16:16:06 -0700
committerechohack <echohack@users.noreply.github.com>2019-06-20 16:16:06 -0700
commit64842b649249eeaac68fc22f97235aa405bb1fca (patch)
tree36ade8e2ae65fdced5cc8ed61e36aacf8dbe0e95
parent1d46bef432d29f94eeea328990a4e123a63ce81f (diff)
downloadchef-64842b649249eeaac68fc22f97235aa405bb1fca.tar.gz
Rolling out the scaffolding-chef package
Signed-off-by: echohack <echohack@users.noreply.github.com>
-rw-r--r--.bldr.toml20
-rw-r--r--habitat-packages/scaffolding-chef/README.md15
-rw-r--r--habitat-packages/scaffolding-chef/lib/scaffolding.ps1132
-rw-r--r--habitat-packages/scaffolding-chef/lib/scaffolding.sh189
-rw-r--r--habitat-packages/scaffolding-chef/plan.ps115
-rw-r--r--habitat-packages/scaffolding-chef/plan.sh28
6 files changed, 0 insertions, 399 deletions
diff --git a/.bldr.toml b/.bldr.toml
index f86b5e682d..b3d8c1a158 100644
--- a/.bldr.toml
+++ b/.bldr.toml
@@ -16,23 +16,3 @@ paths = [
"omnibus", # TODO: Evaluate if we really need this in the future
"tasks",
]
-
-[scaffolding-chef]
-plan_path = "habitat-packages/scaffolding-chef"
-build_targets = [
- "x86_64-linux",
- "x86_64-linux-kernel2"
- # "x86_64-windows" --- TODO: Expeditor does not currently support Windows, but will in the coming weeks. Uncomment me soon!
-]
-paths = [
- "bin",
- "chef-bin",
- "chef-config",
- "ci",
- "distro",
- "ext",
- "habitat-packages",
- "lib",
- "omnibus", # TODO: Evaluate if we really need this in the future
- "tasks",
-]
diff --git a/habitat-packages/scaffolding-chef/README.md b/habitat-packages/scaffolding-chef/README.md
deleted file mode 100644
index e75a9391bf..0000000000
--- a/habitat-packages/scaffolding-chef/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Chef Scaffolding for Habitat
-
-This will take a Chef policy file, and build it for use as a habitat service.
-
-```
-scaffold_policy_name="base"
-pkg_name=chef-base
-pkg_origin=adam
-pkg_version="0.1.0"
-pkg_maintainer="The Habitat Maintainers <humans@habitat.sh>"
-pkg_license=("Apache-2.0")
-pkg_description="The Chef $scaffold_policy_name Policy"
-pkg_upstream_url="http://chef.io"
-pkg_scaffolding="core/scaffolding-chef"
-```
diff --git a/habitat-packages/scaffolding-chef/lib/scaffolding.ps1 b/habitat-packages/scaffolding-chef/lib/scaffolding.ps1
deleted file mode 100644
index d4107a01aa..0000000000
--- a/habitat-packages/scaffolding-chef/lib/scaffolding.ps1
+++ /dev/null
@@ -1,132 +0,0 @@
-#
-# A scaffolding for Chef Policyfile packages
-#
-
-if (!$scaffold_policy_name) {
- Write-Host "You must set `$scaffold_policy_name to a valid policy name. For example:`n `$scaffold_policy_name=base `n Will build a base.rb policyfile."
- exit 1
-}
-
-function Load-Scaffolding {
- $scaffold_chef_client = "stuartpreston/chef-client-detox"
- $scaffold_chef_dk = "core/chef-dk"
-
- $pkg_deps += @("$scaffold_chef_client", "core/cacerts")
- $pkg_build_deps += @("$scaffold_chef_dk", "core/git")
- $pkg_svc_run = "set_just_so_you_will_render"
-}
-
-function Invoke-DefaultBuildService {
- New-Item -ItemType directory -Path "$pkg_prefix/hooks"
-
- Add-Content -Path "$pkg_prefix/hooks/run" -Value @"
-function Invoke-ChefClient {
- {{pkgPathFor "stuartpreston/chef-client-detox"}}/bin/chef-client.bat -z -l {{cfg.log_level}} -c $pkg_svc_config_path/client-config.rb -j $pkg_svc_config_path/attributes.json --once --no-fork --run-lock-timeout {{cfg.run_lock_timeout}}
-}
-
-`$splay_duration = Get-Random -InputObject (0..{{cfg.splay}}) -Count 1
-
-`$splay_first_run_duration = Get-Random -InputObject (0..{{cfg.splay_first_run}}) -Count 1
-
-`$env:SSL_CERT_FILE="{{pkgPathFor "core/cacerts"}}/ssl/cert.pem"
-
-cd {{pkg.path}}
-
-Start-Sleep -Seconds `$splay_first_run_duration
-Invoke-ChefClient
-
-while(`$true){
- Start-Sleep -Seconds `$splay_duration
- Start-Sleep -Seconds {{cfg.interval}}
- Invoke-ChefClient
-}
-"@
-}
-
-
-function Invoke-DefaultBuild {
- if (!(Test-Path -Path "$scaffold_policyfile_path")) {
- Write-BuildLine "Could not detect a policyfiles directory, this is required to proceed!"
- exit 1
- }
-
- Remove-Item "$scaffold_policyfile_path/*.lock.json" -Force
- $policyfile = "$scaffold_policyfile_path/$scaffold_policy_name.rb"
-
- Get-Content $policyfile | ? { $_.StartsWith("include_policy") } | % {
- $p = $_.Split()[1]
- $p = $p.Replace("`"", "").Replace(",", "")
- Write-BuildLine "Detected included policyfile, $p.rb, installing"
- chef install "$scaffold_policyfile_path/$p.rb"
- }
- Write-BuildLine "Installing $policyfile"
- chef install "$policyfile"
-}
-
-function Invoke-DefaultInstall {
- Write-BuildLine "Exporting Chef Infra Repository"
- chef export "$scaffold_policyfile_path/$scaffold_policy_name.lock.json" "$pkg_prefix"
-
- Write-BuildLine "Creating Chef Infra configuration"
- New-Item -ItemType directory -Path "$pkg_prefix/config"
- Add-Content -Path "$pkg_prefix/.chef/config.rb" -Value @"
-cache_path "$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$pkg_svc_data_path/cache").Replace("\","/"))"
-node_path "$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$pkg_svc_data_path/nodes").Replace("\","/"))"
-role_path "$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$pkg_svc_data_path/roles").Replace("\","/"))"
-chef_zero.enabled true
-ENV['PSModulePath'] += "C:/Program\ Files/WindowsPowerShell/Modules"
-"@
-
- Write-BuildLine "Creating initial bootstrap configuration"
- Copy-Item -Path "$pkg_prefix/.chef/config.rb" -Destination "$pkg_prefix/config/bootstrap-config.rb"
- Add-Content -Path "$pkg_prefix/config/bootstrap-config.rb" -Value @"
-ENV['PATH'] += ";C:/WINDOWS;C:/WINDOWS/system32/;C:/WINDOWS/system32/WindowsPowerShell/v1.0;C:/ProgramData/chocolatey/bin"
-"@
-
- Write-BuildLine "Creating Chef Infra client configuration"
- Copy-Item -Path "$pkg_prefix/.chef/config.rb" -Destination "$pkg_prefix/config/client-config.rb"
- Add-Content -Path "$pkg_prefix/config/client-config.rb" -Value @"
-ssl_verify_mode {{cfg.ssl_verify_mode}}
-ENV['PATH'] += "{{cfg.env_path_prefix}}"
-
-{{#if cfg.data_collector.enable ~}}
-chef_guid "{{sys.member_id}}"
-data_collector.token "{{cfg.data_collector.token}}"
-data_collector.server_url "{{cfg.data_collector.server_url}}"
-{{/if ~}}
-"@
-
- Write-BuildLine "Generating config/attributes.json"
- Add-Content -Path "$pkg_prefix/config/attributes.json" -Value @"
-{{#if cfg.attributes}}
-{{toJson cfg.attributes}}
-{{else ~}}
-{}
-{{/if ~}}
-"@
-
- Write-BuildLine "Generating Chef Habiat configuration, default.toml"
- Add-Content -Path "$pkg_prefix/default.toml" -Value @"
-interval = 1800
-splay = 1800
-splay_first_run = 0
-run_lock_timeout = 1800
-log_level = "warn"
-env_path_prefix = ";C:/WINDOWS;C:/WINDOWS/system32/;C:/WINDOWS/system32/WindowsPowerShell/v1.0;C:/ProgramData/chocolatey/bin"
-ssl_verify_mode = ":verify_peer"
-
-[chef_license]
-acceptance = "undefined"
-
-[data_collector]
-enable = false
-token = "set_to_your_token"
-server_url = "set_to_your_url"
-"@
-
- $scaffold_data_bags_path = "not_using_data_bags" # Set default to some string so Test-Path returns false instead of error. Thanks Powershell!
- if (Test-Path "$scaffold_data_bags_path") {
- Write-BuildLine "Detected a data bags directory, installing into package"
- Copy-Item "$scaffold_data_bags_path/*" -Destination "$pkg_prefix" -Recurse
- }
-}
diff --git a/habitat-packages/scaffolding-chef/lib/scaffolding.sh b/habitat-packages/scaffolding-chef/lib/scaffolding.sh
deleted file mode 100644
index 7c098ff1cf..0000000000
--- a/habitat-packages/scaffolding-chef/lib/scaffolding.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#
-# A scaffolding for Chef Policyfile packages
-#
-
-if [ -z "${scaffold_policy_name+x}" ]; then
- echo "You must set \$scaffold_policy_name to a valid policy name. For example:"
- echo
- echo "\$scaffold_policy_name=base"
- echo
- echo "Will build a base.rb policyfile"
- exit 1
-fi
-
-scaffolding_load() {
- : "${scaffold_chef_client:=chef/chef-client}"
- : "${scaffold_chef_dk:=chef/chef-dk}"
- : "${scaffold_policyfiles_path:=$PLAN_CONTEXT/../policyfiles}"
- : "${scaffold_data_bags_path:=$PLAN_CONTEXT/../data_bags}"
-
- pkg_deps=(
- "${pkg_deps[@]}"
- "${scaffold_chef_client}"
- "core/cacerts"
- )
- pkg_build_deps=(
- "${pkg_build_deps[@]}"
- "${scaffold_chef_dk}"
- "core/git"
- )
-
- pkg_svc_user="root"
- pkg_svc_run="set_just_so_you_will_render"
-}
-
-do_default_download() {
- return 0
-}
-
-do_default_verify() {
- return 0
-}
-
-do_default_unpack() {
- return 0
-}
-
-do_default_build_service() {
- ## Create hooks
- build_line "Creating lifecycle hooks"
- mkdir -p "${pkg_prefix}/hooks"
- chmod 0750 "${pkg_prefix}/hooks"
-
- # Run hook
- cat << EOF >> "${pkg_prefix}/hooks/run"
-#!/bin/sh
-
-CFG_ENV_PATH_PREFIX={{cfg.env_path_prefix}}
-CFG_ENV_PATH_PREFIX="\${CFG_ENV_PATH_PREFIX:-/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin}"
-CFG_INTERVAL={{cfg.interval}}
-CFG_INTERVAL="\${CFG_INTERVAL:-1800}"
-CFG_LOG_LEVEL={{cfg.log_level}}
-CFG_LOG_LEVEL="\${CFG_LOG_LEVEL:-warn}"
-CFG_RUN_LOCK_TIMEOUT={{cfg.run_lock_timeout}}
-CFG_RUN_LOCK_TIMEOUT="\${CFG_RUN_LOCK_TIMEOUT:-1800}"
-CFG_SPLAY={{cfg.splay}}
-CFG_SPLAY="\${CFG_SPLAY:-1800}"
-CFG_SPLAY_FIRST_RUN={{cfg.splay_first_run}}
-CFG_SPLAY_FIRST_RUN="\${CFG_SPLAY_FIRST_RUN:-0}"
-CFG_SSL_VERIFY_MODE={{cfg.ssl_verify_mode}}
-CFG_SSL_VERIFY_MODE="\${CFG_SSL_VERIFY_MODE:-:verify_peer}"
-
-chef_client_cmd()
-{
- chef-client -z -l \$CFG_LOG_LEVEL -c $pkg_svc_config_path/client-config.rb -j $pkg_svc_config_path/attributes.json --once --no-fork --run-lock-timeout \$CFG_RUN_LOCK_TIMEOUT
-}
-
-SPLAY_DURATION=\$(shuf -i 0-\$CFG_SPLAY -n 1)
-
-SPLAY_FIRST_RUN_DURATION=\$(shuf -i 0-\$CFG_SPLAY_FIRST_RUN -n 1)
-
-export SSL_CERT_FILE="{{pkgPathFor "core/cacerts"}}/ssl/cert.pem"
-
-cd {{pkg.path}}
-
-exec 2>&1
-sleep \$SPLAY_FIRST_RUN_DURATION
-chef_client_cmd
-
-while true; do
-
-sleep \$SPLAY_DURATION
-sleep \$CFG_INTERVAL
-chef_client_cmd
-done
-EOF
-
- chmod 0750 "${pkg_prefix}/hooks/run"
-}
-
-do_default_build() {
- if [ ! -d "${scaffold_policyfiles_path}" ]; then
- build_line "Could not detect a policyfiles directory, this is required to proceed!"
- exit 1
- fi
-
- rm -f "${scaffold_policyfiles_path}"/*.lock.json
-
- policyfile="${scaffold_policyfiles_path}/${scaffold_policy_name}.rb"
-
- for p in $(grep include_policy "${policyfile}" | awk -F "," '{print $1}' | awk -F '"' '{print $2}' | tr -d " "); do
- build_line "Detected included policyfile, ${p}.rb, installing"
- chef install "${scaffold_policyfiles_path}/${p}.rb"
- done
-
- build_line "Installing ${policyfile}"
- chef install "${policyfile}"
-}
-
-do_default_install() {
- build_line "Exporting Chef Infra Repository"
- chef export "${scaffold_policyfiles_path}/${scaffold_policy_name}.lock.json" "${pkg_prefix}"
-
- build_line "Creating Chef Infra configuration"
- mkdir -p "${pkg_prefix}/config"
- chmod 0750 "${pkg_prefix}/config"
- cat << EOF >> "${pkg_prefix}/.chef/config.rb"
-cache_path "$pkg_svc_data_path/cache"
-node_path "$pkg_svc_data_path/nodes"
-role_path "$pkg_svc_data_path/roles"
-
-chef_zero.enabled true
-EOF
-
- build_line "Creating initial bootstrap configuration"
- cp "${pkg_prefix}/.chef/config.rb" "${pkg_prefix}/config/bootstrap-config.rb"
- cat << EOF >> "${pkg_prefix}/config/bootstrap-config.rb"
-ENV['PATH'] = "/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:#{ENV['PATH']}"
-EOF
-
- build_line "Creating Chef Infra client configuration"
- cp "${pkg_prefix}/.chef/config.rb" "${pkg_prefix}/config/client-config.rb"
- cat << EOF >> "${pkg_prefix}/config/client-config.rb"
-ssl_verify_mode {{cfg.ssl_verify_mode}}
-ENV['PATH'] = "{{cfg.env_path_prefix}}:#{ENV['PATH']}"
-
-{{#if cfg.data_collector.enable ~}}
-chef_guid "{{sys.member_id}}"
-data_collector.token "{{cfg.data_collector.token}}"
-data_collector.server_url "{{cfg.data_collector.server_url}}"
-{{/if ~}}
-EOF
- chmod 0640 "${pkg_prefix}/config/client-config.rb"
-
- build_line "Generating config/attributes.json"
- cat << EOF >> "${pkg_prefix}/config/attributes.json"
-{{#if cfg.attributes ~}}
-{{toJson cfg.attributes}}
-{{else ~}}
-{}
-{{/if ~}}
-EOF
-
- build_line "Generating Chef Habitat configuration, default.toml"
- cat << EOF >> "${pkg_prefix}/default.toml"
-interval = 1800
-splay = 1800
-splay_first_run = 0
-run_lock_timeout = 1800
-log_level = "warn"
-chef_client_ident = "" # this is blank by default so it can be populated from the bind
-env_path_prefix = "/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin"
-ssl_verify_mode = ":verify_peer"
-
-[data_collector]
-enable = false
-token = "set_to_your_token"
-server_url = "set_to_your_url"
-EOF
- chmod 0640 "${pkg_prefix}/default.toml"
-
- if [ -d "${scaffold_data_bags_path}" ]; then
- build_line "Detected a data bags directory, installing into package"
- cp -a "${scaffold_data_bags_path}" "${pkg_prefix}"
- fi
-}
-
-do_default_strip() {
- return 0
-}
diff --git a/habitat-packages/scaffolding-chef/plan.ps1 b/habitat-packages/scaffolding-chef/plan.ps1
deleted file mode 100644
index d61241056a..0000000000
--- a/habitat-packages/scaffolding-chef/plan.ps1
+++ /dev/null
@@ -1,15 +0,0 @@
-$pkg_name="scaffolding-chef"
-$pkg_description="Scaffolding for Chef Policyfiles"
-$pkg_origin="chef"
-$pkg_version="0.6.0"
-$pkg_maintainer="The Habitat Maintainers <humans@habitat.sh>"
-$pkg_license=("Apache-2.0")
-$pkg_upstream_url="https://www.chef.sh"
-$pkg_build_deps=@(
- "core/chefdk"
- "core/git"
- )
-function Invoke-Install {
- New-Item -ItemType directory -Path "${pkg_prefix}/lib"
- Copy-Item -Path "$PLAN_CONTEXT/lib/scaffolding.ps1" -Destination "$pkg_prefix/lib/scaffolding.ps1"
-}
diff --git a/habitat-packages/scaffolding-chef/plan.sh b/habitat-packages/scaffolding-chef/plan.sh
deleted file mode 100644
index d3d49dfdc3..0000000000
--- a/habitat-packages/scaffolding-chef/plan.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-pkg_name=scaffolding-chef
-pkg_description="Scaffolding for Chef Policyfiles"
-pkg_origin=chef
-pkg_version="0.5.0"
-pkg_maintainer="The Habitat Maintainers <humans@habitat.sh>"
-pkg_license=('Apache-2.0')
-pkg_source=nope
-pkg_upstream_url="https://www.chef.sh"
-
-do_download() {
- return 0
-}
-
-do_verify() {
- return 0
-}
-
-do_unpack() {
- return 0
-}
-
-do_build() {
- return 0
-}
-
-do_install() {
- install -D -m 0644 "$PLAN_CONTEXT/lib/scaffolding.sh" "$pkg_prefix/lib/scaffolding.sh"
-}