Skip to content

Commit f77f2f2

Browse files
committed
pipeline(depls): trigger update-pipeline on each secrets-repo commit
We also trigger `init-concourse-boshrelease-and-stemcell` on each `<root-depls>-versions.yml` update, to reduce manual job triggering. We use `tee -a` to replace `set -x`. We also rename `paas-template` to `paas-templates`, to avoid typo errors.
1 parent 8d2089c commit f77f2f2

File tree

6 files changed

+100
-71
lines changed

6 files changed

+100
-71
lines changed

concourse/pipelines/template/depls-pipeline.yml.erb

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ resources:
8989
branch: ((secrets-branch))
9090
skip_ssl_verification: true
9191

92-
- name: paas-template-<%=depls %>
92+
- name: paas-templates-<%=depls %>
9393
type: git
9494
source:
9595
uri: ((paas-templates-uri))
@@ -136,7 +136,7 @@ resources:
136136
branch: ((secrets-branch))
137137
skip_ssl_verification: true
138138

139-
- name: paas-template-<%= name %>
139+
- name: paas-templates-<%= name %>
140140
type: git
141141
source:
142142
uri: ((paas-templates-uri))
@@ -208,6 +208,16 @@ resources:
208208
skip_ssl_verification: true
209209
<% end %>
210210

211+
<% if enabled_deployments.any? %>
212+
- name: paas-templates-<%=depls %>-versions
213+
type: git
214+
source:
215+
uri: ((paas-templates-uri))
216+
paths: ["<%= depls %>/<%= depls %>-versions.yml"]
217+
branch: ((paas-templates-branch))
218+
skip_ssl_verification: true
219+
<% end %>
220+
211221
<% if all_ci_deployments.any? || disabled_deployments.any? %>
212222
- name: paas-templates-full
213223
type: git
@@ -264,6 +274,7 @@ jobs:
264274
params: { submodules: none}
265275
<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>
266276
- get: secrets-full
277+
version: every
267278
trigger: true
268279
<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>
269280
params: { submodules: none}
@@ -317,15 +328,15 @@ jobs:
317328
- get: secrets-<%= depls %>
318329
params: { submodules: none}
319330
# <!--<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>-->
320-
- get: paas-template-<%= depls %>
331+
- get: paas-templates-<%= depls %>
321332
params: { submodules: none}
322333
# <!--<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>-->
323334
- get: cf-ops-automation
324335
params: { submodules: none}
325336
<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>
326337

327338
- task: run-deploy.sh
328-
input_mapping: {scripts-resource: cf-ops-automation, templates: paas-template-<%= depls %>, secrets: secrets-<%= depls %>}
339+
input_mapping: {scripts-resource: cf-ops-automation, templates: paas-templates-<%= depls %>, secrets: secrets-<%= depls %>}
329340
file: cf-ops-automation/concourse/tasks/execute_deploy_script.yml
330341
params:
331342
CURRENT_DEPLS: <%= depls %>/template
@@ -353,7 +364,7 @@ jobs:
353364
params: { submodules: none}
354365
trigger: true
355366
# <!--<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>-->
356-
- get: paas-template-<%=depls %>
367+
- get: paas-templates-<%=depls %>
357368
params: { submodules: none}
358369
trigger: true
359370
# <!--<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>-->
@@ -362,7 +373,7 @@ jobs:
362373
trigger: true
363374
<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>
364375
- task: generate-<%= depls %>-all-config
365-
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%=depls %>, additional-resource: paas-template-<%=depls %>}
376+
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%=depls %>, additional-resource: paas-templates-<%=depls %>}
366377
output_mapping: {generated-files: config-manifest}
367378
file: cf-ops-automation/concourse/tasks/generate-manifest.yml
368379
params:
@@ -487,13 +498,13 @@ jobs:
487498
params: { submodules: none}
488499
trigger: true
489500
# <!--<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>-->
490-
- get: paas-template-<%= name %>
501+
- get: paas-templates-<%= name %>
491502
trigger: true
492503
<% current_git_submodule = git_submodules[depls][name] if git_submodules[depls] %>
493504
params: { submodules: <%= current_git_submodule || 'none' %>}
494505
# <!--<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>-->
495506
- task: generate-<%= name %>-manifest
496-
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%= name %>, additional-resource: paas-template-<%= name %>}
507+
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%= name %>, additional-resource: paas-templates-<%= name %>}
497508
output_mapping: {generated-files: release-manifest}
498509
file: cf-ops-automation/concourse/tasks/generate-manifest.yml
499510
params:
@@ -506,14 +517,14 @@ jobs:
506517
CUSTOM_SCRIPT_DIR: additional-resource/<%= depls %>/<%= name %>/template
507518
IAAS_TYPE: ((iaas-type))
508519
- task: execute-<%= name %>-spiff-pre-bosh-deploy
509-
input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-<%= name %>, credentials-resource: secrets-<%= name %>, additional-resource: release-manifest}
520+
input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-templates-<%= name %>, credentials-resource: secrets-<%= name %>, additional-resource: release-manifest}
510521
output_mapping: {generated-files: pre-bosh-deploy-resource}
511522
file: cf-ops-automation/concourse/tasks/spiff_pre_bosh_deploy.yml
512523
params:
513524
CUSTOM_SCRIPT_DIR: template-resource/<%= depls %>/<%= name %>/template
514525
SECRETS_DIR: credentials-resource/<%= depls %>/<%= name %>
515526
- task: copy-<%= name %>-required-files
516-
input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-<%= name %>, credentials-resource: secrets-<%= name %>, additional-resource: pre-bosh-deploy-resource}
527+
input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-templates-<%= name %>, credentials-resource: secrets-<%= name %>, additional-resource: pre-bosh-deploy-resource}
517528
output_mapping: {generated-files: final-release-manifest}
518529
file: cf-ops-automation/concourse/tasks/copy_deployment_required_files.yml
519530
params:
@@ -631,7 +642,7 @@ jobs:
631642
<% end %>
632643
cleanup: true
633644
- task: execute-<%= name %>-post-bosh-deploy
634-
input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-template-<%= name %>, credentials-resource: secrets-<%= name %>, additional-resource: final-release-manifest}
645+
input_mapping: {scripts-resource: cf-ops-automation, template-resource: paas-templates-<%= name %>, credentials-resource: secrets-<%= name %>, additional-resource: final-release-manifest}
635646
output_mapping: {generated-files: post-deploy-result}
636647
file: cf-ops-automation/concourse/tasks/post_bosh_deploy.yml
637648
params:
@@ -668,7 +679,7 @@ jobs:
668679
params: { submodules: none}
669680
trigger: true
670681
passed: [deploy-<%= name %>]
671-
- get: paas-template-<%= name %>
682+
- get: paas-templates-<%= name %>
672683
params: { submodules: none}
673684
trigger: true
674685
passed: [deploy-<%= name %>]
@@ -741,7 +752,7 @@ jobs:
741752
- get: secrets-<%= depls %>
742753
params: { submodules: none}
743754
<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>
744-
- get: paas-template-<%= depls %>
755+
- get: paas-templates-<%= depls %>
745756
params: { submodules: none}
746757
<%= "passed: [update-pipeline-#{depls}-generated]" if all_ci_deployments.any? %>
747758
- get: cf-ops-automation
@@ -766,7 +777,7 @@ jobs:
766777
params: { submodules: none}
767778
passed: [recreate-all]
768779
trigger: true
769-
- get: paas-template-<%= depls %>
780+
- get: paas-templates-<%= depls %>
770781
params: { submodules: none}
771782
passed: [recreate-all]
772783
trigger: true
@@ -823,7 +834,10 @@ jobs:
823834
- get: secrets-full
824835
params: { submodules: none}
825836
attempts: 2
826-
# trigger: true
837+
- get: paas-templates-<%= depls %>-versions
838+
params: { submodules: none}
839+
attempts: 2
840+
trigger: true
827841
- task: generate-<%= depls %>-flight-plan
828842
output_mapping: {result-dir: init-<%= depls %>-plan}
829843
config:
@@ -836,19 +850,19 @@ jobs:
836850
run:
837851
path: sh
838852
args:
839-
- -exc
853+
- -ec
840854
- |
841855
<% uniq_releases.sort.each do |name, info| %>
842856
<% if config['offline-mode'] && config['offline-mode']['boshreleases'] %>
843-
echo "check-resource -r $BUILD_PIPELINE_NAME/<%= name %> --from path:<%= info['repository']&.split('/')&.first %>/<%= name %>-((<%= name %>-version)).tgz" >> result-dir/flight-plan
857+
echo "check-resource -r $BUILD_PIPELINE_NAME/<%= name %> --from path:<%= info['repository']&.split('/')&.first %>/<%= name %>-((<%= name %>-version)).tgz" | tee -a result-dir/flight-plan
844858
<% else %>
845-
echo "check-resource -r $BUILD_PIPELINE_NAME/<%= name %> --from version:((<%= name %>-version))" >> result-dir/flight-plan
859+
echo "check-resource -r $BUILD_PIPELINE_NAME/<%= name %> --from version:((<%= name %>-version))" | tee -a result-dir/flight-plan
846860
<% end %>
847861
<% end %>
848862
<% if offline_stemcells_enabled %>
849-
echo "check-resource -r $BUILD_PIPELINE_NAME/((stemcell-main-name)) --from path:((stemcell-name-prefix))((stemcell-main-name))/bosh-stemcell-((stemcell-version))-((stemcell-main-name)).tgz" >> result-dir/flight-plan
863+
echo "check-resource -r $BUILD_PIPELINE_NAME/((stemcell-main-name)) --from path:((stemcell-name-prefix))((stemcell-main-name))/bosh-stemcell-((stemcell-version))-((stemcell-main-name)).tgz" | tee -a result-dir/flight-plan
850864
<% else %>
851-
echo "check-resource -r $BUILD_PIPELINE_NAME/((stemcell-main-name)) --from version:((stemcell-version))" >> result-dir/flight-plan
865+
echo "check-resource -r $BUILD_PIPELINE_NAME/((stemcell-main-name)) --from version:((stemcell-version))" | tee -a result-dir/flight-plan
852866
<% end %>
853867
params:
854868
BUILD_PIPELINE_NAME: <%= depls %>-generated
@@ -881,7 +895,7 @@ jobs:
881895
- aggregate:
882896
- get: secrets-full-writer
883897
params: { submodules: none}
884-
- get: paas-template-<%= depls %>
898+
- get: paas-templates-<%= depls %>
885899
params: { submodules: none}
886900
attempts: 2
887901
- get: paas-templates-wip
@@ -900,6 +914,7 @@ jobs:
900914
params: { submodules: none}
901915
attempts: 2
902916
- get: secrets-full
917+
version: every
903918
params: { submodules: none}
904919
attempts: 2
905920

@@ -992,15 +1007,15 @@ jobs:
9921007
params: { submodules: none}
9931008
passed: [update-pipeline-<%= depls %>-generated]
9941009
trigger: true
995-
- get: paas-template-<%=depls %>
1010+
- get: paas-templates-<%=depls %>
9961011
params: { submodules: none }
9971012
trigger: true
9981013
- get: secrets-<%= depls %>
9991014
passed: [update-pipeline-<%= depls %>-generated]
10001015
params: { submodules: none }
10011016
trigger: true
10021017
- task: generate-terraform-tfvars
1003-
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%= depls %>, additional-resource: paas-template-<%=depls %>}
1018+
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%= depls %>, additional-resource: paas-templates-<%=depls %>}
10041019
output_mapping: {generated-files: terraform-tfvars}
10051020
file: cf-ops-automation/concourse/tasks/generate-manifest.yml
10061021
params:
@@ -1013,7 +1028,7 @@ jobs:
10131028
SUFFIX: -tpl.tfvars.yml
10141029
IAAS_TYPE: ((iaas-type))
10151030
- task: terraform-plan
1016-
input_mapping: {secret-state-resource: secrets-<%= depls %>,spec-resource: paas-template-<%=depls %>}
1031+
input_mapping: {secret-state-resource: secrets-<%= depls %>,spec-resource: paas-templates-<%=depls %>}
10171032
file: cf-ops-automation/concourse/tasks/terraform_plan_cloudfoundry.yml
10181033
params:
10191034
SPEC_PATH: "<%= terraform_config_path %>/spec"
@@ -1037,15 +1052,15 @@ jobs:
10371052
- get: cf-ops-automation
10381053
params: { submodules: none}
10391054
passed: [check-terraform-consistency]
1040-
- get: paas-template-<%=depls %>
1055+
- get: paas-templates-<%=depls %>
10411056
params: { submodules: none}
10421057
passed: [check-terraform-consistency]
10431058
trigger: false
10441059
- get: secrets-<%= depls %>
10451060
params: { submodules: none}
10461061
passed: [check-terraform-consistency]
10471062
- task: generate-terraform-tfvars
1048-
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%= depls %>, additional-resource: paas-template-<%=depls %>}
1063+
input_mapping: {scripts-resource: cf-ops-automation, credentials-resource: secrets-<%= depls %>, additional-resource: paas-templates-<%=depls %>}
10491064
output_mapping: {generated-files: terraform-tfvars}
10501065
file: cf-ops-automation/concourse/tasks/generate-manifest.yml
10511066
params:
@@ -1058,7 +1073,7 @@ jobs:
10581073
SUFFIX: -tpl.tfvars.yml
10591074
IAAS_TYPE: ((iaas-type))
10601075
- task: terraform-apply
1061-
input_mapping: {secret-state-resource: secrets-<%= depls %>,spec-resource: paas-template-<%=depls %>}
1076+
input_mapping: {secret-state-resource: secrets-<%= depls %>,spec-resource: paas-templates-<%=depls %>}
10621077
output_mapping: {generated-files: terraform-cf}
10631078
file: cf-ops-automation/concourse/tasks/terraform_apply_cloudfoundry.yml
10641079
params:

concourse/tasks/fly_execute_commands.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,24 @@ outputs:
2626
run:
2727
path: sh
2828
args:
29-
- -exc
29+
- -ec
3030
- |
3131
mkdir -p /usr/local/bin
3232
FLY=/usr/local/bin/fly
3333
echo "Fetching fly...";
3434
curl -SsL -u "$FLY_USERNAME:$FLY_PASSWORD" "$ATC_EXTERNAL_URL/api/v1/cli?arch=amd64&platform=linux" -k > $FLY;
3535
chmod +x $FLY;
3636
37+
echo "Login into Concourse@${ATC_EXTERNAL_URL}"
3738
fly login -t concourse-target --team-name="$FLY_TEAM" -c "$ATC_EXTERNAL_URL" --username="$FLY_USERNAME" --password="$FLY_PASSWORD" -k 2>&1
3839
PREFIX="fly -t concourse-target"
3940
4041
old_IFS=$IFS # sauvegarde du séparateur de champ
4142
IFS=$'\n' # nouveau séparateur de champ, le caractère fin de ligne
4243
for command in $(cat fly-cmd/flight-plan)
4344
do
44-
echo "Executing '$PREFIX $command': " >> flight-report/flight-report.txt 2>&1
45-
eval "$PREFIX $command" >> flight-report/flight-report.txt 2>&1
45+
echo "Executing '$PREFIX $command': " 2>&1 | tee -a flight-report/flight-report.txt
46+
eval "$PREFIX $command" 2>&1 | tee -a flight-report/flight-report.txt
4647
done
4748
IFS=$old_IFS # rétablissement du séparateur de champ par défaut
4849
cat flight-report/flight-report.txt

spec/lib/template_processor/template_processor_for_depls_pipeline_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@
188188
params: { submodules: none}
189189
trigger: true
190190
passed: [deploy-shield-expe]
191-
- get: paas-template-shield-expe
191+
- get: paas-templates-shield-expe
192192
params: { submodules: none}
193193
trigger: true
194194
passed: [deploy-shield-expe]
@@ -344,7 +344,7 @@
344344
end
345345
let(:expected_stemcell_deploy_get) { ['((stemcell-version))'] * 2 }
346346
let(:expected_stemcell_deploy_put) { ['((stemcell-main-name))/stemcell.tgz'] * 2 }
347-
let(:expected_stemcell_init) { 'echo "check-resource -r $BUILD_PIPELINE_NAME/((stemcell-main-name)) --from version:((stemcell-version))" >> result-dir/flight-plan' }
347+
let(:expected_stemcell_init) { 'echo "check-resource -r $BUILD_PIPELINE_NAME/((stemcell-main-name)) --from version:((stemcell-version))" | tee -a result-dir/flight-plan' }
348348

349349
it 'generates bosh-io stemcell' do
350350
bosh_io_stemcell = generated_pipeline['resources'].select { |resource| resource['type'] == 'bosh-io-stemcell' }
@@ -451,7 +451,7 @@
451451
[
452452
{ "task" => 'generate-terraform-tfvars',
453453
"input_mapping" =>
454-
{ "scripts-resource" => "cf-ops-automation", "credentials-resource" => "secrets-my-root-depls", "additional-resource" => "paas-template-my-root-depls" },
454+
{ "scripts-resource" => "cf-ops-automation", "credentials-resource" => "secrets-my-root-depls", "additional-resource" => "paas-templates-my-root-depls" },
455455
"output_mapping" => { "generated-files" => "terraform-tfvars" },
456456
"file" => "cf-ops-automation/concourse/tasks/generate-manifest.yml",
457457
"params" =>
@@ -464,7 +464,7 @@
464464
{ "task" => "terraform-plan",
465465
"input_mapping" =>
466466
{ "secret-state-resource" => "secrets-my-root-depls",
467-
"spec-resource" => "paas-template-my-root-depls" },
467+
"spec-resource" => "paas-templates-my-root-depls" },
468468
"file" => "cf-ops-automation/concourse/tasks/terraform_plan_cloudfoundry.yml",
469469
"params" =>
470470
{ "SPEC_PATH" => "my-tfstate-location/spec",
@@ -486,12 +486,12 @@
486486
let(:check_terraform_plans) { check_terraform_jobs.flat_map { |job| job['plan'] } }
487487
let(:check_terraform_aggregate) { check_terraform_plans.flat_map { |tasks| tasks['aggregate'] }.compact }
488488
let(:check_terraform_secrets_triggering) { check_terraform_aggregate.select { |task| task['get'].start_with?('secrets-') }.flat_map { |task| task['trigger'] } }
489-
let(:check_terraform_paas_templates_triggering) { check_terraform_aggregate.select { |task| task['get'].start_with?('paas-template-') }.flat_map { |task| task['trigger'] } }
489+
let(:check_terraform_paas_templates_triggering) { check_terraform_aggregate.select { |task| task['get'].start_with?('paas-templates-') }.flat_map { |task| task['trigger'] } }
490490
let(:enforce_terraform_jobs) { generated_pipeline['jobs'].select { |resource| resource['name'].start_with?('approve-and-enforce-terraform-consistency') } }
491491
let(:enforce_terraform_plans) { enforce_terraform_jobs.flat_map { |job| job['plan'] } }
492492
let(:enforce_terraform_aggregate) { enforce_terraform_plans.flat_map { |tasks| tasks['aggregate'] }.compact }
493493
let(:enforce_terraform_all_secrets_triggering) { enforce_terraform_aggregate.select { |task| task['get'].start_with?('secrets-') }.flat_map { |task| task['trigger'] } }
494-
let(:enforce_terraform_paas_templates_triggering) { enforce_terraform_aggregate.select { |task| task['get'].start_with?('paas-template-') }.flat_map { |task| task['trigger'] } }
494+
let(:enforce_terraform_paas_templates_triggering) { enforce_terraform_aggregate.select { |task| task['get'].start_with?('paas-templates-') }.flat_map { |task| task['trigger'] } }
495495
let(:all_ci_deployments) { enable_root_deployment_terraform }
496496

497497
it 'triggers check-consistency automatically on each commit on secrets' do

spec/scripts/generate-depls/fixtures/references/delete-depls-ref.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ resources:
6060
branch: ((secrets-branch))
6161
skip_ssl_verification: true
6262

63-
- name: paas-template-delete-depls
63+
- name: paas-templates-delete-depls
6464
type: git
6565
source:
6666
uri: ((paas-templates-uri))
@@ -109,6 +109,7 @@ jobs:
109109
params:
110110
submodules: none
111111
- get: secrets-full
112+
version: every
112113
trigger: true
113114
params:
114115
submodules: none
@@ -165,7 +166,7 @@ jobs:
165166
- get: secrets-delete-depls
166167
params:
167168
submodules: none
168-
- get: paas-template-delete-depls
169+
- get: paas-templates-delete-depls
169170
params:
170171
submodules: none
171172
- get: cf-ops-automation
@@ -174,7 +175,7 @@ jobs:
174175
- task: run-deploy.sh
175176
input_mapping:
176177
scripts-resource: cf-ops-automation
177-
templates: paas-template-delete-depls
178+
templates: paas-templates-delete-depls
178179
secrets: secrets-delete-depls
179180
file: cf-ops-automation/concourse/tasks/execute_deploy_script.yml
180181
params:
@@ -202,7 +203,7 @@ jobs:
202203
params:
203204
submodules: none
204205
trigger: true
205-
- get: paas-template-delete-depls
206+
- get: paas-templates-delete-depls
206207
params:
207208
submodules: none
208209
trigger: true
@@ -214,7 +215,7 @@ jobs:
214215
input_mapping:
215216
scripts-resource: cf-ops-automation
216217
credentials-resource: secrets-delete-depls
217-
additional-resource: paas-template-delete-depls
218+
additional-resource: paas-templates-delete-depls
218219
output_mapping:
219220
generated-files: config-manifest
220221
file: cf-ops-automation/concourse/tasks/generate-manifest.yml
@@ -318,7 +319,7 @@ jobs:
318319
- get: secrets-delete-depls
319320
params:
320321
submodules: none
321-
- get: paas-template-delete-depls
322+
- get: paas-templates-delete-depls
322323
params:
323324
submodules: none
324325
- get: cf-ops-automation

0 commit comments

Comments
 (0)