gke-with-demo-app/hub.yaml (116 lines of code) (raw):

version: 1 kind: stack meta: name: GKE Sandbox Stack brief: GKE Sandbox with Demo App components: - name: gke source: dir: components/gke-gcloud git: remote: https://github.com/agilestacks/google-components.git subDir: gke-gcloud - name: nginx source: dir: components/nginx git: remote: https://github.com/agilestacks/google-components.git subDir: nginx hooks: - file: .hub/gke-context brief: Sets Kubernetes (GKE) Context triggers: - pre-* - name: external-dns source: dir: components/external-dns git: remote: https://github.com/agilestacks/google-components.git subDir: external-dns hooks: - file: .hub/gke-context brief: Sets Kubernetes (GKE) Context triggers: - pre-* - file: .hub/gcp-external-dns/create-dns-admin-sa brief: Links Kubernetes Service Account, which is used by External DNS pod with a Service Account in GCP with DNS admin permissions triggers: - pre-deploy - file: .hub/gcp-external-dns/delete-dns-admin-sa brief: Deletes a Service Account with DNS admin permissions from GCP triggers: - post-undeploy - file: .hub/gcp-external-dns/patch-kube-sa brief: Annotates external-dns SA in kubernetes with GCP Service Account (with DNS admin permissions) name triggers: - post-deploy - name: online-boutique-app source: dir: components/online-boutique-app git: remote: https://github.com/agilestacks/google-components.git subDir: online-boutique-app hooks: - file: .hub/gke-context brief: Sets Kubernetes (GKE) Context triggers: - pre-* extensions: init: - gcp - .hub/get-info configure: - gcp - .hub/set-gke-version - env requires: - gcp lifecycle: verbs: - deploy - undeploy order: - gke - nginx - external-dns - online-boutique-app parameters: - name: hub.sandboxDir fromEnv: SANDBOX_DIR - name: hub.sandboxCommit fromEnv: SANDBOX_COMMIT - name: hub.userAccount fromEnv: USER_ACCOUNT - name: projectId fromEnv: GOOGLE_PROJECT - name: dns.domain fromEnv: HUB_DOMAIN_NAME - name: stateBucketName fromEnv: HUB_STATE_BUCKET - name: hubStackName fromEnv: HUB_STACK_NAME - name: component.gke parameters: - name: name value: ${hubStackName} - name: zone fromEnv: GOOGLE_ZONE - name: region fromEnv: GOOGLE_REGION - name: machineType value: e2-standard-4 - name: nodeCount value: 2 - name: version fromEnv: GOOGLE_GKE_CLUSTER_VERSION - name: releaseChannel fromEnv: GOOGLE_GKE_RELEASE_CHANNEL - name: component.ingress.class value: nginx - name: component.onlineBoutiqueApp parameters: - name: host value: boutique.${dns.domain} outputs: - name: component.onlineBoutiqueApp.host - name: component.gke.url