Skip to content

Environments

The platform deploys to three environments: TST (test), ACC (acceptance), and PRD (production). Each environment has its own Azure resources, service connections, and variable configuration.

Environment Variable Files

Environment-specific variables are defined in cicd/vars/:

cicd/vars/
├── tst.yaml
├── acc.yaml
└── prd.yaml

Each file defines the same set of variables with environment-specific values:

VariableDescription
azureServiceConnectionAzure DevOps service connection name
resourceGroupNameAzure resource group
webFeyenoordAppNameWeb app name (feyenoord site)
webDeKuipAppNameWeb app name (de-kuip site)
apiAppNameAPI app name
apiHostnameAPI hostname for health checks and Algolia
appInsightsNameApplication Insights resource name
cdnStorageAccountAzure Storage Account for CDN static assets
matchGatewayAppNameMatch Gateway app name
terraformResourceGroupNameResource group for Terraform state backend
terraformStorageAccountContainerNameBlob container for Terraform state
terraformStorageAccountNameStorage account for Terraform state
terraformWorkingDirectoryBaseBase path to Terraform configs

Naming Conventions

Resources follow the pattern feye-<component>-<env>-<type>:

ExamplePattern
feye-websites-tst-rgResource group
feye-feyenoord-tst-fe-asWeb app (feyenoord, test)
feye-web-feyenoord-tst-caContainer App (web, feyenoord, test)
feye-websites-tst-aiApplication Insights
feyewebsitestestcdnstCDN storage account

Variable Groups

In addition to the YAML variable files, the pipeline uses Azure DevOps variable groups for secrets and shared configuration:

GroupScopeContains
all-environmentsAll pipelinesACR credentials, Turbo token, SonarQube config
tstTST deploymentsKey Vault secrets, deploy tokens, API keys
accACC deploymentsKey Vault secrets, deploy tokens, API keys
prdPRD deploymentsKey Vault secrets, deploy tokens, API keys

The all-environments group is loaded at the pipeline level. Environment-specific groups are loaded in deploy stages via group: ${{ parameters.env }}.

Service Connections

Each environment has a dedicated Azure service connection:

EnvironmentService Connection
TSTAzureServiceConnectionTST
ACCAzureServiceConnectionACC
PRDAzureServiceConnectionPRD

These connections provide the pipeline with Azure credentials scoped to the corresponding subscription or resource group.

Terraform State Backend

Terraform state is stored in Azure Blob Storage, one state file per app per environment:

ComponentTSTACCPRD
Storage Accountfeyewebsiteststbackendfeyewebsitesaccbackendfeyewebsitesprdbackend
Containertfbackendtsttfbackendacctfbackendprd
Resource Groupfeye-websites-tst-backend-rg-lockedfeye-websites-acc-backend-rg-lockedfeye-websites-prd-backend-rg-locked

The resource groups use Azure resource locks to prevent accidental deletion of state files.

Environment Selection

See Release Pipeline for how the pipeline determines which environment to target based on the source branch or tag.