type: object title: GKE Provider Configuration description: >
Defined the provider configuration options required to initialize the provider integration
required:
- account - project - region
properties:
account: $id: '#/config/account' type: string title: Service Account Credentials JSON description: > The credentials used to speak the GCP APIs; you create a service account under the Cloud IAM within the project, adding the permissions 'Compute Admin' role to the service account via IAM tab. Once done you can create a key under 'Service Accounts' and copy and paste the JSON payload here. default: '' pattern: ^.*$ project: $id: '#/config/project' type: string title: GCP Project description: > The name of the GCP project you are provisioning the cluster done. default: '' pattern: ^.*$ region: $id: '#/config/region' type: string title: GCP Region description: > The GCP region you wish to the cluster to reside within. default: '' examples: - europe-west2 pattern: ^.*$
type: object title: GKE Cluster configuration description: >
Provides the ability to create a fully managed GKE cluster within GCP.
required:
- description - disk_size_gb - enable_autoscaler - enable_autoupgrade - enable_binary_authorization - enable_horizontal_pod_autoscaler - enable_http_loadbalancer - enable_istio - enable_logging - enable_monitoring - enable_private_endpoint - enable_private_network - image_type - machine_type - maintenance_window - network - subnetwork - version
properties:
authorized_master_cidrs: $id: '#/properties/authorized_master_cidrs' tag: default type: array title: Master Authorized Networks items: $id: '#/properties/authorized_master_cidrs/items' type: object title: Networks required: - name - cidr properties: name: $id: '#/properties/authorized_master_cidrs/items/properties/name' type: string title: Display Name default: 'allowany' examples: - any pattern: ^(.*)$ cidr: $id: '#/properties/authorized_master_cidrs/items/properties/cidr' type: string title: Network CIDR default: '0.0.0.0/0' examples: - 0.0.0.0/0 pattern: ^([\d]{1,3}\.){3}[\d]{1,3}\/[\d]{1,2}$ cluster_ipv4_cidr: $id: '#/properties/cluster_ipv4_cidr' tag: advanced type: string title: Cluster Pod Network default: '' description: > An optional network CIDR which is used to place the pod network on (else the cloud provider chooses) examples: - '' pattern: ^(([\d]{1,3}\.){3}[\d]{1,3}\/[\d]{1,2}|)$ create_subnetwork: $id: '#/properties/create_subnetwork' tag: advanced type: boolean title: Create Subnetwork description: > Indicates if you wish to create a new subnetwork to place the compute node on to. default: false examples: - false - true description: $id: '#/properties/description' tag: default type: string title: Description description: > A summary description for this cluster. default: '' examples: - Dev Cluster pattern: ^(.*)$ disk_size_gb: $id: '#/properties/disk_size_gb' tag: default type: integer title: Compute Disk Size (GB) default: 100 description: > Is the size of the disk used by the compute nodes The dns domain which the cluster is using; this mist be accessible from with inside the project. examples: - 100 enable_autorepair: $id: '#/properties/enable_autorepair' tag: default type: boolean title: Node Autorepair default: true description: > Indicates if the cluster should be configured with auto repair is enabled examples: - false - true enable_autoscaler: $id: '#/properties/enable_autoscaler' tag: default type: boolean title: Cluster Autoscaling default: true description: > Indicates if the cluster should be configured with cluster autoscaling turned on examples: - false - true enable_autoupgrade: $id: '#/properties/enable_autoupgrade' tag: default type: boolean title: Cluster Autoupgrading default: true description: > Indicates if the cluster should be configured with autograding enabled; meaning both nodes are masters are autoscated scheduled to upgrade during your maintenance window. examples: - false - true enable_binary_authorization: $id: '#/properties/enable_binary_authorization' tag: advanced type: boolean title: Binary Authorization Service default: false description: > Indicates if the cluster should be configured with GKE Binary Authorization service enabled. examples: - false - true enable_horizontal_pod_autoscaler: $id: '#/properties/enable_horizontal_pod_autoscaler' tag: default type: boolean title: Horizontal Pod Autoscaler default: false description: > Indicates if the cluster is configured with the horizontal pod autoscaler addon. This automatically adjusts the cpu and memory resources of pods in accordances with their demand. You should ensure you use PodDisruptionBudgets if this is enabled. examples: - false - true enable_http_loadbalancer: $id: '#/properties/enable_http_loadbalancer' tag: default type: boolean title: HTTP Ingress Controller default: true description: > Indicates if the cluster should be configured with the GKE ingress controller. When enabled GKE will autodiscover your ingress resources and provision load balancer on your behalf. examples: - false - true enable_istio: $id: '#/properties/enable_istio' tag: default type: boolean title: Istio Service Mesh default: false description: > Indicates if the GKE Istio service mesh is deployed to the cluster; this provides a more feature rich routing and instrumentation. examples: - false - true enable_logging: $id: '#/properties/enable_logging' tag: default type: boolean title: Stackdriver Logging default: false description: > Indicates if Stackdriver metrics should be enabled for the cluster examples: - false - true enable_monitoring: $id: '#/properties/enable_monitoring' tag: default type: boolean title: Stackdriver Metrics default: false description: > Indicates if Stackdriver logging should be enabled for the cluster examples: - false - true enable_private_endpoint: $id: '#/properties/enable_private_endpoint' tag: advanced type: boolean title: Private Endpoints default: false description: > Indicates if the master api endpoint should be accessible from private network only i.e. no external access examples: - false - true enable_private_network: $id: '#/properties/enable_private_network' tag: advanced type: boolean title: Private Node Networking default: true description: > Indicates if compute nodes should have external ip addresses or use private networking and a cloud-nat device. examples: - false - true image_type: $id: '#/properties/image_type' tag: advanced type: string title: Machine Image default: 'COS' description: > The operating system image the compute pool should use. examples: - COS pattern: ^(.*)$ machine_type: $id: '#/properties/machine_type' tag: default type: string title: Machine Type default: n1-standard-1 description: > The GCP machine type which the default nodes pool should use. examples: - n1-standard-1 pattern: ^(.*)$ maintenance_window: $id: '#/properties/maintenance_window' tag: default type: string title: Maintenance Window default: '03:00' description: > Specifies the maintenance window in hours and minutes which GKE is permitted to run maintenance operations. examples: - '03:00' pattern: ^[\d]{2}:[\d]{2}$ master_ipv4_cidr_block: $id: '#/properties/master_ipv4_cidr_block' tag: default type: string title: Master Peer Network Block default: '172.16.0.0/28' description: > If private networking is enabled, this is the peering subnet used to to GKE master api layer. Note, this must be unique within the network. examples: - '172.16.0.0/28' pattern: ^([\d]{1,3}\.){3}[\d]{1,3}\/[\d]{1,2}$ network: $id: '#/properties/network' tag: default type: string title: GCP Network default: 'default' description: > The GCP network which the cluster should reside on, which have to be unique within the GCP project and created beforehand. examples: - 'default' pattern: ^(.*)$ preemptible: $id: '#/properties/preemptible' tag: advanced type: boolean title: Preemptible Nodes default: false description: > Indicates if the default pool created should use preemptible nodes. examples: - false - true services_ipv4_cidr: $id: '#/properties/services_ipv4_cidr' tag: advanced type: string title: Cluster Services CIDR default: '' description: > An optional network cidr configured for the cluster services, otherwise GCP will decide. examples: - '' pattern: ^(([\d]{1,3}\.){3}[\d]{1,3}\/[\d]{1,2}|)$ subnetwork: $id: '#/properties/subnetwork' tag: default type: string title: Subnetwork for Nodes default: 'default' description: > The name of the GCP subnetwork which the cluster nodes should reside. examples: - default pattern: ^(.*)$ version: $id: '#/properties/version' tag: default type: string title: Initial Kubernetes Version default: 'latest' description: > The initial kubernetes version which the cluster should be configured with. examples: - latest - 1.13.7-gke.8 pattern: ^(.*)$