mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-05 17:52:38 +00:00
Add kubernetes dashboard addon (#464)
* Update google.golang.org/api/container/v1 * Add support for kubernetes_dashboard addon * Fix tab/spaces issue in string
This commit is contained in:
parent
fa439a5cb8
commit
475ddb1b5b
|
@ -224,6 +224,21 @@ func resourceContainerCluster() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"kubernetes_dashboard": {
|
||||||
|
Type: schema.TypeList,
|
||||||
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
|
MaxItems: 1,
|
||||||
|
Elem: &schema.Resource{
|
||||||
|
Schema: map[string]*schema.Schema{
|
||||||
|
"disabled": {
|
||||||
|
Type: schema.TypeBool,
|
||||||
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -380,6 +395,13 @@ func resourceContainerClusterCreate(d *schema.ResourceData, meta interface{}) er
|
||||||
Disabled: addon["disabled"].(bool),
|
Disabled: addon["disabled"].(bool),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := addonsConfig["kubernetes_dashboard"]; ok && len(v.([]interface{})) > 0 {
|
||||||
|
addon := v.([]interface{})[0].(map[string]interface{})
|
||||||
|
cluster.AddonsConfig.KubernetesDashboard = &container.KubernetesDashboard{
|
||||||
|
Disabled: addon["disabled"].(bool),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if v, ok := d.GetOk("node_config"); ok {
|
if v, ok := d.GetOk("node_config"); ok {
|
||||||
cluster.NodeConfig = expandNodeConfig(v)
|
cluster.NodeConfig = expandNodeConfig(v)
|
||||||
|
|
|
@ -50,6 +50,22 @@ func TestAccContainerCluster_withTimeout(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAccContainerCluster_withAddons(t *testing.T) {
|
||||||
|
resource.Test(t, resource.TestCase{
|
||||||
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
Providers: testAccProviders,
|
||||||
|
CheckDestroy: testAccCheckContainerClusterDestroy,
|
||||||
|
Steps: []resource.TestStep{
|
||||||
|
{
|
||||||
|
Config: testAccContainerCluster_withAddons,
|
||||||
|
Check: resource.ComposeTestCheckFunc(
|
||||||
|
testAccCheckContainerCluster(
|
||||||
|
"google_container_cluster.primary"),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
func TestAccContainerCluster_withMasterAuth(t *testing.T) {
|
func TestAccContainerCluster_withMasterAuth(t *testing.T) {
|
||||||
resource.Test(t, resource.TestCase{
|
resource.Test(t, resource.TestCase{
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
@ -462,15 +478,22 @@ func testAccCheckContainerCluster(n string) resource.TestCheckFunc {
|
||||||
}
|
}
|
||||||
clusterTests = append(clusterTests, clusterTestField{"additional_zones", additionalZones})
|
clusterTests = append(clusterTests, clusterTestField{"additional_zones", additionalZones})
|
||||||
|
|
||||||
// AddonsConfig is neither Required or Computed, so the API may return nil for it
|
// AddonsConfig is neither Required or Computed, so the API may return nil for it.
|
||||||
if cluster.AddonsConfig != nil {
|
httpLoadBalancingDisabled := false
|
||||||
if cluster.AddonsConfig.HttpLoadBalancing != nil {
|
if cluster.AddonsConfig != nil && cluster.AddonsConfig.HttpLoadBalancing != nil {
|
||||||
clusterTests = append(clusterTests, clusterTestField{"addons_config.0.http_load_balancing.0.disabled", strconv.FormatBool(cluster.AddonsConfig.HttpLoadBalancing.Disabled)})
|
httpLoadBalancingDisabled = cluster.AddonsConfig.HttpLoadBalancing.Disabled
|
||||||
}
|
|
||||||
if cluster.AddonsConfig.HorizontalPodAutoscaling != nil {
|
|
||||||
clusterTests = append(clusterTests, clusterTestField{"addons_config.0.horizontal_pod_autoscaling.0.disabled", strconv.FormatBool(cluster.AddonsConfig.HorizontalPodAutoscaling.Disabled)})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
horizontalPodAutoscalingDisabled := false
|
||||||
|
if cluster.AddonsConfig != nil && cluster.AddonsConfig.HorizontalPodAutoscaling != nil {
|
||||||
|
horizontalPodAutoscalingDisabled = cluster.AddonsConfig.HorizontalPodAutoscaling.Disabled
|
||||||
|
}
|
||||||
|
kubernetesDashboardDisabled := false
|
||||||
|
if cluster.AddonsConfig != nil && cluster.AddonsConfig.KubernetesDashboard != nil {
|
||||||
|
kubernetesDashboardDisabled = cluster.AddonsConfig.KubernetesDashboard.Disabled
|
||||||
|
}
|
||||||
|
clusterTests = append(clusterTests, clusterTestField{"addons_config.0.http_load_balancing.0.disabled", httpLoadBalancingDisabled})
|
||||||
|
clusterTests = append(clusterTests, clusterTestField{"addons_config.0.horizontal_pod_autoscaling.0.disabled", horizontalPodAutoscalingDisabled})
|
||||||
|
clusterTests = append(clusterTests, clusterTestField{"addons_config.0.kubernetes_dashboard.0.disabled", kubernetesDashboardDisabled})
|
||||||
|
|
||||||
for i, np := range cluster.NodePools {
|
for i, np := range cluster.NodePools {
|
||||||
prefix := fmt.Sprintf("node_pool.%d.", i)
|
prefix := fmt.Sprintf("node_pool.%d.", i)
|
||||||
|
@ -608,10 +631,17 @@ func checkMapMatch(attributes map[string]string, attr string, gcpMap map[string]
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkBoolMatch(attributes map[string]string, attr string, gcpBool bool) string {
|
func checkBoolMatch(attributes map[string]string, attr string, gcpBool bool) string {
|
||||||
tf, err := strconv.ParseBool(attributes[attr])
|
// Handle the case where an unset value defaults to false
|
||||||
if err != nil {
|
var tf bool
|
||||||
return fmt.Sprintf("Error converting attribute %s to boolean: value is %s", attr, attributes[attr])
|
if attributes[attr] == "" {
|
||||||
|
tf = false
|
||||||
|
} else {
|
||||||
|
tf, err = strconv.ParseBool(attributes[attr])
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Sprintf("Error converting attribute %s to boolean: value is %s", attr, attributes[attr])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if tf != gcpBool {
|
if tf != gcpBool {
|
||||||
return matchError(attr, tf, gcpBool)
|
return matchError(attr, tf, gcpBool)
|
||||||
}
|
}
|
||||||
|
@ -645,6 +675,18 @@ resource "google_container_cluster" "primary" {
|
||||||
}
|
}
|
||||||
}`, acctest.RandString(10))
|
}`, acctest.RandString(10))
|
||||||
|
|
||||||
|
var testAccContainerCluster_withAddons = fmt.Sprintf(`
|
||||||
|
resource "google_container_cluster" "primary" {
|
||||||
|
name = "cluster-test-%s"
|
||||||
|
zone = "us-central1-a"
|
||||||
|
initial_node_count = 3
|
||||||
|
|
||||||
|
addons_config {
|
||||||
|
http_load_balancing { disabled = true }
|
||||||
|
kubernetes_dashboard { disabled = true }
|
||||||
|
}
|
||||||
|
}`, acctest.RandString(10))
|
||||||
|
|
||||||
var testAccContainerCluster_withMasterAuth = fmt.Sprintf(`
|
var testAccContainerCluster_withMasterAuth = fmt.Sprintf(`
|
||||||
resource "google_container_cluster" "with_master_auth" {
|
resource "google_container_cluster" "with_master_auth" {
|
||||||
name = "cluster-test-%s"
|
name = "cluster-test-%s"
|
||||||
|
|
2918
vendor/google.golang.org/api/container/v1/container-api.json
generated
vendored
2918
vendor/google.golang.org/api/container/v1/container-api.json
generated
vendored
File diff suppressed because it is too large
Load Diff
271
vendor/google.golang.org/api/container/v1/container-gen.go
generated
vendored
271
vendor/google.golang.org/api/container/v1/container-gen.go
generated
vendored
|
@ -132,6 +132,42 @@ type ProjectsZonesOperationsService struct {
|
||||||
s *Service
|
s *Service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AcceleratorConfig: AcceleratorConfig represents a Hardware
|
||||||
|
// Accelerator request.
|
||||||
|
type AcceleratorConfig struct {
|
||||||
|
// AcceleratorCount: The number of the accelerator cards exposed to an
|
||||||
|
// instance.
|
||||||
|
AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
|
||||||
|
|
||||||
|
// AcceleratorType: The accelerator type resource name. List of
|
||||||
|
// supported accelerators
|
||||||
|
// [here](/compute/docs/gpus/#Introduction)
|
||||||
|
AcceleratorType string `json:"acceleratorType,omitempty"`
|
||||||
|
|
||||||
|
// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
|
||||||
|
// unconditionally include in API requests. By default, fields with
|
||||||
|
// empty values are omitted from API requests. However, any non-pointer,
|
||||||
|
// non-interface field appearing in ForceSendFields will be sent to the
|
||||||
|
// server regardless of whether the field is empty or not. This may be
|
||||||
|
// used to include empty fields in Patch requests.
|
||||||
|
ForceSendFields []string `json:"-"`
|
||||||
|
|
||||||
|
// NullFields is a list of field names (e.g. "AcceleratorCount") to
|
||||||
|
// include in API requests with the JSON null value. By default, fields
|
||||||
|
// with empty values are omitted from API requests. However, any field
|
||||||
|
// with an empty value appearing in NullFields will be sent to the
|
||||||
|
// server as null. It is an error if a field in this list has a
|
||||||
|
// non-empty value. This may be used to include null fields in Patch
|
||||||
|
// requests.
|
||||||
|
NullFields []string `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
|
||||||
|
type noMethod AcceleratorConfig
|
||||||
|
raw := noMethod(*s)
|
||||||
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
||||||
|
}
|
||||||
|
|
||||||
// AddonsConfig: Configuration for the addons that can be automatically
|
// AddonsConfig: Configuration for the addons that can be automatically
|
||||||
// spun up in the
|
// spun up in the
|
||||||
// cluster, enabling additional functionality.
|
// cluster, enabling additional functionality.
|
||||||
|
@ -149,6 +185,9 @@ type AddonsConfig struct {
|
||||||
// cluster.
|
// cluster.
|
||||||
HttpLoadBalancing *HttpLoadBalancing `json:"httpLoadBalancing,omitempty"`
|
HttpLoadBalancing *HttpLoadBalancing `json:"httpLoadBalancing,omitempty"`
|
||||||
|
|
||||||
|
// KubernetesDashboard: Configuration for the Kubernetes Dashboard.
|
||||||
|
KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty"`
|
||||||
|
|
||||||
// ForceSendFields is a list of field names (e.g.
|
// ForceSendFields is a list of field names (e.g.
|
||||||
// "HorizontalPodAutoscaling") to unconditionally include in API
|
// "HorizontalPodAutoscaling") to unconditionally include in API
|
||||||
// requests. By default, fields with empty values are omitted from API
|
// requests. By default, fields with empty values are omitted from API
|
||||||
|
@ -220,6 +259,38 @@ func (s *AutoUpgradeOptions) MarshalJSON() ([]byte, error) {
|
||||||
type CancelOperationRequest struct {
|
type CancelOperationRequest struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CidrBlock: CidrBlock contains an optional name and one CIDR block.
|
||||||
|
type CidrBlock struct {
|
||||||
|
// CidrBlock: cidr_block must be specified in CIDR notation.
|
||||||
|
CidrBlock string `json:"cidrBlock,omitempty"`
|
||||||
|
|
||||||
|
// DisplayName: display_name is an optional field for users to identify
|
||||||
|
// CIDR blocks.
|
||||||
|
DisplayName string `json:"displayName,omitempty"`
|
||||||
|
|
||||||
|
// ForceSendFields is a list of field names (e.g. "CidrBlock") to
|
||||||
|
// unconditionally include in API requests. By default, fields with
|
||||||
|
// empty values are omitted from API requests. However, any non-pointer,
|
||||||
|
// non-interface field appearing in ForceSendFields will be sent to the
|
||||||
|
// server regardless of whether the field is empty or not. This may be
|
||||||
|
// used to include empty fields in Patch requests.
|
||||||
|
ForceSendFields []string `json:"-"`
|
||||||
|
|
||||||
|
// NullFields is a list of field names (e.g. "CidrBlock") to include in
|
||||||
|
// API requests with the JSON null value. By default, fields with empty
|
||||||
|
// values are omitted from API requests. However, any field with an
|
||||||
|
// empty value appearing in NullFields will be sent to the server as
|
||||||
|
// null. It is an error if a field in this list has a non-empty value.
|
||||||
|
// This may be used to include null fields in Patch requests.
|
||||||
|
NullFields []string `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *CidrBlock) MarshalJSON() ([]byte, error) {
|
||||||
|
type noMethod CidrBlock
|
||||||
|
raw := noMethod(*s)
|
||||||
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
||||||
|
}
|
||||||
|
|
||||||
// ClientCertificateConfig: Configuration for client certificates on the
|
// ClientCertificateConfig: Configuration for client certificates on the
|
||||||
// cluster.
|
// cluster.
|
||||||
type ClientCertificateConfig struct {
|
type ClientCertificateConfig struct {
|
||||||
|
@ -379,6 +450,11 @@ type Cluster struct {
|
||||||
// endpoint.
|
// endpoint.
|
||||||
MasterAuth *MasterAuth `json:"masterAuth,omitempty"`
|
MasterAuth *MasterAuth `json:"masterAuth,omitempty"`
|
||||||
|
|
||||||
|
// MasterAuthorizedNetworksConfig: Master authorized networks is a Beta
|
||||||
|
// feature.
|
||||||
|
// The configuration options for master authorized networks feature.
|
||||||
|
MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"masterAuthorizedNetworksConfig,omitempty"`
|
||||||
|
|
||||||
// MonitoringService: The monitoring service the cluster should use to
|
// MonitoringService: The monitoring service the cluster should use to
|
||||||
// write metrics.
|
// write metrics.
|
||||||
// Currently available options:
|
// Currently available options:
|
||||||
|
@ -550,6 +626,12 @@ type ClusterUpdate struct {
|
||||||
// This list must always include the cluster's primary zone.
|
// This list must always include the cluster's primary zone.
|
||||||
DesiredLocations []string `json:"desiredLocations,omitempty"`
|
DesiredLocations []string `json:"desiredLocations,omitempty"`
|
||||||
|
|
||||||
|
// DesiredMasterAuthorizedNetworksConfig: Master authorized networks is
|
||||||
|
// a Beta feature.
|
||||||
|
// The desired configuration options for master authorized networks
|
||||||
|
// feature.
|
||||||
|
DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"desiredMasterAuthorizedNetworksConfig,omitempty"`
|
||||||
|
|
||||||
// DesiredMasterVersion: The Kubernetes version to change the master to.
|
// DesiredMasterVersion: The Kubernetes version to change the master to.
|
||||||
// The only valid value is the
|
// The only valid value is the
|
||||||
// latest supported version. Use "-" to have the server automatically
|
// latest supported version. Use "-" to have the server automatically
|
||||||
|
@ -768,28 +850,43 @@ func (s *HttpLoadBalancing) MarshalJSON() ([]byte, error) {
|
||||||
// IPAllocationPolicy: Configuration for controlling how IPs are
|
// IPAllocationPolicy: Configuration for controlling how IPs are
|
||||||
// allocated in the cluster.
|
// allocated in the cluster.
|
||||||
type IPAllocationPolicy struct {
|
type IPAllocationPolicy struct {
|
||||||
// ClusterIpv4Cidr: The IP address range for the cluster pod IPs. If
|
// ClusterIpv4Cidr: This field is deprecated, use
|
||||||
// this field is set, then
|
// cluster_ipv4_cidr_block.
|
||||||
|
ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
|
||||||
|
|
||||||
|
// ClusterIpv4CidrBlock: The IP address range for the cluster pod IPs.
|
||||||
|
// If this field is set, then
|
||||||
// `cluster.cluster_ipv4_cidr` must be left blank.
|
// `cluster.cluster_ipv4_cidr` must be left blank.
|
||||||
//
|
//
|
||||||
// This field is only applicable when `use_ip_aliases` is true.
|
// This field is only applicable when `use_ip_aliases` is true.
|
||||||
//
|
//
|
||||||
// Set to blank to have a range will be chosen with the default
|
// Set to blank to have a range chosen with the default size.
|
||||||
// size.
|
|
||||||
//
|
//
|
||||||
// Set to /netmask (e.g. `/14`) to have a range be chosen with a
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a
|
||||||
// specific
|
// specific
|
||||||
// netmask.
|
// netmask.
|
||||||
//
|
//
|
||||||
// Set to a
|
// Set to
|
||||||
|
// a
|
||||||
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
||||||
// no
|
//
|
||||||
// tation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
|
||||||
// (e.g.
|
// (e.g.
|
||||||
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
|
||||||
// range
|
// range
|
||||||
// to use.
|
// to use.
|
||||||
ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
|
ClusterIpv4CidrBlock string `json:"clusterIpv4CidrBlock,omitempty"`
|
||||||
|
|
||||||
|
// ClusterSecondaryRangeName: The name of the secondary range to be used
|
||||||
|
// for the cluster CIDR
|
||||||
|
// block. The secondary range will be used for pod IP
|
||||||
|
// addresses. This must be an existing secondary range associated
|
||||||
|
// with the cluster subnetwork.
|
||||||
|
//
|
||||||
|
// This field is only applicable with use_ip_aliases is true
|
||||||
|
// and
|
||||||
|
// create_subnetwork is false.
|
||||||
|
ClusterSecondaryRangeName string `json:"clusterSecondaryRangeName,omitempty"`
|
||||||
|
|
||||||
// CreateSubnetwork: Whether a new subnetwork will be created
|
// CreateSubnetwork: Whether a new subnetwork will be created
|
||||||
// automatically for the cluster.
|
// automatically for the cluster.
|
||||||
|
@ -797,54 +894,72 @@ type IPAllocationPolicy struct {
|
||||||
// This field is only applicable when `use_ip_aliases` is true.
|
// This field is only applicable when `use_ip_aliases` is true.
|
||||||
CreateSubnetwork bool `json:"createSubnetwork,omitempty"`
|
CreateSubnetwork bool `json:"createSubnetwork,omitempty"`
|
||||||
|
|
||||||
// NodeIpv4Cidr: The IP address range of the instance IPs in this
|
// NodeIpv4Cidr: This field is deprecated, use node_ipv4_cidr_block.
|
||||||
|
NodeIpv4Cidr string `json:"nodeIpv4Cidr,omitempty"`
|
||||||
|
|
||||||
|
// NodeIpv4CidrBlock: The IP address range of the instance IPs in this
|
||||||
// cluster.
|
// cluster.
|
||||||
//
|
//
|
||||||
// This is applicable only if `create_subnetwork` is true.
|
// This is applicable only if `create_subnetwork` is true.
|
||||||
//
|
//
|
||||||
// Set to blank to have a range will be chosen with the default
|
// Set to blank to have a range chosen with the default size.
|
||||||
// size.
|
|
||||||
//
|
//
|
||||||
// Set to /netmask (e.g. `/14`) to have a range be chosen with a
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a
|
||||||
// specific
|
// specific
|
||||||
// netmask.
|
// netmask.
|
||||||
//
|
//
|
||||||
// Set to a
|
// Set to
|
||||||
|
// a
|
||||||
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
||||||
// no
|
//
|
||||||
// tation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
|
||||||
// (e.g.
|
// (e.g.
|
||||||
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
|
||||||
// range
|
// range
|
||||||
// to use.
|
// to use.
|
||||||
NodeIpv4Cidr string `json:"nodeIpv4Cidr,omitempty"`
|
NodeIpv4CidrBlock string `json:"nodeIpv4CidrBlock,omitempty"`
|
||||||
|
|
||||||
// ServicesIpv4Cidr: The IP address range of the services IPs in this
|
// ServicesIpv4Cidr: This field is deprecated, use
|
||||||
// cluster. If blank, a range
|
// services_ipv4_cidr_block.
|
||||||
|
ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
|
||||||
|
|
||||||
|
// ServicesIpv4CidrBlock: The IP address range of the services IPs in
|
||||||
|
// this cluster. If blank, a range
|
||||||
// will be automatically chosen with the default size.
|
// will be automatically chosen with the default size.
|
||||||
//
|
//
|
||||||
// This field is only applicable when `use_ip_aliases` is true.
|
// This field is only applicable when `use_ip_aliases` is true.
|
||||||
//
|
//
|
||||||
// Set to blank to have a range will be chosen with the default
|
// Set to blank to have a range chosen with the default size.
|
||||||
// size.
|
|
||||||
//
|
//
|
||||||
// Set to /netmask (e.g. `/14`) to have a range be chosen with a
|
// Set to /netmask (e.g. `/14`) to have a range chosen with a
|
||||||
// specific
|
// specific
|
||||||
// netmask.
|
// netmask.
|
||||||
//
|
//
|
||||||
// Set to a
|
// Set to
|
||||||
|
// a
|
||||||
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
|
||||||
// no
|
//
|
||||||
// tation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
|
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
|
||||||
// (e.g.
|
// (e.g.
|
||||||
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
|
// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
|
||||||
// range
|
// range
|
||||||
// to use.
|
// to use.
|
||||||
ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
|
ServicesIpv4CidrBlock string `json:"servicesIpv4CidrBlock,omitempty"`
|
||||||
|
|
||||||
|
// ServicesSecondaryRangeName: The name of the secondary range to be
|
||||||
|
// used as for the services
|
||||||
|
// CIDR block. The secondary range will be used for service
|
||||||
|
// ClusterIPs. This must be an existing secondary range associated
|
||||||
|
// with the cluster subnetwork.
|
||||||
|
//
|
||||||
|
// This field is only applicable with use_ip_aliases is true
|
||||||
|
// and
|
||||||
|
// create_subnetwork is false.
|
||||||
|
ServicesSecondaryRangeName string `json:"servicesSecondaryRangeName,omitempty"`
|
||||||
|
|
||||||
// SubnetworkName: A custom subnetwork name to be used if
|
// SubnetworkName: A custom subnetwork name to be used if
|
||||||
// `create_subnetwork` is true. If
|
// `create_subnetwork` is true. If
|
||||||
// this field is empty, then an automatic name will choosen for the
|
// this field is empty, then an automatic name will be chosen for the
|
||||||
// new
|
// new
|
||||||
// subnetwork.
|
// subnetwork.
|
||||||
SubnetworkName string `json:"subnetworkName,omitempty"`
|
SubnetworkName string `json:"subnetworkName,omitempty"`
|
||||||
|
@ -877,6 +992,35 @@ func (s *IPAllocationPolicy) MarshalJSON() ([]byte, error) {
|
||||||
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// KubernetesDashboard: Configuration for the Kubernetes Dashboard.
|
||||||
|
type KubernetesDashboard struct {
|
||||||
|
// Disabled: Whether the Kubernetes Dashboard is enabled for this
|
||||||
|
// cluster.
|
||||||
|
Disabled bool `json:"disabled,omitempty"`
|
||||||
|
|
||||||
|
// ForceSendFields is a list of field names (e.g. "Disabled") to
|
||||||
|
// unconditionally include in API requests. By default, fields with
|
||||||
|
// empty values are omitted from API requests. However, any non-pointer,
|
||||||
|
// non-interface field appearing in ForceSendFields will be sent to the
|
||||||
|
// server regardless of whether the field is empty or not. This may be
|
||||||
|
// used to include empty fields in Patch requests.
|
||||||
|
ForceSendFields []string `json:"-"`
|
||||||
|
|
||||||
|
// NullFields is a list of field names (e.g. "Disabled") to include in
|
||||||
|
// API requests with the JSON null value. By default, fields with empty
|
||||||
|
// values are omitted from API requests. However, any field with an
|
||||||
|
// empty value appearing in NullFields will be sent to the server as
|
||||||
|
// null. It is an error if a field in this list has a non-empty value.
|
||||||
|
// This may be used to include null fields in Patch requests.
|
||||||
|
NullFields []string `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *KubernetesDashboard) MarshalJSON() ([]byte, error) {
|
||||||
|
type noMethod KubernetesDashboard
|
||||||
|
raw := noMethod(*s)
|
||||||
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
||||||
|
}
|
||||||
|
|
||||||
// LegacyAbac: Configuration for the legacy Attribute Based Access
|
// LegacyAbac: Configuration for the legacy Attribute Based Access
|
||||||
// Control authorization
|
// Control authorization
|
||||||
// mode.
|
// mode.
|
||||||
|
@ -1091,6 +1235,47 @@ func (s *MasterAuth) MarshalJSON() ([]byte, error) {
|
||||||
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MasterAuthorizedNetworksConfig: Master authorized networks is a Beta
|
||||||
|
// feature.
|
||||||
|
// Configuration options for the master authorized networks feature.
|
||||||
|
// Enabled
|
||||||
|
// master authorized networks will disallow all external traffic to
|
||||||
|
// access
|
||||||
|
// Kubernetes master through HTTPS except traffic from the given CIDR
|
||||||
|
// blocks,
|
||||||
|
// Google Compute Engine Public IPs and Google Prod IPs.
|
||||||
|
type MasterAuthorizedNetworksConfig struct {
|
||||||
|
// CidrBlocks: cidr_blocks define up to 10 external networks that could
|
||||||
|
// access
|
||||||
|
// Kubernetes master through HTTPS.
|
||||||
|
CidrBlocks []*CidrBlock `json:"cidrBlocks,omitempty"`
|
||||||
|
|
||||||
|
// Enabled: Whether or not master authorized networks is enabled.
|
||||||
|
Enabled bool `json:"enabled,omitempty"`
|
||||||
|
|
||||||
|
// ForceSendFields is a list of field names (e.g. "CidrBlocks") to
|
||||||
|
// unconditionally include in API requests. By default, fields with
|
||||||
|
// empty values are omitted from API requests. However, any non-pointer,
|
||||||
|
// non-interface field appearing in ForceSendFields will be sent to the
|
||||||
|
// server regardless of whether the field is empty or not. This may be
|
||||||
|
// used to include empty fields in Patch requests.
|
||||||
|
ForceSendFields []string `json:"-"`
|
||||||
|
|
||||||
|
// NullFields is a list of field names (e.g. "CidrBlocks") to include in
|
||||||
|
// API requests with the JSON null value. By default, fields with empty
|
||||||
|
// values are omitted from API requests. However, any field with an
|
||||||
|
// empty value appearing in NullFields will be sent to the server as
|
||||||
|
// null. It is an error if a field in this list has a non-empty value.
|
||||||
|
// This may be used to include null fields in Patch requests.
|
||||||
|
NullFields []string `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *MasterAuthorizedNetworksConfig) MarshalJSON() ([]byte, error) {
|
||||||
|
type noMethod MasterAuthorizedNetworksConfig
|
||||||
|
raw := noMethod(*s)
|
||||||
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
||||||
|
}
|
||||||
|
|
||||||
// NetworkPolicy: Configuration options for the NetworkPolicy
|
// NetworkPolicy: Configuration options for the NetworkPolicy
|
||||||
// feature.
|
// feature.
|
||||||
// https://kubernetes.io/docs/concepts/services-networking/netwo
|
// https://kubernetes.io/docs/concepts/services-networking/netwo
|
||||||
|
@ -1102,7 +1287,7 @@ type NetworkPolicy struct {
|
||||||
// Provider: The selected network policy provider.
|
// Provider: The selected network policy provider.
|
||||||
//
|
//
|
||||||
// Possible values:
|
// Possible values:
|
||||||
// "UNKNOWN" - Not set
|
// "PROVIDER_UNSPECIFIED" - Not set
|
||||||
// "CALICO" - Tigera (Calico Felix).
|
// "CALICO" - Tigera (Calico Felix).
|
||||||
Provider string `json:"provider,omitempty"`
|
Provider string `json:"provider,omitempty"`
|
||||||
|
|
||||||
|
@ -1131,6 +1316,13 @@ func (s *NetworkPolicy) MarshalJSON() ([]byte, error) {
|
||||||
|
|
||||||
// NodeConfig: Parameters that describe the nodes in a cluster.
|
// NodeConfig: Parameters that describe the nodes in a cluster.
|
||||||
type NodeConfig struct {
|
type NodeConfig struct {
|
||||||
|
// Accelerators: A list of hardware accelerators to be attached to each
|
||||||
|
// node.
|
||||||
|
// See https://cloud.google.com/compute/docs/gpus for more information
|
||||||
|
// about
|
||||||
|
// support for GPUs.
|
||||||
|
Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
|
||||||
|
|
||||||
// DiskSizeGb: Size of the disk attached to each node, specified in
|
// DiskSizeGb: Size of the disk attached to each node, specified in
|
||||||
// GB.
|
// GB.
|
||||||
// The smallest allowed disk size is 10GB.
|
// The smallest allowed disk size is 10GB.
|
||||||
|
@ -1154,7 +1346,8 @@ type NodeConfig struct {
|
||||||
// and conflicts should be avoided.
|
// and conflicts should be avoided.
|
||||||
// For more information, including usage and the valid values,
|
// For more information, including usage and the valid values,
|
||||||
// see:
|
// see:
|
||||||
// http://kubernetes.io/v1.1/docs/user-guide/labels.html
|
// https://kubernetes.io/docs/concepts/overview/working-with-objects
|
||||||
|
// /labels/
|
||||||
Labels map[string]string `json:"labels,omitempty"`
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
|
|
||||||
// LocalSsdCount: The number of local SSD disks to be attached to the
|
// LocalSsdCount: The number of local SSD disks to be attached to the
|
||||||
|
@ -1246,7 +1439,7 @@ type NodeConfig struct {
|
||||||
// must comply with RFC1035.
|
// must comply with RFC1035.
|
||||||
Tags []string `json:"tags,omitempty"`
|
Tags []string `json:"tags,omitempty"`
|
||||||
|
|
||||||
// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
|
// ForceSendFields is a list of field names (e.g. "Accelerators") to
|
||||||
// unconditionally include in API requests. By default, fields with
|
// unconditionally include in API requests. By default, fields with
|
||||||
// empty values are omitted from API requests. However, any non-pointer,
|
// empty values are omitted from API requests. However, any non-pointer,
|
||||||
// non-interface field appearing in ForceSendFields will be sent to the
|
// non-interface field appearing in ForceSendFields will be sent to the
|
||||||
|
@ -1254,10 +1447,10 @@ type NodeConfig struct {
|
||||||
// used to include empty fields in Patch requests.
|
// used to include empty fields in Patch requests.
|
||||||
ForceSendFields []string `json:"-"`
|
ForceSendFields []string `json:"-"`
|
||||||
|
|
||||||
// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
|
// NullFields is a list of field names (e.g. "Accelerators") to include
|
||||||
// API requests with the JSON null value. By default, fields with empty
|
// in API requests with the JSON null value. By default, fields with
|
||||||
// values are omitted from API requests. However, any field with an
|
// empty values are omitted from API requests. However, any field with
|
||||||
// empty value appearing in NullFields will be sent to the server as
|
// an empty value appearing in NullFields will be sent to the server as
|
||||||
// null. It is an error if a field in this list has a non-empty value.
|
// null. It is an error if a field in this list has a non-empty value.
|
||||||
// This may be used to include null fields in Patch requests.
|
// This may be used to include null fields in Patch requests.
|
||||||
NullFields []string `json:"-"`
|
NullFields []string `json:"-"`
|
||||||
|
@ -1468,6 +1661,11 @@ type Operation struct {
|
||||||
// Detail: Detailed operation progress, if available.
|
// Detail: Detailed operation progress, if available.
|
||||||
Detail string `json:"detail,omitempty"`
|
Detail string `json:"detail,omitempty"`
|
||||||
|
|
||||||
|
// EndTime: [Output only] The time the operation completed,
|
||||||
|
// in
|
||||||
|
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
||||||
|
EndTime string `json:"endTime,omitempty"`
|
||||||
|
|
||||||
// Name: The server-assigned ID for the operation.
|
// Name: The server-assigned ID for the operation.
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
|
|
||||||
|
@ -1495,6 +1693,11 @@ type Operation struct {
|
||||||
// SelfLink: Server-defined URL for the resource.
|
// SelfLink: Server-defined URL for the resource.
|
||||||
SelfLink string `json:"selfLink,omitempty"`
|
SelfLink string `json:"selfLink,omitempty"`
|
||||||
|
|
||||||
|
// StartTime: [Output only] The time the operation started,
|
||||||
|
// in
|
||||||
|
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
|
||||||
|
StartTime string `json:"startTime,omitempty"`
|
||||||
|
|
||||||
// Status: The current status of the operation.
|
// Status: The current status of the operation.
|
||||||
//
|
//
|
||||||
// Possible values:
|
// Possible values:
|
||||||
|
|
6
vendor/vendor.json
vendored
6
vendor/vendor.json
vendored
|
@ -888,10 +888,10 @@
|
||||||
"revisionTime": "2017-09-27T00:04:17Z"
|
"revisionTime": "2017-09-27T00:04:17Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "Ny63yO2/yvMFQltnIXU3gzim69M=",
|
"checksumSHA1": "9DJNWrpYeGBJXNN4lb9ad3/q6L0=",
|
||||||
"path": "google.golang.org/api/container/v1",
|
"path": "google.golang.org/api/container/v1",
|
||||||
"revision": "66dba45b06824cbfe030e696b156d562994531e1",
|
"revision": "654f863362977d69086620b5f72f13e911da2410",
|
||||||
"revisionTime": "2017-07-22T12:18:25Z"
|
"revisionTime": "2017-09-14T00:03:44Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "wv8+a9dOWrdJEIt1mva9qLlTSfo=",
|
"checksumSHA1": "wv8+a9dOWrdJEIt1mva9qLlTSfo=",
|
||||||
|
|
|
@ -164,6 +164,8 @@ which the cluster's instances are launched
|
||||||
* `horizontal_pod_autoscaling` - (Optional) The status of the Horizontal Pod
|
* `horizontal_pod_autoscaling` - (Optional) The status of the Horizontal Pod
|
||||||
Autoscaling addon. It is enabled by default; set `disabled = true` to
|
Autoscaling addon. It is enabled by default; set `disabled = true` to
|
||||||
disable.
|
disable.
|
||||||
|
* `kubernetes_dashboard` - (Optional) The status of the Kubernetes Dashboard
|
||||||
|
add-on. It is enabled by default; set `disabled = true` to disable.
|
||||||
|
|
||||||
This example `addons_config` disables both addons:
|
This example `addons_config` disables both addons:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user