Created
January 4, 2021 18:17
-
-
Save crhntr/9e57ddd93c6650728dce28c9b7ecfb52 to your computer and use it in GitHub Desktop.
banana.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
It would be so cool if we could have vsphere environemnts act more like other iaas environments. | |
- It would make VSphere tests more like the other IAAS test pipelines. | |
- It would allow us to use the same workspace scripts (maybe) to interact with the environments. | |
- It would allow us to have a smaller pool of environments (because we install ops manager in the test pipeline) | |
The following outline is an exploration tracing the usage of the environment resource through the test pipelines. The | |
test pipeline ert::2.11 is used throughout as a the template I am following the GCP clean test: | |
- job: acquire-lock-gcp-clean | |
description: acquire a lock from the releng-env-resource pool. This writes an empty file to the gate-locks directory | |
and teh file name contains the product-version-pipeline_name. For example when ert:2.11 is claimed, | |
a file named gate-locks/claimed/ert-2.11-gcp-clean is written to the releng-env-resource-pool repo. | |
- job: lock-product-gcp-clean | |
description: I am not sure about the impact of this job. It gets the gate-lock file above and product (tile). It | |
does not have any puts. It may just be to ensure that the gate-lock creation succeeded. I do not see | |
any failures for this job in CI. | |
- job: create-environment-gcp-clean | |
description: **THIS IS WHERE THE ENVIRONMENT IS MADE (IE THE "PUT")** | |
The gate-lock, product, terraforming-repo, opsman_image (from pivnet) are all fetched. | |
The terraform vars are created by a task called setup-terraform-vars. | |
The env-state-gcp-clean environment is created via a terraform put state. | |
The terraform state is stored in an aws s3 bucket called releng-terraform-environments with the path | |
prefix "gcp/srt/2.11/clean". The terraform state file is named some-random-name.tfstate. | |
Examples of this resource can be found here: https://releng.ci.cf-app.com/teams/main/pipelines/ert::2.11/resources/env-state-gcp-clean | |
# from here on out I am going to try as best I can to enumerate the values used from the terraform state file. | |
# The terraform state file is a JSON file. | |
- task: setup-terraform-vars | |
description: I think this is where we will do most of the work mapping the testbed json to the terraform state. | |
This task has a per IAAS switch statement that slightly changes the fields in the tfvars file. | |
The terraforming input variables | |
# THIS IS WHERE THE ENVIRONMENT IS MADE VIA THE TERRAFORM RESOURCE | |
- task: install-releng-cert | |
- task: add-to-global-dns | |
- job: prepare-gcp-clean | |
description: | |
- task: check-dns | |
- task: download-stemcell | |
- task: configure-authentication-and-director | |
- task: upload-and-stage-ert | |
- task: configure-ert | |
PLAN | |
- use a local provisioner that runs the vsphere upload ops man | |
- it gets a local file which is the testbed file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment