diff --git a/ci/pipeline-develop.yml b/ci/pipeline-develop.yml index 0adbd94b..a9900182 100644 --- a/ci/pipeline-develop.yml +++ b/ci/pipeline-develop.yml @@ -122,7 +122,7 @@ jobs: - {trigger: true, passed: [build-candidate, setup-infrastructure], get: bosh-cpi-src, resource: bosh-cpi-src-in} - {trigger: true, passed: [build-candidate], get: bosh-cpi-release, resource: bosh-cpi-dev-artifacts} - {trigger: true, passed: [setup-infrastructure], get: stemcell, resource: google-ubuntu-stemcell} - - {trigger: false, get: bosh-init} + - {trigger: false, get: bosh-cli} - {trigger: false, get: bosh-release} - task: setup-director @@ -149,6 +149,25 @@ jobs: on_failure: task: teardown-director file: bosh-cpi-src/ci/tasks/teardown-director.yml + config: + params: + google_project: {{google_project}} + google_region: {{google_region}} + google_zone: {{google_zone}} + google_json_key_data: {{google_json_key_data}} + google_test_bucket_name: {{google_test_bucket_name}} + google_network: {{google_network}} + google_subnetwork: {{google_subnetwork}} + google_subnetwork_range: {{google_subnetwork_range}} + google_subnetwork_gw: {{google_subnetwork_gw}} + google_firewall_internal: {{google_firewall_internal}} + google_firewall_external: {{google_firewall_external}} + google_address_director: {{google_address_director_ubuntu}} + google_address_static_director: {{google_address_static_director_ubuntu}} + private_key_user: {{private_key_user}} + private_key_data: {{private_key_data}} + director_username: {{director_username}} + director_password: {{director_password}} - name: run-bats serial: true @@ -245,11 +264,11 @@ resources: region: {{version_semver_region}} endpoint: storage.googleapis.com - - name: bosh-init + - name: bosh-cli type: s3 source: - regexp: bosh-init-([0-9.]+)-linux-amd64 - bucket: bosh-init-artifacts + regexp: bosh-cli-([0-9.]+)-linux-amd64 + bucket: bosh-cli-artifacts region_name: us-east-1 - name: bosh-release diff --git a/ci/pipeline.yml b/ci/pipeline.yml index db2caac1..e0bf2ace 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -125,7 +125,7 @@ jobs: - {trigger: true, passed: [build-candidate, setup-infrastructure], get: bosh-cpi-src, resource: bosh-cpi-src-in} - {trigger: true, passed: [build-candidate], get: bosh-cpi-release, resource: bosh-cpi-dev-artifacts} - {trigger: true, passed: [setup-infrastructure], get: stemcell, resource: google-ubuntu-stemcell} - - {trigger: false, get: bosh-init} + - {trigger: false, get: bosh-cli} - {trigger: false, get: bosh-release} - task: setup-director @@ -152,6 +152,25 @@ jobs: on_failure: task: teardown-director file: bosh-cpi-src/ci/tasks/teardown-director.yml + config: + params: + google_project: {{google_project}} + google_region: {{google_region}} + google_zone: {{google_zone}} + google_json_key_data: {{google_json_key_data}} + google_test_bucket_name: {{google_test_bucket_name}} + google_network: {{google_network}} + google_subnetwork: {{google_subnetwork}} + google_subnetwork_range: {{google_subnetwork_range}} + google_subnetwork_gw: {{google_subnetwork_gw}} + google_firewall_internal: {{google_firewall_internal}} + google_firewall_external: {{google_firewall_external}} + google_address_director: {{google_address_director_ubuntu}} + google_address_static_director: {{google_address_static_director_ubuntu}} + private_key_user: {{private_key_user}} + private_key_data: {{private_key_data}} + director_username: {{director_username}} + director_password: {{director_password}} - name: run-bats serial: true @@ -378,7 +397,7 @@ resources: region: {{version_semver_region}} endpoint: storage.googleapis.com - - name: bosh-init + - name: bosh-cli type: s3 source: regexp: bosh-cli-([0-9.]+)-linux-amd64 diff --git a/ci/tasks/setup-director.sh b/ci/tasks/setup-director.sh index 2ba8f1d7..07fd9d30 100755 --- a/ci/tasks/setup-director.sh +++ b/ci/tasks/setup-director.sh @@ -33,6 +33,7 @@ echo "Setting up artifacts..." cp ./bosh-cpi-release/*.tgz ${deployment_dir}/${cpi_release_name}.tgz cp ./bosh-release/*.tgz ${deployment_dir}/bosh-release.tgz cp ./stemcell/*.tgz ${deployment_dir}/stemcell.tgz +cp ./bosh-cli/bosh-cli-* ${deployment_dir}/bosh && chmod +x ${deployment_dir}/bosh echo "Creating google json key..." echo "${google_json_key_data}" > ${google_json_key} @@ -60,6 +61,7 @@ openssl rsa -in ${private_key} -pubout > ${public_key} # Export prefixed variables so they are accessible echo "Populating environment with BOSH_ prefixed vars" +export BOSH_CONFIG=${deployment_dir}/.boshconfig export BOSH_director_username=$director_username export BOSH_director_password=$director_password export BOSH_cpi_release_name=$cpi_release_name @@ -290,32 +292,26 @@ pushd ${deployment_dir} } trap finish ERR - echo "Fetching bosh-cli V2" - curl -Ls \ - https://s3.amazonaws.com/bosh-cli-artifacts/bosh-cli-2.0.28-linux-amd64 \ - -o bosh2 - chmod +x bosh2 - - echo "Using bosh2 version..." - ./bosh2 --version + echo "Using bosh version..." + ./bosh --version echo "Generating certificates" certs=certs.yml - ./bosh2 interpolate ${cert_template} -v internal_ip=${director_ip} --vars-store ${certs} + ./bosh interpolate ${cert_template} -v internal_ip=${director_ip} --vars-store ${certs} echo "Deploying BOSH Director..." - ./bosh2 create-env ${manifest_filename} --vars-store ${certs} --vars-env=BOSH + ./bosh create-env ${manifest_filename} --vars-store ${certs} --vars-env=BOSH echo "Logging into BOSH Director" # We need to fetch and specify the CA certificate as bosh-cli V2 # strictly validates certificate with no insecure option. - ./bosh2 interpolate certs.yml --path /director_ssl/ca > ca_cert.pem - ./bosh2 alias-env micro-google --environment ${director_ip} --ca-cert ca_cert.pem + ./bosh interpolate certs.yml --path /director_ssl/ca > ca_cert.pem + ./bosh alias-env micro-google --environment ${director_ip} --ca-cert ca_cert.pem # We have to export these to get non-interactive login export BOSH_CLIENT=$BOSH_director_username export BOSH_CLIENT_SECRET=$BOSH_director_password - ./bosh2 login -e micro-google + ./bosh login -e micro-google trap - ERR finish diff --git a/ci/tasks/setup-director.yml b/ci/tasks/setup-director.yml index cc9f73ba..c9a1778a 100644 --- a/ci/tasks/setup-director.yml +++ b/ci/tasks/setup-director.yml @@ -9,7 +9,7 @@ inputs: - name: bosh-cpi-release - name: bosh-release - name: stemcell - - name: bosh-init + - name: bosh-cli outputs: - name: deployment run: diff --git a/ci/tasks/teardown-director.sh b/ci/tasks/teardown-director.sh index 6fd6cd57..65b885b1 100755 --- a/ci/tasks/teardown-director.sh +++ b/ci/tasks/teardown-director.sh @@ -8,19 +8,32 @@ source /etc/profile.d/chruby-with-ruby-2.1.2.sh deployment_dir="${PWD}/deployment" google_json_key=${deployment_dir}/google_key.json manifest_filename="director-manifest.yml" +certs=certs.yml echo "Creating google json key..." mkdir -p $HOME/.config/gcloud/ cp ${google_json_key} $HOME/.config/gcloud/application_default_credentials.json -pushd ${deployment_dir} - cp -r ./.bosh_init $HOME/ - - chmod +x ../bosh-init/bosh-init* +# Export prefixed variables so they are accessible +echo "Populating environment with BOSH_ prefixed vars" +export BOSH_CONFIG=${deployment_dir}/.boshconfig +export BOSH_director_username=$director_username +export BOSH_director_password=$director_password +export BOSH_cpi_release_name=$cpi_release_name +export BOSH_google_zone=$google_zone +export BOSH_google_project=$google_project +export BOSH_google_address_static_director=$google_address_static_director +export BOSH_director_ip=$director_ip +export BOSH_google_test_bucket_name=$google_test_bucket_name +export BOSH_google_network=$google_network +export BOSH_google_subnetwork_gw=$google_subnetwork_gw +export BOSH_google_subnetwork=$google_subnetwork +export BOSH_google_subnetwork_range=$google_subnetwork_range +export BOSH_google_firewall_internal=$google_firewall_internal +export BOSH_google_firewall_external=$google_firewall_external +export BOSH_google_json_key_data=$google_json_key_data - echo "Using bosh-init version..." - ../bosh-init/bosh-init* version - - echo "Deleting BOSH Director..." - ../bosh-init/bosh-init* delete ${manifest_filename} +pushd ${deployment_dir} + echo "Destroying BOSH Director..." + ./bosh delete-env -e micro-google --vars-store ${certs} --vars-env=BOSH ${manifest_filename} popd diff --git a/ci/tasks/teardown-director.yml b/ci/tasks/teardown-director.yml index b3a13578..8d42a0d8 100644 --- a/ci/tasks/teardown-director.yml +++ b/ci/tasks/teardown-director.yml @@ -6,9 +6,26 @@ image_resource: repository: boshcpi/gce-cpi-release inputs: - name: bosh-cpi-src - - name: bosh-init + - name: bosh-cli - name: deployment run: path: bosh-cpi-src/ci/tasks/teardown-director.sh params: BOSH_INIT_LOG_LEVEL: warn + google_project: replace-me + google_region: replace-me + google_zone: replace-me + google_json_key_data: replace-me + google_test_bucket_name: replace-me + google_network: replace-me + google_subnetwork: replace-me + google_subnetwork_range: replace-me + google_subnetwork_gw: replace-me + google_firewall_internal: replace-me + google_firewall_external: replace-me + google_address_director: replace-me + google_address_static_director: replace-me + private_key_user: replace-me + private_key_data: replace-me + director_username: replace-me + director_password: replace-me