Skip to content

Instantly share code, notes, and snippets.

@aviadlevy
Last active July 17, 2023 17:10
Show Gist options
  • Save aviadlevy/46325335e69380d9a9b83045d2a6fae7 to your computer and use it in GitHub Desktop.
Save aviadlevy/46325335e69380d9a9b83045d2a6fae7 to your computer and use it in GitHub Desktop.
Example for output from template of gitlab-ci
image: gitlab.***.net:4567/group/project/ci-image:latest
# https://docs.gitlab.com/ee/ci/yaml/index.html#switch-between-branch-pipelines-and-merge-request-pipelines
workflow:
rules:
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
when: never
- when: always
variables:
PY_COLORS: '1'
GIT_SUBMODULE_STRATEGY: recursive
stages:
- "validate:stg:app-config-service"
- "deploy:stg:app-config-service"
- "validate:prod:app-config-service"
- "deploy:prod:app-config-service"
validate:deployment:stg:eu-west-1:app-config-service:
variables:
AWS_ACCESS_KEY_ID: $EU_WEST_1_STG_STS_KEY
AWS_SECRET_ACCESS_KEY: $EU_WEST_1_STG_STS_SECRET
CLUSTER_NAME: eu-west-1-group-stg
K8S_NAMESPACE: group-stg
AWS_REGION: eu-west-1
stage: validate:stg:app-config-service
allow_failure: false
script:
- aws --region $AWS_REGION eks update-kubeconfig --name $CLUSTER_NAME
- kubectl config set-context --current --namespace=$K8S_NAMESPACE
- python3 scripts/apply_k8s.py --file k8s/app-config-service/deployment.yaml --resource deployment --environment stg --region eu-west-1 --stage validate
validate:deployment:prod:us-east-1:app-config-service:
variables:
AWS_ACCESS_KEY_ID: $US_EAST_1_PROD_STS_KEY
AWS_SECRET_ACCESS_KEY: $US_EAST_1_PROD_STS_SECRET
CLUSTER_NAME: us-east-1-group-prd
K8S_NAMESPACE: group-prod
AWS_REGION: us-east-1
stage: validate:prod:app-config-service
allow_failure: false
script:
- aws --region $AWS_REGION eks update-kubeconfig --name $CLUSTER_NAME
- kubectl config set-context --current --namespace=$K8S_NAMESPACE
- python3 scripts/apply_k8s.py --file k8s/app-config-service/deployment.yaml --resource deployment --environment prod --region us-east-1 --stage validate
deploy:deployment:stg:eu-west-1:app-config-service:
rules:
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
when: never
- when: manual
environment:
name: app-config-service/deployment/stg/eu-west-1
variables:
AWS_ACCESS_KEY_ID: $EU_WEST_1_STG_STS_KEY
AWS_SECRET_ACCESS_KEY: $EU_WEST_1_STG_STS_SECRET
CLUSTER_NAME: eu-west-1-group-stg
K8S_NAMESPACE: group-dev
AWS_REGION: eu-west-1
stage: deploy:stg:app-config-service
allow_failure: false
script:
- aws --region $AWS_REGION eks update-kubeconfig --name $CLUSTER_NAME
- kubectl config set-context --current --namespace=$K8S_NAMESPACE
- python3 scripts/apply_k8s.py --file k8s/app-config-service/deployment.yaml --resource deployment --environment stg --region eu-west-1 --stage deploy
deploy:deployment:prod:us-east-1:app-config-service:
rules:
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
when: never
- when: manual
environment:
name: app-config-service/deployment/prod/us-east-1
variables:
AWS_ACCESS_KEY_ID: $US_EAST_1_PROD_STS_KEY
AWS_SECRET_ACCESS_KEY: $US_EAST_1_PROD_STS_SECRET
CLUSTER_NAME: us-east-1-group-prd
K8S_NAMESPACE: group-prod
AWS_REGION: us-east-1
stage: deploy:prod:app-config-service
allow_failure: false
script:
- aws --region $AWS_REGION eks update-kubeconfig --name $CLUSTER_NAME
- kubectl config set-context --current --namespace=$K8S_NAMESPACE
- python3 scripts/apply_k8s.py --file k8s/app-config-service/deployment.yaml --resource deployment --environment prod --region us-east-1 --stage deploy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment