composer-shared-vpc/hub.yaml (118 lines of code) (raw):
version: 1
kind: stack
meta:
name: Cloud Composer in Shared VPC
components:
- name: network
source:
dir: components/network
git:
remote: https://github.com/agilestacks/google-components.git
subDir: network
- name: shared-vpc
depends:
- network
source:
dir: components/shared-vpc
git:
remote: https://github.com/agilestacks/google-components.git
subDir: shared-vpc
- name: composer
source:
dir: components/composer-environment
git:
remote: https://github.com/agilestacks/google-components.git
subDir: composer-environment
requires:
- gcp
extensions:
init:
- gcp
- .hub/after-init
- .hub/get-info
configure:
- gcp
- env
lifecycle:
order:
- network
- shared-vpc
- composer
parameters:
- name: hub.sandboxDir
fromEnv: SANDBOX_DIR
- name: hub.sandboxCommit
fromEnv: SANDBOX_COMMIT
- name: hub.userAccount
fromEnv: USER_ACCOUNT
- name: dns.domain
fromEnv: HUB_DOMAIN_NAME
- name: dns.name
fromEnv: HUB_STACK_NAME
- name: cloud.region
fromEnv: GOOGLE_REGION
- name: cloud.zone
fromEnv: GOOGLE_ZONE
- name: gke.node
parameters:
- name: count
value: 3
brief: GKE cluster nodes count
- name: machineType
value: n1-standard-1
brief: GKE cluster nodes machine type
- name: diskSize
value: 100
brief: GKE cluster nodes disk size (in GB)
- name: component.network
parameters:
- name: name
value: ${dns.name}
- name: autocreateSubnets
value: false
- name: subnetwork.cidr
value: 10.127.0.0/20
- name: sharedVpc
parameters:
- name: subnetwork
kind: link
value: ${component.network.subnetwork}
- name: hostProjectId
brief: Host Project ID for Shared VPC setup
fromEnv: GOOGLE_PROJECT
- name: serviceProjectId
brief: Service Project ID for Shared VPC setup
fromEnv: GOOGLE_SHARED_VPC_SERVICE_PROJECT
- name: composer
parameters:
- name: version
default: v1
fromEnv: COMPOSER_VERSION
- name: projectId
value: ${sharedVpc.serviceProjectId}
- name: network.subnetwork
kind: link
value: ${component.network.subnetwork}
- name: network.projectId
value: ${sharedVpc.hostProjectId}
- name: endpoint
default: public
fromEnv: COMPOSER_ENDPOINT
- name: airflow.imageVersion
empty: allow
breif: Airflow image version
value: ""
- name: python.version
value: 3
breif: The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'.
- name: python.requirementsFile
fromEnv: COMPOSER_REQUIREMENTS_TXT
default: requirements.txt
brief: |
Path (relative to component directory or absolute) to the requirements.txt.
Additional packages defined in this file and will be applied during composer deployment.
If you modify file after composer has been deployed, run: `hub stack deploy -c composer` again.
outputs:
- name: composer.airflow.url
- name: composer.gcs.bucket
- name: kubernetes.gke.cluster