Skip to content

Instantly share code, notes, and snippets.

@radiosilence
Last active May 3, 2022 14:09
Show Gist options
  • Save radiosilence/94658b2c07daebf341433bf4c2c3847d to your computer and use it in GitHub Desktop.
Save radiosilence/94658b2c07daebf341433bf4c2c3847d to your computer and use it in GitHub Desktop.
terraform-common: &terraform-common
backend_type: gcs
env_name: development
env:
GOOGLE_CREDENTIALS: ((gcp_concourse_iam))
vars:
region: europe-west2
zone: europe-west2-a
project: kubernetes-cluster-eso
resource_types:
- name: terraform
type: docker-image
source:
repository: ljfranklin/terraform-resource
tag: latest
resources:
- name: eso-infra-repo
type: git
icon: github
check_every: 15m
source:
uri: https://github.com/EngineerBetter/eso-infrastructure.git
branch: master
- name: terraform-project
type: terraform
icon: terraform
source:
<<: *terraform-common
backend_config:
bucket: terraform-state-eso
prefix: terraform/state/project
- name: terraform-gke
type: terraform
icon: terraform
source:
<<: *terraform-common
backend_config:
bucket: terraform-state-eso
prefix: terraform/state
- name: eight-am-weekdays
type: time
icon: clock-outline
source:
start: 8:00 AM
stop: 6:55 PM
location: Europe/London
days: [Monday, Tuesday, Wednesday, Thursday, Friday]
- name: seven-pm-weekdays
type: time
icon: clock-outline
source:
start: 7:00 PM
stop: 7:55 AM
location: Europe/London
days: [Monday, Tuesday, Wednesday, Thursday, Friday]
jobs:
- name: set-pipeline
plan:
- get: eso-infra-repo
trigger: true
- set_pipeline: self
file: eso-infra-repo/ci/eso-infrastructure-pipeline.yml
- name: check-is-workday
plan:
- get: eso-infra-repo
trigger: true
- task: check-current-time
config:
platform: linux
image_resource:
type: docker-image
source: {repository: busybox}
params:
start: "08:00"
stop: "19:00"
run:
path: sh
args:
- -c
- '[[ $(date +"%H:%M") > "${start}" && $(date +"%H:%M") < "${stop}" ]]'
- name: setup-project
plan:
- get: eso-infra-repo
trigger: true
passed: [set-pipeline]
- put: terraform-project
params:
terraform_source: eso-infra-repo/terraform/project
- name: spin-gke-cluster
plan:
- get: eso-infra-repo
trigger: true
passed: [check-is-workday]
- get: eight-am-weekdays
trigger: true
- put: terraform-gke
params:
terraform_source: eso-infra-repo/terraform/gke
- name: destroy-gke-cluster
serial: true
plan:
- get: eso-infra-repo
- get: seven-pm-weekdays
trigger: true
- task: check-not-workday
config:
platform: linux
image_resource:
type: docker-image
source: {repository: busybox}
params:
start: "08:00"
stop: "19:00"
run:
path: sh
args:
- -c
- '[[ $(date +"%H:%M") < "${start}" || $(date +"%H:%M") > "${stop}" ]]'
- put: terraform-gke
params:
terraform_source: eso-infra-repo/terraform/gke
action: destroy
get_params:
action: destroy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment