From 0ff2d7d606d57e424d81920864842e690a02e37f Mon Sep 17 00:00:00 2001 From: Lucas 'medk' Pinto Date: Thu, 7 Jun 2018 16:13:26 +0200 Subject: [PATCH] docs(living_documentation) rework TODO: - add feature descriptions to illustrate bosh / TF / cf-apps/ concourse-pipeline pipelines - ensure all tests from spec/reference_dataset/reference_dataset_spec.rb are covered by cucumber feature, and then delete spec/reference_dataset/reference_dataset_spec.rb => credentials management is missing ! Done: - gem update - rework sample tf files - Lucas review - fix reference_dataset_documentation lib tests (Pipelines handles an output dir,...) - remove 'should' from feature - cucumber generated pipelines are in docs/reference_dataset/pipelines - add 'docs/reference_dataset/pipelines' cleanup, before running tests - updated reference_dataset_documentation lib to handle config dir without a root_deployment - cleanup gitignore - update readme --- ...t_template.md => PULL_REQUEST_TEMPLATE.md} | 0 .gitignore | 10 +- Gemfile.lock | 28 +- Readme.md | 20 +- ci/pipeline.yml | 60 +- docs/_config.yml | 1 - docs/reference_dataset/README.md | 1 - .../another-world-root-depls.md | 247 +++++ .../bosh-sample-hello-world.md | 194 ---- .../cf-apps-sample-hello-world.md | 151 --- .../concourse-sample-hello-world.md | 161 ---- .../enable-deployment.yml | 0 .../bosh-deployment-sample}/secrets/meta.yml | 0 .../secrets/secrets.yml | 0 .../generic-app/enable-cf-app.yml | 0 .../generic-app/secrets/meta.yml | 0 .../generic-app/secrets/secrets.yml | 0 .../ci-deployment-overview.yml | 17 + .../pipeline-sample/enable-deployment.yml | 0 .../pipeline-sample/secrets/meta.yml | 0 .../pipeline-sample/secrets/secrets.yml | 0 .../hello-world-root-depls/secrets/meta.yml | 15 + .../secrets/private-config-operators.yml | 4 + .../secrets/private-runtime-operators.yml | 4 + .../secrets/secrets.yml | 2 + .../terraform-sample/secrets}/meta.yml | 0 .../terraform-sample/secrets}/secrets.yml | 0 .../spec/my-private-terraform-spec.tf} | 0 .../secrets/meta.yml | 0 .../secrets/secrets.yml | 3 + .../bosh-sample/ci-deployment-overview.yml | 13 - .../cf-apps-sample/ci-deployment-overview.yml | 13 - .../ci-deployment-overview.yml | 13 - .../ci-deployment-overview.yml | 13 - .../nginx/secrets/secrets.yml | 4 - .../ci-deployment-overview.yml | 13 - .../tf-sample/secrets => shared}/meta.yml | 0 .../shared/pipeline-credentials.yml | 0 .../tf-sample/secrets => shared}/secrets.yml | 0 .../delete-lifecycle-sample-hello-world.md | 154 --- .../hello-world-root-depls.md | 605 ++++++++++++ ...her-world-root-depls-cf-apps-generated.yml | 19 + ...r-world-root-depls-concourse-generated.yml | 13 + .../another-world-root-depls-generated.yml | 233 +++++ ...nother-world-root-depls-init-generated.yml | 12 + ...nother-world-root-depls-news-generated.yml | 22 + ...orld-root-depls-s3-br-upload-generated.yml | 69 ++ ...oot-depls-s3-stemcell-upload-generated.yml | 69 ++ ...world-root-depls-sync-helper-generated.yml | 13 + .../another-world-root-depls-tf-generated.yml | 9 + ...llo-world-root-depls-cf-apps-generated.yml | 178 ++++ ...o-world-root-depls-concourse-generated.yml | 123 +++ .../hello-world-root-depls-generated.yml | 897 ++++++++++++++++++ .../hello-world-root-depls-init-generated.yml | 110 +++ .../hello-world-root-depls-news-generated.yml | 174 ++++ ...orld-root-depls-s3-br-upload-generated.yml | 279 ++++++ ...oot-depls-s3-stemcell-upload-generated.yml | 131 +++ ...world-root-depls-sync-helper-generated.yml | 432 +++++++++ .../hello-world-root-depls-tf-generated.yml | 118 +++ .../deployment-dependencies.yml | 0 .../template/adding-ntp-release-operators.yml | 0 .../another-bosh-deployment-sample-tpl.yml} | 0 .../template/ntp-release-vars.yml | 0 .../template/openstack/nginx-operators.yml | 0 .../template/post-deploy.sh | 0 .../template/pre-deploy.sh | 0 .../another-world-root-depls-versions.yml} | 1 - .../template/cloud-config-tpl.yml | 0 .../template/deploy.sh | 4 + .../openstack/disk-types-cloud-operators.yml | 0 .../template/runtime-config-tpl.yml | 0 .../deployment-dependencies.yml | 2 +- .../template/adding-ntp-release-operators.yml | 0 .../template/bosh-deployment-sample-tpl.yml} | 2 +- .../template/ntp-release-vars.yml | 0 .../template/openstack/nginx-operators.yml | 0 .../template/post-deploy.sh | 0 .../template/pre-deploy.sh | 0 .../generic-app/deployment-dependencies.yml | 0 .../generic-app/template/Staticfile | 0 .../generic-app/template/index.html | 0 .../generic-app/template/manifest-tpl.yml | 0 .../hello-world-root-depls-versions.yml} | 1 - .../pipeline-sample.yml | 0 .../deployment-dependencies.yml | 0 .../template/cloud-config.yml | 0 .../hello-world-root-depls/template/deploy.sh | 4 + .../openstack/disk-types-cloud-operators.yml | 0 .../template/public-config-operators.yml | 4 + .../template/public-runtime-operators.yml | 4 + .../template/runtime-config.yml | 0 .../spec/local-provider-sample.tf | 4 + .../template/post-generate.sh | 3 + .../template/terraform-tpl.tfvars.yml | 0 .../bosh-sample/template/deploy.sh | 0 .../cf-apps-sample-versions.yml | 6 - .../cf-apps-sample/template/deploy.sh | 2 - .../concourse-sample-versions.yml | 5 - .../template/cloud-config-tpl.yml | 0 .../concourse-sample/template/deploy.sh | 0 .../template/runtime-config-tpl.yml | 0 .../template/deploy.sh | 0 .../terraform-sample-versions.yml | 6 - .../terraform-config/spec/private-dns.tf | 299 ------ .../template/post-generate.sh | 3 - .../terraform-sample-hello-world.md | 139 --- ...ent_environment_variable_available.feature | 23 + .../generating_pipelines_with_coa.feature | 51 +- features/iaas_specific_support.feature | 15 + features/multi_deployer_support.feature | 18 + features/offline_support.feature | 18 + .../step_definitions/pipeline_generation.rb | 39 +- features/support/env.rb | 5 + .../file_list_writer.rb | 63 -- .../pipelines.rb | 72 -- .../tree_writer.rb | 30 - ...raform_support_for_root_deployment.feature | 12 + .../reference_dataset_documentation.rb | 2 +- .../file_list_writer.rb | 62 ++ .../generator.rb | 10 +- .../helpers/file_list_writer_helpers.rb | 23 + .../pipelines.rb | 121 +++ .../tree_writer.rb | 42 + .../file_list_writer_spec.rb | 57 -- .../fixtures/find_answer.txt | 5 - .../fixtures/tree_answer.txt | 4 - .../tree_writer_spec.rb | 45 - .../file_list_writer_spec.rb | 45 + .../fixtures/find_answer.txt | 5 + .../fixtures/find_root_level_only_answer.txt | 7 + ...t_deployment_name-with-creds-generated.yml | 0 ..._deployment_name-with-creds2-generated.yml | 3 + ...eployment_name-without-creds-generated.yml | 0 .../fixtures/tree_answer.txt | 4 + .../fixtures/tree_root_level_only_answer.txt | 3 + .../generator_spec.rb | 13 +- .../pipelines_spec.rb | 84 +- .../tree_writer_spec.rb | 50 + .../reference_dataset_spec.rb | 29 +- 139 files changed, 4467 insertions(+), 1629 deletions(-) rename .github/{PULL_REQUEST_TEMPLATE/pull_request_template.md => PULL_REQUEST_TEMPLATE.md} (100%) delete mode 100644 docs/_config.yml create mode 100644 docs/reference_dataset/another-world-root-depls.md delete mode 100644 docs/reference_dataset/bosh-sample-hello-world.md delete mode 100644 docs/reference_dataset/cf-apps-sample-hello-world.md delete mode 100644 docs/reference_dataset/concourse-sample-hello-world.md rename docs/reference_dataset/config_repository/{hello-world/bosh-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/enable-deployment.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/bosh-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/secrets/meta.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/bosh-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/secrets/secrets.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/enable-cf-app.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/secrets/meta.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/secrets/secrets.yml (100%) create mode 100644 docs/reference_dataset/config_repository/hello-world-root-depls/ci-deployment-overview.yml rename docs/reference_dataset/config_repository/{hello-world/concourse-sample => hello-world-root-depls}/pipeline-sample/enable-deployment.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/concourse-sample => hello-world-root-depls}/pipeline-sample/secrets/meta.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/concourse-sample => hello-world-root-depls}/pipeline-sample/secrets/secrets.yml (100%) create mode 100644 docs/reference_dataset/config_repository/hello-world-root-depls/secrets/meta.yml create mode 100644 docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-config-operators.yml create mode 100644 docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-runtime-operators.yml create mode 100644 docs/reference_dataset/config_repository/hello-world-root-depls/secrets/secrets.yml rename docs/reference_dataset/config_repository/{hello-world/shared => hello-world-root-depls/terraform-sample/secrets}/meta.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/shared => hello-world-root-depls/terraform-sample/secrets}/secrets.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/terraform-sample/tf-sample/enable-deployment.yml => hello-world-root-depls/terraform-sample/spec/my-private-terraform-spec.tf} (100%) rename docs/reference_dataset/config_repository/{hello-world/delete-lifecycle-sample/nginx => hello-world-root-depls/to-delete-bosh-deployment-sample}/secrets/meta.yml (100%) create mode 100644 docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/secrets.yml delete mode 100644 docs/reference_dataset/config_repository/hello-world/bosh-sample/ci-deployment-overview.yml delete mode 100644 docs/reference_dataset/config_repository/hello-world/cf-apps-sample/ci-deployment-overview.yml delete mode 100644 docs/reference_dataset/config_repository/hello-world/concourse-sample/ci-deployment-overview.yml delete mode 100644 docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/ci-deployment-overview.yml delete mode 100644 docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/secrets.yml delete mode 100644 docs/reference_dataset/config_repository/hello-world/terraform-sample/ci-deployment-overview.yml rename docs/reference_dataset/config_repository/{hello-world/terraform-sample/tf-sample/secrets => shared}/meta.yml (100%) rename docs/reference_dataset/config_repository/{hello-world => }/shared/pipeline-credentials.yml (100%) rename docs/reference_dataset/config_repository/{hello-world/terraform-sample/tf-sample/secrets => shared}/secrets.yml (100%) delete mode 100644 docs/reference_dataset/delete-lifecycle-sample-hello-world.md create mode 100644 docs/reference_dataset/hello-world-root-depls.md create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-cf-apps-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-concourse-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-init-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-news-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-s3-br-upload-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-s3-stemcell-upload-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-sync-helper-generated.yml create mode 100644 docs/reference_dataset/pipelines/another-world-root-depls-tf-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-cf-apps-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-concourse-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-init-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-news-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-s3-br-upload-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-s3-stemcell-upload-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-sync-helper-generated.yml create mode 100644 docs/reference_dataset/pipelines/hello-world-root-depls-tf-generated.yml rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx => another-world-root-depls/another-bosh-deployment-sample}/deployment-dependencies.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx => another-world-root-depls/another-bosh-deployment-sample}/template/adding-ntp-release-operators.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx/template/nginx-tpl.yml => another-world-root-depls/another-bosh-deployment-sample/template/another-bosh-deployment-sample-tpl.yml} (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx => another-world-root-depls/another-bosh-deployment-sample}/template/ntp-release-vars.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx => another-world-root-depls/another-bosh-deployment-sample}/template/openstack/nginx-operators.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx => another-world-root-depls/another-bosh-deployment-sample}/template/post-deploy.sh (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx => another-world-root-depls/another-bosh-deployment-sample}/template/pre-deploy.sh (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml => another-world-root-depls/another-world-root-depls-versions.yml} (71%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample => another-world-root-depls}/template/cloud-config-tpl.yml (100%) create mode 100644 docs/reference_dataset/template_repository/another-world-root-depls/template/deploy.sh rename docs/reference_dataset/template_repository/{hello-world/bosh-sample => another-world-root-depls}/template/openstack/disk-types-cloud-operators.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample => another-world-root-depls}/template/runtime-config-tpl.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/deployment-dependencies.yml (91%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/template/adding-ntp-release-operators.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx/template/nginx-tpl.yml => hello-world-root-depls/bosh-deployment-sample/template/bosh-deployment-sample-tpl.yml} (97%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/template/ntp-release-vars.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/template/openstack/nginx-operators.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/template/post-deploy.sh (100%) rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample/nginx => hello-world-root-depls/bosh-deployment-sample}/template/pre-deploy.sh (100%) rename docs/reference_dataset/template_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/deployment-dependencies.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/template/Staticfile (100%) rename docs/reference_dataset/template_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/template/index.html (100%) rename docs/reference_dataset/template_repository/{hello-world/cf-apps-sample => hello-world-root-depls/cf-apps-deployments}/generic-app/template/manifest-tpl.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample/bosh-sample-versions.yml => hello-world-root-depls/hello-world-root-depls-versions.yml} (64%) rename docs/reference_dataset/template_repository/{hello-world/concourse-sample => hello-world-root-depls}/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/concourse-sample => hello-world-root-depls}/pipeline-sample/deployment-dependencies.yml (100%) rename docs/reference_dataset/template_repository/{hello-world/bosh-sample => hello-world-root-depls}/template/cloud-config.yml (100%) create mode 100644 docs/reference_dataset/template_repository/hello-world-root-depls/template/deploy.sh rename docs/reference_dataset/template_repository/{hello-world/delete-lifecycle-sample => hello-world-root-depls}/template/openstack/disk-types-cloud-operators.yml (100%) create mode 100644 docs/reference_dataset/template_repository/hello-world-root-depls/template/public-config-operators.yml create mode 100644 docs/reference_dataset/template_repository/hello-world-root-depls/template/public-runtime-operators.yml rename docs/reference_dataset/template_repository/{hello-world/bosh-sample => hello-world-root-depls}/template/runtime-config.yml (100%) create mode 100644 docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/spec/local-provider-sample.tf create mode 100644 docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/post-generate.sh rename docs/reference_dataset/template_repository/{hello-world/terraform-sample/tf-sample => hello-world-root-depls}/terraform-config/template/terraform-tpl.tfvars.yml (100%) delete mode 100644 docs/reference_dataset/template_repository/hello-world/bosh-sample/template/deploy.sh delete mode 100644 docs/reference_dataset/template_repository/hello-world/cf-apps-sample/cf-apps-sample-versions.yml delete mode 100644 docs/reference_dataset/template_repository/hello-world/cf-apps-sample/template/deploy.sh delete mode 100644 docs/reference_dataset/template_repository/hello-world/concourse-sample/concourse-sample-versions.yml delete mode 100644 docs/reference_dataset/template_repository/hello-world/concourse-sample/template/cloud-config-tpl.yml delete mode 100644 docs/reference_dataset/template_repository/hello-world/concourse-sample/template/deploy.sh delete mode 100644 docs/reference_dataset/template_repository/hello-world/concourse-sample/template/runtime-config-tpl.yml delete mode 100644 docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/deploy.sh delete mode 100644 docs/reference_dataset/template_repository/hello-world/terraform-sample/terraform-sample-versions.yml delete mode 100644 docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/spec/private-dns.tf delete mode 100644 docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/post-generate.sh delete mode 100644 docs/reference_dataset/terraform-sample-hello-world.md create mode 100644 features/cf_app_deployment_environment_variable_available.feature create mode 100644 features/iaas_specific_support.feature create mode 100644 features/multi_deployer_support.feature create mode 100644 features/offline_support.feature delete mode 100644 features/support/reference_dataset_documentation/file_list_writer.rb delete mode 100644 features/support/reference_dataset_documentation/pipelines.rb delete mode 100644 features/support/reference_dataset_documentation/tree_writer.rb create mode 100644 features/terraform_support_for_root_deployment.feature rename {features/support => lib}/reference_dataset_documentation.rb (82%) create mode 100644 lib/reference_dataset_documentation/file_list_writer.rb rename {features/support => lib}/reference_dataset_documentation/generator.rb (82%) create mode 100644 lib/reference_dataset_documentation/helpers/file_list_writer_helpers.rb create mode 100644 lib/reference_dataset_documentation/pipelines.rb create mode 100644 lib/reference_dataset_documentation/tree_writer.rb delete mode 100644 spec/features/reference_dataset_documentation/file_list_writer_spec.rb delete mode 100644 spec/features/reference_dataset_documentation/fixtures/find_answer.txt delete mode 100644 spec/features/reference_dataset_documentation/fixtures/tree_answer.txt delete mode 100644 spec/features/reference_dataset_documentation/tree_writer_spec.rb create mode 100644 spec/lib/reference_dataset_documentation/file_list_writer_spec.rb create mode 100644 spec/lib/reference_dataset_documentation/fixtures/find_answer.txt create mode 100644 spec/lib/reference_dataset_documentation/fixtures/find_root_level_only_answer.txt rename spec/{features => lib}/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds-generated.yml (100%) create mode 100644 spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds2-generated.yml rename spec/{features => lib}/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-without-creds-generated.yml (100%) create mode 100644 spec/lib/reference_dataset_documentation/fixtures/tree_answer.txt create mode 100644 spec/lib/reference_dataset_documentation/fixtures/tree_root_level_only_answer.txt rename spec/{features => lib}/reference_dataset_documentation/generator_spec.rb (91%) rename spec/{features => lib}/reference_dataset_documentation/pipelines_spec.rb (52%) create mode 100644 spec/lib/reference_dataset_documentation/tree_writer_spec.rb diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/pull_request_template.md rename to .github/PULL_REQUEST_TEMPLATE.md diff --git a/.gitignore b/.gitignore index 7ca77b19e..4bf613aea 100644 --- a/.gitignore +++ b/.gitignore @@ -5,14 +5,8 @@ #**/secrets/* #**/secrets.yml #shared/ -**/*-generated.yml +bootstrap-generated/**/*-generated.yml -### Eclipse template -.settings/ -# Eclipse Core -.project - -/ops-depls/cf-apps-deployments/mattermost/mattermost/ /ci/private*.yml bin/ .bundle/ @@ -23,5 +17,3 @@ spec/tasks/git_reset_wip/** /Readme.md.toc.* /Readme.md.orig.* -reference_dataset_output_dir -features/generated_pipelines/reference_dataset_documentation_pipelines diff --git a/Gemfile.lock b/Gemfile.lock index e51d433b8..1d615647a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -20,20 +20,20 @@ GEM coercible (1.0.0) descendants_tracker (~> 0.0.1) concurrent-ruby (1.0.5) - cucumber (3.1.0) + cucumber (3.1.1) builder (>= 2.1.2) cucumber-core (~> 3.1.0) - cucumber-expressions (~> 5.0.4) + cucumber-expressions (~> 6.0.0) cucumber-wire (~> 0.0.1) diff-lcs (~> 1.3) - gherkin (~> 5.0) + gherkin (~> 5.1.0) multi_json (>= 1.7.5, < 2.0) multi_test (>= 0.1.2) cucumber-core (3.1.0) backports (>= 3.8.0) cucumber-tag_expressions (~> 1.1.0) gherkin (>= 5.0.0) - cucumber-expressions (5.0.18) + cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) deep_merge (1.2.1) @@ -46,7 +46,7 @@ GEM multipart-post (>= 1.2, < 3) faraday-http-cache (2.0.0) faraday (~> 0.8) - gherkin (5.0.0) + gherkin (5.1.0) github_changelog_generator (1.14.3) activesupport faraday-http-cache @@ -58,15 +58,16 @@ GEM i18n (1.0.1) concurrent-ruby (~> 1.0) ice_nine (0.11.2) + jaro_winkler (1.5.1) json (2.1.0) - kramdown (1.16.2) + kramdown (1.17.0) mdl (0.4.0) kramdown (~> 1.12, >= 1.12.0) mixlib-cli (~> 1.7, >= 1.7.0) mixlib-config (~> 2.2, >= 2.2.1) minitest (5.11.3) mixlib-cli (1.7.0) - mixlib-config (2.2.6) + mixlib-config (2.2.8) tomlrb multi_json (1.13.1) multi_test (0.1.2) @@ -76,7 +77,7 @@ GEM parallel (1.12.1) parser (2.5.1.0) ast (~> 2.4.0) - powerpack (0.1.1) + powerpack (0.1.2) public_suffix (3.0.2) rainbow (3.0.0) rake (12.2.1) @@ -102,15 +103,16 @@ GEM rspec-rerun (1.1.0) rspec (~> 3.0) rspec-support (3.7.1) - rubocop (0.56.0) + rubocop (0.57.2) + jaro_winkler (~> 1.5.1) parallel (~> 1.10) parser (>= 2.5) powerpack (~> 0.1) rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) - rubocop-rspec (1.25.1) - rubocop (>= 0.53.0) + rubocop-rspec (1.27.0) + rubocop (>= 0.56.0) ruby-progressbar (1.9.0) sawyer (0.8.1) addressable (>= 2.3.5, < 2.6) @@ -121,10 +123,10 @@ GEM simplecov-html (~> 0.10.0) simplecov-html (0.10.2) thread_safe (0.3.6) - tomlrb (1.2.6) + tomlrb (1.2.7) tzinfo (1.2.5) thread_safe (~> 0.1) - unicode-display_width (1.3.2) + unicode-display_width (1.4.0) virtus (1.0.5) axiom-types (~> 0.1) coercible (~> 1.0) diff --git a/Readme.md b/Readme.md index 31a2f7466..39c020358 100644 --- a/Readme.md +++ b/Readme.md @@ -47,6 +47,7 @@ * [bosh deployment](#bosh-deployment) * [cf-app deployment](#cf-app-deployment) * [shared and private configuration](#shared-and-private-configuration) + * ["paas-templates" and "secrets" repo structure examples](#paas-templates-and-secrets-repo-structure-examples) * [COA development](#coa-development) * [Status and roadmap](#status-and-roadmap) * [Running the Test Suite](#running-the-test-suite) @@ -69,7 +70,8 @@ * [Credits](#credits) * [Changelog](#changelog) * [Upgrade](#upgrade) - * [pre requisite](#pre-requisite-2) + * [pre requisite](#pre-requisite-2) + @@ -322,8 +324,6 @@ In `deployment-dependencies.yml`, it is possible to: deployment: micro-bosh: cli_version: v1 - stemcells: - ... releases: ... ``` @@ -335,8 +335,6 @@ Following is a `deployment-dependencies.yml` sample (should be placed in the bos --- deployment: micro-bosh: - stemcells: - bosh-openstack-kvm-ubuntu-trusty-go_agent: releases: route-registrar-boshrelease: base_location: https://bosh.io/d/github.com/ @@ -554,8 +552,6 @@ run `./init-template.sh`, and it creates empty placeholder. --- deployment: micro-bosh: - stemcells: - bosh-openstack-kvm-ubuntu-trusty-go_agent: releases: route-registrar-boshrelease: base_location: https://bosh.io/d/github.com/ @@ -584,7 +580,7 @@ See [post-generate.sh](micro-depls/terraform-config/template/post-generate.sh) s There is no yet public template sample. Orange employees can have a look to the [post-generate.sh](micro-depls/terraform-config/template/post-generate.sh) in the private paas-template repo. -## How to bootstrap pipelines to a new concourse +## How to bootstrap pipelines to a new concourse? simply run [concourse-bootstrap.sh](scripts/concourse-bootstrap.sh) with the appropriate environment variable set. It loads the `bootstrap-all-init-pipelines` pipeline and triggers it. @@ -603,7 +599,7 @@ The following tools are required to run [concourse-bootstrap.sh](scripts/concour * fly, the concourse CLI * Login to concourse in main team -## How to create a new root deployment +## How to create a new root deployment? To setup a new paas-template repo, a new secrets repo or to add a new root deployment, you can run [create-root-depls](scripts/create-root-depls.rb) script to create empty files. @@ -614,6 +610,12 @@ The following tools are required to run [create-root-depls](scripts/create-root- * ruby +## How to manage stemcell? + +The same stemcell is used for all deployments, it is defined in [shared-config.yml](docs/reference_dataset/template_repository/shared-config.yml) +or in [private-config.yml](docs/reference_dataset/config_repository/private-config.yml), but the version is managed by +`root-deployment` using dedicated [-versions.yml](docs/reference_dataset/template_repository/hello-world-root-depls/hello-world-root-depls-versions.yml) + # Credits This repo was inspired by great work shared in: diff --git a/ci/pipeline.yml b/ci/pipeline.yml index ce930a414..fe14b22fb 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -164,7 +164,6 @@ jobs: - get: cf-ops-automation-test-secrets trigger: true - - task: setup-pre-requisites attempts: 1 image: cf-ops-automation-docker-image @@ -278,35 +277,17 @@ jobs: FLY_USERNAME: ((concourse-username)) FLY_PASSWORD: '((concourse-password))' - - - name: merge-to-master + - name: update-documentation serial: true plan: - aggregate: - - get: ci-master - get: cf-ops-automation resource: ci-develop trigger: true passed: [test] - get: cf-ops-automation-docker-image passed: [test] - - put: ci-master - params: - repository: cf-ops-automation - - name: ship-it - serial: true - serial_groups: [version] - plan: - - aggregate: - - get: version - params: {bump: final} - - get: cf-ops-automation - resource: ci-master - # trigger: true - passed: [merge-to-master] -# - get: cf-ops-automation-docker-image -# passed: [merge-to-master] - task: generate-living-documentation config: platform: linux @@ -316,7 +297,6 @@ jobs: repository: orangecloudfoundry/cf-ops-automation inputs: - name: cf-ops-automation - - name: version outputs: - name: cf-ops-automation-living-documentation run: @@ -327,10 +307,12 @@ jobs: git config --global user.email "$GIT_USER_EMAIL" git config --global user.name "$GIT_USER_NAME" - RELEASE_VERSION=$(cat version/version) + RELEASE_VERSION=test git clone cf-ops-automation cf-ops-automation-living-documentation cd cf-ops-automation-living-documentation/ - bundle exec cucumber + bundle exec cucumber -f html --out docs/features/features.html -f pretty --out docs/features/features.md -f pretty --no-color --no-source + gh-md-toc --insert Readme.md + cat Readme.md|grep -v 'Added by:' >tmp.md && mv tmp.md Readme.md git add -A CHANGE_DETECTED_COUNTER=$(git status --porcelain|wc -l) if [ ${CHANGE_DETECTED_COUNTER} -gt 0 ] @@ -342,10 +324,40 @@ jobs: params: GIT_USER_NAME: "Orange Cloud Foundry SKC CI Server" GIT_USER_EMAIL: "codex.clara-cloud-ops@orange.com" - - put: ci-master + - put: ci-develop params: repository: cf-ops-automation-living-documentation rebase: true + + + - name: merge-to-master + serial: true + plan: + - aggregate: + - get: ci-master + - get: cf-ops-automation + resource: ci-develop + trigger: true + passed: [update-documentation] + - get: cf-ops-automation-docker-image + passed: [update-documentation] + - put: ci-master + params: + repository: cf-ops-automation + + - name: ship-it + serial: true + serial_groups: [version] + plan: + - aggregate: + - get: version + params: {bump: final} + - get: cf-ops-automation + resource: ci-master + # trigger: true + passed: [merge-to-master] +# - get: cf-ops-automation-docker-image +# passed: [merge-to-master] - task: generate-changelog config: platform: linux diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index c74188174..000000000 --- a/docs/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-slate \ No newline at end of file diff --git a/docs/reference_dataset/README.md b/docs/reference_dataset/README.md index 93c9088cf..9d40913f1 100644 --- a/docs/reference_dataset/README.md +++ b/docs/reference_dataset/README.md @@ -33,4 +33,3 @@ You can find a Hello World example descbribed in [cf-apps-sample-hello-world.md] You can find a Hello World example descbribed in [concourse-sample-hello-world.md](concourse-sample-hello-world.md) ### Kubernetes - diff --git a/docs/reference_dataset/another-world-root-depls.md b/docs/reference_dataset/another-world-root-depls.md new file mode 100644 index 000000000..60ca823ba --- /dev/null +++ b/docs/reference_dataset/another-world-root-depls.md @@ -0,0 +1,247 @@ +# Directory structure 'another-world-root-depls' for example + +## The config repo + +### root level overview + +```bash +. +├── hello-world-root-depls +├── private-config.yml +└── shared +``` + +### another-world-root-depls overview + +```bash +Inactive deployment: config dir for another-world-root-depls does not exist. +``` + +## The template repo + +### root level overview + +```bash +. +├── another-world-root-depls +├── hello-world-root-depls +└── shared-config.yml +``` + +### another-world-root-depls overview + +```bash +another-world-root-depls +├── another-bosh-deployment-sample +│   ├── deployment-dependencies.yml +│   └── template +│   ├── adding-ntp-release-operators.yml +│   ├── another-bosh-deployment-sample-tpl.yml +│   ├── ntp-release-vars.yml +│   ├── openstack +│   │   └── nginx-operators.yml +│   ├── post-deploy.sh +│   └── pre-deploy.sh +├── another-world-root-depls-versions.yml +└── template + ├── cloud-config-tpl.yml + ├── deploy.sh + ├── openstack + │   └── disk-types-cloud-operators.yml + └── runtime-config-tpl.yml +``` + +## The config files + +### The root config files + +* [hello-world-root-depls](/docs/reference_dataset/config_repository/hello-world-root-depls) +* [private-config.yml](/docs/reference_dataset/config_repository/private-config.yml) +* [shared](/docs/reference_dataset/config_repository/shared) + +### The another-world-root-depls files + + +### The shared files + +* [shared](/docs/reference_dataset/shared/shared) + * [meta.yml](/docs/reference_dataset/shared/shared/meta.yml) + * [pipeline-credentials.yml](/docs/reference_dataset/shared/shared/pipeline-credentials.yml) + * [secrets.yml](/docs/reference_dataset/shared/shared/secrets.yml) + +## The template files + +### The root template files + +* [another-world-root-depls](/docs/reference_dataset/template_repository/another-world-root-depls) +* [hello-world-root-depls](/docs/reference_dataset/template_repository/hello-world-root-depls) +* [shared-config.yml](/docs/reference_dataset/template_repository/shared-config.yml) + +### The another-world-root-depls files + +* [another-world-root-depls](/docs/reference_dataset/template_repository/another-world-root-depls) + * [another-bosh-deployment-sample](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample) + * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/deployment-dependencies.yml) + * [template](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template) + * [adding-ntp-release-operators.yml](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/adding-ntp-release-operators.yml) + * [another-bosh-deployment-sample-tpl.yml](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/another-bosh-deployment-sample-tpl.yml) + * [ntp-release-vars.yml](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/ntp-release-vars.yml) + * [openstack](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/openstack) + * [nginx-operators.yml](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/openstack/nginx-operators.yml) + * [post-deploy.sh](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/post-deploy.sh) + * [pre-deploy.sh](/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/pre-deploy.sh) + * [another-world-root-depls-versions.yml](/docs/reference_dataset/template_repository/another-world-root-depls/another-world-root-depls-versions.yml) + * [template](/docs/reference_dataset/template_repository/another-world-root-depls/template) + * [cloud-config-tpl.yml](/docs/reference_dataset/template_repository/another-world-root-depls/template/cloud-config-tpl.yml) + * [deploy.sh](/docs/reference_dataset/template_repository/another-world-root-depls/template/deploy.sh) + * [openstack](/docs/reference_dataset/template_repository/another-world-root-depls/template/openstack) + * [disk-types-cloud-operators.yml](/docs/reference_dataset/template_repository/another-world-root-depls/template/openstack/disk-types-cloud-operators.yml) + * [runtime-config-tpl.yml](/docs/reference_dataset/template_repository/another-world-root-depls/template/runtime-config-tpl.yml) + +## Required pipeline credentials for another-world-root-depls + +### another-world-root-depls-cf-apps-generated.yml + +No credentials required + +### another-world-root-depls-concourse-generated.yml + +No credentials required + +### another-world-root-depls-generated.yml + +* bosh-password +* bosh-target +* bosh-username +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* iaas-type +* paas-templates-branch +* paas-templates-uri +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook + +### another-world-root-depls-init-generated.yml + +No credentials required + +### another-world-root-depls-news-generated.yml + +* stemcell-version + +### another-world-root-depls-s3-br-upload-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-another-world-root-depls-password +* concourse-another-world-root-depls-target +* concourse-another-world-root-depls-username +* slack-channel +* slack-webhook + +### another-world-root-depls-s3-stemcell-upload-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-another-world-root-depls-password +* concourse-another-world-root-depls-target +* concourse-another-world-root-depls-username +* slack-channel +* slack-webhook + +### another-world-root-depls-sync-helper-generated.yml + +No credentials required + +### another-world-root-depls-tf-generated.yml + +No credentials required + +## List of pipelines in which credentials appear for another-world-root-depls + +### bosh-password + +* another-world-root-depls-generated.yml + +### bosh-target + +* another-world-root-depls-generated.yml + +### bosh-username + +* another-world-root-depls-generated.yml + +### cf-ops-automation-branch + +* another-world-root-depls-generated.yml +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### cf-ops-automation-tag-filter + +* another-world-root-depls-generated.yml +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### cf-ops-automation-uri + +* another-world-root-depls-generated.yml +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### concourse-another-world-root-depls-password + +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### concourse-another-world-root-depls-target + +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### concourse-another-world-root-depls-username + +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### iaas-type + +* another-world-root-depls-generated.yml + +### paas-templates-branch + +* another-world-root-depls-generated.yml + +### paas-templates-uri + +* another-world-root-depls-generated.yml + +### secrets-branch + +* another-world-root-depls-generated.yml + +### secrets-uri + +* another-world-root-depls-generated.yml + +### slack-channel + +* another-world-root-depls-generated.yml +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### slack-webhook + +* another-world-root-depls-generated.yml +* another-world-root-depls-s3-br-upload-generated.yml +* another-world-root-depls-s3-stemcell-upload-generated.yml + +### stemcell-version + +* another-world-root-depls-news-generated.yml + diff --git a/docs/reference_dataset/bosh-sample-hello-world.md b/docs/reference_dataset/bosh-sample-hello-world.md deleted file mode 100644 index 275f6ce43..000000000 --- a/docs/reference_dataset/bosh-sample-hello-world.md +++ /dev/null @@ -1,194 +0,0 @@ -# Directory structure 'bosh-sample' for 'hello-world' example - -## The config repo - -```bash -. -├── ci-deployment-overview.yml -└── nginx - ├── enable-deployment.yml - └── secrets - ├── meta.yml - └── secrets.yml - -``` - -## The template repo - -```bash -. -├── bosh-sample-versions.yml -├── nginx -│   ├── deployment-dependencies.yml -│   └── template -│   ├── adding-ntp-release-operators.yml -│   ├── nginx-tpl.yml -│   ├── ntp-release-vars.yml -│   ├── openstack -│   │   └── nginx-operators.yml -│   ├── post-deploy.sh -│   └── pre-deploy.sh -└── template - ├── cloud-config.yml - ├── deploy.sh - ├── openstack - │   └── disk-types-cloud-operators.yml - └── runtime-config.yml - -``` - -## The config files - -* [ci-deployment-overview.yml](/docs/reference_dataset/config_repository/hello-world/bosh-sample/ci-deployment-overview.yml) -* [nginx](/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx) - * [enable-deployment.yml](/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/enable-deployment.yml) - * [secrets](/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets) - * [meta.yml](/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets/meta.yml) - * [secrets.yml](/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets/secrets.yml) - -## The template files - -* [bosh-sample-versions.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/bosh-sample-versions.yml) -* [nginx](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx) - * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/deployment-dependencies.yml) - * [template](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template) - * [adding-ntp-release-operators.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/adding-ntp-release-operators.yml) - * [nginx-tpl.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/nginx-tpl.yml) - * [ntp-release-vars.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/ntp-release-vars.yml) - * [openstack](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/openstack) - * [nginx-operators.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/openstack/nginx-operators.yml) - * [post-deploy.sh](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/post-deploy.sh) - * [pre-deploy.sh](/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/pre-deploy.sh) -* [template](/docs/reference_dataset/template_repository/hello-world/bosh-sample/template) - * [cloud-config.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/cloud-config.yml) - * [deploy.sh](/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/deploy.sh) - * [openstack](/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/openstack) - * [disk-types-cloud-operators.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/openstack/disk-types-cloud-operators.yml) - * [runtime-config.yml](/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/runtime-config.yml) - -## Required pipeline credentials for bosh-sample - -### bosh-sample-cf-apps-generated.yml - -No credentials required - -### bosh-sample-concourse-generated.yml - -No credentials required - -### bosh-sample-generated.yml - -* slack-webhook -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* stemcell-name -* s3-stemcell-bucket -* s3-stemcell-region-name -* stemcell-name-prefix -* stemcell-main-name -* s3-stemcell-access-key-id -* s3-stemcell-secret-key -* s3-stemcell-endpoint -* s3-stemcell-skip-ssl-verification -* bosh-target -* bosh-username -* bosh-password -* concourse-bosh-sample-target -* concourse-bosh-sample-insecure -* concourse-bosh-sample-username -* concourse-bosh-sample-password -* slack-channel -* iaas-type -* stemcell-version -* nginx-version -* ntp-version - -### bosh-sample-init-generated.yml - -* slack-webhook -* concourse-bosh-sample-target -* concourse-bosh-sample-insecure -* concourse-bosh-sample-username -* concourse-bosh-sample-password -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### bosh-sample-news-generated.yml - -* stemcell-name -* slack-webhook -* secrets-uri -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* stemcell-version -* slack-channel -* nginx-version -* ntp-version - -### bosh-sample-s3-br-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* s3-br-bucket -* s3-br-region-name -* s3-br-access-key-id -* s3-br-secret-key -* s3-br-endpoint -* s3-br-skip-ssl-verification -* slack-channel -* nginx-version -* ntp-version -* concourse-bosh-sample-target -* concourse-bosh-sample-username -* concourse-bosh-sample-password - -### bosh-sample-s3-stemcell-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* s3-stemcell-bucket -* s3-stemcell-region-name -* s3-stemcell-access-key-id -* s3-stemcell-secret-key -* s3-stemcell-endpoint -* s3-stemcell-skip-ssl-verification -* slack-channel -* stemcell-version -* concourse-bosh-sample-target -* concourse-bosh-sample-username -* concourse-bosh-sample-password - -### bosh-sample-sync-helper-generated.yml - -* slack-webhook -* anonymized-secrets-repo-uri -* anonymized-secrets-compare-repo-uri -* secrets-uri -* secrets-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### bosh-sample-tf-generated.yml - -No credentials required - diff --git a/docs/reference_dataset/cf-apps-sample-hello-world.md b/docs/reference_dataset/cf-apps-sample-hello-world.md deleted file mode 100644 index 3c880ca76..000000000 --- a/docs/reference_dataset/cf-apps-sample-hello-world.md +++ /dev/null @@ -1,151 +0,0 @@ -# Directory structure 'cf-apps-sample' for 'hello-world' example - -## The config repo - -```bash -. -├── ci-deployment-overview.yml -└── generic-app - ├── enable-cf-app.yml - └── secrets - ├── meta.yml - └── secrets.yml - -``` - -## The template repo - -```bash -. -├── cf-apps-sample-versions.yml -├── generic-app -│   ├── deployment-dependencies.yml -│   └── template -│   ├── Staticfile -│   ├── index.html -│   └── manifest-tpl.yml -└── template - └── deploy.sh - -``` - -## The config files - -* [ci-deployment-overview.yml](/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/ci-deployment-overview.yml) -* [generic-app](/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app) - * [enable-cf-app.yml](/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/enable-cf-app.yml) - * [secrets](/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets) - * [meta.yml](/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets/meta.yml) - * [secrets.yml](/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets/secrets.yml) - -## The template files - -* [cf-apps-sample-versions.yml](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/cf-apps-sample-versions.yml) -* [generic-app](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app) - * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/deployment-dependencies.yml) - * [template](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template) - * [index.html](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/index.html) - * [manifest-tpl.yml](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/manifest-tpl.yml) - * [Staticfile](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/Staticfile) -* [template](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/template) - * [deploy.sh](/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/template/deploy.sh) - -## Required pipeline credentials for cf-apps-sample - -### cf-apps-sample-cf-apps-generated.yml - -* slack-webhook -* secrets-uri -* secrets-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* paas-templates-uri -* paas-templates-branch -* slack-channel -* concourse-cf-apps-sample-target -* concourse-cf-apps-sample-username -* concourse-cf-apps-sample-password - -### cf-apps-sample-concourse-generated.yml - -No credentials required - -### cf-apps-sample-generated.yml - -* slack-webhook -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* concourse-cf-apps-sample-target -* concourse-cf-apps-sample-insecure -* concourse-cf-apps-sample-username -* concourse-cf-apps-sample-password -* slack-channel -* bosh-target -* bosh-username -* bosh-password -* iaas-type - -### cf-apps-sample-init-generated.yml - -* slack-webhook -* concourse-cf-apps-sample-target -* concourse-cf-apps-sample-insecure -* concourse-cf-apps-sample-username -* concourse-cf-apps-sample-password -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### cf-apps-sample-news-generated.yml - -* stemcell-version - -### cf-apps-sample-s3-br-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-cf-apps-sample-target -* concourse-cf-apps-sample-username -* concourse-cf-apps-sample-password - -### cf-apps-sample-s3-stemcell-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-cf-apps-sample-target -* concourse-cf-apps-sample-username -* concourse-cf-apps-sample-password - -### cf-apps-sample-sync-helper-generated.yml - -* slack-webhook -* anonymized-secrets-repo-uri -* anonymized-secrets-compare-repo-uri -* secrets-uri -* secrets-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### cf-apps-sample-tf-generated.yml - -No credentials required - diff --git a/docs/reference_dataset/concourse-sample-hello-world.md b/docs/reference_dataset/concourse-sample-hello-world.md deleted file mode 100644 index 9fccadf62..000000000 --- a/docs/reference_dataset/concourse-sample-hello-world.md +++ /dev/null @@ -1,161 +0,0 @@ -# Directory structure 'concourse-sample' for 'hello-world' example - -## The config repo - -```bash -. -├── ci-deployment-overview.yml -└── pipeline-sample - ├── enable-deployment.yml - └── secrets - ├── meta.yml - └── secrets.yml - -``` - -## The template repo - -```bash -. -├── concourse-sample-versions.yml -├── pipeline-sample -│   ├── concourse-pipeline-config -│   │   └── pipeline-sample.yml -│   └── deployment-dependencies.yml -└── template - ├── cloud-config-tpl.yml - ├── deploy.sh - └── runtime-config-tpl.yml - -``` - -## The config files - -* [ci-deployment-overview.yml](/docs/reference_dataset/config_repository/hello-world/concourse-sample/ci-deployment-overview.yml) -* [pipeline-sample](/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample) - * [enable-deployment.yml](/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/enable-deployment.yml) - * [secrets](/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets) - * [meta.yml](/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets/meta.yml) - * [secrets.yml](/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets/secrets.yml) - -## The template files - -* [concourse-sample-versions.yml](/docs/reference_dataset/template_repository/hello-world/concourse-sample/concourse-sample-versions.yml) -* [pipeline-sample](/docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample) - * [concourse-pipeline-config](/docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/concourse-pipeline-config) - * [pipeline-sample.yml](/docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml) - * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/deployment-dependencies.yml) -* [template](/docs/reference_dataset/template_repository/hello-world/concourse-sample/template) - * [cloud-config-tpl.yml](/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/cloud-config-tpl.yml) - * [deploy.sh](/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/deploy.sh) - * [runtime-config-tpl.yml](/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/runtime-config-tpl.yml) - -## Required pipeline credentials for concourse-sample - -### concourse-sample-cf-apps-generated.yml - -No credentials required - -### concourse-sample-concourse-generated.yml - -* slack-webhook -* concourse-concourse-sample-target -* concourse-concourse-sample-insecure -* concourse-concourse-sample-username -* concourse-concourse-sample-password -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* slack-channel -* iaas-type - -### concourse-sample-generated.yml - -* slack-webhook -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* concourse-concourse-sample-target -* concourse-concourse-sample-insecure -* concourse-concourse-sample-username -* concourse-concourse-sample-password -* slack-channel -* bosh-target -* bosh-username -* bosh-password -* iaas-type - -### concourse-sample-init-generated.yml - -* slack-webhook -* concourse-concourse-sample-target -* concourse-concourse-sample-insecure -* concourse-concourse-sample-username -* concourse-concourse-sample-password -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### concourse-sample-news-generated.yml - -* stemcell-name -* stemcell-version - -### concourse-sample-s3-br-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-concourse-sample-target -* concourse-concourse-sample-username -* concourse-concourse-sample-password - -### concourse-sample-s3-stemcell-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* s3-stemcell-bucket -* s3-stemcell-region-name -* s3-stemcell-access-key-id -* s3-stemcell-secret-key -* s3-stemcell-endpoint -* s3-stemcell-skip-ssl-verification -* slack-channel -* stemcell-version -* concourse-concourse-sample-target -* concourse-concourse-sample-username -* concourse-concourse-sample-password - -### concourse-sample-sync-helper-generated.yml - -* slack-webhook -* anonymized-secrets-repo-uri -* anonymized-secrets-compare-repo-uri -* secrets-uri -* secrets-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### concourse-sample-tf-generated.yml - -No credentials required - diff --git a/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/enable-deployment.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/enable-deployment.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/enable-deployment.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/enable-deployment.yml diff --git a/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets/meta.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets/meta.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets/meta.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets/meta.yml diff --git a/docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets/secrets.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets/secrets.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/bosh-sample/nginx/secrets/secrets.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets/secrets.yml diff --git a/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/enable-cf-app.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/enable-cf-app.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/enable-cf-app.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/enable-cf-app.yml diff --git a/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets/meta.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/meta.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets/meta.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/meta.yml diff --git a/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets/secrets.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/secrets.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/cf-apps-sample/generic-app/secrets/secrets.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/secrets.yml diff --git a/docs/reference_dataset/config_repository/hello-world-root-depls/ci-deployment-overview.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/ci-deployment-overview.yml new file mode 100644 index 000000000..5b765c570 --- /dev/null +++ b/docs/reference_dataset/config_repository/hello-world-root-depls/ci-deployment-overview.yml @@ -0,0 +1,17 @@ +--- +ci-deployment: + hello-world-root-depls: + target_name: TO_BE_DEFINED + target_name: fe-int-micro-for-micro-depls + terraform_config: + state_file_path: hello-world-root-depls/terraform-config + pipelines: + bosh-sample-generated: + vars_files: + - hello-world-root-depls/hello-world-root-depls-versions.yml + - shared/concourse-credentials.yml + bosh-sample-cf-apps-generated: + vars_files: + - hello-world-root-depls/hello-world-root-depls-versions.yml + - shared/concourse-credentials.yml + diff --git a/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/enable-deployment.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/enable-deployment.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/enable-deployment.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/enable-deployment.yml diff --git a/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets/meta.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets/meta.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets/meta.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets/meta.yml diff --git a/docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets/secrets.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets/secrets.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/concourse-sample/pipeline-sample/secrets/secrets.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets/secrets.yml diff --git a/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/meta.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/meta.yml new file mode 100644 index 000000000..f15f99c92 --- /dev/null +++ b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/meta.yml @@ -0,0 +1,15 @@ +meta: + runtime: + login_banner: | + Ceci est un système propriété de et opéré par + ORANGE S.A. + + Article 323-1 et suivants du code pénal + Le fait d'accéder ou de se maintenir + frauduleusement, dans tout ou partie d'un + système de traitement automatisé de données + est puni de deux ans d'emprisonnement et + de 3000 euros d'amende (150 000 euros + pour les personnes morales). + + diff --git a/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-config-operators.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-config-operators.yml new file mode 100644 index 000000000..7592edfb7 --- /dev/null +++ b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-config-operators.yml @@ -0,0 +1,4 @@ +- type: replace + path: /orange-config-extentions/COA-private? + value: + enabled: true diff --git a/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-runtime-operators.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-runtime-operators.yml new file mode 100644 index 000000000..e333a7f78 --- /dev/null +++ b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-runtime-operators.yml @@ -0,0 +1,4 @@ +- type: replace + path: /orange-runtime-extentions/COA-private? + value: + enabled: true diff --git a/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/secrets.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/secrets.yml new file mode 100644 index 000000000..01de45be9 --- /dev/null +++ b/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/secrets.yml @@ -0,0 +1,2 @@ +secrets: + diff --git a/docs/reference_dataset/config_repository/hello-world/shared/meta.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets/meta.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/shared/meta.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets/meta.yml diff --git a/docs/reference_dataset/config_repository/hello-world/shared/secrets.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets/secrets.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/shared/secrets.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets/secrets.yml diff --git a/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/enable-deployment.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/spec/my-private-terraform-spec.tf similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/enable-deployment.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/spec/my-private-terraform-spec.tf diff --git a/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/meta.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/meta.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/meta.yml rename to docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/meta.yml diff --git a/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/secrets.yml b/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/secrets.yml new file mode 100644 index 000000000..d07fd7411 --- /dev/null +++ b/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/secrets.yml @@ -0,0 +1,3 @@ +--- +secrets: + my-secrets: xxx diff --git a/docs/reference_dataset/config_repository/hello-world/bosh-sample/ci-deployment-overview.yml b/docs/reference_dataset/config_repository/hello-world/bosh-sample/ci-deployment-overview.yml deleted file mode 100644 index fed53f22e..000000000 --- a/docs/reference_dataset/config_repository/hello-world/bosh-sample/ci-deployment-overview.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -ci-deployment: - bosh-sample: - target_name: TO_BE_DEFINED - pipelines: - bosh-sample-generated: - vars_files: - - hello-world/bosh-sample/bosh-sample-versions.yml - - shared/concourse-credentials.yml - bosh-sample-cf-apps-generated: - vars_files: - - hello-world/bosh-sample/bosh-sample-versions.yml - - shared/concourse-credentials.yml diff --git a/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/ci-deployment-overview.yml b/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/ci-deployment-overview.yml deleted file mode 100644 index 7f6276d55..000000000 --- a/docs/reference_dataset/config_repository/hello-world/cf-apps-sample/ci-deployment-overview.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -ci-deployment: - cf-apps-sample: - target_name: TO_BE_DEFINED - pipelines: - cf-apps-sample-generated: - vars_files: - - hello-world/cf-app-sample/cf-apps-sample-world-versions.yml - - shared/concourse-credentials.yml - cf-apps-sample-cf-apps-generated: - vars_files: - - hello-world/cf-app-sample/cf-apps-sample-world-versions.yml - - shared/concourse-credentials.yml diff --git a/docs/reference_dataset/config_repository/hello-world/concourse-sample/ci-deployment-overview.yml b/docs/reference_dataset/config_repository/hello-world/concourse-sample/ci-deployment-overview.yml deleted file mode 100644 index 77e0e973b..000000000 --- a/docs/reference_dataset/config_repository/hello-world/concourse-sample/ci-deployment-overview.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -ci-deployment: - concourse-sample: - target_name: TO_BE_DEFINED - pipelines: - concourse-sample-generated: - vars_files: - - hello-world/consourse-sample/concourse-sample-versions.yml - - shared/concourse-credentials.yml - concourse-sample-cf-apps-generated: - vars_files: - - hello-world/consourse-sample/concourse-sample-versions.yml - - shared/concourse-credentials.yml diff --git a/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/ci-deployment-overview.yml b/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/ci-deployment-overview.yml deleted file mode 100644 index f3532049d..000000000 --- a/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/ci-deployment-overview.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -ci-deployment: - delete-lifecycle-sample: - target_name: TO_BE_DEFINED - pipelines: - delete-lifecycle-sample-generated: - vars_files: - - hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml - - shared/concourse-credentials.yml - delete-lifecycle-sample-cf-apps-generated: - vars_files: - - hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml - - shared/concourse-credentials.yml diff --git a/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/secrets.yml b/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/secrets.yml deleted file mode 100644 index 12d6b4883..000000000 --- a/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/secrets.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -secrets: - nginx: - instances: 1 diff --git a/docs/reference_dataset/config_repository/hello-world/terraform-sample/ci-deployment-overview.yml b/docs/reference_dataset/config_repository/hello-world/terraform-sample/ci-deployment-overview.yml deleted file mode 100644 index f8b82c762..000000000 --- a/docs/reference_dataset/config_repository/hello-world/terraform-sample/ci-deployment-overview.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -ci-deployment: - terraform-sample: - target_name: TO_BE_DEFINED - pipelines: - terraform-sample-generated: - vars_files: - - hello-world/terraform-sample/terraform-sample-versions.yml - - shared/concourse-credentials.yml - terraform-sample-cf-apps-generated: - vars_files: - - hello-world/terraform-sample/terraform-sample-versions.yml - - shared/concourse-credentials.yml diff --git a/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets/meta.yml b/docs/reference_dataset/config_repository/shared/meta.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets/meta.yml rename to docs/reference_dataset/config_repository/shared/meta.yml diff --git a/docs/reference_dataset/config_repository/hello-world/shared/pipeline-credentials.yml b/docs/reference_dataset/config_repository/shared/pipeline-credentials.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/shared/pipeline-credentials.yml rename to docs/reference_dataset/config_repository/shared/pipeline-credentials.yml diff --git a/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets/secrets.yml b/docs/reference_dataset/config_repository/shared/secrets.yml similarity index 100% rename from docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets/secrets.yml rename to docs/reference_dataset/config_repository/shared/secrets.yml diff --git a/docs/reference_dataset/delete-lifecycle-sample-hello-world.md b/docs/reference_dataset/delete-lifecycle-sample-hello-world.md deleted file mode 100644 index a264f8a05..000000000 --- a/docs/reference_dataset/delete-lifecycle-sample-hello-world.md +++ /dev/null @@ -1,154 +0,0 @@ -# Directory structure 'delete-lifecycle-sample' for 'hello-world' example - -## The config repo - -```bash -. -├── ci-deployment-overview.yml -└── nginx - └── secrets - ├── meta.yml - └── secrets.yml - -``` - -## The template repo - -```bash -. -├── delete-lifecycle-sample-versions.yml -├── nginx -│   ├── deployment-dependencies.yml -│   └── template -│   ├── adding-ntp-release-operators.yml -│   ├── nginx-tpl.yml -│   ├── ntp-release-vars.yml -│   ├── openstack -│   │   └── nginx-operators.yml -│   ├── post-deploy.sh -│   └── pre-deploy.sh -└── template - ├── cloud-config-tpl.yml - ├── deploy.sh - ├── openstack - │   └── disk-types-cloud-operators.yml - └── runtime-config-tpl.yml - -``` - -## The config files - -* [ci-deployment-overview.yml](/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/ci-deployment-overview.yml) -* [nginx](/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx) - * [secrets](/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets) - * [meta.yml](/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/meta.yml) - * [secrets.yml](/docs/reference_dataset/config_repository/hello-world/delete-lifecycle-sample/nginx/secrets/secrets.yml) - -## The template files - -* [delete-lifecycle-sample-versions.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml) -* [nginx](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx) - * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/deployment-dependencies.yml) - * [template](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template) - * [adding-ntp-release-operators.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/adding-ntp-release-operators.yml) - * [nginx-tpl.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/nginx-tpl.yml) - * [ntp-release-vars.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/ntp-release-vars.yml) - * [openstack](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/openstack) - * [nginx-operators.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/openstack/nginx-operators.yml) - * [post-deploy.sh](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/post-deploy.sh) - * [pre-deploy.sh](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/pre-deploy.sh) -* [template](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template) - * [cloud-config-tpl.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/cloud-config-tpl.yml) - * [deploy.sh](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/deploy.sh) - * [openstack](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/openstack) - * [disk-types-cloud-operators.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/openstack/disk-types-cloud-operators.yml) - * [runtime-config-tpl.yml](/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/runtime-config-tpl.yml) - -## Required pipeline credentials for delete-lifecycle-sample - -### delete-lifecycle-sample-cf-apps-generated.yml - -No credentials required - -### delete-lifecycle-sample-concourse-generated.yml - -No credentials required - -### delete-lifecycle-sample-generated.yml - -* slack-webhook -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* concourse-delete-lifecycle-sample-target -* concourse-delete-lifecycle-sample-insecure -* concourse-delete-lifecycle-sample-username -* concourse-delete-lifecycle-sample-password -* slack-channel -* bosh-target -* bosh-username -* bosh-password -* iaas-type - -### delete-lifecycle-sample-init-generated.yml - -* slack-webhook -* concourse-delete-lifecycle-sample-target -* concourse-delete-lifecycle-sample-insecure -* concourse-delete-lifecycle-sample-username -* concourse-delete-lifecycle-sample-password -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### delete-lifecycle-sample-news-generated.yml - -* stemcell-version - -### delete-lifecycle-sample-s3-br-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-delete-lifecycle-sample-target -* concourse-delete-lifecycle-sample-username -* concourse-delete-lifecycle-sample-password - -### delete-lifecycle-sample-s3-stemcell-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-delete-lifecycle-sample-target -* concourse-delete-lifecycle-sample-username -* concourse-delete-lifecycle-sample-password - -### delete-lifecycle-sample-sync-helper-generated.yml - -* slack-webhook -* anonymized-secrets-repo-uri -* anonymized-secrets-compare-repo-uri -* secrets-uri -* secrets-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### delete-lifecycle-sample-tf-generated.yml - -No credentials required - diff --git a/docs/reference_dataset/hello-world-root-depls.md b/docs/reference_dataset/hello-world-root-depls.md new file mode 100644 index 000000000..599685f04 --- /dev/null +++ b/docs/reference_dataset/hello-world-root-depls.md @@ -0,0 +1,605 @@ +# Directory structure 'hello-world-root-depls' for example + +## The config repo + +### root level overview + +```bash +. +├── hello-world-root-depls +├── private-config.yml +└── shared +``` + +### hello-world-root-depls overview + +```bash +hello-world-root-depls +├── bosh-deployment-sample +│   ├── enable-deployment.yml +│   └── secrets +│   ├── meta.yml +│   └── secrets.yml +├── cf-apps-deployments +│   └── generic-app +│   ├── enable-cf-app.yml +│   └── secrets +│   ├── meta.yml +│   └── secrets.yml +├── ci-deployment-overview.yml +├── pipeline-sample +│   ├── enable-deployment.yml +│   └── secrets +│   ├── meta.yml +│   └── secrets.yml +├── secrets +│   ├── meta.yml +│   ├── private-config-operators.yml +│   ├── private-runtime-operators.yml +│   └── secrets.yml +├── terraform-sample +│   ├── secrets +│   │   ├── meta.yml +│   │   └── secrets.yml +│   └── spec +│   └── my-private-terraform-spec.tf +└── to-delete-bosh-deployment-sample + └── secrets + ├── meta.yml + └── secrets.yml +``` + +## The template repo + +### root level overview + +```bash +. +├── another-world-root-depls +├── hello-world-root-depls +└── shared-config.yml +``` + +### hello-world-root-depls overview + +```bash +hello-world-root-depls +├── bosh-deployment-sample +│   ├── deployment-dependencies.yml +│   └── template +│   ├── adding-ntp-release-operators.yml +│   ├── bosh-deployment-sample-tpl.yml +│   ├── ntp-release-vars.yml +│   ├── openstack +│   │   └── nginx-operators.yml +│   ├── post-deploy.sh +│   └── pre-deploy.sh +├── cf-apps-deployments +│   └── generic-app +│   ├── deployment-dependencies.yml +│   └── template +│   ├── index.html +│   ├── manifest-tpl.yml +│   └── Staticfile +├── hello-world-root-depls-versions.yml +├── pipeline-sample +│   ├── concourse-pipeline-config +│   │   └── pipeline-sample.yml +│   └── deployment-dependencies.yml +├── template +│   ├── cloud-config.yml +│   ├── deploy.sh +│   ├── openstack +│   │   └── disk-types-cloud-operators.yml +│   ├── public-config-operators.yml +│   ├── public-runtime-operators.yml +│   └── runtime-config.yml +└── terraform-config + ├── spec + │   └── local-provider-sample.tf + └── template + ├── post-generate.sh + └── terraform-tpl.tfvars.yml +``` + +## The config files + +### The root config files + +* [hello-world-root-depls](/docs/reference_dataset/config_repository/hello-world-root-depls) +* [private-config.yml](/docs/reference_dataset/config_repository/private-config.yml) +* [shared](/docs/reference_dataset/config_repository/shared) + +### The hello-world-root-depls files + +* [hello-world-root-depls](/docs/reference_dataset/config_repository/hello-world-root-depls) + * [bosh-deployment-sample](/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample) + * [enable-deployment.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/enable-deployment.yml) + * [secrets](/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets) + * [meta.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets/meta.yml) + * [secrets.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/bosh-deployment-sample/secrets/secrets.yml) + * [cf-apps-deployments](/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments) + * [generic-app](/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app) + * [enable-cf-app.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/enable-cf-app.yml) + * [secrets](/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets) + * [meta.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/meta.yml) + * [secrets.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/secrets.yml) + * [ci-deployment-overview.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/ci-deployment-overview.yml) + * [pipeline-sample](/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample) + * [enable-deployment.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/enable-deployment.yml) + * [secrets](/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets) + * [meta.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets/meta.yml) + * [secrets.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/pipeline-sample/secrets/secrets.yml) + * [secrets](/docs/reference_dataset/config_repository/hello-world-root-depls/secrets) + * [meta.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/meta.yml) + * [private-config-operators.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-config-operators.yml) + * [private-runtime-operators.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/private-runtime-operators.yml) + * [secrets.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/secrets/secrets.yml) + * [terraform-sample](/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample) + * [secrets](/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets) + * [meta.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets/meta.yml) + * [secrets.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/secrets/secrets.yml) + * [spec](/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/spec) + * [my-private-terraform-spec.tf](/docs/reference_dataset/config_repository/hello-world-root-depls/terraform-sample/spec/my-private-terraform-spec.tf) + * [to-delete-bosh-deployment-sample](/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample) + * [secrets](/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets) + * [meta.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/meta.yml) + * [secrets.yml](/docs/reference_dataset/config_repository/hello-world-root-depls/to-delete-bosh-deployment-sample/secrets/secrets.yml) + +### The shared files + +* [shared](/docs/reference_dataset/shared/shared) + * [meta.yml](/docs/reference_dataset/shared/shared/meta.yml) + * [pipeline-credentials.yml](/docs/reference_dataset/shared/shared/pipeline-credentials.yml) + * [secrets.yml](/docs/reference_dataset/shared/shared/secrets.yml) + +## The template files + +### The root template files + +* [another-world-root-depls](/docs/reference_dataset/template_repository/another-world-root-depls) +* [hello-world-root-depls](/docs/reference_dataset/template_repository/hello-world-root-depls) +* [shared-config.yml](/docs/reference_dataset/template_repository/shared-config.yml) + +### The hello-world-root-depls files + +* [hello-world-root-depls](/docs/reference_dataset/template_repository/hello-world-root-depls) + * [bosh-deployment-sample](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample) + * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/deployment-dependencies.yml) + * [template](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template) + * [adding-ntp-release-operators.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/adding-ntp-release-operators.yml) + * [bosh-deployment-sample-tpl.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/bosh-deployment-sample-tpl.yml) + * [ntp-release-vars.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/ntp-release-vars.yml) + * [openstack](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/openstack) + * [nginx-operators.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/openstack/nginx-operators.yml) + * [post-deploy.sh](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/post-deploy.sh) + * [pre-deploy.sh](/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/pre-deploy.sh) + * [cf-apps-deployments](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments) + * [generic-app](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app) + * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/deployment-dependencies.yml) + * [template](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template) + * [index.html](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/index.html) + * [manifest-tpl.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/manifest-tpl.yml) + * [Staticfile](/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/Staticfile) + * [hello-world-root-depls-versions.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/hello-world-root-depls-versions.yml) + * [pipeline-sample](/docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample) + * [concourse-pipeline-config](/docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/concourse-pipeline-config) + * [pipeline-sample.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml) + * [deployment-dependencies.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/deployment-dependencies.yml) + * [template](/docs/reference_dataset/template_repository/hello-world-root-depls/template) + * [cloud-config.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/template/cloud-config.yml) + * [deploy.sh](/docs/reference_dataset/template_repository/hello-world-root-depls/template/deploy.sh) + * [openstack](/docs/reference_dataset/template_repository/hello-world-root-depls/template/openstack) + * [disk-types-cloud-operators.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/template/openstack/disk-types-cloud-operators.yml) + * [public-config-operators.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-config-operators.yml) + * [public-runtime-operators.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-runtime-operators.yml) + * [runtime-config.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/template/runtime-config.yml) + * [terraform-config](/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config) + * [spec](/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/spec) + * [local-provider-sample.tf](/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/spec/local-provider-sample.tf) + * [template](/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template) + * [post-generate.sh](/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/post-generate.sh) + * [terraform-tpl.tfvars.yml](/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/terraform-tpl.tfvars.yml) + +## Required pipeline credentials for hello-world-root-depls + +### hello-world-root-depls-cf-apps-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-hello-world-root-depls-password +* concourse-hello-world-root-depls-target +* concourse-hello-world-root-depls-username +* paas-templates-branch +* paas-templates-uri +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook + +### hello-world-root-depls-concourse-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-hello-world-root-depls-insecure +* concourse-hello-world-root-depls-password +* concourse-hello-world-root-depls-target +* concourse-hello-world-root-depls-username +* iaas-type +* paas-templates-branch +* paas-templates-uri +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook + +### hello-world-root-depls-generated.yml + +* bosh-password +* bosh-target +* bosh-username +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-hello-world-root-depls-insecure +* concourse-hello-world-root-depls-password +* concourse-hello-world-root-depls-target +* concourse-hello-world-root-depls-username +* iaas-type +* nginx-version +* ntp-version +* paas-templates-branch +* paas-templates-uri +* s3-stemcell-access-key-id +* s3-stemcell-bucket +* s3-stemcell-endpoint +* s3-stemcell-region-name +* s3-stemcell-secret-key +* s3-stemcell-skip-ssl-verification +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook +* stemcell-main-name +* stemcell-name +* stemcell-name-prefix +* stemcell-version + +### hello-world-root-depls-init-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-hello-world-root-depls-insecure +* concourse-hello-world-root-depls-password +* concourse-hello-world-root-depls-target +* concourse-hello-world-root-depls-username +* paas-templates-branch +* paas-templates-uri +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook + +### hello-world-root-depls-news-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* nginx-version +* ntp-version +* paas-templates-branch +* paas-templates-uri +* secrets-uri +* slack-channel +* slack-webhook +* stemcell-name +* stemcell-version + +### hello-world-root-depls-s3-br-upload-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-hello-world-root-depls-password +* concourse-hello-world-root-depls-target +* concourse-hello-world-root-depls-username +* nginx-version +* ntp-version +* s3-br-access-key-id +* s3-br-bucket +* s3-br-endpoint +* s3-br-region-name +* s3-br-secret-key +* s3-br-skip-ssl-verification +* slack-channel +* slack-webhook + +### hello-world-root-depls-s3-stemcell-upload-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* concourse-hello-world-root-depls-password +* concourse-hello-world-root-depls-target +* concourse-hello-world-root-depls-username +* s3-stemcell-access-key-id +* s3-stemcell-bucket +* s3-stemcell-endpoint +* s3-stemcell-region-name +* s3-stemcell-secret-key +* s3-stemcell-skip-ssl-verification +* slack-channel +* slack-webhook +* stemcell-version + +### hello-world-root-depls-sync-helper-generated.yml + +* anonymized-secrets-compare-repo-uri +* anonymized-secrets-repo-uri +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook + +### hello-world-root-depls-tf-generated.yml + +* cf-ops-automation-branch +* cf-ops-automation-tag-filter +* cf-ops-automation-uri +* iaas-type +* paas-templates-branch +* paas-templates-uri +* secrets-branch +* secrets-uri +* slack-channel +* slack-webhook + +## List of pipelines in which credentials appear for hello-world-root-depls + +### anonymized-secrets-compare-repo-uri + +* hello-world-root-depls-sync-helper-generated.yml + +### anonymized-secrets-repo-uri + +* hello-world-root-depls-sync-helper-generated.yml + +### bosh-password + +* hello-world-root-depls-generated.yml + +### bosh-target + +* hello-world-root-depls-generated.yml + +### bosh-username + +* hello-world-root-depls-generated.yml + +### cf-ops-automation-branch + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### cf-ops-automation-tag-filter + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### cf-ops-automation-uri + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### concourse-hello-world-root-depls-insecure + +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml + +### concourse-hello-world-root-depls-password + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### concourse-hello-world-root-depls-target + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### concourse-hello-world-root-depls-username + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### iaas-type + +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-tf-generated.yml + +### nginx-version + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml + +### ntp-version + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml + +### paas-templates-branch + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-tf-generated.yml + +### paas-templates-uri + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-tf-generated.yml + +### s3-br-access-key-id + +* hello-world-root-depls-s3-br-upload-generated.yml + +### s3-br-bucket + +* hello-world-root-depls-s3-br-upload-generated.yml + +### s3-br-endpoint + +* hello-world-root-depls-s3-br-upload-generated.yml + +### s3-br-region-name + +* hello-world-root-depls-s3-br-upload-generated.yml + +### s3-br-secret-key + +* hello-world-root-depls-s3-br-upload-generated.yml + +### s3-br-skip-ssl-verification + +* hello-world-root-depls-s3-br-upload-generated.yml + +### s3-stemcell-access-key-id + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### s3-stemcell-bucket + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### s3-stemcell-endpoint + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### s3-stemcell-region-name + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### s3-stemcell-secret-key + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### s3-stemcell-skip-ssl-verification + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + +### secrets-branch + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### secrets-uri + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### slack-channel + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### slack-webhook + +* hello-world-root-depls-cf-apps-generated.yml +* hello-world-root-depls-concourse-generated.yml +* hello-world-root-depls-generated.yml +* hello-world-root-depls-init-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-br-upload-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml +* hello-world-root-depls-sync-helper-generated.yml +* hello-world-root-depls-tf-generated.yml + +### stemcell-main-name + +* hello-world-root-depls-generated.yml + +### stemcell-name + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-news-generated.yml + +### stemcell-name-prefix + +* hello-world-root-depls-generated.yml + +### stemcell-version + +* hello-world-root-depls-generated.yml +* hello-world-root-depls-news-generated.yml +* hello-world-root-depls-s3-stemcell-upload-generated.yml + diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-cf-apps-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-cf-apps-generated.yml new file mode 100644 index 000000000..105e29e11 --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-cf-apps-generated.yml @@ -0,0 +1,19 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +#- name: at-noon +# type: cron-resource +# source: +# expression: "15 12 * * 1-5" +# location: "Europe/Paris" +# fire_immediately: true +jobs: +- name: this-is-an-empty-pipeline diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-concourse-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-concourse-generated.yml new file mode 100644 index 000000000..0bc16400b --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-concourse-generated.yml @@ -0,0 +1,13 @@ +--- +resource_types: + - name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +resources: +jobs: +- name: this-is-an-empty-pipeline diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-generated.yml new file mode 100644 index 000000000..542ae3de9 --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-generated.yml @@ -0,0 +1,233 @@ + +--- +resource_types: +- name: bosh-deployment + type: docker-image + source: + repository: concourse/bosh-deployment-resource + tag: latest +- name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +- name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +- name: bosh-config + type: docker-image + source: + repository: dellemcdojo/bosh-config-resource +- name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource +- name: bosh-deployment-v2 + type: docker-image + source: + repository: cloudfoundry/bosh-deployment-resource +- name: bosh-errand + type: docker-image + source: + repository: starkandwayne/bosh2-errand-resource +resources: +- name: at-noon + type: cron-resource + source: + expression: "15 12 * * 1-5" + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: secrets-another-world-root-depls + type: git + source: + uri: ((secrets-uri)) + paths: ["private-config.yml","another-world-root-depls/ci-deployment-overview.yml","another-world-root-depls/secrets","shared"] + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: secrets-full-writer + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-template-another-world-root-depls + type: git + source: + uri: ((paas-templates-uri)) + paths: ["shared-config.yml","another-world-root-depls/template"] + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +jobs: +- name: execute-deploy-script + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - get: at-noon + trigger: true + - aggregate: + - get: secrets-another-world-root-depls + params: { submodules: none} +# + - get: paas-template-another-world-root-depls + params: { submodules: none} +# + - get: cf-ops-automation + params: { submodules: none} + - task: run-deploy.sh + input_mapping: {scripts-resource: cf-ops-automation, templates: paas-template-another-world-root-depls, secrets: secrets-another-world-root-depls} + file: cf-ops-automation/concourse/tasks/execute_deploy_script.yml + params: + CURRENT_DEPLS: another-world-root-depls/template + COMMON_SCRIPT_DIR: scripts-resource/scripts + SECRETS_DIR: secrets + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt +- name: cloud-config-and-runtime-config-for-another-world-root-depls + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - get: secrets-full-writer + params: { submodules: none} + - get: secrets-another-world-root-depls + params: { submodules: none} + trigger: true +# + - get: paas-template-another-world-root-depls + params: { submodules: none} + trigger: true +# + - get: cf-ops-automation + params: { submodules: none} + trigger: true + - task: generate-another-world-root-depls-all-config + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-another-world-root-depls, additional-resource: paas-template-another-world-root-depls} + output_mapping: {generated-files: config-manifest} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + SPRUCE_FILE_BASE_PATH: credentials-resource/another-world-root-depls/ + YML_TEMPLATE_DIR: additional-resource/another-world-root-depls/template + YML_FILES: | + ./credentials-resource/another-world-root-depls/secrets/meta.yml + ./credentials-resource/another-world-root-depls/secrets/secrets.yml + ./credentials-resource/shared/secrets.yml + CUSTOM_SCRIPT_DIR: additional-resource/another-world-root-depls/template + IAAS_TYPE: ((iaas-type)) + - aggregate: + - task: update-cloud-config-for-another-world-root-depls + attempts: 2 + input_mapping: {scripts-resource: cf-ops-automation, secrets: secrets-another-world-root-depls} + file: cf-ops-automation/concourse/tasks/bosh_update_cloud_config.yml + params: + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt + ensure: + task: update-cloud-config + input_mapping: {reference-resource: secrets-full-writer, generated-resource: config-manifest} + output_mapping: {updated-git-resource: updated-cloud-config} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: "another-world-root-depls/cloud-config.yml" + NEW_FILE: "cloud-config.yml" + COMMIT_MESSAGE: "another-world-root-depls cloud-config auto update - [skip ci]" + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + on_success: + put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-cloud-config + rebase: true + - task: update-runtime-config-for-another-world-root-depls + attempts: 2 + input_mapping: {scripts-resource: cf-ops-automation, secrets: secrets-another-world-root-depls} + file: cf-ops-automation/concourse/tasks/bosh_update_runtime_config.yml + params: + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt + ensure: + task: update-runtime-config + input_mapping: {reference-resource: secrets-full-writer, generated-resource: config-manifest} + output_mapping: {updated-git-resource: updated-runtime-config} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: "another-world-root-depls/runtime-config.yml" + NEW_FILE: "runtime-config.yml" + COMMIT_MESSAGE: "another-world-root-depls runtime-config auto update - [skip ci]" + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + on_success: + put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-runtime-config + rebase: true +- name: recreate-all + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + serial_groups: [recreate] + plan: + - aggregate: + - get: secrets-another-world-root-depls + params: { submodules: none} + - get: paas-template-another-world-root-depls + params: { submodules: none} + - get: cf-ops-automation + params: { submodules: none} +groups: +- name: Another-world-root-depls + jobs: + - cloud-config-and-runtime-config-for-another-world-root-depls + - execute-deploy-script + - recreate-all +- name: Recreate + jobs: + - recreate-all +- name: Utils + jobs: + - cloud-config-and-runtime-config-for-another-world-root-depls + - execute-deploy-script + - recreate-all diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-init-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-init-generated.yml new file mode 100644 index 000000000..f4945476a --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-init-generated.yml @@ -0,0 +1,12 @@ +--- +resource_types: + - name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +resources: +jobs: diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-news-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-news-generated.yml new file mode 100644 index 000000000..c7545bf61 --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-news-generated.yml @@ -0,0 +1,22 @@ + +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +jobs: +# - get: bosh-stemcell +# version: { version: ((stemcell-version)) } +# trigger: true +# attempts: 2 +- name: this-is-an-empty-pipeline diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-s3-br-upload-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-s3-br-upload-generated.yml new file mode 100644 index 000000000..16d89124b --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-s3-br-upload-generated.yml @@ -0,0 +1,69 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +- name: weekday-morning + type: cron-resource + source: + expression: 40 8 * * 1-5 + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +jobs: +- name: init-concourse-boshrelease-for-another-world-root-depls + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + - get: weekday-morning + trigger: true + - task: generate-another-world-root-depls-flight-plan + output_mapping: {result-dir: init-another-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + params: + BUILD_PIPELINE_NAME: another-world-root-depls-s3-br-upload-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: init-another-world-root-depls-plan} + output_mapping: {flight-report: concourse-another-world-root-depls-init-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-another-world-root-depls-target)) + FLY_USERNAME: ((concourse-another-world-root-depls-username)) + FLY_PASSWORD: ((concourse-another-world-root-depls-password)) + FLY_TEAM: main diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-s3-stemcell-upload-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-s3-stemcell-upload-generated.yml new file mode 100644 index 000000000..47aa901aa --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-s3-stemcell-upload-generated.yml @@ -0,0 +1,69 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +- name: weekday-morning + type: cron-resource + source: + expression: 50 8 * * 1-5 + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +jobs: +- name: init-concourse-stemcells-for-another-world-root-depls + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + - get: weekday-morning + trigger: true + - task: generate-another-world-root-depls-flight-plan + output_mapping: {result-dir: init-another-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + params: + BUILD_PIPELINE_NAME: another-world-root-depls-s3-stemcell-upload-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: init-another-world-root-depls-plan} + output_mapping: {flight-report: concourse-another-world-root-depls-init-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-another-world-root-depls-target)) + FLY_USERNAME: ((concourse-another-world-root-depls-username)) + FLY_PASSWORD: ((concourse-another-world-root-depls-password)) + FLY_TEAM: main diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-sync-helper-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-sync-helper-generated.yml new file mode 100644 index 000000000..636266e92 --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-sync-helper-generated.yml @@ -0,0 +1,13 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +jobs: +- name: this-is-an-empty-pipeline diff --git a/docs/reference_dataset/pipelines/another-world-root-depls-tf-generated.yml b/docs/reference_dataset/pipelines/another-world-root-depls-tf-generated.yml new file mode 100644 index 000000000..b372a856e --- /dev/null +++ b/docs/reference_dataset/pipelines/another-world-root-depls-tf-generated.yml @@ -0,0 +1,9 @@ +--- +resource_types: +- name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +resources: +jobs: +- name: this-is-an-empty-pipeline diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-cf-apps-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-cf-apps-generated.yml new file mode 100644 index 000000000..5bbebe63e --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-cf-apps-generated.yml @@ -0,0 +1,178 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +#- name: at-noon +# type: cron-resource +# source: +# expression: "15 12 * * 1-5" +# location: "Europe/Paris" +# fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: secrets-full + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: secrets-full-writer + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + skip_ssl_verification: true + tag_filter: ((cf-ops-automation-tag-filter)) +- name: secrets-generic-app + type: git + source: + uri: ((secrets-uri)) + paths: ["hello-world-root-depls/cf-apps-deployments/generic-app", "shared"] + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-template-generic-app + type: git + source: + uri: ((paas-templates-uri)) + paths: ["hello-world-root-depls/cf-apps-deployments/generic-app"] + branch: ((paas-templates-branch)) + skip_ssl_verification: true +jobs: +- name: retrigger-all-jobs + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + - get: secrets-full + params: { submodules: none} + - task: generate-hello-world-root-depls-pipeline + output_mapping: {result-dir: trigger-hello-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + echo "trigger-job -j $BUILD_PIPELINE_NAME/cf-push-generic-app" >> result-dir/flight-plan + params: + BUILD_PIPELINE_NAME: hello-world-root-depls-cf-apps-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: trigger-hello-world-root-depls-plan} + output_mapping: {flight-report: concourse-hello-world-root-depls-trigger-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-hello-world-root-depls-target)) + FLY_USERNAME: ((concourse-hello-world-root-depls-username)) + FLY_PASSWORD: ((concourse-hello-world-root-depls-password)) +- name: cf-push-generic-app + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: secrets-generic-app + params: { submodules: none} + trigger: true + - get: secrets-full-writer + params: { submodules: none} + - get: paas-template-generic-app + trigger: true + params: { submodules: none } + - get: cf-ops-automation + trigger: true + params: { submodules: none } + - task: generate-generic-app-manifest + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-generic-app, additional-resource: paas-template-generic-app} + output_mapping: {generated-files: release-manifest} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + SPRUCE_FILE_BASE_PATH: credentials-resource/hello-world-root-depls/cf-apps-deployments/generic-app/ + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/cf-apps-deployments/generic-app/template + YML_FILES: | + ./credentials-resource/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/meta.yml + ./credentials-resource/hello-world-root-depls/cf-apps-deployments/generic-app/secrets/secrets.yml + ./credentials-resource/shared/secrets.yml + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/cf-apps-deployments/generic-app/template + - task: push-generic-app + attempts: 2 + input_mapping: {scripts-resource: cf-ops-automation, templates-resource: paas-template-generic-app, credentials-resource: secrets-generic-app, additional-resource: release-manifest} + output_mapping: {generated-files: final-release-manifest} + file: cf-ops-automation/concourse/tasks/cf_push.yml + params: + CUSTOM_SCRIPT_DIR: templates-resource/hello-world-root-depls/cf-apps-deployments/generic-app/template + SECRETS_DIR: credentials-resource/hello-world-root-depls/cf-apps-deployments/generic-app + CF_MANIFEST: generated-files/generic-app_manifest.yml + CF_API_URL: https://my-cloudfroundry.org + CF_ORG: my-test-org + CF_SPACE: my-test-space + CF_USERNAME: a-test-User + CF_PASSWORD: a-test-Password + - task: update-generic-app-files + input_mapping: {reference-resource: secrets-full-writer, generated-resource: final-release-manifest} + output_mapping: {updated-git-resource: updated-generic-app-secrets} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: hello-world-root-depls/cf-apps-deployments/generic-app/generic-app_manifest.yml + NEW_FILE: "generic-app_manifest.yml" + COMMIT_MESSAGE: "generic-app generated CF manifest auto update - [skip ci]" + - put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-generic-app-secrets + rebase: true + - task: execute-generic-app-post-deploy + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-generic-app, credentials-resource: secrets-generic-app, additional-resource: release-manifest} + output_mapping: {generated-files: post-deploy-result} + file: cf-ops-automation/concourse/tasks/post_bosh_deploy.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/cf-apps-deployments/generic-app/template + SECRETS_DIR: credentials-resource/hello-world-root-depls/cf-apps-deployments/generic-app + CF_API_URL: https://my-cloudfroundry.org + CF_ORG: my-test-org + CF_SPACE: my-test-space + CF_USERNAME: a-test-User + CF_PASSWORD: a-test-Password +groups: +- name: Hello-world-root-depls + jobs: + - retrigger-all-jobs + - cf-push-generic-app +- name: App-g* + jobs: + - cf-push-generic-app +- name: Utils + jobs: + - retrigger-all-jobs diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-concourse-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-concourse-generated.yml new file mode 100644 index 000000000..10d1e9fd3 --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-concourse-generated.yml @@ -0,0 +1,123 @@ +--- +resource_types: + - name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +resources: +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: concourse-for-hello-world-root-depls + type: concourse-pipeline + source: + target: ((concourse-hello-world-root-depls-target)) + insecure: ((concourse-hello-world-root-depls-insecure)) + teams: + - name: main + username: ((concourse-hello-world-root-depls-username)) + password: ((concourse-hello-world-root-depls-password)) +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +- name: secrets-pipeline-sample + type: git + source: + uri: ((secrets-uri)) + paths: ["hello-world-root-depls/pipeline-sample","shared"] + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-templates-pipeline-sample + type: git + source: + uri: ((paas-templates-uri)) + paths: + - "hello-world-root-depls/pipeline-sample/concourse-pipeline-config" + - "hello-world-root-depls/hello-world-root-depls-versions.yml" + branch: ((paas-templates-branch)) + skip_ssl_verification: true +jobs: +- name: deploy-concourse-pipeline-sample-pipeline + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + icon_url: https://pbs.twimg.com/profile_images/714899641628753920/3C8UrVPf.jpg + text: | + ![failed](https://rawgit.com/orange-cloudfoundry/travis-resource/master/ci/images/concourse-red.png) Failed to deploy [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + username: Concourse + plan: + - aggregate: + - get: paas-templates-pipeline-sample + params: { submodules: none} + attempts: 2 + trigger: true + - get: secrets-pipeline-sample + params: { submodules: none} + attempts: 2 + trigger: true + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + trigger: false + - task: spruce-processing-pipeline-sample + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-pipeline-sample, additional-resource: paas-templates-pipeline-sample} + output_mapping: {generated-files: spruced-files} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + SPRUCE_FILE_BASE_PATH: credentials-resource/hello-world-root-depls/pipeline-sample + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/pipeline-sample/concourse-pipeline-config + YML_FILES: | + ./credentials-resource/hello-world-root-depls/pipeline-sample/secrets/secrets.yml + ./credentials-resource/shared/secrets.yml + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/pipeline-sample/concourse-pipeline-config + IAAS_TYPE: ((iaas-type)) + - task: execute-pipeline-sample-spiff-pre-deploy + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-templates-pipeline-sample, credentials-resource: secrets-pipeline-sample, additional-resource: spruced-files} + output_mapping: {generated-files: pre-deploy-resource} + file: cf-ops-automation/concourse/tasks/spiff_pre_bosh_deploy.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/pipeline-sample/concourse-pipeline-config + SECRETS_DIR: credentials-resource/hello-world-root-depls/pipeline-sample + - task: copy-pipeline-sample-required-files + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-templates-pipeline-sample, credentials-resource: secrets-pipeline-sample, additional-resource: pre-deploy-resource} + output_mapping: {generated-files: bosh-inputs} + file: cf-ops-automation/concourse/tasks/copy_deployment_required_files.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/pipeline-sample/concourse-pipeline-config + SECRETS_DIR: credentials-resource/hello-world-root-depls/pipeline-sample + MANIFEST_NAME: pipeline-sample.yml + - task: bosh-interpolate-pipeline-with-ops-and-vars-files + input_mapping: + bosh-inputs: bosh-inputs + manifest-dir: bosh-inputs + scripts-resource: cf-ops-automation + secrets: secrets-pipeline-sample + output_mapping: {result-dir: final-pipeline-sample-pipeline} + file: cf-ops-automation/concourse/tasks/bosh_interpolate/task.yml + params: + VARS_FILES_SUFFIX: vars.yml + OPS_FILES_SUFFIX: operators.yml + BOSH_YAML_FILE: pipeline-sample.yml + - put: concourse-for-hello-world-root-depls + params: + pipelines: + - name: hello-world-root-depls-pipeline-sample + team: main + config_file: final-pipeline-sample-pipeline/interpolated-pipeline-sample.yml + - task: execute-pipeline-sample-post-deploy + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-templates-pipeline-sample, credentials-resource: secrets-pipeline-sample, additional-resource: final-pipeline-sample-pipeline} + output_mapping: {generated-files: post-deploy-result} + file: cf-ops-automation/concourse/tasks/post_bosh_deploy.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/pipeline-sample/concourse-pipeline-config + SECRETS_DIR: credentials-resource/hello-world-root-depls/pipeline-sample diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-generated.yml new file mode 100644 index 000000000..008a13261 --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-generated.yml @@ -0,0 +1,897 @@ + +--- +resource_types: +- name: bosh-deployment + type: docker-image + source: + repository: concourse/bosh-deployment-resource + tag: latest +- name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +- name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +- name: bosh-config + type: docker-image + source: + repository: dellemcdojo/bosh-config-resource +- name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource +- name: bosh-deployment-v2 + type: docker-image + source: + repository: cloudfoundry/bosh-deployment-resource +- name: bosh-errand + type: docker-image + source: + repository: starkandwayne/bosh2-errand-resource +resources: +- name: at-noon + type: cron-resource + source: + expression: "15 12 * * 1-5" + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: secrets-hello-world-root-depls + type: git + source: + uri: ((secrets-uri)) + paths: ["private-config.yml","hello-world-root-depls/ci-deployment-overview.yml","hello-world-root-depls/secrets","shared","hello-world-root-depls/terraform-config"] + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: secrets-full-writer + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-template-hello-world-root-depls + type: git + source: + uri: ((paas-templates-uri)) + paths: ["shared-config.yml","hello-world-root-depls/template","hello-world-root-depls/terraform-config"] + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +- name: bosh-stemcell +# name: ((stemcell-name)) + type: s3 + source: + bucket: ((s3-stemcell-bucket)) + region_name: ((s3-stemcell-region-name)) + # customization is required to remove bosh prefix in stemcell name + regexp: ((stemcell-name-prefix))((stemcell-main-name))/bosh-stemcell-(.*)-((stemcell-main-name)).tgz + access_key_id: ((s3-stemcell-access-key-id)) + secret_access_key: ((s3-stemcell-secret-key)) + endpoint: ((s3-stemcell-endpoint)) + skip_ssl_verification: ((s3-stemcell-skip-ssl-verification)) +- name: secrets-bosh-deployment-sample + type: git + source: + uri: ((secrets-uri)) + paths: ["hello-world-root-depls/bosh-deployment-sample","shared"] + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-template-bosh-deployment-sample + type: git + source: + uri: ((paas-templates-uri)) + paths: ["hello-world-root-depls/bosh-deployment-sample"] + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: bosh-deployment-sample-deployment + type: bosh-deployment-v2 + source: + target: ((bosh-target)) + client: ((bosh-username)) + client_secret: ((bosh-password)) + deployment: bosh-deployment-sample + ca_cert: +- name: fe-int-micro-for-micro-depls + type: concourse-pipeline + source: + target: ((concourse-hello-world-root-depls-target)) + insecure: ((concourse-hello-world-root-depls-insecure)) + teams: + - name: main + username: ((concourse-hello-world-root-depls-username)) + password: ((concourse-hello-world-root-depls-password)) +- name: paas-templates-wip + type: git + source: + uri: ((paas-templates-uri)) + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: secrets-full + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-templates-full + type: git + source: + uri: ((paas-templates-uri)) + branch: pipeline-current-((paas-templates-branch)) + skip_ssl_verification: true +- name: nginx + type: bosh-io-release + source: + repository: cloudfoundry-community/nginx-release +- name: ntp + type: bosh-io-release + source: + repository: cloudfoundry-community/ntp-release +jobs: +- name: delete-deployments-review + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + trigger: true + - get: paas-templates-full + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + - get: secrets-full + trigger: true + passed: [update-pipeline-hello-world-root-depls-generated] + params: { submodules: none} + - task: prepare_deployment_to_be_deleted + input_mapping: {scripts-resource: cf-ops-automation} + file: cf-ops-automation/concourse/tasks/bosh_delete_plan/task.yml + params: + DEPLOYMENTS_TO_DELETE: "to-delete-bosh-deployment-sample terraform-sample" +- name: approve-and-delete-disabled-deployments + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + passed: [delete-deployments-review] + - get: secrets-full + params: { submodules: none} + passed: [delete-deployments-review] + - task: delete_deployments + input_mapping: {scripts-resource: cf-ops-automation, secrets: secrets-full} + file: cf-ops-automation/concourse/tasks/bosh_delete_apply/task.yml + params: + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt + DEPLOYMENTS_TO_DELETE: "to-delete-bosh-deployment-sample terraform-sample" +- name: execute-deploy-script + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - get: at-noon + trigger: true + - aggregate: + - get: secrets-hello-world-root-depls + params: { submodules: none} +# + - get: paas-template-hello-world-root-depls + params: { submodules: none} +# + - get: cf-ops-automation + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + - task: run-deploy.sh + input_mapping: {scripts-resource: cf-ops-automation, templates: paas-template-hello-world-root-depls, secrets: secrets-hello-world-root-depls} + file: cf-ops-automation/concourse/tasks/execute_deploy_script.yml + params: + CURRENT_DEPLS: hello-world-root-depls/template + COMMON_SCRIPT_DIR: scripts-resource/scripts + SECRETS_DIR: secrets + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt +- name: cloud-config-and-runtime-config-for-hello-world-root-depls + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - get: secrets-full-writer + params: { submodules: none} + - get: secrets-hello-world-root-depls + params: { submodules: none} + trigger: true +# + - get: paas-template-hello-world-root-depls + params: { submodules: none} + trigger: true +# + - get: cf-ops-automation + params: { submodules: none} + trigger: true + passed: [update-pipeline-hello-world-root-depls-generated] + - task: generate-hello-world-root-depls-all-config + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-hello-world-root-depls, additional-resource: paas-template-hello-world-root-depls} + output_mapping: {generated-files: config-manifest} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + SPRUCE_FILE_BASE_PATH: credentials-resource/hello-world-root-depls/ + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/template + YML_FILES: | + ./credentials-resource/hello-world-root-depls/secrets/meta.yml + ./credentials-resource/hello-world-root-depls/secrets/secrets.yml + ./credentials-resource/shared/secrets.yml + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/template + IAAS_TYPE: ((iaas-type)) + - aggregate: + - task: update-cloud-config-for-hello-world-root-depls + attempts: 2 + input_mapping: {scripts-resource: cf-ops-automation, secrets: secrets-hello-world-root-depls} + file: cf-ops-automation/concourse/tasks/bosh_update_cloud_config.yml + params: + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt + ensure: + task: update-cloud-config + input_mapping: {reference-resource: secrets-full-writer, generated-resource: config-manifest} + output_mapping: {updated-git-resource: updated-cloud-config} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: "hello-world-root-depls/cloud-config.yml" + NEW_FILE: "cloud-config.yml" + COMMIT_MESSAGE: "hello-world-root-depls cloud-config auto update - [skip ci]" + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + on_success: + put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-cloud-config + rebase: true + - task: update-runtime-config-for-hello-world-root-depls + attempts: 2 + input_mapping: {scripts-resource: cf-ops-automation, secrets: secrets-hello-world-root-depls} + file: cf-ops-automation/concourse/tasks/bosh_update_runtime_config.yml + params: + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt + ensure: + task: update-runtime-config + input_mapping: {reference-resource: secrets-full-writer, generated-resource: config-manifest} + output_mapping: {updated-git-resource: updated-runtime-config} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: "hello-world-root-depls/runtime-config.yml" + NEW_FILE: "runtime-config.yml" + COMMIT_MESSAGE: "hello-world-root-depls runtime-config auto update - [skip ci]" + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + on_success: + put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-runtime-config + rebase: true +- name: deploy-bosh-deployment-sample + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: secrets-full-writer + params: { submodules: none} + - get: bosh-stemcell + version: { path: ((stemcell-name-prefix))((stemcell-main-name))/bosh-stemcell-((stemcell-version))-((stemcell-main-name)).tgz } + trigger: true + attempts: 2 + - get: cf-ops-automation + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + trigger: true + - get: nginx + version: { version: ((nginx-version)) } + trigger: true + attempts: 2 + - get: ntp + version: { version: ((ntp-version)) } + trigger: true + attempts: 2 + - get: secrets-bosh-deployment-sample + params: { submodules: none} + trigger: true +# + - get: paas-template-bosh-deployment-sample + trigger: true + params: { submodules: none} +# + - task: generate-bosh-deployment-sample-manifest + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-bosh-deployment-sample, additional-resource: paas-template-bosh-deployment-sample} + output_mapping: {generated-files: release-manifest} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + SPRUCE_FILE_BASE_PATH: credentials-resource/hello-world-root-depls/bosh-deployment-sample/ + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/bosh-deployment-sample/template + YML_FILES: | + ./credentials-resource/hello-world-root-depls/bosh-deployment-sample/secrets/meta.yml + ./credentials-resource/hello-world-root-depls/bosh-deployment-sample/secrets/secrets.yml + ./credentials-resource/shared/secrets.yml + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/bosh-deployment-sample/template + IAAS_TYPE: ((iaas-type)) + - task: execute-bosh-deployment-sample-spiff-pre-bosh-deploy + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-bosh-deployment-sample, credentials-resource: secrets-bosh-deployment-sample, additional-resource: release-manifest} + output_mapping: {generated-files: pre-bosh-deploy-resource} + file: cf-ops-automation/concourse/tasks/spiff_pre_bosh_deploy.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/bosh-deployment-sample/template + SECRETS_DIR: credentials-resource/hello-world-root-depls/bosh-deployment-sample + - task: copy-bosh-deployment-sample-required-files + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-bosh-deployment-sample, credentials-resource: secrets-bosh-deployment-sample, additional-resource: pre-bosh-deploy-resource} + output_mapping: {generated-files: final-release-manifest} + file: cf-ops-automation/concourse/tasks/copy_deployment_required_files.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/bosh-deployment-sample/template + SECRETS_DIR: credentials-resource/hello-world-root-depls/bosh-deployment-sample + MANIFEST_NAME: bosh-deployment-sample.yml + - task: convert-bosh-dns-to-ip + output_mapping: {result-dir: bosh-generated-config} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + export DIRECTOR_IP_URL_WITHOUT_PORT=${BOSH_TARGET%%:25555} + export DIRECTOR_IP=$(nslookup ${DIRECTOR_IP_URL_WITHOUT_PORT##https://} 2>/dev/null|tail -n2|grep Address|cut -d':' -f2) + export DIRECTOR_IP_NO_SPACE=$(echo $DIRECTOR_IP |tr -d [:blank:]) + export BOSH_ENVIRONMENT="${DIRECTOR_IP_NO_SPACE}" + echo '{"target": "'"$BOSH_ENVIRONMENT"'"}' > result-dir/bosh_config.json + params: + BOSH_TARGET: ((bosh-target)) + - task: generate-empty-ops-and-vars-files + # this task is required as long as all deployments still don't use ops/vars files + output_mapping: {result-dir: ops-and-vars-files} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + inputs: + - name: final-release-manifest + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + mkdir -p result-dir/operators + mkdir -p result-dir/vars + find final-release-manifest/ -name "*-operators.yml" -type f -exec cp {} result-dir/operators \; + find final-release-manifest/ -name "*-vars.yml" -type f -exec cp {} result-dir/vars \; + echo '---' > result-dir/operators/0-empty-operators.yml + echo '---' > result-dir/vars/0-empty-vars.yml + - task: display-bosh-deployment-sample-manifest + input_mapping: + bosh-inputs: ops-and-vars-files + manifest-dir: final-release-manifest + secrets: secrets-bosh-deployment-sample + scripts-resource: cf-ops-automation + file: cf-ops-automation/concourse/tasks/bosh_interpolate/task.yml + params: + VARS_FILES_SUFFIX: "*/*vars.yml" + OPS_FILES_SUFFIX: "*/*operators.yml" + BOSH_YAML_FILE: bosh-deployment-sample.yml + - put: bosh-deployment-sample-deployment + attempts: 2 + params: + manifest: final-release-manifest/bosh-deployment-sample.yml + # source_file: bosh-generated-config/bosh_config.json + stemcells: + - bosh-stemcell/bosh-stemcell-((stemcell-version))-((stemcell-main-name)).tgz + releases: + - nginx/release.tgz + - ntp/release.tgz + ops_files: + - ops-and-vars-files/operators/* + vars_files: + - ops-and-vars-files/vars/* + cleanup: true + - task: execute-bosh-deployment-sample-post-bosh-deploy + input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-bosh-deployment-sample, credentials-resource: secrets-bosh-deployment-sample, additional-resource: final-release-manifest} + output_mapping: {generated-files: post-deploy-result} + file: cf-ops-automation/concourse/tasks/post_bosh_deploy.yml + params: + CUSTOM_SCRIPT_DIR: template-resource/hello-world-root-depls/bosh-deployment-sample/template + SECRETS_DIR: credentials-resource/hello-world-root-depls/bosh-deployment-sample + - task: update-bosh-deployment-sample-files + input_mapping: {reference-resource: secrets-full-writer, generated-resource: bosh-deployment-sample-deployment} + output_mapping: {updated-git-resource: updated-bosh-deployment-sample-secrets} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: hello-world-root-depls/bosh-deployment-sample/bosh-deployment-sample.yml + NEW_FILE: "manifest.yml" + COMMIT_MESSAGE: "bosh-deployment-sample generated manifest auto update - [skip ci]" + - put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-bosh-deployment-sample-secrets + rebase: true +- name: retrigger-all-jobs + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + - get: secrets-full + params: { submodules: none} + - task: generate-hello-world-root-depls-pipeline + output_mapping: {result-dir: trigger-hello-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + echo "trigger-job -j $BUILD_PIPELINE_NAME/deploy-bosh-deployment-sample" >> result-dir/flight-plan + params: + BUILD_PIPELINE_NAME: hello-world-root-depls-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: trigger-hello-world-root-depls-plan} + output_mapping: {flight-report: concourse-hello-world-root-depls-trigger-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-hello-world-root-depls-target)) + FLY_USERNAME: ((concourse-hello-world-root-depls-username)) + FLY_PASSWORD: ((concourse-hello-world-root-depls-password)) +- name: recreate-all + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + serial_groups: [recreate] + plan: + - aggregate: + - get: secrets-hello-world-root-depls + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + - get: paas-template-hello-world-root-depls + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + - get: cf-ops-automation + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] +- name: recreate-bosh-deployment-sample + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + serial_groups: [recreate] + plan: + - aggregate: + - get: secrets-hello-world-root-depls + params: { submodules: none} + passed: [recreate-all] + trigger: true + - get: paas-template-hello-world-root-depls + params: { submodules: none} + passed: [recreate-all] + trigger: true + - get: cf-ops-automation + params: { submodules: none} + passed: [recreate-all] + - task: bosh-recreate-bosh-deployment-sample + input_mapping: {scripts-resource: cf-ops-automation, secrets: secrets-hello-world-root-depls} + config: + platform: linux + image_resource: + type: docker-image + source: + repository: governmentpaas/bosh-cli-v2 + tag: 4aff7d1fd0fa27ff9910a77b39cbcaedb4455f0c + inputs: + - name: scripts-resource + - name: secrets + outputs: + - name: run-resource + run: + path: sh + args: + - -e + - -c + - | + source ./scripts-resource/scripts/bosh_cli_v2_login.sh ${BOSH_TARGET} + bosh -n recreate + params: + BOSH_TARGET: ((bosh-target)) + BOSH_CLIENT: ((bosh-username)) + BOSH_CLIENT_SECRET: ((bosh-password)) + BOSH_CA_CERT: secrets/shared/certs/internal_paas-ca/server-ca.crt + BOSH_DEPLOYMENT: bosh-deployment-sample +- name: init-concourse-boshrelease-and-stemcell-for-hello-world-root-depls + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 +# trigger: true + - get: secrets-full + params: { submodules: none} + attempts: 2 +# trigger: true + - task: generate-hello-world-root-depls-flight-plan + output_mapping: {result-dir: init-hello-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + echo "check-resource -r $BUILD_PIPELINE_NAME/nginx --from version:((nginx-version))" >> result-dir/flight-plan + echo "check-resource -r $BUILD_PIPELINE_NAME/ntp --from version:((ntp-version))" >> result-dir/flight-plan + echo "check-resource -r $BUILD_PIPELINE_NAME/bosh-stemcell --from path:((stemcell-name-prefix))((stemcell-main-name))/bosh-stemcell-((stemcell-version))-((stemcell-main-name)).tgz" >> result-dir/flight-plan + params: + BUILD_PIPELINE_NAME: hello-world-root-depls-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: init-hello-world-root-depls-plan} + output_mapping: {flight-report: concourse-hello-world-root-depls-init-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-hello-world-root-depls-target)) + FLY_USERNAME: ((concourse-hello-world-root-depls-username)) + FLY_PASSWORD: ((concourse-hello-world-root-depls-password)) +- name: update-pipeline-hello-world-root-depls-generated + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: secrets-full-writer + params: { submodules: none} + - get: paas-template-hello-world-root-depls + params: { submodules: none} + attempts: 2 + - get: paas-templates-wip + params: { submodules: none} + attempts: 2 + trigger: true + - get: secrets-hello-world-root-depls + params: { submodules: none} + attempts: 2 + trigger: true + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + trigger: true + - get: paas-templates-full + params: { submodules: none} + attempts: 2 + - get: secrets-full + params: { submodules: none} + attempts: 2 + - task: generate-hello-world-root-depls-pipeline + input_mapping: {scripts-resource: cf-ops-automation,templates: paas-templates-wip,secrets: secrets-full} + output_mapping: {result-dir: concourse-hello-world-root-depls-pipeline} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1-slim} + inputs: + - name: scripts-resource + - name: templates + - name: secrets + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + cp -r templates/. result-dir + cp -r scripts-resource/. result-dir + cp -rf secrets/. result-dir + cd result-dir/ + ./scripts/generate-depls.rb --depls ${ROOT_DEPLOYMENT} -t ../templates -p . -o concourse + params: + ROOT_DEPLOYMENT: hello-world-root-depls + - put: fe-int-micro-for-micro-depls + params: + pipelines: + - name: bosh-sample-generated + team: main + config_file: concourse-hello-world-root-depls-pipeline/concourse/pipelines/bosh-sample-generated.yml + vars_files: + # trick to manage -versions.yml (not included in secrets) + - paas-templates-wip/hello-world-root-depls/hello-world-root-depls-versions.yml + # trick to manage -versions.yml (not included in secrets) + - secrets-full/shared/concourse-credentials.yml + - name: bosh-sample-cf-apps-generated + team: main + config_file: concourse-hello-world-root-depls-pipeline/concourse/pipelines/bosh-sample-cf-apps-generated.yml + vars_files: + # trick to manage -versions.yml (not included in secrets) + - paas-templates-wip/hello-world-root-depls/hello-world-root-depls-versions.yml + # trick to manage -versions.yml (not included in secrets) + - secrets-full/shared/concourse-credentials.yml + - task: update-concourse-depls-pipeline + input_mapping: {reference-resource: secrets-full-writer, generated-resource: concourse-hello-world-root-depls-pipeline} + output_mapping: {updated-git-resource: updated-secrets} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: concourse/pipelines/bosh-sample-generated.yml + NEW_FILE: "concourse/pipelines/hello-world-root-depls-generated.yml" + COMMIT_MESSAGE: "hello-world-root-depls generated pipeline auto update - [skip ci]" + - task: update-concourse-cf-apps-pipeline + input_mapping: {reference-resource: updated-secrets, generated-resource: concourse-hello-world-root-depls-pipeline} + output_mapping: {updated-git-resource: updated-secrets} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: concourse/pipelines/bosh-sample-cf-apps-generated.yml + NEW_FILE: "concourse/pipelines/hello-world-root-depls-cf-apps-generated.yml" + COMMIT_MESSAGE: "hello-world-root-depls cf-apps generated pipeline auto update - [skip ci]" + - put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-secrets + rebase: true + - put: paas-templates-full + get_params: {submodules: none} + params: + repository: paas-templates-wip + force: true +- name: check-terraform-cf-consistency + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - get: at-noon + trigger: true + - get: cf-ops-automation + params: { submodules: none} + passed: [update-pipeline-hello-world-root-depls-generated] + trigger: true + - get: paas-template-hello-world-root-depls + params: { submodules: none } + - get: secrets-hello-world-root-depls + passed: [update-pipeline-hello-world-root-depls-generated] + params: { submodules: none } + - task: generate-terraform-tfvars + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-hello-world-root-depls, additional-resource: paas-template-hello-world-root-depls} + output_mapping: {generated-files: terraform-tfvars} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + YML_FILES: | + ./credentials-resource/shared/secrets.yml + ./credentials-resource/hello-world-root-depls/terraform-config/secrets/meta.yml + ./credentials-resource/hello-world-root-depls/terraform-config/secrets/secrets.yml + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/terraform-config/template + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/terraform-config/template + SUFFIX: -tpl.tfvars.yml + IAAS_TYPE: ((iaas-type)) + - task: terraform-plan + input_mapping: {secret-state-resource: secrets-hello-world-root-depls,spec-resource: paas-template-hello-world-root-depls} + file: cf-ops-automation/concourse/tasks/terraform_plan_cloudfoundry.yml + params: + SPEC_PATH: "hello-world-root-depls/terraform-config/spec" + SECRET_STATE_FILE_PATH: "hello-world-root-depls/terraform-config" + IAAS_SPEC_PATH: "hello-world-root-depls/terraform-config/spec-((iaas-type))" +- name: cf-manual-approval + plan: + - get: cf-ops-automation + params: { submodules: none} + passed: [check-terraform-cf-consistency] + - get: paas-template-hello-world-root-depls + params: { submodules: none} + passed: [check-terraform-cf-consistency] + - get: secrets-hello-world-root-depls + params: { submodules: none} + passed: [check-terraform-cf-consistency] +- name: enforce-terraform-cf-consistency + serial: true + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: secrets-full-writer + params: { submodules: none} + - get: cf-ops-automation + params: { submodules: none} + passed: [cf-manual-approval] + trigger: true + - get: paas-template-hello-world-root-depls + params: { submodules: none} + passed: [cf-manual-approval] + trigger: true + - get: secrets-hello-world-root-depls + params: { submodules: none} + passed: [cf-manual-approval] + trigger: true + - task: generate-terraform-tfvars + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-hello-world-root-depls, additional-resource: paas-template-hello-world-root-depls} + output_mapping: {generated-files: terraform-tfvars} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + YML_FILES: | + ./credentials-resource/shared/secrets.yml + ./credentials-resource/hello-world-root-depls/terraform-config/secrets/meta.yml + ./credentials-resource/hello-world-root-depls/terraform-config/secrets/secrets.yml + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/terraform-config/template + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/terraform-config/template + SUFFIX: -tpl.tfvars.yml + IAAS_TYPE: ((iaas-type)) + - task: terraform-apply + input_mapping: {secret-state-resource: secrets-hello-world-root-depls,spec-resource: paas-template-hello-world-root-depls} + output_mapping: {generated-files: terraform-cf} + file: cf-ops-automation/concourse/tasks/terraform_apply_cloudfoundry.yml + params: + SPEC_PATH: "hello-world-root-depls/terraform-config/spec" + SECRET_STATE_FILE_PATH: "hello-world-root-depls/terraform-config" + IAAS_SPEC_PATH: "hello-world-root-depls/terraform-config/spec-((iaas-type))" + ensure: + task: update-terraform-state-file + input_mapping: {reference-resource: secrets-full-writer, generated-resource: terraform-cf} + output_mapping: {updated-git-resource: updated-terraform-state-secrets} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: "hello-world-root-depls/terraform-config/terraform.tfstate" + NEW_FILE: "terraform.tfstate" + COMMIT_MESSAGE: "Terraform TFState auto update" + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + on_success: + put: secrets-full-writer + get_params: {submodules: none} + params: + repository: updated-terraform-state-secrets + rebase: true +groups: +- name: Hello-world-root-depls + jobs: + - approve-and-delete-disabled-deployments + - cf-manual-approval + - check-terraform-cf-consistency + - cloud-config-and-runtime-config-for-hello-world-root-depls + - delete-deployments-review + - deploy-bosh-deployment-sample + - enforce-terraform-cf-consistency + - execute-deploy-script + - init-concourse-boshrelease-and-stemcell-for-hello-world-root-depls + - recreate-all + - recreate-bosh-deployment-sample + - retrigger-all-jobs + - update-pipeline-hello-world-root-depls-generated +- name: Deploy-b* + jobs: + - deploy-bosh-deployment-sample +- name: Recreate + jobs: + - recreate-all + - recreate-bosh-deployment-sample +- name: Terraform + jobs: + - cf-manual-approval + - check-terraform-cf-consistency + - enforce-terraform-cf-consistency +- name: Utils + jobs: + - approve-and-delete-disabled-deployments + - cloud-config-and-runtime-config-for-hello-world-root-depls + - delete-deployments-review + - execute-deploy-script + - init-concourse-boshrelease-and-stemcell-for-hello-world-root-depls + - recreate-all + - retrigger-all-jobs + - update-pipeline-hello-world-root-depls-generated diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-init-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-init-generated.yml new file mode 100644 index 000000000..3aaabfbf3 --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-init-generated.yml @@ -0,0 +1,110 @@ +--- +resource_types: + - name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +resources: +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: fe-int-micro-for-micro-depls + type: concourse-pipeline + source: + target: ((concourse-hello-world-root-depls-target)) + insecure: ((concourse-hello-world-root-depls-insecure)) + teams: + - name: main + username: ((concourse-hello-world-root-depls-username)) + password: ((concourse-hello-world-root-depls-password)) +- name: secrets-full + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-templates-full + type: git + source: + uri: ((paas-templates-uri)) + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +jobs: +- name: update-pipeline-hello-world-root-depls + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + icon_url: https://pbs.twimg.com/profile_images/714899641628753920/3C8UrVPf.jpg + text: | + ![failed](https://rawgit.com/orange-cloudfoundry/travis-resource/master/ci/images/concourse-red.png) Failed to deploy [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + username: Concourse + plan: + - aggregate: + - get: paas-templates-full + params: { submodules: none} + attempts: 2 + trigger: false + - get: secrets-full + params: { submodules: none} + attempts: 2 + trigger: false + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + trigger: false + - task: generate-hello-world-root-depls-pipelines + input_mapping: {scripts-resource: cf-ops-automation,templates: paas-templates-full,secrets: secrets-full} + output_mapping: {result-dir: concourse-hello-world-root-depls-pipeline} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1-slim} + inputs: + - name: scripts-resource + - name: secrets + - name: templates + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + cp -r templates/. result-dir + cp -r scripts-resource/. result-dir + cp -rf secrets/. result-dir + cd result-dir/ + ./scripts/generate-depls.rb --depls hello-world-root-depls -t ../templates -p . -o concourse + - put: fe-int-micro-for-micro-depls + params: + pipelines: + - name: bosh-sample-generated + team: main + config_file: concourse-hello-world-root-depls-pipeline/concourse/pipelines/bosh-sample-generated.yml + vars_files: + # trick to manage -versions.yml (not included in secrets) + - paas-templates-full/hello-world-root-depls/hello-world-root-depls-versions.yml + # trick to manage -versions.yml (not included in secrets) + - secrets-full/shared/concourse-credentials.yml + - name: bosh-sample-cf-apps-generated + team: main + config_file: concourse-hello-world-root-depls-pipeline/concourse/pipelines/bosh-sample-cf-apps-generated.yml + vars_files: + # trick to manage -versions.yml (not included in secrets) + - paas-templates-full/hello-world-root-depls/hello-world-root-depls-versions.yml + # trick to manage -versions.yml (not included in secrets) + - secrets-full/shared/concourse-credentials.yml diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-news-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-news-generated.yml new file mode 100644 index 000000000..8cd307683 --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-news-generated.yml @@ -0,0 +1,174 @@ + +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: concourse-pipeline + type: docker-image + source: + repository: concourse/concourse-pipeline-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +#- name: bosh-stemcell +# type: bosh-io-stemcell +# source: +# name: ((stemcell-name)) +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: new-version-alert + type: slack-notification + source: + url: ((slack-webhook)) +#- name: secrets-complete +# type: git +# source: +# uri: ((secrets-uri)) +# branch: master +# skip_ssl_verification: true +- name: paas-templates-full + type: git + source: + uri: ((paas-templates-uri)) + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +- name: monday-morning + type: cron-resource + source: + expression: 30 8 * * 1 + location: "Europe/Paris" + fire_immediately: true +- name: nginx + type: bosh-io-release + source: + repository: cloudfoundry-community/nginx-release +- name: ntp + type: bosh-io-release + source: + repository: cloudfoundry-community/ntp-release +jobs: +# - get: bosh-stemcell +# version: { version: ((stemcell-version)) } +# trigger: true +# attempts: 2 +- name: check-nginx + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: monday-morning + trigger: true + - get: nginx + attempts: 2 + params: {tarball: false} + - get: paas-templates-full + params: { submodules: none} + - get: cf-ops-automation + params: { submodules: none} + - task: generate-update-message + input_mapping: {boshrelease: nginx} + output_mapping: {message: nginx-message} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: governmentpaas/curl-ssl} + inputs: + - name: boshrelease + outputs: + - name: message + run: + path: sh + args: + - -exc + - | + MESSAGE_FILE=message/update_notif + NEW_VERSION=$(cat boshrelease/version) + RELEASE_URL=$(cat boshrelease/url|sed 's|/d/|/releases/|'|sed 's/?v=/?version=/') + if [ "${NEW_VERSION}" != "${CURRENT_VERSION}" ] + then + echo "New version of nginx detected: [${NEW_VERSION}](${RELEASE_URL})." >${MESSAGE_FILE} + echo "hello-world-root-depls is using ${CURRENT_VERSION} of nginx" >>${MESSAGE_FILE} + else + echo "hello-world-root-depls is running the latest nginx (ie [${NEW_VERSION}](${RELEASE_URL}))." >${MESSAGE_FILE} + fi + params: + CURRENT_VERSION: ((nginx-version)) + - put: new-version-alert + params: + channel: ((slack-channel)) + text_file: nginx-message/update_notif + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse +- name: check-ntp + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: monday-morning + trigger: true + - get: ntp + attempts: 2 + params: {tarball: false} + - get: paas-templates-full + params: { submodules: none} + - get: cf-ops-automation + params: { submodules: none} + - task: generate-update-message + input_mapping: {boshrelease: ntp} + output_mapping: {message: ntp-message} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: governmentpaas/curl-ssl} + inputs: + - name: boshrelease + outputs: + - name: message + run: + path: sh + args: + - -exc + - | + MESSAGE_FILE=message/update_notif + NEW_VERSION=$(cat boshrelease/version) + RELEASE_URL=$(cat boshrelease/url|sed 's|/d/|/releases/|'|sed 's/?v=/?version=/') + if [ "${NEW_VERSION}" != "${CURRENT_VERSION}" ] + then + echo "New version of ntp detected: [${NEW_VERSION}](${RELEASE_URL})." >${MESSAGE_FILE} + echo "hello-world-root-depls is using ${CURRENT_VERSION} of ntp" >>${MESSAGE_FILE} + else + echo "hello-world-root-depls is running the latest ntp (ie [${NEW_VERSION}](${RELEASE_URL}))." >${MESSAGE_FILE} + fi + params: + CURRENT_VERSION: ((ntp-version)) + - put: new-version-alert + params: + channel: ((slack-channel)) + text_file: ntp-message/update_notif + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-s3-br-upload-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-s3-br-upload-generated.yml new file mode 100644 index 000000000..1aec96f6d --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-s3-br-upload-generated.yml @@ -0,0 +1,279 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +- name: weekday-morning + type: cron-resource + source: + expression: 40 8 * * 1-5 + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +- name: nginx + type: bosh-io-release + source: + repository: cloudfoundry-community/nginx-release +- name: nginx-s3 + type: s3 + source: + bucket: ((s3-br-bucket)) + region_name: ((s3-br-region-name)) + regexp: cloudfoundry-community/nginx-(.*).tgz + access_key_id: ((s3-br-access-key-id)) + secret_access_key: ((s3-br-secret-key)) + endpoint: ((s3-br-endpoint)) + skip_ssl_verification: ((s3-br-skip-ssl-verification)) +- name: ntp + type: bosh-io-release + source: + repository: cloudfoundry-community/ntp-release +- name: ntp-s3 + type: s3 + source: + bucket: ((s3-br-bucket)) + region_name: ((s3-br-region-name)) + regexp: cloudfoundry-community/ntp-(.*).tgz + access_key_id: ((s3-br-access-key-id)) + secret_access_key: ((s3-br-secret-key)) + endpoint: ((s3-br-endpoint)) + skip_ssl_verification: ((s3-br-skip-ssl-verification)) +jobs: +- name: init-concourse-boshrelease-for-hello-world-root-depls + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + - get: weekday-morning + trigger: true + - task: generate-hello-world-root-depls-flight-plan + output_mapping: {result-dir: init-hello-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + echo "check-resource -r $BUILD_PIPELINE_NAME/nginx --from version:((nginx-version))" >> result-dir/flight-plan + echo "check-resource -r $BUILD_PIPELINE_NAME/ntp --from version:((ntp-version))" >> result-dir/flight-plan + params: + BUILD_PIPELINE_NAME: hello-world-root-depls-s3-br-upload-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: init-hello-world-root-depls-plan} + output_mapping: {flight-report: concourse-hello-world-root-depls-init-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-hello-world-root-depls-target)) + FLY_USERNAME: ((concourse-hello-world-root-depls-username)) + FLY_PASSWORD: ((concourse-hello-world-root-depls-password)) + FLY_TEAM: main +- name: upload-current-nginx + serial_groups: [nginx] + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: nginx + attempts: 2 + version: {version: ((nginx-version))} + trigger: true + params: {tarball: true} + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + passed: [ init-concourse-boshrelease-for-hello-world-root-depls ] + - task: generate-nginx-name + input_mapping: {release: nginx} + output_mapping: {result-dir: nginx} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + inputs: + - name: release + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + VERSION=$(cat release/version) + cp release/release.tgz result-dir/${RELEASE_PREFIX}-${VERSION}.tgz + params: + RELEASE_PREFIX: nginx + - put: nginx-s3 + params: + file: nginx/*.tgz + acl: public-read +- name: upload-latest-nginx + serial_groups: [nginx] + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: nginx + attempts: 2 + version: every + trigger: true + params: {tarball: true} + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + passed: [ upload-current-nginx ] + - task: generate-nginx-name + input_mapping: {release: nginx} + output_mapping: {result-dir: nginx} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + inputs: + - name: release + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + VERSION=$(cat release/version) + cp release/release.tgz result-dir/${RELEASE_PREFIX}-${VERSION}.tgz + params: + RELEASE_PREFIX: nginx + - put: nginx-s3 + params: + file: nginx/*.tgz + acl: public-read +- name: upload-current-ntp + serial_groups: [ntp] + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: ntp + attempts: 2 + version: {version: ((ntp-version))} + trigger: true + params: {tarball: true} + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + passed: [ init-concourse-boshrelease-for-hello-world-root-depls ] + - task: generate-ntp-name + input_mapping: {release: ntp} + output_mapping: {result-dir: ntp} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + inputs: + - name: release + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + VERSION=$(cat release/version) + cp release/release.tgz result-dir/${RELEASE_PREFIX}-${VERSION}.tgz + params: + RELEASE_PREFIX: ntp + - put: ntp-s3 + params: + file: ntp/*.tgz + acl: public-read +- name: upload-latest-ntp + serial_groups: [ntp] + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: ntp + attempts: 2 + version: every + trigger: true + params: {tarball: true} + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + passed: [ upload-current-ntp ] + - task: generate-ntp-name + input_mapping: {release: ntp} + output_mapping: {result-dir: ntp} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + inputs: + - name: release + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + VERSION=$(cat release/version) + cp release/release.tgz result-dir/${RELEASE_PREFIX}-${VERSION}.tgz + params: + RELEASE_PREFIX: ntp + - put: ntp-s3 + params: + file: ntp/*.tgz + acl: public-read diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-s3-stemcell-upload-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-s3-stemcell-upload-generated.yml new file mode 100644 index 000000000..7f5d4fb06 --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-s3-stemcell-upload-generated.yml @@ -0,0 +1,131 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +- name: weekday-morning + type: cron-resource + source: + expression: 50 8 * * 1-5 + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +- name: bosh-openstack-kvm-ubuntu-trusty-go_agent + type: bosh-io-stemcell + source: + name: bosh-openstack-kvm-ubuntu-trusty-go_agent +- name: bosh-openstack-kvm-ubuntu-trusty-go_agent-s3 + type: s3 + source: + bucket: ((s3-stemcell-bucket)) + region_name: ((s3-stemcell-region-name)) + # customization is required to remove bosh prefix in stemcell name + regexp: bosh-openstack-kvm-ubuntu-trusty-go_agent/bosh-stemcell-(.*)-openstack-kvm-ubuntu-trusty-go_agent.tgz + access_key_id: ((s3-stemcell-access-key-id)) + secret_access_key: ((s3-stemcell-secret-key)) + endpoint: ((s3-stemcell-endpoint)) + skip_ssl_verification: ((s3-stemcell-skip-ssl-verification)) +jobs: +- name: init-concourse-stemcells-for-hello-world-root-depls + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + - get: weekday-morning + trigger: true + - task: generate-hello-world-root-depls-flight-plan + output_mapping: {result-dir: init-hello-world-root-depls-plan} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: concourse/busyboxplus, tag: "git"} + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + echo "check-resource -r $BUILD_PIPELINE_NAME/bosh-openstack-kvm-ubuntu-trusty-go_agent --from version:((stemcell-version))" >> result-dir/flight-plan + params: + BUILD_PIPELINE_NAME: hello-world-root-depls-s3-stemcell-upload-generated + - task: fly-into-concourse + input_mapping: {fly-cmd: init-hello-world-root-depls-plan} + output_mapping: {flight-report: concourse-hello-world-root-depls-init-report} + file: cf-ops-automation/concourse/tasks/fly_execute_commands.yml + params: + ATC_EXTERNAL_URL: ((concourse-hello-world-root-depls-target)) + FLY_USERNAME: ((concourse-hello-world-root-depls-username)) + FLY_PASSWORD: ((concourse-hello-world-root-depls-password)) + FLY_TEAM: main +- name: upload-current-bosh-openstack-kvm-ubuntu-trusty-go_agent + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: bosh-openstack-kvm-ubuntu-trusty-go_agent + attempts: 2 + version: {version: ((stemcell-version))} + trigger: true + params: {tarball: true, preserve_filename: true} + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + passed: [ init-concourse-stemcells-for-hello-world-root-depls ] + - put: bosh-openstack-kvm-ubuntu-trusty-go_agent-s3 + params: + file: bosh-openstack-kvm-ubuntu-trusty-go_agent/*.tgz + acl: public-read +- name: upload-lastest-bosh-openstack-kvm-ubuntu-trusty-go_agent + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: bosh-openstack-kvm-ubuntu-trusty-go_agent + attempts: 2 + version: every + trigger: true + params: {tarball: true, preserve_filename: true} + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + passed: [ upload-current-bosh-openstack-kvm-ubuntu-trusty-go_agent ] + - put: bosh-openstack-kvm-ubuntu-trusty-go_agent-s3 + params: + file: bosh-openstack-kvm-ubuntu-trusty-go_agent/*.tgz + acl: public-read diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-sync-helper-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-sync-helper-generated.yml new file mode 100644 index 000000000..d665071fe --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-sync-helper-generated.yml @@ -0,0 +1,432 @@ +--- +resource_types: + - name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource + - name: cron-resource + type: docker-image + source: + repository: cftoolsmiths/cron-resource +resources: +- name: at-nine + type: cron-resource + source: + expression: "15 9 * * 1-5" + location: "Europe/Paris" + fire_immediately: true +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +- name: anonymized-secrets + type: git + source: + uri: ((anonymized-secrets-repo-uri)) + branch: master + skip_ssl_verification: true +- name: anonymized-secrets-compare + type: git + source: + uri: ((anonymized-secrets-compare-repo-uri)) + branch: master + skip_ssl_verification: true +- name: secrets-full + type: git + source: + uri: ((secrets-uri)) + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +jobs: +- name: anonymize-secrets-value + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: at-nine + trigger: true + - get: cf-ops-automation + params: { submodules: none} + attempts: 2 + - get: secrets-full + params: { submodules: none} + attempts: 2 + - get: anonymized-secrets + attempts: 2 + - task: anonymized-secrets + input_mapping: {scripts-resource: cf-ops-automation,secrets: secrets-full} + output_mapping: {result-dir: anonymized-secrets-dir} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: scripts-resource + - name: secrets + outputs: + - name: result-dir + run: + path: sh + args: + - -exc + - | + cd scripts-resource + gem update bundler + bundle install + bundle exec scripts/anonymize_secrets.rb -s ../secrets -o ../result-dir + - task: update-anonymized-files + input_mapping: {reference-resource: anonymized-secrets, generated-resource: anonymized-secrets-dir} + output_mapping: {updated-git-resource: updated-anonymized-secrets} + file: cf-ops-automation/concourse/tasks/git_update_all_files_from_generated.yml + params: + COMMIT_MESSAGE: "auto anonymized new secrets" + - put: anonymized-secrets + get_params: {submodules: none} + params: + repository: updated-anonymized-secrets + rebase: true +- name: compare-anonymized-inception-secrets + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate : + - get: anonymized-secrets + passed: [anonymize-secrets-value] + trigger: true + - get: anonymized-secrets-compare + trigger: true + - task: diff-secrets + output_mapping: {result-dir: compared-anonymized-inception-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r anonymized-secrets/inception anonymized-secrets-compare/inception + ensure: + task: diff-secrets + output_mapping: {result-dir: compared-anonymized-inception-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r -q anonymized-secrets/inception anonymized-secrets-compare/inception +- name: compare-anonymized-micro-depls-secrets + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate : + - get: anonymized-secrets + passed: [anonymize-secrets-value] + trigger: true + - get: anonymized-secrets-compare + trigger: true + - task: diff-secrets + output_mapping: {result-dir: compared-anonymized-micro-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r anonymized-secrets/micro-depls anonymized-secrets-compare/micro-depls + ensure: + task: diff-secrets + output_mapping: {result-dir: compared-anonymized-micro-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r -q anonymized-secrets/micro-depls anonymized-secrets-compare/micro-depls +- name: compare-anonymized-master-depls-secrets + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate : + - get: anonymized-secrets + passed: [anonymize-secrets-value] + trigger: true + - get: anonymized-secrets-compare + trigger: true + - task: diff-secrets + output_mapping: {result-dir: compared-anonymized-master-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r anonymized-secrets/master-depls anonymized-secrets-compare/master-depls + ensure: + task: diff-secrets + output_mapping: {result-dir: compared-anonymized-master-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r -q anonymized-secrets/master-depls anonymized-secrets-compare/master-depls +- name: compare-anonymized-ops-depls-secrets + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate : + - get: anonymized-secrets + passed: [anonymize-secrets-value] + trigger: true + - get: anonymized-secrets-compare + trigger: true + - task: diff-secrets + output_mapping: {result-dir: compared-anonymized-ops-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r anonymized-secrets/ops-depls anonymized-secrets-compare/ops-depls + ensure: + task: diff-secrets + output_mapping: {result-dir: compared-anonymized-ops-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r -q anonymized-secrets/ops-depls anonymized-secrets-compare/ops-depls +- name: compare-anonymized-expe-depls-secrets + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate : + - get: anonymized-secrets + passed: [anonymize-secrets-value] + trigger: true + - get: anonymized-secrets-compare + trigger: true + - task: diff-secrets + output_mapping: {result-dir: compared-anonymized-expe-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r anonymized-secrets/expe-depls anonymized-secrets-compare/expe-depls + ensure: + task: diff-secrets + output_mapping: {result-dir: compared-anonymized-expe-depls-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r -q anonymized-secrets/expe-depls anonymized-secrets-compare/expe-depls +- name: compare-anonymized-shared-secrets + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate : + - get: anonymized-secrets + passed: [anonymize-secrets-value] + trigger: true + - get: anonymized-secrets-compare + trigger: true + - task: diff-secrets + output_mapping: {result-dir: compared-anonymized-shared-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r anonymized-secrets/shared anonymized-secrets-compare/shared + ensure: + task: diff-secrets + output_mapping: {result-dir: compared-anonymized-shared-secrets} + config: + platform: linux + image_resource: + type: docker-image + source: {repository: ruby, tag: 2.3.1} + inputs: + - name: anonymized-secrets + - name: anonymized-secrets-compare + outputs: + - name: result-dir + run: + path: sh + args: + - -xc + - | + diff -r -q anonymized-secrets/shared anonymized-secrets-compare/shared +groups: +- name: diff-overview + jobs: + - anonymize-secrets-value + - compare-anonymized-inception-secrets + - compare-anonymized-micro-depls-secrets + - compare-anonymized-master-depls-secrets + - compare-anonymized-ops-depls-secrets + - compare-anonymized-expe-depls-secrets + - compare-anonymized-shared-secrets +- name: inception + jobs: +- name: micro-depls + jobs: +- name: master-depls + jobs: +- name: ops-depls + jobs: +- name: expe-depls + jobs: diff --git a/docs/reference_dataset/pipelines/hello-world-root-depls-tf-generated.yml b/docs/reference_dataset/pipelines/hello-world-root-depls-tf-generated.yml new file mode 100644 index 000000000..de23e30c6 --- /dev/null +++ b/docs/reference_dataset/pipelines/hello-world-root-depls-tf-generated.yml @@ -0,0 +1,118 @@ +--- +resource_types: +- name: slack-notification + type: docker-image + source: + repository: cfcommunity/slack-notification-resource +resources: +- name: failure-alert + type: slack-notification + source: + url: ((slack-webhook)) +# Scan the whole subdeployment from its root, not only the secret part +- name: secrets-hello-world-root-depls + type: git + source: + uri: ((secrets-uri)) + paths: ["hello-world-root-depls/"] + branch: ((secrets-branch)) + skip_ssl_verification: true +- name: paas-template-hello-world-root-depls + type: git + source: + uri: ((paas-templates-uri)) + paths: ["hello-world-root-depls/template"] + branch: ((paas-templates-branch)) + skip_ssl_verification: true +- name: cf-ops-automation + type: git + source: + uri: ((cf-ops-automation-uri)) + branch: ((cf-ops-automation-branch)) + tag_filter: ((cf-ops-automation-tag-filter)) + skip_ssl_verification: true +# Used to get other deployments secrets (e.g. micro/master for mattermost/git) as well as shared secrets updates +# This does not trigger automatically a new build, operators have to trigger it manually. +#- name: secrets-full +# type: git +# source: +# uri: ((secrets-uri)) +# branch: ((secrets-branch)) +# skip_ssl_verification: true +- name: paas-templates-full + type: git + source: + uri: ((paas-templates-uri)) + branch: ((paas-templates-branch)) + skip_ssl_verification: true +jobs: +- name: terraform-apply + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failed to run [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME ($BUILD_NAME)]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + plan: + - aggregate: + - get: cf-ops-automation + params: { submodules: none} + trigger: true + - get: paas-template-hello-world-root-depls + params: { submodules: none} + trigger: true + - get: paas-templates-full + params: { submodules: none} + - get: secrets-hello-world-root-depls + params: { submodules: none} + trigger: true + - task: generate-terraform-tfvars + input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-hello-world-root-depls, additional-resource: paas-templates-full} + output_mapping: {generated-files: terraform-tfvars} + file: cf-ops-automation/concourse/tasks/generate-manifest.yml + params: + YML_FILES: | + ./credentials-resource/shared/secrets.yml + ./credentials-resource/hello-world-root-depls/terraform-config/secrets/meta.yml + ./credentials-resource/hello-world-root-depls/terraform-config/secrets/secrets.yml + YML_TEMPLATE_DIR: additional-resource/hello-world-root-depls/terraform-config/template + CUSTOM_SCRIPT_DIR: additional-resource/hello-world-root-depls/terraform-config/template + SUFFIX: -tpl.tfvars.yml + - task: terraform-apply + input_mapping: {secret-state-resource: secrets-hello-world-root-depls,spec-resource: paas-templates-full} + output_mapping: {generated-files: terraform-cf} + file: cf-ops-automation/concourse/tasks/terraform_apply_cloudfoundry.yml + params: + SPEC_PATH: "hello-world-root-depls/terraform-config/spec" + SECRET_STATE_FILE_PATH: "hello-world-root-depls/terraform-config" + IAAS_SPEC_PATH: "hello-world-root-depls/terraform-config/spec-((iaas-type))" + ensure: + task: update-terraform-state-file + input_mapping: {reference-resource: secrets-hello-world-root-depls, generated-resource: terraform-cf} + output_mapping: {updated-git-resource: updated-terraform-state-secrets} + file: cf-ops-automation/concourse/tasks/git_update_a_file_from_generated.yml + params: + OLD_FILE: "hello-world-root-depls/terraform-config/terraform.tfstate" + NEW_FILE: "terraform.tfstate" + COMMIT_MESSAGE: "Terraform Cloudfoundry auto update - [skip ci]" + on_failure: + put: failure-alert + params: + channel: ((slack-channel)) + text: Failure during [[$BUILD_PIPELINE_NAME/$BUILD_JOB_NAME]($ATC_EXTERNAL_URL/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME)]. + icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png + username: Concourse + on_success: + put: secrets-hello-world-root-depls + get_params: {submodules: none} + params: + repository: updated-terraform-state-secrets + rebase: true +groups: +- name: Hello-world-root-depls + jobs: + - terraform-apply +- name: Terraform + jobs: + - terraform-apply diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/deployment-dependencies.yml b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/deployment-dependencies.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/deployment-dependencies.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/deployment-dependencies.yml diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/adding-ntp-release-operators.yml b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/adding-ntp-release-operators.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/adding-ntp-release-operators.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/adding-ntp-release-operators.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/nginx-tpl.yml b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/another-bosh-deployment-sample-tpl.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/nginx-tpl.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/another-bosh-deployment-sample-tpl.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/ntp-release-vars.yml b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/ntp-release-vars.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/ntp-release-vars.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/ntp-release-vars.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/openstack/nginx-operators.yml b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/openstack/nginx-operators.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/openstack/nginx-operators.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/openstack/nginx-operators.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/post-deploy.sh b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/post-deploy.sh similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/post-deploy.sh rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/post-deploy.sh diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/pre-deploy.sh b/docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/pre-deploy.sh similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/pre-deploy.sh rename to docs/reference_dataset/template_repository/another-world-root-depls/another-bosh-deployment-sample/template/pre-deploy.sh diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml b/docs/reference_dataset/template_repository/another-world-root-depls/another-world-root-depls-versions.yml similarity index 71% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/another-world-root-depls-versions.yml index 8e6c52958..6fca59282 100644 --- a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/delete-lifecycle-sample-versions.yml +++ b/docs/reference_dataset/template_repository/another-world-root-depls/another-world-root-depls-versions.yml @@ -2,7 +2,6 @@ deployment-name: delete-lifecycle-sample stemcell-version: "3468.25" -stemcell-name: bosh-openstack-kvm-ubuntu-trusty-go_agent nginx-boshrelease-version: "1.12.2" ntp-boshrelease-version: "4" diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/cloud-config-tpl.yml b/docs/reference_dataset/template_repository/another-world-root-depls/template/cloud-config-tpl.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/cloud-config-tpl.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/template/cloud-config-tpl.yml diff --git a/docs/reference_dataset/template_repository/another-world-root-depls/template/deploy.sh b/docs/reference_dataset/template_repository/another-world-root-depls/template/deploy.sh new file mode 100644 index 000000000..67d1b1110 --- /dev/null +++ b/docs/reference_dataset/template_repository/another-world-root-depls/template/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +echo "this is a deploy.sh script" + diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/openstack/disk-types-cloud-operators.yml b/docs/reference_dataset/template_repository/another-world-root-depls/template/openstack/disk-types-cloud-operators.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/template/openstack/disk-types-cloud-operators.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/template/openstack/disk-types-cloud-operators.yml diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/runtime-config-tpl.yml b/docs/reference_dataset/template_repository/another-world-root-depls/template/runtime-config-tpl.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/runtime-config-tpl.yml rename to docs/reference_dataset/template_repository/another-world-root-depls/template/runtime-config-tpl.yml diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/deployment-dependencies.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/deployment-dependencies.yml similarity index 91% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/deployment-dependencies.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/deployment-dependencies.yml index ca6756638..f124dbda4 100644 --- a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/deployment-dependencies.yml +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/deployment-dependencies.yml @@ -1,6 +1,6 @@ --- deployment: - nginx: + bosh-deployment-sample: releases: nginx: base_location: https://bosh.io/d/github.com/ diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/adding-ntp-release-operators.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/adding-ntp-release-operators.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/nginx/template/adding-ntp-release-operators.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/adding-ntp-release-operators.yml diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/nginx-tpl.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/bosh-deployment-sample-tpl.yml similarity index 97% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/nginx-tpl.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/bosh-deployment-sample-tpl.yml index d545e6be1..7a83c1d75 100644 --- a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/nginx-tpl.yml +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/bosh-deployment-sample-tpl.yml @@ -1,5 +1,5 @@ --- -name: nginx +name: bosh-deployment-sample releases: - {name: nginx, version: latest} diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/ntp-release-vars.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/ntp-release-vars.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/ntp-release-vars.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/ntp-release-vars.yml diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/openstack/nginx-operators.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/openstack/nginx-operators.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/openstack/nginx-operators.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/openstack/nginx-operators.yml diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/post-deploy.sh b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/post-deploy.sh similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/post-deploy.sh rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/post-deploy.sh diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/pre-deploy.sh b/docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/pre-deploy.sh similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/nginx/template/pre-deploy.sh rename to docs/reference_dataset/template_repository/hello-world-root-depls/bosh-deployment-sample/template/pre-deploy.sh diff --git a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/deployment-dependencies.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/deployment-dependencies.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/deployment-dependencies.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/deployment-dependencies.yml diff --git a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/Staticfile b/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/Staticfile similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/Staticfile rename to docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/Staticfile diff --git a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/index.html b/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/index.html similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/index.html rename to docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/index.html diff --git a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/manifest-tpl.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/manifest-tpl.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/cf-apps-sample/generic-app/template/manifest-tpl.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/cf-apps-deployments/generic-app/template/manifest-tpl.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/bosh-sample-versions.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/hello-world-root-depls-versions.yml similarity index 64% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/bosh-sample-versions.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/hello-world-root-depls-versions.yml index f70c54882..94fff1f86 100644 --- a/docs/reference_dataset/template_repository/hello-world/bosh-sample/bosh-sample-versions.yml +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/hello-world-root-depls-versions.yml @@ -1,7 +1,6 @@ --- deployment-name: bosh-sample -stemcell-name: bosh-openstack-kvm-ubuntu-trusty-go_agent stemcell-version: "3468.25" nginx-version: "1.12.2" diff --git a/docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/concourse-pipeline-config/pipeline-sample.yml diff --git a/docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/deployment-dependencies.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/deployment-dependencies.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/concourse-sample/pipeline-sample/deployment-dependencies.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/pipeline-sample/deployment-dependencies.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/cloud-config.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/template/cloud-config.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/template/cloud-config.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/template/cloud-config.yml diff --git a/docs/reference_dataset/template_repository/hello-world-root-depls/template/deploy.sh b/docs/reference_dataset/template_repository/hello-world-root-depls/template/deploy.sh new file mode 100644 index 000000000..67d1b1110 --- /dev/null +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/template/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +echo "this is a deploy.sh script" + diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/openstack/disk-types-cloud-operators.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/template/openstack/disk-types-cloud-operators.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/openstack/disk-types-cloud-operators.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/template/openstack/disk-types-cloud-operators.yml diff --git a/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-config-operators.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-config-operators.yml new file mode 100644 index 000000000..8abd092d4 --- /dev/null +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-config-operators.yml @@ -0,0 +1,4 @@ +- type: replace + path: /orange-config-extentions/COA-public? + value: + enabled: true diff --git a/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-runtime-operators.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-runtime-operators.yml new file mode 100644 index 000000000..ef53e5a77 --- /dev/null +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/template/public-runtime-operators.yml @@ -0,0 +1,4 @@ +- type: replace + path: /orange-runtime-extentions/COA-public? + value: + enabled: true diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/runtime-config.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/template/runtime-config.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/bosh-sample/template/runtime-config.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/template/runtime-config.yml diff --git a/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/spec/local-provider-sample.tf b/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/spec/local-provider-sample.tf new file mode 100644 index 000000000..b80dd6c94 --- /dev/null +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/spec/local-provider-sample.tf @@ -0,0 +1,4 @@ +resource "local_file" "my_spec" { + content = "this file is generated by terraform my_spec resource !" + filename = "${path.cwd}/my-spec.txt" +} \ No newline at end of file diff --git a/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/post-generate.sh b/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/post-generate.sh new file mode 100644 index 000000000..7f5391d51 --- /dev/null +++ b/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/post-generate.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +spruce json "${GENERATE_DIR}/terraform.tfvars.yml" > "${GENERATE_DIR}/terraform.tfvars.json" \ No newline at end of file diff --git a/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/terraform-tpl.tfvars.yml b/docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/terraform-tpl.tfvars.yml similarity index 100% rename from docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/terraform-tpl.tfvars.yml rename to docs/reference_dataset/template_repository/hello-world-root-depls/terraform-config/template/terraform-tpl.tfvars.yml diff --git a/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/deploy.sh b/docs/reference_dataset/template_repository/hello-world/bosh-sample/template/deploy.sh deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/cf-apps-sample-versions.yml b/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/cf-apps-sample-versions.yml deleted file mode 100644 index 623d17b92..000000000 --- a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/cf-apps-sample-versions.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -deployment-name: cf-apps-sample - -stemcell-name: bosh-openstack-kvm-ubuntu-trusty-go_agent -stemcell-version: "3468.25" - diff --git a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/template/deploy.sh b/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/template/deploy.sh deleted file mode 100644 index 0f431a526..000000000 --- a/docs/reference_dataset/template_repository/hello-world/cf-apps-sample/template/deploy.sh +++ /dev/null @@ -1,2 +0,0 @@ -cf push --random-route - diff --git a/docs/reference_dataset/template_repository/hello-world/concourse-sample/concourse-sample-versions.yml b/docs/reference_dataset/template_repository/hello-world/concourse-sample/concourse-sample-versions.yml deleted file mode 100644 index 8c5f388c9..000000000 --- a/docs/reference_dataset/template_repository/hello-world/concourse-sample/concourse-sample-versions.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -deployment-name: concourse-sample - -stemcell-name: bosh-openstack-kvm-ubuntu-trusty-go_agent -stemcell-version: "3468.25" diff --git a/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/cloud-config-tpl.yml b/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/cloud-config-tpl.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/deploy.sh b/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/deploy.sh deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/runtime-config-tpl.yml b/docs/reference_dataset/template_repository/hello-world/concourse-sample/template/runtime-config-tpl.yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/deploy.sh b/docs/reference_dataset/template_repository/hello-world/delete-lifecycle-sample/template/deploy.sh deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/reference_dataset/template_repository/hello-world/terraform-sample/terraform-sample-versions.yml b/docs/reference_dataset/template_repository/hello-world/terraform-sample/terraform-sample-versions.yml deleted file mode 100644 index 2f96889bf..000000000 --- a/docs/reference_dataset/template_repository/hello-world/terraform-sample/terraform-sample-versions.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -deployment-name: terraform-sample - -stemcell-name: aStemCell -stemcell-version: 1 - diff --git a/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/spec/private-dns.tf b/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/spec/private-dns.tf deleted file mode 100644 index 0b9fcb887..000000000 --- a/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/spec/private-dns.tf +++ /dev/null @@ -1,299 +0,0 @@ -# Configure the PowerDNS provider -provider "powerdns" { - api_key = "${var.powerdns_api_key}" - server_url = "${format("http://%s:8088",var.powerdns_server_ip)}" -} - - -# Add a record to the zone -resource "powerdns_record" "test" { - zone = "internal.paas." - name = "test.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["test"]}"] -} - -# Add a split dns for cf api wildcard => to cloudfoundry/haproxy job -resource "powerdns_record" "cf-api" { - zone = "${format("%s.",var.system_domain)}" - name = "${format("*.%s.",var.system_domain)}" - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["cf-api"]}"] -} - -# Add a dns wildcard for cf apps directly to cloudfoundry/haproxy job -resource "powerdns_record" "cf-apps-internal" { - zone = "internal.paas" - name = "*.apps.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["cf-api"]}"] -} - -# Add a split dns for cf apps wildcard => to cf-haproxy/cf-haproxy jobs -resource "powerdns_record" "cf-apps" { - zone = "${format("%s.",var.apps_domain)}" - name = "${format("*.%s.",var.apps_domain)}" - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["cf-apps"]}"] -} - -# Add a split dns for cf apps http wildcard => to cf-haproxy/cf-haproxy jobs -resource "powerdns_record" "cf-apps-http" { - zone = "${format("%s.",var.apps_http_domain)}" - name = "${format("*.%s.",var.apps_http_domain)}" - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["cf-apps-http"]}"] -} - - - - -# Add a split dns for ops wildcard => to cf-haproxy/cf-haproxy jobs - -resource "powerdns_record" "cf-ops" { - zone = "${format("%s.",var.ops_domain)}" - name = "${format("*.%s.",var.ops_domain)}" - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["cf-ops"]}"] -} - - -resource "powerdns_record" "cf-apps-internet" { - zone = "${format("%s.",var.apps_internet_domain)}" - name = "${format("*.%s.",var.apps_internet_domain)}" - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["cf-apps-internet"]}"] -} - - -#add an alias for each bosh director -resource "powerdns_record" "bosh-micro" { - zone = "internal.paas." - name = "bosh-micro.internal.paas." - type = "A" - ttl = 30000 - records = ["${var.powerdns_record["bosh-micro"]}"] -} - -resource "powerdns_record" "bosh-master" { - zone = "internal.paas." - name = "bosh-master.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["bosh-master"]}"] -} - - -resource "powerdns_record" "bosh-ops" { - zone = "internal.paas." - name = "bosh-ops.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["bosh-ops"]}"] -} - -resource "powerdns_record" "bosh-expe" { - zone = "internal.paas." - name = "bosh-expe.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["bosh-expe"]}"] -} - - - -resource "powerdns_record" "bosh-ondemand" { - zone = "internal.paas." - name = "bosh-ondemand.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["bosh-ondemand"]}"] -} - - -resource "powerdns_record" "elpaaso-ldap" { - zone = "internal.paas." - name = "elpaaso-ldap.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-ldap"]}"] -} - - -resource "powerdns_record" "prometheus" { - zone = "internal.paas." - name = "prometheus.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["prometheus"]}"] -} - -resource "powerdns_record" "prometheus-ops" { - zone = "internal.paas." - name = "prometheus-ops.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["prometheus-ops"]}"] -} - -resource "powerdns_record" "prometheus-master" { - zone = "internal.paas." - name = "prometheus-master.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["prometheus-master"]}"] -} - - -resource "powerdns_record" "prometheus-blackbox-probe" { - zone = "internal.paas." - name = "prometheus-blackbox-probe.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["prometheus-blackbox-probe"]}"] -} - -resource "powerdns_record" "webhook-mcxa" { - zone = "internal.paas." - name = "webhook-mcxa.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["webhook-mcxa"]}"] -} - -resource "powerdns_record" "elpaaso-fpv-intranet" { - zone = "internal.paas." - name = "elpaaso-fpv-intranet.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-fpv-intranet"]}"] -} - -resource "powerdns_record" "elpaaso-fpv-internet" { - zone = "internal.paas." - name = "elpaaso-fpv-internet.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-fpv-internet"]}"] -} - - - -resource "powerdns_record" "elpaaso-mail" { - zone = "internal.paas." - name = "elpaaso-mail.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-mail"]}"] -} - -resource "powerdns_record" "elpaaso-mail-1" { - zone = "internal.paas." - name = "elpaaso-mail-1.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-mail-1"]}"] -} - -resource "powerdns_record" "weave-scope" { - zone = "internal.paas." - name = "weave-scope.internal.paas." - type = "A" - ttl = 3000 - records = ["192.168.31.149"] -} - -resource "powerdns_record" "docker-bosh-cli" { - zone = "internal.paas." - name = "docker-bosh-cli.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["docker-bosh-cli"]}"] -} - -resource "powerdns_record" "docker-bosh-cli-service" { - zone = "internal.paas." - name = "docker-bosh-cli-service.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["docker-bosh-cli-service"]}"] -} - -resource "powerdns_record" "elpaaso-ntp1" { - zone = "internal.paas." - name = "elpaaso-ntp1.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-ntp1"]}"] -} - -resource "powerdns_record" "elpaaso-ntp2" { - zone = "internal.paas." - name = "elpaaso-ntp2.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["elpaaso-ntp2"]}"] -} - - -resource "powerdns_record" "credhub" { - zone = "internal.paas." - name = "credhub.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["credhub"]}"] -} - -resource "powerdns_record" "uaa-credhub" { - zone = "internal.paas." - name = "uaa-credhub.internal.paas." - type = "A" - ttl = 3000 - records = ["${var.powerdns_record["uaa-credhub"]}"] -} - - - -resource "powerdns_record" "ls-router-ops" { - zone = "internal.paas." - name = "ls-router-ops.internal.paas." - type = "A" - ttl = 3000 - records = ["192.168.99.245"] -} - -resource "powerdns_record" "es-master-ops" { - zone = "internal.paas." - name = "es-master-ops.internal.paas." - type = "A" - ttl = 3000 - records = ["192.168.99.26"] -} - -resource "powerdns_record" "private-s3" { - zone = "internal.paas." - name = "private-s3.internal.paas." - type = "A" - ttl = 3000 - records = ["192.168.116.50"] -} - - -output "powerdns_server_url" { - value = "${format("http://%s:8088",var.powerdns_server_ip)}" -} - -resource "powerdns_record" "cf-datastores" { - zone = "internal.paas." - name = "cf-datastores.internal.paas." - type = "A" - ttl = 300 - records = ["192.168.99.217"] -} \ No newline at end of file diff --git a/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/post-generate.sh b/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/post-generate.sh deleted file mode 100644 index 1a2a15321..000000000 --- a/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/post-generate.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -spruce json ${GENERATE_DIR}/terraform.tfvars.yml > ${GENERATE_DIR}/terraform.tfvars.json \ No newline at end of file diff --git a/docs/reference_dataset/terraform-sample-hello-world.md b/docs/reference_dataset/terraform-sample-hello-world.md deleted file mode 100644 index 851f6e0bf..000000000 --- a/docs/reference_dataset/terraform-sample-hello-world.md +++ /dev/null @@ -1,139 +0,0 @@ -# Directory structure 'terraform-sample' for 'hello-world' example - -## The config repo - -```bash -. -├── ci-deployment-overview.yml -└── tf-sample - ├── enable-deployment.yml - └── secrets - ├── meta.yml - └── secrets.yml - -``` - -## The template repo - -```bash -. -├── terraform-sample-versions.yml -└── tf-sample - └── terraform-config - ├── spec - │   └── private-dns.tf - └── template - ├── post-generate.sh - └── terraform-tpl.tfvars.yml - -``` - -## The config files - -* [ci-deployment-overview.yml](/docs/reference_dataset/config_repository/hello-world/terraform-sample/ci-deployment-overview.yml) -* [tf-sample](/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample) - * [enable-deployment.yml](/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/enable-deployment.yml) - * [secrets](/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets) - * [meta.yml](/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets/meta.yml) - * [secrets.yml](/docs/reference_dataset/config_repository/hello-world/terraform-sample/tf-sample/secrets/secrets.yml) - -## The template files - -* [terraform-sample-versions.yml](/docs/reference_dataset/template_repository/hello-world/terraform-sample/terraform-sample-versions.yml) -* [tf-sample](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample) - * [terraform-config](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config) - * [spec](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/spec) - * [private-dns.tf](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/spec/private-dns.tf) - * [template](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template) - * [post-generate.sh](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/post-generate.sh) - * [terraform-tpl.tfvars.yml](/docs/reference_dataset/template_repository/hello-world/terraform-sample/tf-sample/terraform-config/template/terraform-tpl.tfvars.yml) - -## Required pipeline credentials for terraform-sample - -### terraform-sample-cf-apps-generated.yml - -No credentials required - -### terraform-sample-concourse-generated.yml - -No credentials required - -### terraform-sample-generated.yml - -* slack-webhook -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* concourse-terraform-sample-target -* concourse-terraform-sample-insecure -* concourse-terraform-sample-username -* concourse-terraform-sample-password -* slack-channel -* bosh-target -* bosh-username -* bosh-password -* iaas-type - -### terraform-sample-init-generated.yml - -* slack-webhook -* concourse-terraform-sample-target -* concourse-terraform-sample-insecure -* concourse-terraform-sample-username -* concourse-terraform-sample-password -* secrets-uri -* secrets-branch -* paas-templates-uri -* paas-templates-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### terraform-sample-news-generated.yml - -* stemcell-name -* stemcell-version - -### terraform-sample-s3-br-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-terraform-sample-target -* concourse-terraform-sample-username -* concourse-terraform-sample-password - -### terraform-sample-s3-stemcell-upload-generated.yml - -* slack-webhook -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel -* concourse-terraform-sample-target -* concourse-terraform-sample-username -* concourse-terraform-sample-password - -### terraform-sample-sync-helper-generated.yml - -* slack-webhook -* anonymized-secrets-repo-uri -* anonymized-secrets-compare-repo-uri -* secrets-uri -* secrets-branch -* cf-ops-automation-uri -* cf-ops-automation-branch -* cf-ops-automation-tag-filter -* slack-channel - -### terraform-sample-tf-generated.yml - -No credentials required - diff --git a/features/cf_app_deployment_environment_variable_available.feature b/features/cf_app_deployment_environment_variable_available.feature new file mode 100644 index 000000000..430c08a6a --- /dev/null +++ b/features/cf_app_deployment_environment_variable_available.feature @@ -0,0 +1,23 @@ +Feature: Cf application deployment support + In order to know how to deploy a CF application + As a paas-template user, + I want to know which environment varaiables are availlable + + Background: + Given Hello world generated pipelines from reference_dataset + + Scenario: a deployment, or a part, is done using a concourse pipeline + But needs documentation + Then the following environment variables exist: + | name | description | + | GENERATE_DIR | directory holding generated files. It's an absolute path. | + | BASE_TEMPLATE_DIR | directory where `pre-cf-push.sh` is located. It's an relative path. | + | SECRETS_DIR | directory holding secrets related to current deployment. It's an relative path. | + | CF_API_URL | current application Cloud Foundry API url | + | CF_USERNAME | current Cloud Foundry application user | + | CF_PASSWORD | current Cloud Foundry application user password | + | CF_ORG | current Cloud Foundry application organization | + | CF_SPACE | current Cloud Foundry application space | + | CUSTOM_SCRIPT_DIR | TODO | + | CF_MANIFEST | TODO | + diff --git a/features/generating_pipelines_with_coa.feature b/features/generating_pipelines_with_coa.feature index 885cf2557..0e121eae5 100644 --- a/features/generating_pipelines_with_coa.feature +++ b/features/generating_pipelines_with_coa.feature @@ -1,49 +1,22 @@ -Feature: Deploying pipelines with the COA engine +Feature: Creating pipelines with the COA engine As a paas-template user, In order to deploy a pipeline with the COA engine I want to know the structure of the repos and the file content I need to feed to COA to produce pipelines - Scenario: Deploying a sample pipeline for BOSH - As a paas-template-user + Background: Given a config repository called "config_repository" And a template repository called "template_repository" - When I deploy "bosh-sample" - And I feed the example type called "hello-world" - And with the structures shown in "docs/reference_dataset/bosh-sample-hello-world.md" - Then the COA should create a set of deployment pipelines - Scenario: Deploying a sample pipeline for cf-apps + Scenario: Creating sample pipelines for 'Hello World' root deployment As a paas-template-user - Given a config repository called "config_repository" - And a template repository called "template_repository" - When I deploy "cf-apps-sample" - And I feed the example type called "hello-world" - And with the structures shown in "docs/reference_dataset/cf-apps-sample-hello-world.md" - Then the COA should create a set of deployment pipelines - - Scenario: Deploying a sample pipeline for concourse - As a paas-template-user - Given a config repository called "config_repository" - And a template repository called "template_repository" - When I deploy "concourse-sample" - And I feed the example type called "hello-world" - And with the structures shown in "docs/reference_dataset/concourse-sample-hello-world.md" - Then the COA should create a set of deployment pipelines + When I deploy "hello-world-root-depls" + And with the structures shown in "docs/reference_dataset/hello-world-root-depls.md" + Then the COA creates a set of deployment pipelines + And generated pipelines are valid concourse pipelines - Scenario: Deploying a sample pipeline for delete-lifecycle + Scenario: Creating a set of empty pipelines for 'another world' root deployment As a paas-template-user - Given a config repository called "config_repository" - And a template repository called "template_repository" - When I deploy "delete-lifecycle-sample" - And I feed the example type called "hello-world" - And with the structures shown in "docs/reference_dataset/delete-lifecycle-sample-hello-world.md" - Then the COA should create a set of deployment pipelines - - Scenario: Deploying a sample pipeline for terraform - As a paas-template-user - Given a config repository called "config_repository" - And a template repository called "template_repository" - When I deploy "terraform-sample" - And I feed the example type called "hello-world" - And with the structures shown in "docs/reference_dataset/terraform-sample-hello-world.md" - Then the COA should create a set of deployment pipelines + When I deploy "another-world-root-depls" + And with the structures shown in "docs/reference_dataset/another-world-root-depls.md" + Then the COA creates a set of deployment pipelines + And generated pipelines are valid concourse pipelines diff --git a/features/iaas_specific_support.feature b/features/iaas_specific_support.feature new file mode 100644 index 000000000..e7d4d81af --- /dev/null +++ b/features/iaas_specific_support.feature @@ -0,0 +1,15 @@ +Feature: Iaas specific support + In order to support iaas specific features + As a paas-template user, + I want to know mechanisms provided by COA + + Background: + Given Hello world generated pipelines from reference_dataset + + Scenario: Terraform iaas specific + But needs documentation + + Scenario: Bosh iaas specific + But needs documentation + + diff --git a/features/multi_deployer_support.feature b/features/multi_deployer_support.feature new file mode 100644 index 000000000..55311224e --- /dev/null +++ b/features/multi_deployer_support.feature @@ -0,0 +1,18 @@ +Feature: Multi deployer support + In order to create a deployment targeting multiple deployer (ie: bosh, terraform, concourse-pipeline, etc...) + As a paas-template user, + I want to know mechanisms provided by COA + + Background: + Given Hello world generated pipelines from reference_dataset + + Scenario: a deployment, or a part, is done using Bosh + But needs documentation + + Scenario: a deployment, or a part, is done using Terraform + But NYI + + Scenario: a deployment, or a part, is done using a concourse pipeline + But needs documentation + + diff --git a/features/offline_support.feature b/features/offline_support.feature new file mode 100644 index 000000000..d57abd77b --- /dev/null +++ b/features/offline_support.feature @@ -0,0 +1,18 @@ +Feature: Offline support + In order to support internet lost + As a paas-template user, + I want to know mechanisms provided by COA + + Background: + Given Hello world generated pipelines from reference_dataset + + Scenario: Bosh release offline + But needs documentation + + Scenario: Private Docker registry + But NYI + + Scenario: Bosh stemcells are retrieved from S3 + But needs documentation + + diff --git a/features/step_definitions/pipeline_generation.rb b/features/step_definitions/pipeline_generation.rb index a0743bde6..333221cff 100644 --- a/features/step_definitions/pipeline_generation.rb +++ b/features/step_definitions/pipeline_generation.rb @@ -1,5 +1,5 @@ require 'find' -require_relative '../support/reference_dataset_documentation' +require_relative '../../lib/reference_dataset_documentation' Given("a config repository called {string}") do |string| @config_repo_name = string @@ -9,18 +9,24 @@ @template_repo_name = string end -When("I deploy {string}") do |string| - @root_deployment_name = string +Given("Hello world generated pipelines from reference_dataset") do + @ref = ReferenceDatasetDocumentation::Generator.new( + root_deployment_name: 'hello-world-root-depls', + config_repo_name: 'config_repository', + template_repo_name: 'template_repository', + path: Dir.mktmpdir + ) + pipelines = @ref.pipelines + pipelines.generate end -When("I feed the example type called {string}") do |string| - @example_type = string +When("I deploy {string}") do |string| + @root_deployment_name = string end When("with the structures shown in {string}") do |string| @ref = ReferenceDatasetDocumentation::Generator.new( root_deployment_name: @root_deployment_name, - example_type: @example_type, config_repo_name: @config_repo_name, template_repo_name: @template_repo_name, path: string @@ -28,10 +34,23 @@ @ref.perform end -Then("the COA should create a set of deployment pipelines") do +Then("the COA creates a set of deployment pipelines") do pipelines = @ref.pipelines pipelines.generate - expect(pipelines.are_ok?).to eq(true) - pipelines.write_required_credentials - pipelines.delete + expect(pipelines.are_present?).to eq(true) + pipelines.write_pipelines_credential_list + pipelines.write_credentials_pipeline_list +end + +Then("generated pipelines are valid concourse pipelines") do + pipelines = @ref.pipelines + pipelines.validate +end + +But("NYI") do + pending +end + +But("needs documentation") do + pending end diff --git a/features/support/env.rb b/features/support/env.rb index 8b1378917..0db71aad9 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -1 +1,6 @@ +require_relative '../../lib/reference_dataset_documentation' +puts '_____________________' +puts 'Before running COA tests, we remove all generated pipelines from output_dir' +puts '_____________________' +ReferenceDatasetDocumentation::Pipelines.cleanup_generation_dir diff --git a/features/support/reference_dataset_documentation/file_list_writer.rb b/features/support/reference_dataset_documentation/file_list_writer.rb deleted file mode 100644 index cb2ae45b5..000000000 --- a/features/support/reference_dataset_documentation/file_list_writer.rb +++ /dev/null @@ -1,63 +0,0 @@ -module ReferenceDatasetDocumentation - class FileListWriter - def initialize(generator) - @generator = generator - end - - def perform - write_config_file_list - write_template_file_list - end - - private - - def write_config_file_list - write_file_list(@generator.config_repo_path, @generator.config_repo_name, "config") - end - - def write_template_file_list - write_file_list(@generator.template_repo_path, @generator.template_repo_name, "template") - end - - def write_file_list(repo_path, repo_name, name) - Dir.chdir(File.join(repo_path, @generator.root_deployment_name)) do - list = `find .` - @generator.add("## The #{name} files", "") - pretty_list(list, repo_name) - @generator.add "" - end - end - - def pretty_list(list, repo_name) - new_list = [] - - list.each_line do |line| - new_list << pretty_filepath(line, repo_name) - end - - new_list.delete_if(&:empty?).each { |item| @generator.add(item) } - end - - def pretty_filepath(path, repo_name) - stripped_path = path.strip - filename = extract_filename(stripped_path) - return "" if filename[0] == "." - prefix = extract_prefix(stripped_path) - cleaned_path = clean_path(stripped_path) - "#{prefix}* [#{filename}](/docs/reference_dataset/#{repo_name}/#{@generator.example_type}/#{@generator.root_deployment_name}/#{cleaned_path})" - end - - def extract_filename(path) - path.strip.split('/').last - end - - def extract_prefix(path) - path_items = path.strip.split('/') - " " * (path_items.size - 2) - end - - def clean_path(path) - path.strip.gsub(%r{^.\/}, "") - end - end -end diff --git a/features/support/reference_dataset_documentation/pipelines.rb b/features/support/reference_dataset_documentation/pipelines.rb deleted file mode 100644 index 817417ee0..000000000 --- a/features/support/reference_dataset_documentation/pipelines.rb +++ /dev/null @@ -1,72 +0,0 @@ -require 'securerandom' -require 'fileutils' - -module ReferenceDatasetDocumentation - class Pipelines - attr_reader :generator, :generated_pipelines_dir - - def initialize(generator) - @generator = generator - output_name = SecureRandom.uuid - @generated_pipelines_dir = "#{PROJECT_ROOT_DIR}/features/generated_pipelines/#{output_name}" - end - - def generate - `ruby #{PROJECT_ROOT_DIR}/scripts/generate-depls.rb -o #{generated_pipelines_dir} \ --p #{generator.config_repo_path} -t #{generator.template_repo_path} \ --d #{generator.root_deployment_name}` - end - - def are_ok? - generated_pipeline_paths.all? do |path| - File.exist?(path) - end - end - - def write_required_credentials - generator.add "## Required pipeline credentials for #{generator.root_deployment_name}", "" - - generated_pipeline_paths.each do |generated_pipeline_path| - write_required_credentials_for_pipeline(generated_pipeline_path) - end - end - - def delete - FileUtils.rm_rf(generated_pipelines_dir) - end - - def self.generated_pipeline_names - path = File.join(PROJECT_ROOT_DIR, 'concourse', 'pipelines', 'template', '*') - - Dir[path].map do |file| - filename = File.basename(file) - filename == "depls-pipeline.yml.erb" ? "" : filename.gsub('-pipeline.yml.erb', '-') - end - end - - private - - def generated_pipeline_paths - self.class.generated_pipeline_names.map do |generated_file| - "#{generated_pipelines_dir}/pipelines/#{generator.root_deployment_name}-#{generated_file}generated.yml" - end - end - - def write_required_credentials_for_pipeline(path) - generator.add("### #{File.basename(path)}", "") - - pipeline_content = File.read(path) - required_credentials = pipeline_content.scan(/\(\(([\w|-]*)\)\)/).flatten.uniq - write_credentials_list_for_pipeline(required_credentials) - end - - def write_credentials_list_for_pipeline(credentials) - if credentials.empty? - generator.add("No credentials required", "") - else - credentials.flatten.uniq.each { |cred| generator.add("* #{cred}") } - generator.add "" - end - end - end -end diff --git a/features/support/reference_dataset_documentation/tree_writer.rb b/features/support/reference_dataset_documentation/tree_writer.rb deleted file mode 100644 index d05cb2c23..000000000 --- a/features/support/reference_dataset_documentation/tree_writer.rb +++ /dev/null @@ -1,30 +0,0 @@ -module ReferenceDatasetDocumentation - class TreeWriter - def initialize(generator) - @generator = generator - end - - def perform - write_config_repo_tree - write_template_repo_tree - end - - private - - def write_config_repo_tree - write_repo_tree(@generator.config_repo_path, "config") - end - - def write_template_repo_tree - write_repo_tree(@generator.template_repo_path, "template") - end - - def write_repo_tree(repo_path, name) - Dir.chdir(File.join(repo_path, @generator.root_deployment_name)) do - list = `tree --noreport .` - - @generator.add("## The #{name} repo", "", "```bash", list, "```", "") - end - end - end -end diff --git a/features/terraform_support_for_root_deployment.feature b/features/terraform_support_for_root_deployment.feature new file mode 100644 index 000000000..d5eac8ca2 --- /dev/null +++ b/features/terraform_support_for_root_deployment.feature @@ -0,0 +1,12 @@ +Feature: Terraform support for root deployment + In order to share a terraform across a root deployment + As a paas-template user, + I want to know mechanisms provided by COA + + Background: + Given Hello world generated pipelines from reference_dataset + + Scenario: a deployment, or a part, is done using a concourse pipeline + But needs documentation + + diff --git a/features/support/reference_dataset_documentation.rb b/lib/reference_dataset_documentation.rb similarity index 82% rename from features/support/reference_dataset_documentation.rb rename to lib/reference_dataset_documentation.rb index 3573f15be..5ab0de98a 100644 --- a/features/support/reference_dataset_documentation.rb +++ b/lib/reference_dataset_documentation.rb @@ -4,5 +4,5 @@ require_relative 'reference_dataset_documentation/generator' module ReferenceDatasetDocumentation - PROJECT_ROOT_DIR = Pathname.new(__FILE__).join("../../..") + PROJECT_ROOT_DIR = File.join(File.dirname(__FILE__), "..") end diff --git a/lib/reference_dataset_documentation/file_list_writer.rb b/lib/reference_dataset_documentation/file_list_writer.rb new file mode 100644 index 000000000..da964c46e --- /dev/null +++ b/lib/reference_dataset_documentation/file_list_writer.rb @@ -0,0 +1,62 @@ +require_relative './helpers/file_list_writer_helpers' + +module ReferenceDatasetDocumentation + class FileListWriter + include Helpers::FileListWriterHelpers + + def initialize(generator) + @generator = generator + end + + def perform + write_config_file_list + write_template_file_list + end + + private + + def write_config_file_list + write_root_level_files_and_dirs(@generator.config_repo_path, @generator.config_repo_name, "config") + write_file_list(@generator.config_repo_path, @generator.config_repo_name, @generator.root_deployment_name) + write_file_list(@generator.config_repo_path, "shared", "shared") + end + + def write_template_file_list + write_root_level_files_and_dirs(@generator.template_repo_path, @generator.template_repo_name, "template") + write_file_list(@generator.template_repo_path, @generator.template_repo_name, @generator.root_deployment_name) + end + + def write_root_level_files_and_dirs(repo_path, repo_name, name) + Dir.chdir(repo_path) do + list = `find . -maxdepth 1|sort` + @generator.add("## The #{name} files", "") + @generator.add("### The root #{name} files", "") + pretty_list(list, repo_name) + @generator.add "" + end + end + + def write_file_list(repo_path, repo_name, root_deployment_name) + Dir.chdir(repo_path) do + list = '' + if Dir.exist?(root_deployment_name) + list = `find #{root_deployment_name}|sort` + end + + @generator.add("### The #{root_deployment_name} files", "") + pretty_list(list, repo_name) + @generator.add "" + end + end + + def pretty_list(list, repo_name) + new_list = [] + + list.each_line do |line| + new_list << pretty_filepath(line, repo_name) + end + + new_list.delete_if(&:empty?).each { |item| @generator.add(item) } + end + end +end diff --git a/features/support/reference_dataset_documentation/generator.rb b/lib/reference_dataset_documentation/generator.rb similarity index 82% rename from features/support/reference_dataset_documentation/generator.rb rename to lib/reference_dataset_documentation/generator.rb index 6244b162c..ee3883544 100644 --- a/features/support/reference_dataset_documentation/generator.rb +++ b/lib/reference_dataset_documentation/generator.rb @@ -2,14 +2,12 @@ module ReferenceDatasetDocumentation class Generator attr_reader :path, :root_deployment_name, - :example_type, :config_repo_name, :template_repo_name def initialize(params = {}) check_params(params) @root_deployment_name = params[:root_deployment_name] - @example_type = params[:example_type] @config_repo_name = params[:config_repo_name] @template_repo_name = params[:template_repo_name] @path = File.join(PROJECT_ROOT_DIR, params[:path]) @@ -27,11 +25,11 @@ def pipelines end def config_repo_path - @config_repo_path ||= File.join("#{reference_dataset_path}/#{config_repo_name}/#{example_type}") + @config_repo_path ||= File.join("#{reference_dataset_path}/#{config_repo_name}") end def template_repo_path - @template_repo_path ||= File.join("#{reference_dataset_path}/#{template_repo_name}/#{example_type}") + @template_repo_path ||= File.join("#{reference_dataset_path}/#{template_repo_name}") end def add(*inputs) @@ -44,7 +42,7 @@ def add(*inputs) def check_params(params) errors = [] - required_params = %w[root_deployment_name example_type config_repo_name template_repo_name path] + required_params = %w[root_deployment_name config_repo_name template_repo_name path] required_params.each do |param| errors << "missing value for param #{param}" unless params[:"#{param}"] @@ -58,7 +56,7 @@ def reference_dataset_path end def write_exhibit_intro - add "# Directory structure '#{root_deployment_name}' for '#{example_type}' example", + add "# Directory structure '#{root_deployment_name}' for example", "" end diff --git a/lib/reference_dataset_documentation/helpers/file_list_writer_helpers.rb b/lib/reference_dataset_documentation/helpers/file_list_writer_helpers.rb new file mode 100644 index 000000000..6223f209e --- /dev/null +++ b/lib/reference_dataset_documentation/helpers/file_list_writer_helpers.rb @@ -0,0 +1,23 @@ +module ReferenceDatasetDocumentation + module Helpers + module FileListWriterHelpers + def pretty_filepath(path, repo_name) + stripped_path = path.strip + filename = File.basename(stripped_path) + return "" if filename.empty? || filename[0] == "." + prefix = extract_prefix(stripped_path) + cleaned_path = clean_path(stripped_path) + "#{prefix}* [#{filename}](/docs/reference_dataset/#{repo_name}/#{cleaned_path})" + end + + def extract_prefix(path) + path_items = path.strip.gsub(%r{^.\/}, "").split('/') + " " * (path_items.size - 1) + end + + def clean_path(path) + path.strip.gsub(%r{^.\/}, "") + end + end + end +end diff --git a/lib/reference_dataset_documentation/pipelines.rb b/lib/reference_dataset_documentation/pipelines.rb new file mode 100644 index 000000000..e7647b00a --- /dev/null +++ b/lib/reference_dataset_documentation/pipelines.rb @@ -0,0 +1,121 @@ +require 'securerandom' +require 'fileutils' +require 'tmpdir' +require 'open3' + +module ReferenceDatasetDocumentation + class Pipelines + attr_reader :generator, :generated_pipelines_dir + REFERENCE_DATASET_OUTPUT_PATH = 'docs/reference_dataset'.freeze + + def initialize(generator, output_dir = REFERENCE_DATASET_OUTPUT_PATH) + @generator = generator + @generated_pipelines_dir = output_dir + end + + def generate + `ruby #{PROJECT_ROOT_DIR}/scripts/generate-depls.rb -o #{generated_pipelines_dir} \ +-p #{generator.config_repo_path} -t #{generator.template_repo_path} \ +-d #{generator.root_deployment_name}` + end + + def validate + Dir["#{@generated_pipelines_dir}/pipelines/*-generated.yml"].each do |pipeline_filename| + command = "fly validate-pipeline -c ./#{pipeline_filename} --strict" + stdout_str, stderr_str, = Open3.capture3(command) + raise "Invalid generated pipeline (#{pipeline_filename}): #{stderr_str}" unless stderr_str.empty? + raise "Invalid generated pipeline (#{pipeline_filename}): #{stdout_str}" unless stdout_str == "looks good\n" + end + end + + def are_present? + generated_pipeline_paths.all? do |path| + File.exist?(path) + end + end + + def write_credentials_pipeline_list + generator.add "## List of pipelines in which credentials appear for #{generator.root_deployment_name}", "" + + credentials_pipeline_list.sort.each do |credential, pipelines| + write_credential_pipeline_list(credential, pipelines) + end + end + + def write_pipelines_credential_list + generator.add "## Required pipeline credentials for #{generator.root_deployment_name}", "" + + pipelines_credential_list.sort.each do |pipeline_name, pipe_creds| + write_pipeline_credential_list(pipeline_name, pipe_creds) + end + end + + def self.cleanup_generation_dir(location = REFERENCE_DATASET_OUTPUT_PATH) + generated_pipelines_filter = File.join(location, 'pipelines', '*-generated.yml') + pipelines_to_delete = Dir.glob(generated_pipelines_filter) + FileUtils.rm_rf(pipelines_to_delete) + end + + def self.generated_pipeline_names + path = File.join(PROJECT_ROOT_DIR, 'concourse', 'pipelines', 'template', '*.yml.erb') + + Dir[path].map do |file| + filename = File.basename(file) + filename == "depls-pipeline.yml.erb" ? "" : filename.gsub('-pipeline.yml.erb', '-') + end + end + + private + + def pipelines_credential_list + @pipelines_credential_list ||= begin + pipe_creds = {} + + generated_pipeline_paths.each do |path| + pipeline_content = File.read(path) + creds_list = pipeline_content.scan(/\(\(([\w|-]*)\)\)/).flatten.uniq + pipeline_name = File.basename(path) + pipe_creds[pipeline_name] = creds_list + end + + pipe_creds + end + end + + def credentials_pipeline_list + creds_pipe_list = Hash.new { |h, k| h[k] = [] } + + pipelines_credential_list.each do |pipeline_name, pipe_creds| + pipe_creds.each do |cred| + creds_pipe_list[cred] << pipeline_name + end + end + + creds_pipe_list + end + + def generated_pipeline_paths + self.class.generated_pipeline_names.map do |generated_file| + "#{generated_pipelines_dir}/pipelines/#{generator.root_deployment_name}-#{generated_file}generated.yml" + end + end + + def write_pipeline_credential_list(pipeline_name, pipe_creds) + generator.add("### #{pipeline_name}", "") + + if pipe_creds.empty? + generator.add("No credentials required", "") + else + pipe_creds.sort.each { |cred| generator.add("* #{cred}") } + generator.add "" + end + end + + def write_credential_pipeline_list(credential, pipelines) + generator.add("### #{credential}", "") + + pipelines.uniq.sort.each { |pipeline| generator.add("* #{pipeline}") } + generator.add "" + end + end +end diff --git a/lib/reference_dataset_documentation/tree_writer.rb b/lib/reference_dataset_documentation/tree_writer.rb new file mode 100644 index 000000000..c438f28fa --- /dev/null +++ b/lib/reference_dataset_documentation/tree_writer.rb @@ -0,0 +1,42 @@ +module ReferenceDatasetDocumentation + class TreeWriter + def initialize(generator) + @generator = generator + end + + def perform + write_config_repo_tree + write_template_repo_tree + end + + private + + def write_config_repo_tree + write_repo_tree(@generator.config_repo_path, "config") + end + + def write_template_repo_tree + write_repo_tree(@generator.template_repo_path, "template") + end + + def write_repo_root_level_tree(repo_path, name) + Dir.chdir(repo_path) do + list = `tree --noreport -L 1` + + @generator.add("## The #{name} repo", "", "### root level overview", "", "```bash", list, "```", "") + end + end + + def write_repo_tree(repo_path, name) + write_repo_root_level_tree(repo_path, name) + + Dir.chdir(repo_path) do + list = "Inactive deployment: config dir for #{@generator.root_deployment_name} does not exist." + if Dir.exist?(@generator.root_deployment_name) + list = `tree --noreport #{@generator.root_deployment_name}` + end + @generator.add("### #{@generator.root_deployment_name} overview", "", "```bash", list, "```", "") + end + end + end +end diff --git a/spec/features/reference_dataset_documentation/file_list_writer_spec.rb b/spec/features/reference_dataset_documentation/file_list_writer_spec.rb deleted file mode 100644 index 5b00b01bc..000000000 --- a/spec/features/reference_dataset_documentation/file_list_writer_spec.rb +++ /dev/null @@ -1,57 +0,0 @@ -require 'spec_helper' -require_relative '../../../features/support/reference_dataset_documentation' - -describe ReferenceDatasetDocumentation::FileListWriter do - let(:find_answer) { File.read(File.join(File.dirname(__FILE__), 'fixtures/find_answer.txt')) } - let(:root_deployment_name) { "root_deployment_name" } - let(:example_type) { "example_type" } - let(:config_repository) { "config_repo_name" } - let(:template_repository) { "template_repo_name" } - let(:path) { "/path/to/living_docs" } - let(:generator) do - ReferenceDatasetDocumentation::Generator.new( - root_deployment_name: root_deployment_name, - example_type: example_type, - config_repo_name: config_repository, - template_repo_name: template_repository, - path: path) - end - - describe "#perform" do - let(:files_writer) { described_class.new(generator) } - - it "write a file list source with Unix's `find`" do - expect(files_writer).to receive(:`).with("find .").twice. - and_return(find_answer) - expect(Dir).to receive(:chdir). - with(File.join(generator.config_repo_path, root_deployment_name)). - and_yield - expect(generator).to receive(:add). - with("## The config files", "") - expect(generator).to receive(:add). - with("* [example-file.yml](/docs/reference_dataset/#{config_repository}/#{example_type}/#{root_deployment_name}/example-file.yml)") - expect(generator).to receive(:add). - with("* [example-dir](/docs/reference_dataset/#{config_repository}/#{example_type}/#{root_deployment_name}/example-dir)") - expect(generator).to receive(:add). - with(" * [example-file.yml](/docs/reference_dataset/#{config_repository}/#{example_type}/#{root_deployment_name}/example-dir/example-file.yml)") - expect(generator).to receive(:add). - with("") - - expect(Dir).to receive(:chdir). - with(File.join(generator.template_repo_path, root_deployment_name)). - and_yield - expect(generator).to receive(:add). - with("## The template files", "") - expect(generator).to receive(:add). - with("* [example-file.yml](/docs/reference_dataset/#{template_repository}/#{example_type}/#{root_deployment_name}/example-file.yml)") - expect(generator).to receive(:add). - with("* [example-dir](/docs/reference_dataset/#{template_repository}/#{example_type}/#{root_deployment_name}/example-dir)") - expect(generator).to receive(:add). - with(" * [example-file.yml](/docs/reference_dataset/#{template_repository}/#{example_type}/#{root_deployment_name}/example-dir/example-file.yml)") - expect(generator).to receive(:add). - with("") - - files_writer.perform - end - end -end diff --git a/spec/features/reference_dataset_documentation/fixtures/find_answer.txt b/spec/features/reference_dataset_documentation/fixtures/find_answer.txt deleted file mode 100644 index 9b73ba4e9..000000000 --- a/spec/features/reference_dataset_documentation/fixtures/find_answer.txt +++ /dev/null @@ -1,5 +0,0 @@ -. -./.hide-me -./example-file.yml -./example-dir -./example-dir/example-file.yml diff --git a/spec/features/reference_dataset_documentation/fixtures/tree_answer.txt b/spec/features/reference_dataset_documentation/fixtures/tree_answer.txt deleted file mode 100644 index 7989d9b51..000000000 --- a/spec/features/reference_dataset_documentation/fixtures/tree_answer.txt +++ /dev/null @@ -1,4 +0,0 @@ -. -├── example-file.yml -└── example-dir.yml - └── example-file.yml diff --git a/spec/features/reference_dataset_documentation/tree_writer_spec.rb b/spec/features/reference_dataset_documentation/tree_writer_spec.rb deleted file mode 100644 index 2302b90d5..000000000 --- a/spec/features/reference_dataset_documentation/tree_writer_spec.rb +++ /dev/null @@ -1,45 +0,0 @@ -require 'spec_helper' -require_relative '../../../features/support/reference_dataset_documentation' - -describe ReferenceDatasetDocumentation::TreeWriter do - let(:tree_answer) { File.read(File.join(File.dirname(__FILE__), 'fixtures/tree_answer.txt')) } - let(:root_deployment_name) { "root_deployment_name" } - let(:example_type) { "example_type" } - let(:config_repository) { "config_repo_name" } - let(:template_repository) { "template_repo_name" } - let(:path) { "/path/to/living_docs" } - let(:generator) do - ReferenceDatasetDocumentation::Generator.new( - root_deployment_name: root_deployment_name, - example_type: example_type, - config_repo_name: config_repository, - template_repo_name: template_repository, - path: path) - end - - describe "#perform" do - let(:tree_writer) { described_class.new(generator) } - - it "write a file list source with Unix's `find`" do - expect(tree_writer).to receive(:`).with("tree --noreport .").twice. - and_return(tree_answer) - - expect(Dir).to receive(:chdir). - with(File.join(generator.config_repo_path, root_deployment_name)). - and_yield - - expect(generator).to receive(:add). - with("## The config repo", "", "```bash", tree_answer, "```", "") - - expect(Dir).to receive(:chdir). - with(File.join(generator.template_repo_path, root_deployment_name)). - and_yield - - expect(generator).to receive(:add). - with("## The template repo", "", "```bash", tree_answer, "```", "") - - - tree_writer.perform - end - end -end diff --git a/spec/lib/reference_dataset_documentation/file_list_writer_spec.rb b/spec/lib/reference_dataset_documentation/file_list_writer_spec.rb new file mode 100644 index 000000000..74094461b --- /dev/null +++ b/spec/lib/reference_dataset_documentation/file_list_writer_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' +require_relative '../../../lib/reference_dataset_documentation' + +describe ReferenceDatasetDocumentation::FileListWriter do + let(:find_answer) { File.read(File.join(File.dirname(__FILE__), 'fixtures/find_answer.txt')) } + let(:find_root_level_answer) { File.read(File.join(File.dirname(__FILE__), 'fixtures/find_root_level_only_answer.txt')) } + let(:root_deployment_name) { "hello-world-root-depls" } + let(:config_repository) { "config_repo_name" } + let(:template_repository) { "template_repo_name" } + let(:path) { "/path/to/living_docs" } + let(:generator) do + ReferenceDatasetDocumentation::Generator.new( + root_deployment_name: root_deployment_name, + config_repo_name: config_repository, + template_repo_name: template_repository, + path: path + ) + end + + describe "#perform" do + let(:files_writer) { described_class.new(generator) } + + it "write a file list source with Unix's `find`" do + allow(Dir).to receive(:chdir). + with(File.join(generator.config_repo_path)). + and_yield + allow(Dir).to receive(:chdir). + with(File.join(generator.template_repo_path)). + and_yield + allow(Dir).to receive(:exist?).and_return(true) + + expect(files_writer).to receive(:`).with("find . -maxdepth 1|sort").twice. + and_return(find_root_level_answer) + expect(files_writer).to receive(:`).with("find #{root_deployment_name}|sort").twice. + and_return(find_answer) + expect(files_writer).to receive(:`).with("find shared|sort"). + and_return(find_answer) + + allow(generator).to receive(:add) + + + files_writer.perform + end + end +end diff --git a/spec/lib/reference_dataset_documentation/fixtures/find_answer.txt b/spec/lib/reference_dataset_documentation/fixtures/find_answer.txt new file mode 100644 index 000000000..41d388160 --- /dev/null +++ b/spec/lib/reference_dataset_documentation/fixtures/find_answer.txt @@ -0,0 +1,5 @@ +example-dir-1 +example-dir-1/.hide-me +example-dir-1/example-file.yml +example-dir-1/subdir/subdir-example-file.yml + diff --git a/spec/lib/reference_dataset_documentation/fixtures/find_root_level_only_answer.txt b/spec/lib/reference_dataset_documentation/fixtures/find_root_level_only_answer.txt new file mode 100644 index 000000000..f6f0fef75 --- /dev/null +++ b/spec/lib/reference_dataset_documentation/fixtures/find_root_level_only_answer.txt @@ -0,0 +1,7 @@ +. +./.hide-me +./another-world-root-depls +./hello-world-root-depls +./private-config.yml +./shared + diff --git a/spec/features/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds-generated.yml b/spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds-generated.yml similarity index 100% rename from spec/features/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds-generated.yml rename to spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds-generated.yml diff --git a/spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds2-generated.yml b/spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds2-generated.yml new file mode 100644 index 000000000..4f3470064 --- /dev/null +++ b/spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-with-creds2-generated.yml @@ -0,0 +1,3 @@ +les: mains +dans: + les: ((mains))-restons-face-a-face diff --git a/spec/features/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-without-creds-generated.yml b/spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-without-creds-generated.yml similarity index 100% rename from spec/features/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-without-creds-generated.yml rename to spec/lib/reference_dataset_documentation/fixtures/pipelines/root_deployment_name-without-creds-generated.yml diff --git a/spec/lib/reference_dataset_documentation/fixtures/tree_answer.txt b/spec/lib/reference_dataset_documentation/fixtures/tree_answer.txt new file mode 100644 index 000000000..e0d2932d0 --- /dev/null +++ b/spec/lib/reference_dataset_documentation/fixtures/tree_answer.txt @@ -0,0 +1,4 @@ +. +├── example-file.yml +└── example-dir + └── subdir-example-file.yml diff --git a/spec/lib/reference_dataset_documentation/fixtures/tree_root_level_only_answer.txt b/spec/lib/reference_dataset_documentation/fixtures/tree_root_level_only_answer.txt new file mode 100644 index 000000000..e4635ec61 --- /dev/null +++ b/spec/lib/reference_dataset_documentation/fixtures/tree_root_level_only_answer.txt @@ -0,0 +1,3 @@ +. +├── example-file.yml +└── example-dir diff --git a/spec/features/reference_dataset_documentation/generator_spec.rb b/spec/lib/reference_dataset_documentation/generator_spec.rb similarity index 91% rename from spec/features/reference_dataset_documentation/generator_spec.rb rename to spec/lib/reference_dataset_documentation/generator_spec.rb index 4f4ceaf75..8adcd501e 100644 --- a/spec/features/reference_dataset_documentation/generator_spec.rb +++ b/spec/lib/reference_dataset_documentation/generator_spec.rb @@ -1,5 +1,5 @@ require 'spec_helper' -require_relative '../../../features/support/reference_dataset_documentation' +require_relative '../../../lib/reference_dataset_documentation' describe ReferenceDatasetDocumentation::Generator do let(:root_deployment_name) { "root_deployment_name" } @@ -52,7 +52,6 @@ let(:generator) do ReferenceDatasetDocumentation::Generator.new( root_deployment_name: root_deployment_name, - example_type: example_type, config_repo_name: config_repository, template_repo_name: template_repository, path: path) @@ -64,7 +63,7 @@ it "writes an intro and uses TreeWriter and FileListWriter for the rest" do expect(File).to receive(:open).with(generator.path, 'w') expect(generator).to receive(:add). - with("# Directory structure '#{root_deployment_name}' for '#{example_type}' example", "") + with("# Directory structure '#{root_deployment_name}' for example", "") expect(ReferenceDatasetDocumentation::TreeWriter).to receive(:new).with(generator). and_return(tree_writer) @@ -84,14 +83,13 @@ let(:generator) do ReferenceDatasetDocumentation::Generator.new( root_deployment_name: root_deployment_name, - example_type: example_type, config_repo_name: config_repository, template_repo_name: template_repository, path: path) end it "return the path of the config repo" do - expect(generator.config_repo_path).to eq("#{base_dir}/docs/reference_dataset/#{config_repository}/#{example_type}") + expect(generator.config_repo_path).to eq("#{base_dir}/docs/reference_dataset/#{config_repository}") end end @@ -99,14 +97,13 @@ let(:generator) do ReferenceDatasetDocumentation::Generator.new( root_deployment_name: root_deployment_name, - example_type: example_type, config_repo_name: config_repository, template_repo_name: template_repository, path: path) end - it "return the path of the config repo" do - expect(generator.template_repo_path).to eq("#{base_dir}/docs/reference_dataset/#{template_repository}/#{example_type}") + it "return the path of the template repo" do + expect(generator.template_repo_path).to eq("#{base_dir}/docs/reference_dataset/#{template_repository}") end end diff --git a/spec/features/reference_dataset_documentation/pipelines_spec.rb b/spec/lib/reference_dataset_documentation/pipelines_spec.rb similarity index 52% rename from spec/features/reference_dataset_documentation/pipelines_spec.rb rename to spec/lib/reference_dataset_documentation/pipelines_spec.rb index 02b8cf502..d2f5734bd 100644 --- a/spec/features/reference_dataset_documentation/pipelines_spec.rb +++ b/spec/lib/reference_dataset_documentation/pipelines_spec.rb @@ -1,5 +1,5 @@ require 'spec_helper' -require_relative '../../../features/support/reference_dataset_documentation' +require_relative '../../../lib/reference_dataset_documentation' describe ReferenceDatasetDocumentation::Pipelines do let(:root_deployment_name) { "root_deployment_name" } @@ -17,9 +17,15 @@ path: path) end let(:secure_random_uuid) { "1234-5678-90ab" } + let(:pipelines_base_output_dir) { Dir.mktmpdir } + let(:pipelines_output_dir) do + dirname = File.join(pipelines_base_output_dir, 'pipelines') + Dir.mkdir(dirname) + dirname + end describe "#generate" do - let(:pipelines) { described_class.new(generator) } + let(:pipelines) { described_class.new(generator, pipelines_base_output_dir) } it "calls the generate-depls.rb script to generate pipelines" do expect(pipelines).to receive(:`). @@ -29,14 +35,14 @@ end end - describe "#are_ok?" do + describe "#are_present?" do let(:pipeline_templates) { ["depls-pipeline.yml.erb", "foo-pipeline.yml.erb"] } - let(:pipelines) { described_class.new(generator) } + let(:pipelines) { described_class.new(generator, pipelines_base_output_dir) } context "when generated pipelines form the concourse templates are there" do it "is true" do expect(Dir).to receive(:[]). - with(File.join(base_dir, 'concourse', 'pipelines', 'template', '*')). + with(File.join(base_dir, 'concourse', 'pipelines', 'template', '*.yml.erb')). and_return(pipeline_templates) expect(File).to receive(:exist?). @@ -47,14 +53,14 @@ with("#{pipelines.generated_pipelines_dir}/pipelines/#{generator.root_deployment_name}-foo-generated.yml"). and_return(true) - expect(pipelines.are_ok?).to be_truthy + expect(pipelines.are_present?).to be_truthy end end context "when generated pipelines form the concourse templates are not there" do it "is false" do expect(Dir).to receive(:[]). - with(File.join(base_dir, 'concourse', 'pipelines', 'template', '*')). + with(File.join(base_dir, 'concourse', 'pipelines', 'template', '*.yml.erb')). and_return(pipeline_templates) expect(File).to receive(:exist?). @@ -64,23 +70,23 @@ expect(File).not_to receive(:exist?). with("#{pipelines.generated_pipelines_dir}/pipelines/#{generator.root_deployment_name}-foo-generated.yml") - expect(pipelines.are_ok?).to be_falsy + expect(pipelines.are_present?).to be_falsy end end - describe "#write_required_credentials" do - let(:pipelines) { described_class.new(generator) } + describe "#write_pipelines_credential_list" do + let(:pipelines) { described_class.new(generator, pipelines_base_output_dir) } let(:generated_pipelines_dir) { File.join(File.dirname(__FILE__), 'fixtures') } - it "write the list of required credentials in the docs" do + it "write the list of required credentials for each pipeline in the docs" do expect(generator).to receive(:add). with("## Required pipeline credentials for #{generator.root_deployment_name}", "") - expect(pipelines).to receive(:generated_pipelines_dir).twice. + allow(pipelines).to receive(:generated_pipelines_dir). and_return(generated_pipelines_dir) - expect(pipelines.class).to receive(:generated_pipeline_names). - and_return(['with-creds-', 'without-creds-']) + allow(pipelines.class).to receive(:generated_pipeline_names). + and_return(['with-creds-', 'with-creds2-', 'without-creds-']) expect(generator).to receive(:add). with("### #{generator.root_deployment_name}-with-creds-generated.yml", "") @@ -88,22 +94,60 @@ expect(generator).to receive(:add).with("* face-a-face") expect(generator).to receive(:add).with("") + expect(generator).to receive(:add). + with("### #{generator.root_deployment_name}-with-creds2-generated.yml", "") + expect(generator).to receive(:add).with("* mains") + expect(generator).to receive(:add).with("") + expect(generator).to receive(:add). with("### #{generator.root_deployment_name}-without-creds-generated.yml", "") expect(generator).to receive(:add).with("No credentials required", "") - pipelines.write_required_credentials + pipelines.write_pipelines_credential_list end end - describe "#delete" do - let(:pipelines) { described_class.new(generator) } + describe "#write_credentials_pipeline_list" do + let(:pipelines) { described_class.new(generator, pipelines_base_output_dir) } + let(:generated_pipelines_dir) { File.join(File.dirname(__FILE__), 'fixtures') } + + it "write the list of pipelines for each credential in the docs" do + expect(generator).to receive(:add). + with("## List of pipelines in which credentials appear for #{generator.root_deployment_name}", "") + + allow(pipelines).to receive(:generated_pipelines_dir). + and_return(generated_pipelines_dir) + + allow(pipelines.class).to receive(:generated_pipeline_names). + and_return(['with-creds-', 'with-creds2-', 'without-creds-']) + + expect(generator).to receive(:add). + with("### face-a-face", "") + expect(generator).to receive(:add).with("* root_deployment_name-with-creds-generated.yml") + expect(generator).to receive(:add).with("") + + expect(generator).to receive(:add). + with("### mains", "") + expect(generator).to receive(:add).with("* root_deployment_name-with-creds-generated.yml") + expect(generator).to receive(:add).with("* root_deployment_name-with-creds2-generated.yml") + expect(generator).to receive(:add).with("") + + pipelines.write_credentials_pipeline_list + end + end + + describe "#cleanup_generation_dir" do + let(:dummy_generated_pipeline) { File.join(pipelines_output_dir, 'dummy-generated.yml') } + + before do + FileUtils.touch(dummy_generated_pipeline) + end - it "uses rm_rf to delete the created directory" do + it "uses rm_rf to delete pipeline output directory" do expect(FileUtils).to receive(:rm_rf). - with(pipelines.generated_pipelines_dir) + with([dummy_generated_pipeline]) - pipelines.delete + described_class.cleanup_generation_dir(pipelines_base_output_dir) end end end diff --git a/spec/lib/reference_dataset_documentation/tree_writer_spec.rb b/spec/lib/reference_dataset_documentation/tree_writer_spec.rb new file mode 100644 index 000000000..e72a5cbae --- /dev/null +++ b/spec/lib/reference_dataset_documentation/tree_writer_spec.rb @@ -0,0 +1,50 @@ +require 'spec_helper' +require_relative '../../../lib/reference_dataset_documentation' + +describe ReferenceDatasetDocumentation::TreeWriter do + let(:tree_answer) { File.read(File.join(File.dirname(__FILE__), 'fixtures/tree_answer.txt')) } + let(:tree_root_level_answer) { File.read(File.join(File.dirname(__FILE__), 'fixtures/tree_root_level_only_answer.txt')) } + let(:root_deployment_name) { "root_deployment_name" } + let(:example_type) { "example_type" } + let(:config_repository) { "config_repo_name" } + let(:template_repository) { "template_repo_name" } + let(:path) { "/path/to/living_docs" } + let(:generator) do + ReferenceDatasetDocumentation::Generator.new( + root_deployment_name: root_deployment_name, + config_repo_name: config_repository, + template_repo_name: template_repository, + path: path) + end + + describe "#perform" do + let(:tree_writer) { described_class.new(generator) } + + it "write a file list source with Unix's `find`" do + allow(tree_writer).to receive(:`) + .and_return(tree_root_level_answer, tree_answer, tree_root_level_answer, tree_answer) + allow(Dir).to receive(:chdir). + with(File.join(generator.config_repo_path)). + and_yield + allow(Dir).to receive(:chdir). + with(File.join(generator.template_repo_path)). + and_yield + allow(Dir).to receive(:exist?).and_return(true) + + expect(generator).to receive(:add). + with("## The config repo", "", "### root level overview", "", "```bash", tree_root_level_answer, "```", "") + + + expect(generator).to receive(:add). + with("### #{root_deployment_name} overview", "", "```bash", tree_answer, "```", "").twice + + + + expect(generator).to receive(:add). + with("## The template repo", "", "### root level overview", "", "```bash", tree_root_level_answer, "```", "") + + + tree_writer.perform + end + end +end diff --git a/spec/reference_dataset/reference_dataset_spec.rb b/spec/reference_dataset/reference_dataset_spec.rb index 60cf5167d..ceec989ec 100644 --- a/spec/reference_dataset/reference_dataset_spec.rb +++ b/spec/reference_dataset/reference_dataset_spec.rb @@ -1,16 +1,18 @@ require 'spec_helper' describe 'reference_dataset' do - REFERENCE_DATASET_OUTPUT_PATH = 'reference_dataset_output_dir' + REFERENCE_DATASET_OUTPUT_PATH = 'docs/reference_dataset' before(:all) do - FileUtils.rm_rf(REFERENCE_DATASET_OUTPUT_PATH) + generated_pipelines_filter = File.join(REFERENCE_DATASET_OUTPUT_PATH,'pipelines','*-generated.yml') + pipelines_to_delete = Dir.glob(generated_pipelines_filter) + FileUtils.rm_rf(pipelines_to_delete) end shared_examples "generates valid concourse pipelines" do |root_deployment_name| let(:ci_path) { Dir.pwd } - let(:templates_path) { 'docs/reference_dataset/template_repository/hello-world/' } - let(:config_path) { 'docs/reference_dataset/config_repository/hello-world/' } + let(:templates_path) { 'docs/reference_dataset/template_repository' } + let(:config_path) { 'docs/reference_dataset/config_repository' } let(:options) { "-d #{root_deployment_name} -o #{REFERENCE_DATASET_OUTPUT_PATH} -t #{templates_path} -p #{config_path}" } # Since the generation happening in the first part of the test is needed @@ -36,23 +38,12 @@ end end - context 'for bosh' do - include_examples "generates valid concourse pipelines", "bosh-sample" + context 'for hello-world-root-depls' do + include_examples "generates valid concourse pipelines", "hello-world-root-depls" end - context 'for concourse' do - include_examples "generates valid concourse pipelines", "concourse-sample" + context 'for another-world-root-depls' do + include_examples "generates valid concourse pipelines", "another-world-root-depls" end - context 'for terraform' do - include_examples "generates valid concourse pipelines", "terraform-sample" - end - - context 'for delete-lifecycle' do - include_examples "generates valid concourse pipelines", "delete-lifecycle-sample" - end - - context 'for cf-apps' do - include_examples "generates valid concourse pipelines", "cf-apps-sample" - end end