This guide is for individuals with experience of the technologies in this demo. If you don't have that, don't worry! Please review the Getting Started Guide
You must have:
-
A Jamf Pro API Integration with permissions in each of your route to live instances
-
A Hashicorp Cloud Platform Terraform Org set up (it's free)
-
A Terraform Project set up.
-
3 workspaces set up in that org and project:
- Sandbox
- Staging
- Production
-
TF variables and secrets set up. You can set up a "Variable Set" for items shared between workspaces (like provider config).
- Varibles must match the names seen in workload/terraform/jamfpro/backend.tf
- See Getting Started for more info.
- Secret Name:
PAT_TOKEN
- Description: Required for Release Please to function correctly as it must use a separate identity to the GH actions. GH Docs Page
- Permissions: Must have repository access
- Secret Name:
TF_API_KEY
- Description: Required for API calls to Terraform Cloud Workspaces for starting runs and retrieving data. See Getting Started for more info.
Two environments must be configured:
staging
production
Each environment requires:
- Variable Name:
TF_WORKSPACE
- Description: Maps to corresponding Terraform Cloud workspace
- Variable Name:
APPLY_OUTPUT_ARTIFACT_NAME
- Description: Used for artifact name sharing. This can be anything but it should be clear!
- Variable Name:
ARTIFACT_FN
- Description: Standardizes the name of output file. This can also be anything at this stage but must contain the .json extension"
- Variable Name:
TF_CLOUD_ORG
- Description: Specifies your Terraform Cloud organization name
- Fork the repository
- Configure the required secrets:
- Add
PAT_TOKEN
- Add
TF_API_KEY
- Add
- Create the Two environments:
- staging
- production
- Add the
TF_WORKSPACE
variable to each environment - Configure repository variables:
- Set
APPLY_OUTPUT_ARTIFACT_NAME
- Set
ARTIFACT_FN
- Set
TF_CLOUD_ORG
- Set
- Amend the Terraform configuration block to align with your values.