container

package
v0.18.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2019 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cluster

type Cluster struct {
	// contains filtered or unexported fields
}

Manages a Google Kubernetes Engine (GKE) cluster. For more information see [the official documentation](https://cloud.google.com/container-engine/docs/clusters) and [the API reference](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters).

> **Note:** All arguments and attributes, including basic auth username and passwords as well as certificate outputs will be stored in the raw state as plaintext. [Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).

func GetCluster

func GetCluster(ctx *pulumi.Context,
	name string, id pulumi.ID, state *ClusterState, opts ...pulumi.ResourceOpt) (*Cluster, error)

GetCluster gets an existing Cluster resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewCluster

func NewCluster(ctx *pulumi.Context,
	name string, args *ClusterArgs, opts ...pulumi.ResourceOpt) (*Cluster, error)

NewCluster registers a new resource with the given unique name, arguments, and options.

func (*Cluster) AdditionalZones

func (r *Cluster) AdditionalZones() *pulumi.ArrayOutput

The list of zones in which the cluster's nodes should be located. These must be in the same region as the cluster zone for zonal clusters, or in the region of a regional cluster. In a multi-zonal cluster, the number of nodes specified in `initial_node_count` is created in all specified zones as well as the primary zone. If specified for a regional cluster, nodes will only be created in these zones. `additional_zones` has been deprecated in favour of `node_locations`.

func (*Cluster) AddonsConfig

func (r *Cluster) AddonsConfig() *pulumi.Output

The configuration for addons supported by GKE. Structure is documented below.

func (*Cluster) ClusterAutoscaling added in v0.18.0

func (r *Cluster) ClusterAutoscaling() *pulumi.Output

) Configuration for cluster autoscaling (also called autoprovisioning), as described in [the docs](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning). Structure is documented below.

func (*Cluster) ClusterIpv4Cidr

func (r *Cluster) ClusterIpv4Cidr() *pulumi.StringOutput

The IP address range of the kubernetes pods in this cluster. Default is an automatically assigned CIDR.

func (*Cluster) DefaultMaxPodsPerNode added in v0.18.0

func (r *Cluster) DefaultMaxPodsPerNode() *pulumi.IntOutput

func (*Cluster) Description

func (r *Cluster) Description() *pulumi.StringOutput

Description of the cluster.

func (*Cluster) EnableBinaryAuthorization added in v0.16.0

func (r *Cluster) EnableBinaryAuthorization() *pulumi.BoolOutput

) Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.

func (*Cluster) EnableKubernetesAlpha

func (r *Cluster) EnableKubernetesAlpha() *pulumi.BoolOutput

Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.

func (*Cluster) EnableLegacyAbac

func (r *Cluster) EnableLegacyAbac() *pulumi.BoolOutput

Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to `false`

func (*Cluster) EnableTpu added in v0.16.1

func (r *Cluster) EnableTpu() *pulumi.BoolOutput

) Whether to enable Cloud TPU resources in this cluster. See the [official documentation](https://cloud.google.com/tpu/docs/kubernetes-engine-setup).

func (*Cluster) Endpoint

func (r *Cluster) Endpoint() *pulumi.StringOutput

The IP address of this cluster's Kubernetes master.

func (*Cluster) ID

func (r *Cluster) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*Cluster) InitialNodeCount

func (r *Cluster) InitialNodeCount() *pulumi.IntOutput

The number of nodes to create in this cluster's default node pool. Must be set if `node_pool` is not set. If you're using `google_container_node_pool` objects with no default node pool, you'll need to set this to a value of at least `1`, alongside setting `remove_default_node_pool` to `true`.

func (*Cluster) InstanceGroupUrls

func (r *Cluster) InstanceGroupUrls() *pulumi.ArrayOutput

List of instance group URLs which have been assigned to the cluster.

func (*Cluster) IpAllocationPolicy

func (r *Cluster) IpAllocationPolicy() *pulumi.Output

Configuration for cluster IP allocation. As of now, only pre-allocated subnetworks (custom type with secondary ranges) are supported. This will activate IP aliases. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-aliases) Structure is documented below.

func (*Cluster) Location added in v0.18.1

func (r *Cluster) Location() *pulumi.StringOutput

The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as `us-central1-a`), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as `us-west1`), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.

func (*Cluster) LoggingService

func (r *Cluster) LoggingService() *pulumi.StringOutput

The logging service that the cluster should write logs to. Available options include `logging.googleapis.com`, `logging.googleapis.com/kubernetes` (beta), and `none`. Defaults to `logging.googleapis.com`

func (*Cluster) MaintenancePolicy

func (r *Cluster) MaintenancePolicy() *pulumi.Output

The maintenance policy to use for the cluster. Structure is documented below.

func (*Cluster) MasterAuth

func (r *Cluster) MasterAuth() *pulumi.Output

The authentication information for accessing the Kubernetes master. Structure is documented below.

func (*Cluster) MasterAuthorizedNetworksConfig

func (r *Cluster) MasterAuthorizedNetworksConfig() *pulumi.Output

The desired configuration options for master authorized networks. Omit the nested `cidr_blocks` attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).

func (*Cluster) MasterVersion

func (r *Cluster) MasterVersion() *pulumi.StringOutput

The current version of the master in the cluster. This may be different than the `min_master_version` set in the config if the master has been updated by GKE.

func (*Cluster) MinMasterVersion

func (r *Cluster) MinMasterVersion() *pulumi.StringOutput

The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only `master_version` field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version). Most users will find the `google_container_engine_versions` data source useful - it indicates which versions are available, and can be use to approximate fuzzy versions in a Terraform-compatible way. If you intend to specify versions manually, [the docs](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#specifying_cluster_version) describe the various acceptable formats for this field.

func (*Cluster) MonitoringService

func (r *Cluster) MonitoringService() *pulumi.StringOutput

The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include `monitoring.googleapis.com`, `monitoring.googleapis.com/kubernetes` (beta) and `none`. Defaults to `monitoring.googleapis.com`

func (*Cluster) Name

func (r *Cluster) Name() *pulumi.StringOutput

The name of the cluster, unique within the project and location.

func (*Cluster) Network

func (r *Cluster) Network() *pulumi.StringOutput

The name or self_link of the Google Compute Engine network to which the cluster is connected. For Shared VPC, set this to the self link of the shared network.

func (*Cluster) NetworkPolicy

func (r *Cluster) NetworkPolicy() *pulumi.Output

Configuration options for the [NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/networkpolicies/) feature. Structure is documented below.

func (*Cluster) NodeConfig

func (r *Cluster) NodeConfig() *pulumi.Output

Parameters used in creating the default node pool. Generally, this field should not be used at the same time as a `google_container_node_pool` or a `node_pool` block; this configuration manages the default node pool, which isn't recommended to be used with Terraform. Structure is documented below.

func (*Cluster) NodeLocations added in v0.18.1

func (r *Cluster) NodeLocations() *pulumi.ArrayOutput

The list of zones in which the cluster's nodes should be located. These must be in the same region as the cluster zone for zonal clusters, or in the region of a regional cluster. In a multi-zonal cluster, the number of nodes specified in `initial_node_count` is created in all specified zones as well as the primary zone. If specified for a regional cluster, nodes will be created in only these zones.

func (*Cluster) NodePools

func (r *Cluster) NodePools() *pulumi.ArrayOutput

List of node pools associated with this cluster. See google_container_node_pool for schema. **Warning:** node pools defined inside a cluster can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability to say "these are the _only_ node pools associated with this cluster", use the google_container_node_pool resource instead of this property.

func (*Cluster) NodeVersion

func (r *Cluster) NodeVersion() *pulumi.StringOutput

The Kubernetes version on the nodes. Must either be unset or set to the same value as `min_master_version` on create. Defaults to the default version set by GKE which is not necessarily the latest version. This only affects nodes in the default node pool. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the `google_container_engine_versions` data source's `version_prefix` field to approximate fuzzy versions in a Terraform-compatible way. To update nodes in other node pools, use the `version` attribute on the node pool.

func (*Cluster) PodSecurityPolicyConfig

func (r *Cluster) PodSecurityPolicyConfig() *pulumi.Output

) Configuration for the [PodSecurityPolicy](https://cloud.google.com/kubernetes-engine/docs/how-to/pod-security-policies) feature. Structure is documented below.

func (*Cluster) PrivateClusterConfig added in v0.16.4

func (r *Cluster) PrivateClusterConfig() *pulumi.Output

A set of options for creating a private cluster. Structure is documented below.

func (*Cluster) Project

func (r *Cluster) Project() *pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (*Cluster) Region

func (r *Cluster) Region() *pulumi.StringOutput

func (*Cluster) RemoveDefaultNodePool

func (r *Cluster) RemoveDefaultNodePool() *pulumi.BoolOutput

If `true`, deletes the default node pool upon cluster creation. If you're using `google_container_node_pool` resources with no default node pool, this should be set to `true`, alongside setting `initial_node_count` to at least `1`.

func (*Cluster) ResourceLabels added in v0.15.0

func (r *Cluster) ResourceLabels() *pulumi.MapOutput

The GCE resource labels (a map of key/value pairs) to be applied to the cluster.

func (*Cluster) Subnetwork

func (r *Cluster) Subnetwork() *pulumi.StringOutput

The name or self_link of the Google Compute Engine subnetwork in which the cluster's instances are launched.

func (*Cluster) TpuIpv4CidrBlock added in v0.18.0

func (r *Cluster) TpuIpv4CidrBlock() *pulumi.StringOutput

([Beta](https://terraform.io/docs/providers/google/provider_versions.html)) The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`).

func (*Cluster) URN

func (r *Cluster) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*Cluster) Zone

func (r *Cluster) Zone() *pulumi.StringOutput

The zone that the cluster master and nodes should be created in. If specified, this cluster will be a zonal cluster. `zone` has been deprecated in favour of `location`.

type ClusterArgs

type ClusterArgs struct {
	// The list of zones in which the cluster's nodes
	// should be located. These must be in the same region as the cluster zone for
	// zonal clusters, or in the region of a regional cluster. In a multi-zonal cluster,
	// the number of nodes specified in `initial_node_count` is created in
	// all specified zones as well as the primary zone. If specified for a regional
	// cluster, nodes will only be created in these zones. `additional_zones` has been
	// deprecated in favour of `node_locations`.
	AdditionalZones interface{}
	// The configuration for addons supported by GKE.
	// Structure is documented below.
	AddonsConfig interface{}
	// )
	// Configuration for cluster autoscaling (also called autoprovisioning), as described in
	// [the docs](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning).
	// Structure is documented below.
	ClusterAutoscaling interface{}
	// The IP address range of the kubernetes pods in
	// this cluster. Default is an automatically assigned CIDR.
	ClusterIpv4Cidr       interface{}
	DefaultMaxPodsPerNode interface{}
	// Description of the cluster.
	Description interface{}
	// ) Enable Binary Authorization for this cluster.
	// If enabled, all container images will be validated by Google Binary Authorization.
	EnableBinaryAuthorization interface{}
	// Whether to enable Kubernetes Alpha features for
	// this cluster. Note that when this option is enabled, the cluster cannot be upgraded
	// and will be automatically deleted after 30 days.
	EnableKubernetesAlpha interface{}
	// Whether the ABAC authorizer is enabled for this cluster.
	// When enabled, identities in the system, including service accounts, nodes, and controllers,
	// will have statically granted permissions beyond those provided by the RBAC configuration or IAM.
	// Defaults to `false`
	EnableLegacyAbac interface{}
	// ) Whether to enable Cloud TPU resources in this cluster.
	// See the [official documentation](https://cloud.google.com/tpu/docs/kubernetes-engine-setup).
	EnableTpu interface{}
	// The number of nodes to create in this
	// cluster's default node pool. Must be set if `node_pool` is not set. If
	// you're using `google_container_node_pool` objects with no default node pool,
	// you'll need to set this to a value of at least `1`, alongside setting
	// `remove_default_node_pool` to `true`.
	InitialNodeCount interface{}
	// Configuration for cluster IP allocation. As of now, only pre-allocated subnetworks (custom type with secondary ranges) are supported.
	// This will activate IP aliases. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-aliases)
	// Structure is documented below.
	IpAllocationPolicy interface{}
	// The location (region or zone) in which the cluster
	// master will be created, as well as the default node location. If you specify a
	// zone (such as `us-central1-a`), the cluster will be a zonal cluster with a
	// single cluster master. If you specify a region (such as `us-west1`), the
	// cluster will be a regional cluster with multiple masters spread across zones in
	// the region, and with default node locations in those zones as well.
	Location interface{}
	// The logging service that the cluster should
	// write logs to. Available options include `logging.googleapis.com`,
	// `logging.googleapis.com/kubernetes` (beta), and `none`. Defaults to `logging.googleapis.com`
	LoggingService interface{}
	// The maintenance policy to use for the cluster. Structure is
	// documented below.
	MaintenancePolicy interface{}
	// The authentication information for accessing the
	// Kubernetes master. Structure is documented below.
	MasterAuth interface{}
	// The desired configuration options
	// for master authorized networks. Omit the nested `cidr_blocks` attribute to disallow
	// external access (except the cluster node IPs, which GKE automatically whitelists).
	MasterAuthorizedNetworksConfig interface{}
	// The minimum version of the master. GKE
	// will auto-update the master to new versions, so this does not guarantee the
	// current master version--use the read-only `master_version` field to obtain that.
	// If unset, the cluster's version will be set by GKE to the version of the most recent
	// official release (which is not necessarily the latest version).  Most users will find
	// the `google_container_engine_versions` data source useful - it indicates which versions
	// are available, and can be use to approximate fuzzy versions in a
	// Terraform-compatible way. If you intend to specify versions manually,
	// [the docs](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#specifying_cluster_version)
	// describe the various acceptable formats for this field.
	MinMasterVersion interface{}
	// The monitoring service that the cluster
	// should write metrics to.
	// Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API.
	// VM metrics will be collected by Google Compute Engine regardless of this setting
	// Available options include
	// `monitoring.googleapis.com`, `monitoring.googleapis.com/kubernetes` (beta) and `none`.
	// Defaults to `monitoring.googleapis.com`
	MonitoringService interface{}
	// The name of the cluster, unique within the project and
	// location.
	Name interface{}
	// The name or self_link of the Google Compute Engine
	// network to which the cluster is connected. For Shared VPC, set this to the self link of the
	// shared network.
	Network interface{}
	// Configuration options for the
	// [NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/networkpolicies/)
	// feature. Structure is documented below.
	NetworkPolicy interface{}
	// Parameters used in creating the default node pool.
	// Generally, this field should not be used at the same time as a
	// `google_container_node_pool` or a `node_pool` block; this configuration
	// manages the default node pool, which isn't recommended to be used with
	// Terraform. Structure is documented below.
	NodeConfig interface{}
	// The list of zones in which the cluster's nodes
	// should be located. These must be in the same region as the cluster zone for
	// zonal clusters, or in the region of a regional cluster. In a multi-zonal cluster,
	// the number of nodes specified in `initial_node_count` is created in
	// all specified zones as well as the primary zone. If specified for a regional
	// cluster, nodes will be created in only these zones.
	NodeLocations interface{}
	// List of node pools associated with this cluster.
	// See google_container_node_pool for schema.
	// **Warning:** node pools defined inside a cluster can't be changed (or added/removed) after
	// cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability
	// to say "these are the _only_ node pools associated with this cluster", use the
	// google_container_node_pool resource instead of this property.
	NodePools interface{}
	// The Kubernetes version on the nodes. Must either be unset
	// or set to the same value as `min_master_version` on create. Defaults to the default
	// version set by GKE which is not necessarily the latest version. This only affects
	// nodes in the default node pool. While a fuzzy version can be specified, it's
	// recommended that you specify explicit versions as Terraform will see spurious diffs
	// when fuzzy versions are used. See the `google_container_engine_versions` data source's
	// `version_prefix` field to approximate fuzzy versions in a Terraform-compatible way.
	// To update nodes in other node pools, use the `version` attribute on the node pool.
	NodeVersion interface{}
	// ) Configuration for the
	// [PodSecurityPolicy](https://cloud.google.com/kubernetes-engine/docs/how-to/pod-security-policies) feature.
	// Structure is documented below.
	PodSecurityPolicyConfig interface{}
	// A set of options for creating
	// a private cluster. Structure is documented below.
	PrivateClusterConfig interface{}
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project interface{}
	Region  interface{}
	// If `true`, deletes the default node
	// pool upon cluster creation. If you're using `google_container_node_pool`
	// resources with no default node pool, this should be set to `true`, alongside
	// setting `initial_node_count` to at least `1`.
	RemoveDefaultNodePool interface{}
	// The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
	ResourceLabels interface{}
	// The name or self_link of the Google Compute Engine subnetwork in
	// which the cluster's instances are launched.
	Subnetwork interface{}
	// The zone that the cluster master and nodes
	// should be created in. If specified, this cluster will be a zonal cluster. `zone`
	// has been deprecated in favour of `location`.
	Zone interface{}
}

The set of arguments for constructing a Cluster resource.

type ClusterState

type ClusterState struct {
	// The list of zones in which the cluster's nodes
	// should be located. These must be in the same region as the cluster zone for
	// zonal clusters, or in the region of a regional cluster. In a multi-zonal cluster,
	// the number of nodes specified in `initial_node_count` is created in
	// all specified zones as well as the primary zone. If specified for a regional
	// cluster, nodes will only be created in these zones. `additional_zones` has been
	// deprecated in favour of `node_locations`.
	AdditionalZones interface{}
	// The configuration for addons supported by GKE.
	// Structure is documented below.
	AddonsConfig interface{}
	// )
	// Configuration for cluster autoscaling (also called autoprovisioning), as described in
	// [the docs](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning).
	// Structure is documented below.
	ClusterAutoscaling interface{}
	// The IP address range of the kubernetes pods in
	// this cluster. Default is an automatically assigned CIDR.
	ClusterIpv4Cidr       interface{}
	DefaultMaxPodsPerNode interface{}
	// Description of the cluster.
	Description interface{}
	// ) Enable Binary Authorization for this cluster.
	// If enabled, all container images will be validated by Google Binary Authorization.
	EnableBinaryAuthorization interface{}
	// Whether to enable Kubernetes Alpha features for
	// this cluster. Note that when this option is enabled, the cluster cannot be upgraded
	// and will be automatically deleted after 30 days.
	EnableKubernetesAlpha interface{}
	// Whether the ABAC authorizer is enabled for this cluster.
	// When enabled, identities in the system, including service accounts, nodes, and controllers,
	// will have statically granted permissions beyond those provided by the RBAC configuration or IAM.
	// Defaults to `false`
	EnableLegacyAbac interface{}
	// ) Whether to enable Cloud TPU resources in this cluster.
	// See the [official documentation](https://cloud.google.com/tpu/docs/kubernetes-engine-setup).
	EnableTpu interface{}
	// The IP address of this cluster's Kubernetes master.
	Endpoint interface{}
	// The number of nodes to create in this
	// cluster's default node pool. Must be set if `node_pool` is not set. If
	// you're using `google_container_node_pool` objects with no default node pool,
	// you'll need to set this to a value of at least `1`, alongside setting
	// `remove_default_node_pool` to `true`.
	InitialNodeCount interface{}
	// List of instance group URLs which have been assigned
	// to the cluster.
	InstanceGroupUrls interface{}
	// Configuration for cluster IP allocation. As of now, only pre-allocated subnetworks (custom type with secondary ranges) are supported.
	// This will activate IP aliases. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-aliases)
	// Structure is documented below.
	IpAllocationPolicy interface{}
	// The location (region or zone) in which the cluster
	// master will be created, as well as the default node location. If you specify a
	// zone (such as `us-central1-a`), the cluster will be a zonal cluster with a
	// single cluster master. If you specify a region (such as `us-west1`), the
	// cluster will be a regional cluster with multiple masters spread across zones in
	// the region, and with default node locations in those zones as well.
	Location interface{}
	// The logging service that the cluster should
	// write logs to. Available options include `logging.googleapis.com`,
	// `logging.googleapis.com/kubernetes` (beta), and `none`. Defaults to `logging.googleapis.com`
	LoggingService interface{}
	// The maintenance policy to use for the cluster. Structure is
	// documented below.
	MaintenancePolicy interface{}
	// The authentication information for accessing the
	// Kubernetes master. Structure is documented below.
	MasterAuth interface{}
	// The desired configuration options
	// for master authorized networks. Omit the nested `cidr_blocks` attribute to disallow
	// external access (except the cluster node IPs, which GKE automatically whitelists).
	MasterAuthorizedNetworksConfig interface{}
	// The current version of the master in the cluster. This may
	// be different than the `min_master_version` set in the config if the master
	// has been updated by GKE.
	MasterVersion interface{}
	// The minimum version of the master. GKE
	// will auto-update the master to new versions, so this does not guarantee the
	// current master version--use the read-only `master_version` field to obtain that.
	// If unset, the cluster's version will be set by GKE to the version of the most recent
	// official release (which is not necessarily the latest version).  Most users will find
	// the `google_container_engine_versions` data source useful - it indicates which versions
	// are available, and can be use to approximate fuzzy versions in a
	// Terraform-compatible way. If you intend to specify versions manually,
	// [the docs](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#specifying_cluster_version)
	// describe the various acceptable formats for this field.
	MinMasterVersion interface{}
	// The monitoring service that the cluster
	// should write metrics to.
	// Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API.
	// VM metrics will be collected by Google Compute Engine regardless of this setting
	// Available options include
	// `monitoring.googleapis.com`, `monitoring.googleapis.com/kubernetes` (beta) and `none`.
	// Defaults to `monitoring.googleapis.com`
	MonitoringService interface{}
	// The name of the cluster, unique within the project and
	// location.
	Name interface{}
	// The name or self_link of the Google Compute Engine
	// network to which the cluster is connected. For Shared VPC, set this to the self link of the
	// shared network.
	Network interface{}
	// Configuration options for the
	// [NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/networkpolicies/)
	// feature. Structure is documented below.
	NetworkPolicy interface{}
	// Parameters used in creating the default node pool.
	// Generally, this field should not be used at the same time as a
	// `google_container_node_pool` or a `node_pool` block; this configuration
	// manages the default node pool, which isn't recommended to be used with
	// Terraform. Structure is documented below.
	NodeConfig interface{}
	// The list of zones in which the cluster's nodes
	// should be located. These must be in the same region as the cluster zone for
	// zonal clusters, or in the region of a regional cluster. In a multi-zonal cluster,
	// the number of nodes specified in `initial_node_count` is created in
	// all specified zones as well as the primary zone. If specified for a regional
	// cluster, nodes will be created in only these zones.
	NodeLocations interface{}
	// List of node pools associated with this cluster.
	// See google_container_node_pool for schema.
	// **Warning:** node pools defined inside a cluster can't be changed (or added/removed) after
	// cluster creation without deleting and recreating the entire cluster. Unless you absolutely need the ability
	// to say "these are the _only_ node pools associated with this cluster", use the
	// google_container_node_pool resource instead of this property.
	NodePools interface{}
	// The Kubernetes version on the nodes. Must either be unset
	// or set to the same value as `min_master_version` on create. Defaults to the default
	// version set by GKE which is not necessarily the latest version. This only affects
	// nodes in the default node pool. While a fuzzy version can be specified, it's
	// recommended that you specify explicit versions as Terraform will see spurious diffs
	// when fuzzy versions are used. See the `google_container_engine_versions` data source's
	// `version_prefix` field to approximate fuzzy versions in a Terraform-compatible way.
	// To update nodes in other node pools, use the `version` attribute on the node pool.
	NodeVersion interface{}
	// ) Configuration for the
	// [PodSecurityPolicy](https://cloud.google.com/kubernetes-engine/docs/how-to/pod-security-policies) feature.
	// Structure is documented below.
	PodSecurityPolicyConfig interface{}
	// A set of options for creating
	// a private cluster. Structure is documented below.
	PrivateClusterConfig interface{}
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project interface{}
	Region  interface{}
	// If `true`, deletes the default node
	// pool upon cluster creation. If you're using `google_container_node_pool`
	// resources with no default node pool, this should be set to `true`, alongside
	// setting `initial_node_count` to at least `1`.
	RemoveDefaultNodePool interface{}
	// The GCE resource labels (a map of key/value pairs) to be applied to the cluster.
	ResourceLabels interface{}
	// The name or self_link of the Google Compute Engine subnetwork in
	// which the cluster's instances are launched.
	Subnetwork interface{}
	// ([Beta](https://terraform.io/docs/providers/google/provider_versions.html)) The IP address range of the Cloud TPUs in this cluster, in
	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
	// notation (e.g. `1.2.3.4/29`).
	TpuIpv4CidrBlock interface{}
	// The zone that the cluster master and nodes
	// should be created in. If specified, this cluster will be a zonal cluster. `zone`
	// has been deprecated in favour of `location`.
	Zone interface{}
}

Input properties used for looking up and filtering Cluster resources.

type GetClusterArgs

type GetClusterArgs struct {
	// The location (zone or region) this cluster has been
	// created in. One of `location`, `region`, `zone`, or a provider-level `zone` must
	// be specified.
	Location interface{}
	// The name of the cluster.
	Name interface{}
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project interface{}
	// The region this cluster has been created in. Deprecated
	// in favour of `location`.
	Region interface{}
	// The zone this cluster has been created in. Deprecated in
	// favour of `location`.
	Zone interface{}
}

A collection of arguments for invoking getCluster.

type GetClusterResult

type GetClusterResult struct {
	AdditionalZones                 interface{}
	AddonsConfigs                   interface{}
	ClusterAutoscalings             interface{}
	ClusterIpv4Cidr                 interface{}
	DefaultMaxPodsPerNode           interface{}
	Description                     interface{}
	EnableBinaryAuthorization       interface{}
	EnableKubernetesAlpha           interface{}
	EnableLegacyAbac                interface{}
	EnableTpu                       interface{}
	Endpoint                        interface{}
	InitialNodeCount                interface{}
	InstanceGroupUrls               interface{}
	IpAllocationPolicies            interface{}
	LoggingService                  interface{}
	MaintenancePolicies             interface{}
	MasterAuths                     interface{}
	MasterAuthorizedNetworksConfigs interface{}
	MasterIpv4CidrBlock             interface{}
	MasterVersion                   interface{}
	MinMasterVersion                interface{}
	MonitoringService               interface{}
	Network                         interface{}
	NetworkPolicies                 interface{}
	NodeConfigs                     interface{}
	NodeLocations                   interface{}
	NodePools                       interface{}
	NodeVersion                     interface{}
	PodSecurityPolicyConfigs        interface{}
	PrivateCluster                  interface{}
	PrivateClusterConfigs           interface{}
	RemoveDefaultNodePool           interface{}
	ResourceLabels                  interface{}
	Subnetwork                      interface{}
	TpuIpv4CidrBlock                interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getCluster.

func LookupCluster

func LookupCluster(ctx *pulumi.Context, args *GetClusterArgs) (*GetClusterResult, error)

Get info about a GKE cluster from its name and location.

type GetEngineVersionsArgs

type GetEngineVersionsArgs struct {
	// The location (region or zone) to list versions for.
	// Must exactly match the location the cluster will be deployed in, or listed
	// versions may not be available. If `location`, `region`, and `zone` are not
	// specified, the provider-level zone must be set and is used instead.
	Location interface{}
	// ID of the project to list available cluster versions for. Should match the project the cluster will be deployed to.
	// Defaults to the project that the provider is authenticated with.
	Project interface{}
	Region  interface{}
	// If provided, Terraform will only return versions
	// that match the string prefix. For example, `1.11.` will match all `1.11` series
	// releases. Since this is just a string match, it's recommended that you append a
	// `.` after minor versions to ensure that prefixes such as `1.1` don't match
	// versions like `1.12.5-gke.10` accidentally. See [the docs on versioning schema](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#versioning_scheme)
	// for full details on how version strings are formatted.
	VersionPrefix interface{}
	Zone          interface{}
}

A collection of arguments for invoking getEngineVersions.

type GetEngineVersionsResult

type GetEngineVersionsResult struct {
	// Version of Kubernetes the service deploys by default.
	DefaultClusterVersion interface{}
	// The latest version available in the given zone for use with master instances.
	LatestMasterVersion interface{}
	// The latest version available in the given zone for use with node instances.
	LatestNodeVersion interface{}
	// A list of versions available in the given zone for use with master instances.
	ValidMasterVersions interface{}
	// A list of versions available in the given zone for use with node instances.
	ValidNodeVersions interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getEngineVersions.

func LookupEngineVersions

func LookupEngineVersions(ctx *pulumi.Context, args *GetEngineVersionsArgs) (*GetEngineVersionsResult, error)

Provides access to available Google Kubernetes Engine versions in a zone or region for a given project.

> If you are using the `google_container_engine_versions` datasource with a regional cluster, ensure that you have provided a region as the `location` to the datasource. A region can have a different set of supported versions than its component zones, and not all zones in a region are guaranteed to support the same version.

type GetRegistryImageArgs

type GetRegistryImageArgs struct {
	Digest  interface{}
	Name    interface{}
	Project interface{}
	Region  interface{}
	Tag     interface{}
}

A collection of arguments for invoking getRegistryImage.

type GetRegistryImageResult

type GetRegistryImageResult struct {
	ImageUrl interface{}
	Project  interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getRegistryImage.

func LookupRegistryImage

func LookupRegistryImage(ctx *pulumi.Context, args *GetRegistryImageArgs) (*GetRegistryImageResult, error)

This data source fetches the project name, and provides the appropriate URLs to use for container registry for this project.

The URLs are computed entirely offline - as long as the project exists, they will be valid, but this data source does not contact Google Container Registry (GCR) at any point.

type GetRegistryRepositoryArgs

type GetRegistryRepositoryArgs struct {
	Project interface{}
	Region  interface{}
}

A collection of arguments for invoking getRegistryRepository.

type GetRegistryRepositoryResult

type GetRegistryRepositoryResult struct {
	Project       interface{}
	RepositoryUrl interface{}
	// id is the provider-assigned unique ID for this managed resource.
	Id interface{}
}

A collection of values returned by getRegistryRepository.

func LookupRegistryRepository

func LookupRegistryRepository(ctx *pulumi.Context, args *GetRegistryRepositoryArgs) (*GetRegistryRepositoryResult, error)

This data source fetches the project name, and provides the appropriate URLs to use for container registry for this project.

The URLs are computed entirely offline - as long as the project exists, they will be valid, but this data source does not contact Google Container Registry (GCR) at any point.

type NodePool

type NodePool struct {
	// contains filtered or unexported fields
}

Manages a node pool in a Google Kubernetes Engine (GKE) cluster separately from the cluster control plane. For more information see [the official documentation](https://cloud.google.com/container-engine/docs/node-pools) and [the API reference](https://cloud.google.com/container-engine/reference/rest/v1/projects.zones.clusters.nodePools).

func GetNodePool

func GetNodePool(ctx *pulumi.Context,
	name string, id pulumi.ID, state *NodePoolState, opts ...pulumi.ResourceOpt) (*NodePool, error)

GetNodePool gets an existing NodePool resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewNodePool

func NewNodePool(ctx *pulumi.Context,
	name string, args *NodePoolArgs, opts ...pulumi.ResourceOpt) (*NodePool, error)

NewNodePool registers a new resource with the given unique name, arguments, and options.

func (*NodePool) Autoscaling

func (r *NodePool) Autoscaling() *pulumi.Output

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

func (*NodePool) Cluster

func (r *NodePool) Cluster() *pulumi.StringOutput

The cluster to create the node pool for. Cluster must be present in `zone` provided for zonal clusters.

func (*NodePool) ID

func (r *NodePool) ID() *pulumi.IDOutput

ID is this resource's unique identifier assigned by its provider.

func (*NodePool) InitialNodeCount

func (r *NodePool) InitialNodeCount() *pulumi.IntOutput

The initial node count for the pool. Changing this will force recreation of the resource.

func (*NodePool) InstanceGroupUrls

func (r *NodePool) InstanceGroupUrls() *pulumi.ArrayOutput

func (*NodePool) Location added in v0.18.1

func (r *NodePool) Location() *pulumi.StringOutput

The location (region or zone) in which the cluster resides.

func (*NodePool) Management

func (r *NodePool) Management() *pulumi.Output

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

func (*NodePool) MaxPodsPerNode added in v0.16.0

func (r *NodePool) MaxPodsPerNode() *pulumi.IntOutput

) The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.

func (*NodePool) Name

func (r *NodePool) Name() *pulumi.StringOutput

The name of the node pool. If left blank, Terraform will auto-generate a unique name.

func (*NodePool) NamePrefix

func (r *NodePool) NamePrefix() *pulumi.StringOutput

func (*NodePool) NodeConfig

func (r *NodePool) NodeConfig() *pulumi.Output

The node configuration of the pool. See google_container_cluster for schema.

func (*NodePool) NodeCount

func (r *NodePool) NodeCount() *pulumi.IntOutput

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside `autoscaling`.

func (*NodePool) Project

func (r *NodePool) Project() *pulumi.StringOutput

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

func (*NodePool) Region

func (r *NodePool) Region() *pulumi.StringOutput

The region in which the cluster resides (for regional clusters). `zone` has been deprecated in favor of `location`.

func (*NodePool) URN

func (r *NodePool) URN() *pulumi.URNOutput

URN is this resource's unique name assigned by Pulumi.

func (*NodePool) Version

func (r *NodePool) Version() *pulumi.StringOutput

The Kubernetes version for the nodes in this pool. Note that if this field and `auto_upgrade` are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the `google_container_engine_versions` data source's `version_prefix` field to approximate fuzzy versions in a Terraform-compatible way.

func (*NodePool) Zone

func (r *NodePool) Zone() *pulumi.StringOutput

The zone in which the cluster resides. `zone` has been deprecated in favor of `location`.

type NodePoolArgs

type NodePoolArgs struct {
	// Configuration required by cluster autoscaler to adjust
	// the size of the node pool to the current cluster usage. Structure is documented below.
	Autoscaling interface{}
	// The cluster to create the node pool for.  Cluster must be present in `zone` provided for zonal clusters.
	Cluster interface{}
	// The initial node count for the pool. Changing this will force
	// recreation of the resource.
	InitialNodeCount interface{}
	// The location (region or zone) in which the cluster
	// resides.
	Location interface{}
	// Node management configuration, wherein auto-repair and
	// auto-upgrade is configured. Structure is documented below.
	Management interface{}
	// ) The maximum number of pods per node in this node pool.
	// Note that this does not work on node pools which are "route-based" - that is, node
	// pools belonging to clusters that do not have IP Aliasing enabled.
	MaxPodsPerNode interface{}
	// The name of the node pool. If left blank, Terraform will
	// auto-generate a unique name.
	Name       interface{}
	NamePrefix interface{}
	// The node configuration of the pool. See
	// google_container_cluster for schema.
	NodeConfig interface{}
	// The number of nodes per instance group. This field can be used to
	// update the number of nodes per instance group but should not be used alongside `autoscaling`.
	NodeCount interface{}
	// The ID of the project in which to create the node pool. If blank,
	// the provider-configured project will be used.
	Project interface{}
	// The region in which the cluster resides (for
	// regional clusters). `zone` has been deprecated in favor of `location`.
	Region interface{}
	// The Kubernetes version for the nodes in this pool. Note that if this field
	// and `auto_upgrade` are both specified, they will fight each other for what the node version should
	// be, so setting both is highly discouraged. While a fuzzy version can be specified, it's
	// recommended that you specify explicit versions as Terraform will see spurious diffs
	// when fuzzy versions are used. See the `google_container_engine_versions` data source's
	// `version_prefix` field to approximate fuzzy versions in a Terraform-compatible way.
	Version interface{}
	// The zone in which the cluster resides. `zone`
	// has been deprecated in favor of `location`.
	Zone interface{}
}

The set of arguments for constructing a NodePool resource.

type NodePoolState

type NodePoolState struct {
	// Configuration required by cluster autoscaler to adjust
	// the size of the node pool to the current cluster usage. Structure is documented below.
	Autoscaling interface{}
	// The cluster to create the node pool for.  Cluster must be present in `zone` provided for zonal clusters.
	Cluster interface{}
	// The initial node count for the pool. Changing this will force
	// recreation of the resource.
	InitialNodeCount  interface{}
	InstanceGroupUrls interface{}
	// The location (region or zone) in which the cluster
	// resides.
	Location interface{}
	// Node management configuration, wherein auto-repair and
	// auto-upgrade is configured. Structure is documented below.
	Management interface{}
	// ) The maximum number of pods per node in this node pool.
	// Note that this does not work on node pools which are "route-based" - that is, node
	// pools belonging to clusters that do not have IP Aliasing enabled.
	MaxPodsPerNode interface{}
	// The name of the node pool. If left blank, Terraform will
	// auto-generate a unique name.
	Name       interface{}
	NamePrefix interface{}
	// The node configuration of the pool. See
	// google_container_cluster for schema.
	NodeConfig interface{}
	// The number of nodes per instance group. This field can be used to
	// update the number of nodes per instance group but should not be used alongside `autoscaling`.
	NodeCount interface{}
	// The ID of the project in which to create the node pool. If blank,
	// the provider-configured project will be used.
	Project interface{}
	// The region in which the cluster resides (for
	// regional clusters). `zone` has been deprecated in favor of `location`.
	Region interface{}
	// The Kubernetes version for the nodes in this pool. Note that if this field
	// and `auto_upgrade` are both specified, they will fight each other for what the node version should
	// be, so setting both is highly discouraged. While a fuzzy version can be specified, it's
	// recommended that you specify explicit versions as Terraform will see spurious diffs
	// when fuzzy versions are used. See the `google_container_engine_versions` data source's
	// `version_prefix` field to approximate fuzzy versions in a Terraform-compatible way.
	Version interface{}
	// The zone in which the cluster resides. `zone`
	// has been deprecated in favor of `location`.
	Zone interface{}
}

Input properties used for looking up and filtering NodePool resources.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL