diff options
author | echohack <echohack@users.noreply.github.com> | 2019-06-20 16:16:06 -0700 |
---|---|---|
committer | echohack <echohack@users.noreply.github.com> | 2019-06-20 16:16:06 -0700 |
commit | 64842b649249eeaac68fc22f97235aa405bb1fca (patch) | |
tree | 36ade8e2ae65fdced5cc8ed61e36aacf8dbe0e95 | |
parent | 1d46bef432d29f94eeea328990a4e123a63ce81f (diff) | |
download | chef-64842b649249eeaac68fc22f97235aa405bb1fca.tar.gz |
Rolling out the scaffolding-chef package
Signed-off-by: echohack <echohack@users.noreply.github.com>
-rw-r--r-- | .bldr.toml | 20 | ||||
-rw-r--r-- | habitat-packages/scaffolding-chef/README.md | 15 | ||||
-rw-r--r-- | habitat-packages/scaffolding-chef/lib/scaffolding.ps1 | 132 | ||||
-rw-r--r-- | habitat-packages/scaffolding-chef/lib/scaffolding.sh | 189 | ||||
-rw-r--r-- | habitat-packages/scaffolding-chef/plan.ps1 | 15 | ||||
-rw-r--r-- | habitat-packages/scaffolding-chef/plan.sh | 28 |
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" -} |