From b3d65ffce0ee91745a4acb0597690318d6a0292c Mon Sep 17 00:00:00 2001 From: eric-hole Date: Sun, 15 Mar 2020 11:45:51 -0700 Subject: [PATCH] Adds a gce-service-account flag so you BYO service-account Generated code and some cleanup Not sure where that code went Tests for service account fixes case on gceserviceaccount --- cmd/kops/create_cluster.go | 15 +- docs/cli/kops_create_cluster.md | 1 + docs/releases/1.18-NOTES.md | 2 + k8s/crds/kops.k8s.io_clusters.yaml | 4 + pkg/apis/kops/cluster.go | 2 + .../kops/v1alpha1/zz_generated.conversion.go | 5064 +++++++++++++++++ pkg/apis/kops/v1alpha2/cluster.go | 2 + .../kops/v1alpha2/zz_generated.conversion.go | 2 + .../kops/v1alpha2/zz_generated.deepcopy.go | 5 + pkg/apis/kops/zz_generated.deepcopy.go | 5 + pkg/model/gcemodel/autoscalinggroup.go | 5 +- .../gce_byo_sa/expected-v1alpha2.yaml | 153 + .../create_cluster/gce_byo_sa/options.yaml | 9 + .../ha_gce/expected-v1alpha2.yaml | 1 + .../update_cluster/ha_gce/kubernetes.tf | 16 - upup/pkg/fi/cloudup/gcetasks/instance.go | 32 +- .../fi/cloudup/gcetasks/instancetemplate.go | 18 +- 17 files changed, 5294 insertions(+), 42 deletions(-) create mode 100644 pkg/apis/kops/v1alpha1/zz_generated.conversion.go create mode 100644 tests/integration/create_cluster/gce_byo_sa/expected-v1alpha2.yaml create mode 100644 tests/integration/create_cluster/gce_byo_sa/options.yaml diff --git a/cmd/kops/create_cluster.go b/cmd/kops/create_cluster.go index 38437b5c63..823f030a01 100644 --- a/cmd/kops/create_cluster.go +++ b/cmd/kops/create_cluster.go @@ -161,6 +161,9 @@ type CreateClusterOptions struct { // OpenstackLBOctavia is boolean value should we use octavia or old loadbalancer api OpenstackLBOctavia bool + // GCEServiceAccount specifies the service account with which the GCE VM runs + GCEServiceAccount string + // ConfigBase is the location where we will store the configuration, it defaults to the state store ConfigBase string @@ -298,7 +301,6 @@ func NewCmdCreateCluster(f *util.Factory, out io.Writer) *cobra.Command { cmd.Flags().StringSliceVar(&options.Zones, "zones", options.Zones, "Zones in which to run the cluster") cmd.Flags().StringSliceVar(&options.MasterZones, "master-zones", options.MasterZones, "Zones in which to run masters (must be an odd number)") - cmd.Flags().StringVar(&options.Project, "project", options.Project, "Project to use (must be set on GCE)") cmd.Flags().StringVar(&options.KubernetesVersion, "kubernetes-version", options.KubernetesVersion, "Version of kubernetes to run (defaults to version in channel)") cmd.Flags().StringVar(&options.ContainerRuntime, "container-runtime", options.ContainerRuntime, "Container runtime to use: containerd, docker") @@ -373,6 +375,10 @@ func NewCmdCreateCluster(f *util.Factory, out io.Writer) *cobra.Command { cmd.Flags().StringSliceVar(&options.Overrides, "override", options.Overrides, "Directly configure values in the spec") } + // GCE flags + cmd.Flags().StringVar(&options.Project, "project", options.Project, "Project to use (must be set on GCE)") + cmd.Flags().StringVar(&options.GCEServiceAccount, "gce-service-account", options.GCEServiceAccount, "Service account with which the GCE VM runs. Warning: if not set, VMs will run as default compute service account.") + if featureflag.VSphereCloudProvider.Enabled() { // vSphere flags cmd.Flags().StringVar(&options.VSphereServer, "vsphere-server", options.VSphereServer, "vsphere-server is required for vSphere. Set vCenter URL Ex: 10.192.10.30 or myvcenter.io (without https://)") @@ -988,6 +994,13 @@ func RunCreateCluster(f *util.Factory, out io.Writer, c *CreateClusterOptions) e } cluster.Spec.Project = project } + if c.GCEServiceAccount != "" { + klog.Infof("using GCE service account: %v", c.GCEServiceAccount) + cluster.Spec.GCEServiceAccount = fi.String(c.GCEServiceAccount) + } else { + klog.Warning("using GCE default service account") + cluster.Spec.GCEServiceAccount = fi.String("default") + } } if c.KubernetesVersion != "" { diff --git a/docs/cli/kops_create_cluster.md b/docs/cli/kops_create_cluster.md index 6c02e8b00e..b0d4ed5631 100644 --- a/docs/cli/kops_create_cluster.md +++ b/docs/cli/kops_create_cluster.md @@ -81,6 +81,7 @@ kops create cluster [flags] --dry-run If true, only print the object that would be sent, without sending it. This flag can be used to create a cluster YAML or JSON manifest. --encrypt-etcd-storage Generate key in aws kms and use it for encrypt etcd volumes --etcd-storage-type string The default storage type for etc members + --gce-service-account string Service account with which the GCE VM runs. Warning: if not set, VMs will run as default compute service account. -h, --help help for cluster --image string Image to use for all instances. --kubernetes-version string Version of kubernetes to run (defaults to version in channel) diff --git a/docs/releases/1.18-NOTES.md b/docs/releases/1.18-NOTES.md index 870c6c5394..2232909324 100644 --- a/docs/releases/1.18-NOTES.md +++ b/docs/releases/1.18-NOTES.md @@ -12,6 +12,8 @@ * New clusters in GCE are configured to run the [metadata-proxy](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metadata-proxy) by default. The proxy runs as a DaemonSet and lands on nodes with the nodeLabel `cloud.google.com/metadata-proxy-ready: "true"`. If you want to enable metadata-proxy on an existing cluster/instance group, add that nodeLabel to your instancegroup specs (`kops edit ig ...`) and run `kops update cluster`. When the changes are applied, the proxy will roll out to those targeted nodes. +* GCE has a new flag: `--gce-service-account`. This takes the email of an existing GCP service account and launches the instances with it. This setting applies to the whole cluster (ie: it is not currently designed to support Instance Groups with different service accounts). If you do not specify a service account during cluster creation, the default compute service account will be used which matches the prior behavior. + # Breaking changes * Terraform users on AWS may need to rename some resources in their state file in order to prepare for Terraform 0.12 support. See Required Actions below. diff --git a/k8s/crds/kops.k8s.io_clusters.yaml b/k8s/crds/kops.k8s.io_clusters.yaml index 9a1a66792c..cb48dc2a99 100644 --- a/k8s/crds/kops.k8s.io_clusters.yaml +++ b/k8s/crds/kops.k8s.io_clusters.yaml @@ -738,6 +738,10 @@ spec: type: array type: object type: array + gceServiceAccount: + description: gceServiceAccount specifies the service account with which + the GCE VM runs + type: string gossipConfig: description: GossipConfig for the cluster assuming the use of gossip DNS diff --git a/pkg/apis/kops/cluster.go b/pkg/apis/kops/cluster.go index 6bfeed8622..5896b2c86f 100644 --- a/pkg/apis/kops/cluster.go +++ b/pkg/apis/kops/cluster.go @@ -191,6 +191,8 @@ type ClusterSpec struct { SysctlParameters []string `json:"sysctlParameters,omitempty"` // RollingUpdate defines the default rolling-update settings for instance groups RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"` + // GCEServiceAccount specifies the service account with which the GCE VM runs + GCEServiceAccount string `json:"gceServiceAccount,omitempty"` } // NodeAuthorizationSpec is used to node authorization diff --git a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go new file mode 100644 index 0000000000..2dccee368f --- /dev/null +++ b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go @@ -0,0 +1,5064 @@ +// +build !ignore_autogenerated + +/* +Copyright 2020 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + kops "k8s.io/kops/pkg/apis/kops" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*AccessSpec)(nil), (*kops.AccessSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AccessSpec_To_kops_AccessSpec(a.(*AccessSpec), b.(*kops.AccessSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AccessSpec)(nil), (*AccessSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AccessSpec_To_v1alpha1_AccessSpec(a.(*kops.AccessSpec), b.(*AccessSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AddonSpec)(nil), (*kops.AddonSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AddonSpec_To_kops_AddonSpec(a.(*AddonSpec), b.(*kops.AddonSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AddonSpec)(nil), (*AddonSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AddonSpec_To_v1alpha1_AddonSpec(a.(*kops.AddonSpec), b.(*AddonSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AlwaysAllowAuthorizationSpec)(nil), (*kops.AlwaysAllowAuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AlwaysAllowAuthorizationSpec_To_kops_AlwaysAllowAuthorizationSpec(a.(*AlwaysAllowAuthorizationSpec), b.(*kops.AlwaysAllowAuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AlwaysAllowAuthorizationSpec)(nil), (*AlwaysAllowAuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AlwaysAllowAuthorizationSpec_To_v1alpha1_AlwaysAllowAuthorizationSpec(a.(*kops.AlwaysAllowAuthorizationSpec), b.(*AlwaysAllowAuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AmazonVPCNetworkingSpec)(nil), (*kops.AmazonVPCNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AmazonVPCNetworkingSpec_To_kops_AmazonVPCNetworkingSpec(a.(*AmazonVPCNetworkingSpec), b.(*kops.AmazonVPCNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AmazonVPCNetworkingSpec)(nil), (*AmazonVPCNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AmazonVPCNetworkingSpec_To_v1alpha1_AmazonVPCNetworkingSpec(a.(*kops.AmazonVPCNetworkingSpec), b.(*AmazonVPCNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*Assets)(nil), (*kops.Assets)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_Assets_To_kops_Assets(a.(*Assets), b.(*kops.Assets), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.Assets)(nil), (*Assets)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_Assets_To_v1alpha1_Assets(a.(*kops.Assets), b.(*Assets), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AuthenticationSpec)(nil), (*kops.AuthenticationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AuthenticationSpec_To_kops_AuthenticationSpec(a.(*AuthenticationSpec), b.(*kops.AuthenticationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AuthenticationSpec)(nil), (*AuthenticationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AuthenticationSpec_To_v1alpha1_AuthenticationSpec(a.(*kops.AuthenticationSpec), b.(*AuthenticationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AuthorizationSpec)(nil), (*kops.AuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AuthorizationSpec_To_kops_AuthorizationSpec(a.(*AuthorizationSpec), b.(*kops.AuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AuthorizationSpec)(nil), (*AuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AuthorizationSpec_To_v1alpha1_AuthorizationSpec(a.(*kops.AuthorizationSpec), b.(*AuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AwsAuthenticationSpec)(nil), (*kops.AwsAuthenticationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_AwsAuthenticationSpec_To_kops_AwsAuthenticationSpec(a.(*AwsAuthenticationSpec), b.(*kops.AwsAuthenticationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.AwsAuthenticationSpec)(nil), (*AwsAuthenticationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec(a.(*kops.AwsAuthenticationSpec), b.(*AwsAuthenticationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CNINetworkingSpec)(nil), (*kops.CNINetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(a.(*CNINetworkingSpec), b.(*kops.CNINetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.CNINetworkingSpec)(nil), (*CNINetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(a.(*kops.CNINetworkingSpec), b.(*CNINetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CalicoNetworkingSpec)(nil), (*kops.CalicoNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(a.(*CalicoNetworkingSpec), b.(*kops.CalicoNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.CalicoNetworkingSpec)(nil), (*CalicoNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec(a.(*kops.CalicoNetworkingSpec), b.(*CalicoNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CanalNetworkingSpec)(nil), (*kops.CanalNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(a.(*CanalNetworkingSpec), b.(*kops.CanalNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.CanalNetworkingSpec)(nil), (*CanalNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec(a.(*kops.CanalNetworkingSpec), b.(*CanalNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CiliumNetworkingSpec)(nil), (*kops.CiliumNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CiliumNetworkingSpec_To_kops_CiliumNetworkingSpec(a.(*CiliumNetworkingSpec), b.(*kops.CiliumNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.CiliumNetworkingSpec)(nil), (*CiliumNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_CiliumNetworkingSpec_To_v1alpha1_CiliumNetworkingSpec(a.(*kops.CiliumNetworkingSpec), b.(*CiliumNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ClassicNetworkingSpec)(nil), (*kops.ClassicNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ClassicNetworkingSpec_To_kops_ClassicNetworkingSpec(a.(*ClassicNetworkingSpec), b.(*kops.ClassicNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ClassicNetworkingSpec)(nil), (*ClassicNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ClassicNetworkingSpec_To_v1alpha1_ClassicNetworkingSpec(a.(*kops.ClassicNetworkingSpec), b.(*ClassicNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CloudConfiguration)(nil), (*kops.CloudConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CloudConfiguration_To_kops_CloudConfiguration(a.(*CloudConfiguration), b.(*kops.CloudConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.CloudConfiguration)(nil), (*CloudConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration(a.(*kops.CloudConfiguration), b.(*CloudConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*CloudControllerManagerConfig)(nil), (*kops.CloudControllerManagerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_CloudControllerManagerConfig_To_kops_CloudControllerManagerConfig(a.(*CloudControllerManagerConfig), b.(*kops.CloudControllerManagerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.CloudControllerManagerConfig)(nil), (*CloudControllerManagerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_CloudControllerManagerConfig_To_v1alpha1_CloudControllerManagerConfig(a.(*kops.CloudControllerManagerConfig), b.(*CloudControllerManagerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*kops.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_Cluster_To_kops_Cluster(a.(*Cluster), b.(*kops.Cluster), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_Cluster_To_v1alpha1_Cluster(a.(*kops.Cluster), b.(*Cluster), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ClusterList)(nil), (*kops.ClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ClusterList_To_kops_ClusterList(a.(*ClusterList), b.(*kops.ClusterList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ClusterList)(nil), (*ClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ClusterList_To_v1alpha1_ClusterList(a.(*kops.ClusterList), b.(*ClusterList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ClusterSpec)(nil), (*kops.ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ClusterSpec_To_kops_ClusterSpec(a.(*ClusterSpec), b.(*kops.ClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ClusterSpec)(nil), (*ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ClusterSpec_To_v1alpha1_ClusterSpec(a.(*kops.ClusterSpec), b.(*ClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ContainerdConfig)(nil), (*kops.ContainerdConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ContainerdConfig_To_kops_ContainerdConfig(a.(*ContainerdConfig), b.(*kops.ContainerdConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ContainerdConfig)(nil), (*ContainerdConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ContainerdConfig_To_v1alpha1_ContainerdConfig(a.(*kops.ContainerdConfig), b.(*ContainerdConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*DNSAccessSpec)(nil), (*kops.DNSAccessSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_DNSAccessSpec_To_kops_DNSAccessSpec(a.(*DNSAccessSpec), b.(*kops.DNSAccessSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.DNSAccessSpec)(nil), (*DNSAccessSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_DNSAccessSpec_To_v1alpha1_DNSAccessSpec(a.(*kops.DNSAccessSpec), b.(*DNSAccessSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*DNSControllerGossipConfig)(nil), (*kops.DNSControllerGossipConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig(a.(*DNSControllerGossipConfig), b.(*kops.DNSControllerGossipConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.DNSControllerGossipConfig)(nil), (*DNSControllerGossipConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig(a.(*kops.DNSControllerGossipConfig), b.(*DNSControllerGossipConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*DNSSpec)(nil), (*kops.DNSSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_DNSSpec_To_kops_DNSSpec(a.(*DNSSpec), b.(*kops.DNSSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.DNSSpec)(nil), (*DNSSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_DNSSpec_To_v1alpha1_DNSSpec(a.(*kops.DNSSpec), b.(*DNSSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*DockerConfig)(nil), (*kops.DockerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_DockerConfig_To_kops_DockerConfig(a.(*DockerConfig), b.(*kops.DockerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.DockerConfig)(nil), (*DockerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_DockerConfig_To_v1alpha1_DockerConfig(a.(*kops.DockerConfig), b.(*DockerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EgressProxySpec)(nil), (*kops.EgressProxySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(a.(*EgressProxySpec), b.(*kops.EgressProxySpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.EgressProxySpec)(nil), (*EgressProxySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EgressProxySpec_To_v1alpha1_EgressProxySpec(a.(*kops.EgressProxySpec), b.(*EgressProxySpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EnvVar)(nil), (*kops.EnvVar)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EnvVar_To_kops_EnvVar(a.(*EnvVar), b.(*kops.EnvVar), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.EnvVar)(nil), (*EnvVar)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EnvVar_To_v1alpha1_EnvVar(a.(*kops.EnvVar), b.(*EnvVar), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EtcdBackupSpec)(nil), (*kops.EtcdBackupSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EtcdBackupSpec_To_kops_EtcdBackupSpec(a.(*EtcdBackupSpec), b.(*kops.EtcdBackupSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.EtcdBackupSpec)(nil), (*EtcdBackupSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EtcdBackupSpec_To_v1alpha1_EtcdBackupSpec(a.(*kops.EtcdBackupSpec), b.(*EtcdBackupSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EtcdClusterSpec)(nil), (*kops.EtcdClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EtcdClusterSpec_To_kops_EtcdClusterSpec(a.(*EtcdClusterSpec), b.(*kops.EtcdClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.EtcdClusterSpec)(nil), (*EtcdClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EtcdClusterSpec_To_v1alpha1_EtcdClusterSpec(a.(*kops.EtcdClusterSpec), b.(*EtcdClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EtcdManagerSpec)(nil), (*kops.EtcdManagerSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EtcdManagerSpec_To_kops_EtcdManagerSpec(a.(*EtcdManagerSpec), b.(*kops.EtcdManagerSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.EtcdManagerSpec)(nil), (*EtcdManagerSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EtcdManagerSpec_To_v1alpha1_EtcdManagerSpec(a.(*kops.EtcdManagerSpec), b.(*EtcdManagerSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*EtcdMemberSpec)(nil), (*kops.EtcdMemberSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EtcdMemberSpec_To_kops_EtcdMemberSpec(a.(*EtcdMemberSpec), b.(*kops.EtcdMemberSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.EtcdMemberSpec)(nil), (*EtcdMemberSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EtcdMemberSpec_To_v1alpha1_EtcdMemberSpec(a.(*kops.EtcdMemberSpec), b.(*EtcdMemberSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExecContainerAction)(nil), (*kops.ExecContainerAction)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ExecContainerAction_To_kops_ExecContainerAction(a.(*ExecContainerAction), b.(*kops.ExecContainerAction), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ExecContainerAction)(nil), (*ExecContainerAction)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ExecContainerAction_To_v1alpha1_ExecContainerAction(a.(*kops.ExecContainerAction), b.(*ExecContainerAction), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExternalDNSConfig)(nil), (*kops.ExternalDNSConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ExternalDNSConfig_To_kops_ExternalDNSConfig(a.(*ExternalDNSConfig), b.(*kops.ExternalDNSConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ExternalDNSConfig)(nil), (*ExternalDNSConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ExternalDNSConfig_To_v1alpha1_ExternalDNSConfig(a.(*kops.ExternalDNSConfig), b.(*ExternalDNSConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExternalNetworkingSpec)(nil), (*kops.ExternalNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ExternalNetworkingSpec_To_kops_ExternalNetworkingSpec(a.(*ExternalNetworkingSpec), b.(*kops.ExternalNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.ExternalNetworkingSpec)(nil), (*ExternalNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec(a.(*kops.ExternalNetworkingSpec), b.(*ExternalNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*FileAssetSpec)(nil), (*kops.FileAssetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec(a.(*FileAssetSpec), b.(*kops.FileAssetSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.FileAssetSpec)(nil), (*FileAssetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec(a.(*kops.FileAssetSpec), b.(*FileAssetSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*FlannelNetworkingSpec)(nil), (*kops.FlannelNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_FlannelNetworkingSpec_To_kops_FlannelNetworkingSpec(a.(*FlannelNetworkingSpec), b.(*kops.FlannelNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.FlannelNetworkingSpec)(nil), (*FlannelNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec(a.(*kops.FlannelNetworkingSpec), b.(*FlannelNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*GCENetworkingSpec)(nil), (*kops.GCENetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_GCENetworkingSpec_To_kops_GCENetworkingSpec(a.(*GCENetworkingSpec), b.(*kops.GCENetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.GCENetworkingSpec)(nil), (*GCENetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_GCENetworkingSpec_To_v1alpha1_GCENetworkingSpec(a.(*kops.GCENetworkingSpec), b.(*GCENetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*GossipConfig)(nil), (*kops.GossipConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_GossipConfig_To_kops_GossipConfig(a.(*GossipConfig), b.(*kops.GossipConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.GossipConfig)(nil), (*GossipConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_GossipConfig_To_v1alpha1_GossipConfig(a.(*kops.GossipConfig), b.(*GossipConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*HTTPProxy)(nil), (*kops.HTTPProxy)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_HTTPProxy_To_kops_HTTPProxy(a.(*HTTPProxy), b.(*kops.HTTPProxy), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.HTTPProxy)(nil), (*HTTPProxy)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_HTTPProxy_To_v1alpha1_HTTPProxy(a.(*kops.HTTPProxy), b.(*HTTPProxy), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*HookSpec)(nil), (*kops.HookSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_HookSpec_To_kops_HookSpec(a.(*HookSpec), b.(*kops.HookSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.HookSpec)(nil), (*HookSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_HookSpec_To_v1alpha1_HookSpec(a.(*kops.HookSpec), b.(*HookSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IAMProfileSpec)(nil), (*kops.IAMProfileSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_IAMProfileSpec_To_kops_IAMProfileSpec(a.(*IAMProfileSpec), b.(*kops.IAMProfileSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.IAMProfileSpec)(nil), (*IAMProfileSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_IAMProfileSpec_To_v1alpha1_IAMProfileSpec(a.(*kops.IAMProfileSpec), b.(*IAMProfileSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IAMSpec)(nil), (*kops.IAMSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_IAMSpec_To_kops_IAMSpec(a.(*IAMSpec), b.(*kops.IAMSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.IAMSpec)(nil), (*IAMSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_IAMSpec_To_v1alpha1_IAMSpec(a.(*kops.IAMSpec), b.(*IAMSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*InstanceGroup)(nil), (*kops.InstanceGroup)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(a.(*InstanceGroup), b.(*kops.InstanceGroup), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.InstanceGroup)(nil), (*InstanceGroup)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(a.(*kops.InstanceGroup), b.(*InstanceGroup), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*InstanceGroupList)(nil), (*kops.InstanceGroupList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList(a.(*InstanceGroupList), b.(*kops.InstanceGroupList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.InstanceGroupList)(nil), (*InstanceGroupList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_InstanceGroupList_To_v1alpha1_InstanceGroupList(a.(*kops.InstanceGroupList), b.(*InstanceGroupList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*InstanceGroupSpec)(nil), (*kops.InstanceGroupSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_InstanceGroupSpec_To_kops_InstanceGroupSpec(a.(*InstanceGroupSpec), b.(*kops.InstanceGroupSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.InstanceGroupSpec)(nil), (*InstanceGroupSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_InstanceGroupSpec_To_v1alpha1_InstanceGroupSpec(a.(*kops.InstanceGroupSpec), b.(*InstanceGroupSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KopeioAuthenticationSpec)(nil), (*kops.KopeioAuthenticationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KopeioAuthenticationSpec_To_kops_KopeioAuthenticationSpec(a.(*KopeioAuthenticationSpec), b.(*kops.KopeioAuthenticationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KopeioAuthenticationSpec)(nil), (*KopeioAuthenticationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KopeioAuthenticationSpec_To_v1alpha1_KopeioAuthenticationSpec(a.(*kops.KopeioAuthenticationSpec), b.(*KopeioAuthenticationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KopeioNetworkingSpec)(nil), (*kops.KopeioNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KopeioNetworkingSpec_To_kops_KopeioNetworkingSpec(a.(*KopeioNetworkingSpec), b.(*kops.KopeioNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KopeioNetworkingSpec)(nil), (*KopeioNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KopeioNetworkingSpec_To_v1alpha1_KopeioNetworkingSpec(a.(*kops.KopeioNetworkingSpec), b.(*KopeioNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubeAPIServerConfig)(nil), (*kops.KubeAPIServerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(a.(*KubeAPIServerConfig), b.(*kops.KubeAPIServerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubeAPIServerConfig)(nil), (*KubeAPIServerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(a.(*kops.KubeAPIServerConfig), b.(*KubeAPIServerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubeControllerManagerConfig)(nil), (*kops.KubeControllerManagerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubeControllerManagerConfig_To_kops_KubeControllerManagerConfig(a.(*KubeControllerManagerConfig), b.(*kops.KubeControllerManagerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubeControllerManagerConfig)(nil), (*KubeControllerManagerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubeControllerManagerConfig_To_v1alpha1_KubeControllerManagerConfig(a.(*kops.KubeControllerManagerConfig), b.(*KubeControllerManagerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubeDNSConfig)(nil), (*kops.KubeDNSConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubeDNSConfig_To_kops_KubeDNSConfig(a.(*KubeDNSConfig), b.(*kops.KubeDNSConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubeDNSConfig)(nil), (*KubeDNSConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubeDNSConfig_To_v1alpha1_KubeDNSConfig(a.(*kops.KubeDNSConfig), b.(*KubeDNSConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubeProxyConfig)(nil), (*kops.KubeProxyConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig(a.(*KubeProxyConfig), b.(*kops.KubeProxyConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubeProxyConfig)(nil), (*KubeProxyConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig(a.(*kops.KubeProxyConfig), b.(*KubeProxyConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubeSchedulerConfig)(nil), (*kops.KubeSchedulerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubeSchedulerConfig_To_kops_KubeSchedulerConfig(a.(*KubeSchedulerConfig), b.(*kops.KubeSchedulerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubeSchedulerConfig)(nil), (*KubeSchedulerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubeSchedulerConfig_To_v1alpha1_KubeSchedulerConfig(a.(*kops.KubeSchedulerConfig), b.(*KubeSchedulerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubeletConfigSpec)(nil), (*kops.KubeletConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(a.(*KubeletConfigSpec), b.(*kops.KubeletConfigSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubeletConfigSpec)(nil), (*KubeletConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(a.(*kops.KubeletConfigSpec), b.(*KubeletConfigSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KubenetNetworkingSpec)(nil), (*kops.KubenetNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KubenetNetworkingSpec_To_kops_KubenetNetworkingSpec(a.(*KubenetNetworkingSpec), b.(*kops.KubenetNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KubenetNetworkingSpec)(nil), (*KubenetNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KubenetNetworkingSpec_To_v1alpha1_KubenetNetworkingSpec(a.(*kops.KubenetNetworkingSpec), b.(*KubenetNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*KuberouterNetworkingSpec)(nil), (*kops.KuberouterNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_KuberouterNetworkingSpec_To_kops_KuberouterNetworkingSpec(a.(*KuberouterNetworkingSpec), b.(*kops.KuberouterNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.KuberouterNetworkingSpec)(nil), (*KuberouterNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_KuberouterNetworkingSpec_To_v1alpha1_KuberouterNetworkingSpec(a.(*kops.KuberouterNetworkingSpec), b.(*KuberouterNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*LeaderElectionConfiguration)(nil), (*kops.LeaderElectionConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(a.(*LeaderElectionConfiguration), b.(*kops.LeaderElectionConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.LeaderElectionConfiguration)(nil), (*LeaderElectionConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(a.(*kops.LeaderElectionConfiguration), b.(*LeaderElectionConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*LoadBalancer)(nil), (*kops.LoadBalancer)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_LoadBalancer_To_kops_LoadBalancer(a.(*LoadBalancer), b.(*kops.LoadBalancer), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.LoadBalancer)(nil), (*LoadBalancer)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_LoadBalancer_To_v1alpha1_LoadBalancer(a.(*kops.LoadBalancer), b.(*LoadBalancer), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*LoadBalancerAccessSpec)(nil), (*kops.LoadBalancerAccessSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec(a.(*LoadBalancerAccessSpec), b.(*kops.LoadBalancerAccessSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.LoadBalancerAccessSpec)(nil), (*LoadBalancerAccessSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec(a.(*kops.LoadBalancerAccessSpec), b.(*LoadBalancerAccessSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*LyftVPCNetworkingSpec)(nil), (*kops.LyftVPCNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_LyftVPCNetworkingSpec_To_kops_LyftVPCNetworkingSpec(a.(*LyftVPCNetworkingSpec), b.(*kops.LyftVPCNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.LyftVPCNetworkingSpec)(nil), (*LyftVPCNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_LyftVPCNetworkingSpec_To_v1alpha1_LyftVPCNetworkingSpec(a.(*kops.LyftVPCNetworkingSpec), b.(*LyftVPCNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*MixedInstancesPolicySpec)(nil), (*kops.MixedInstancesPolicySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_MixedInstancesPolicySpec_To_kops_MixedInstancesPolicySpec(a.(*MixedInstancesPolicySpec), b.(*kops.MixedInstancesPolicySpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.MixedInstancesPolicySpec)(nil), (*MixedInstancesPolicySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_MixedInstancesPolicySpec_To_v1alpha1_MixedInstancesPolicySpec(a.(*kops.MixedInstancesPolicySpec), b.(*MixedInstancesPolicySpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*NetworkingSpec)(nil), (*kops.NetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkingSpec_To_kops_NetworkingSpec(a.(*NetworkingSpec), b.(*kops.NetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.NetworkingSpec)(nil), (*NetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_NetworkingSpec_To_v1alpha1_NetworkingSpec(a.(*kops.NetworkingSpec), b.(*NetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*NodeAuthorizationSpec)(nil), (*kops.NodeAuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NodeAuthorizationSpec_To_kops_NodeAuthorizationSpec(a.(*NodeAuthorizationSpec), b.(*kops.NodeAuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.NodeAuthorizationSpec)(nil), (*NodeAuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_NodeAuthorizationSpec_To_v1alpha1_NodeAuthorizationSpec(a.(*kops.NodeAuthorizationSpec), b.(*NodeAuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*NodeAuthorizerSpec)(nil), (*kops.NodeAuthorizerSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NodeAuthorizerSpec_To_kops_NodeAuthorizerSpec(a.(*NodeAuthorizerSpec), b.(*kops.NodeAuthorizerSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.NodeAuthorizerSpec)(nil), (*NodeAuthorizerSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_NodeAuthorizerSpec_To_v1alpha1_NodeAuthorizerSpec(a.(*kops.NodeAuthorizerSpec), b.(*NodeAuthorizerSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*OpenstackBlockStorageConfig)(nil), (*kops.OpenstackBlockStorageConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(a.(*OpenstackBlockStorageConfig), b.(*kops.OpenstackBlockStorageConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.OpenstackBlockStorageConfig)(nil), (*OpenstackBlockStorageConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_OpenstackBlockStorageConfig_To_v1alpha1_OpenstackBlockStorageConfig(a.(*kops.OpenstackBlockStorageConfig), b.(*OpenstackBlockStorageConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*OpenstackConfiguration)(nil), (*kops.OpenstackConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_OpenstackConfiguration_To_kops_OpenstackConfiguration(a.(*OpenstackConfiguration), b.(*kops.OpenstackConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.OpenstackConfiguration)(nil), (*OpenstackConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_OpenstackConfiguration_To_v1alpha1_OpenstackConfiguration(a.(*kops.OpenstackConfiguration), b.(*OpenstackConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*OpenstackLoadbalancerConfig)(nil), (*kops.OpenstackLoadbalancerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(a.(*OpenstackLoadbalancerConfig), b.(*kops.OpenstackLoadbalancerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.OpenstackLoadbalancerConfig)(nil), (*OpenstackLoadbalancerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha1_OpenstackLoadbalancerConfig(a.(*kops.OpenstackLoadbalancerConfig), b.(*OpenstackLoadbalancerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*OpenstackMonitor)(nil), (*kops.OpenstackMonitor)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_OpenstackMonitor_To_kops_OpenstackMonitor(a.(*OpenstackMonitor), b.(*kops.OpenstackMonitor), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.OpenstackMonitor)(nil), (*OpenstackMonitor)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_OpenstackMonitor_To_v1alpha1_OpenstackMonitor(a.(*kops.OpenstackMonitor), b.(*OpenstackMonitor), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*OpenstackRouter)(nil), (*kops.OpenstackRouter)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_OpenstackRouter_To_kops_OpenstackRouter(a.(*OpenstackRouter), b.(*kops.OpenstackRouter), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.OpenstackRouter)(nil), (*OpenstackRouter)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_OpenstackRouter_To_v1alpha1_OpenstackRouter(a.(*kops.OpenstackRouter), b.(*OpenstackRouter), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*RBACAuthorizationSpec)(nil), (*kops.RBACAuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_RBACAuthorizationSpec_To_kops_RBACAuthorizationSpec(a.(*RBACAuthorizationSpec), b.(*kops.RBACAuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.RBACAuthorizationSpec)(nil), (*RBACAuthorizationSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_RBACAuthorizationSpec_To_v1alpha1_RBACAuthorizationSpec(a.(*kops.RBACAuthorizationSpec), b.(*RBACAuthorizationSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*RollingUpdate)(nil), (*kops.RollingUpdate)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_RollingUpdate_To_kops_RollingUpdate(a.(*RollingUpdate), b.(*kops.RollingUpdate), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.RollingUpdate)(nil), (*RollingUpdate)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_RollingUpdate_To_v1alpha1_RollingUpdate(a.(*kops.RollingUpdate), b.(*RollingUpdate), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*RomanaNetworkingSpec)(nil), (*kops.RomanaNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_RomanaNetworkingSpec_To_kops_RomanaNetworkingSpec(a.(*RomanaNetworkingSpec), b.(*kops.RomanaNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.RomanaNetworkingSpec)(nil), (*RomanaNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_RomanaNetworkingSpec_To_v1alpha1_RomanaNetworkingSpec(a.(*kops.RomanaNetworkingSpec), b.(*RomanaNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*SSHCredential)(nil), (*kops.SSHCredential)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_SSHCredential_To_kops_SSHCredential(a.(*SSHCredential), b.(*kops.SSHCredential), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.SSHCredential)(nil), (*SSHCredential)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_SSHCredential_To_v1alpha1_SSHCredential(a.(*kops.SSHCredential), b.(*SSHCredential), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*SSHCredentialList)(nil), (*kops.SSHCredentialList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_SSHCredentialList_To_kops_SSHCredentialList(a.(*SSHCredentialList), b.(*kops.SSHCredentialList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.SSHCredentialList)(nil), (*SSHCredentialList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_SSHCredentialList_To_v1alpha1_SSHCredentialList(a.(*kops.SSHCredentialList), b.(*SSHCredentialList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*SSHCredentialSpec)(nil), (*kops.SSHCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_SSHCredentialSpec_To_kops_SSHCredentialSpec(a.(*SSHCredentialSpec), b.(*kops.SSHCredentialSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.SSHCredentialSpec)(nil), (*SSHCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_SSHCredentialSpec_To_v1alpha1_SSHCredentialSpec(a.(*kops.SSHCredentialSpec), b.(*SSHCredentialSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*TargetSpec)(nil), (*kops.TargetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_TargetSpec_To_kops_TargetSpec(a.(*TargetSpec), b.(*kops.TargetSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.TargetSpec)(nil), (*TargetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_TargetSpec_To_v1alpha1_TargetSpec(a.(*kops.TargetSpec), b.(*TargetSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*TerraformSpec)(nil), (*kops.TerraformSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_TerraformSpec_To_kops_TerraformSpec(a.(*TerraformSpec), b.(*kops.TerraformSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.TerraformSpec)(nil), (*TerraformSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_TerraformSpec_To_v1alpha1_TerraformSpec(a.(*kops.TerraformSpec), b.(*TerraformSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*UserData)(nil), (*kops.UserData)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_UserData_To_kops_UserData(a.(*UserData), b.(*kops.UserData), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.UserData)(nil), (*UserData)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_UserData_To_v1alpha1_UserData(a.(*kops.UserData), b.(*UserData), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*VolumeMountSpec)(nil), (*kops.VolumeMountSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_VolumeMountSpec_To_kops_VolumeMountSpec(a.(*VolumeMountSpec), b.(*kops.VolumeMountSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.VolumeMountSpec)(nil), (*VolumeMountSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_VolumeMountSpec_To_v1alpha1_VolumeMountSpec(a.(*kops.VolumeMountSpec), b.(*VolumeMountSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*VolumeSpec)(nil), (*kops.VolumeSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_VolumeSpec_To_kops_VolumeSpec(a.(*VolumeSpec), b.(*kops.VolumeSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.VolumeSpec)(nil), (*VolumeSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_VolumeSpec_To_v1alpha1_VolumeSpec(a.(*kops.VolumeSpec), b.(*VolumeSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*WeaveNetworkingSpec)(nil), (*kops.WeaveNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_WeaveNetworkingSpec_To_kops_WeaveNetworkingSpec(a.(*WeaveNetworkingSpec), b.(*kops.WeaveNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*kops.WeaveNetworkingSpec)(nil), (*WeaveNetworkingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_WeaveNetworkingSpec_To_v1alpha1_WeaveNetworkingSpec(a.(*kops.WeaveNetworkingSpec), b.(*WeaveNetworkingSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*kops.BastionSpec)(nil), (*BastionSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_BastionSpec_To_v1alpha1_BastionSpec(a.(*kops.BastionSpec), b.(*BastionSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*kops.ClusterSpec)(nil), (*ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_ClusterSpec_To_v1alpha1_ClusterSpec(a.(*kops.ClusterSpec), b.(*ClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*kops.EtcdMemberSpec)(nil), (*EtcdMemberSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_EtcdMemberSpec_To_v1alpha1_EtcdMemberSpec(a.(*kops.EtcdMemberSpec), b.(*EtcdMemberSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*kops.InstanceGroupSpec)(nil), (*InstanceGroupSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_InstanceGroupSpec_To_v1alpha1_InstanceGroupSpec(a.(*kops.InstanceGroupSpec), b.(*InstanceGroupSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*kops.TopologySpec)(nil), (*TopologySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_kops_TopologySpec_To_v1alpha1_TopologySpec(a.(*kops.TopologySpec), b.(*TopologySpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*BastionSpec)(nil), (*kops.BastionSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_BastionSpec_To_kops_BastionSpec(a.(*BastionSpec), b.(*kops.BastionSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*ClusterSpec)(nil), (*kops.ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ClusterSpec_To_kops_ClusterSpec(a.(*ClusterSpec), b.(*kops.ClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*EtcdMemberSpec)(nil), (*kops.EtcdMemberSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_EtcdMemberSpec_To_kops_EtcdMemberSpec(a.(*EtcdMemberSpec), b.(*kops.EtcdMemberSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*InstanceGroupSpec)(nil), (*kops.InstanceGroupSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_InstanceGroupSpec_To_kops_InstanceGroupSpec(a.(*InstanceGroupSpec), b.(*kops.InstanceGroupSpec), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*TopologySpec)(nil), (*kops.TopologySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_TopologySpec_To_kops_TopologySpec(a.(*TopologySpec), b.(*kops.TopologySpec), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1alpha1_AccessSpec_To_kops_AccessSpec(in *AccessSpec, out *kops.AccessSpec, s conversion.Scope) error { + if in.DNS != nil { + in, out := &in.DNS, &out.DNS + *out = new(kops.DNSAccessSpec) + if err := Convert_v1alpha1_DNSAccessSpec_To_kops_DNSAccessSpec(*in, *out, s); err != nil { + return err + } + } else { + out.DNS = nil + } + if in.LoadBalancer != nil { + in, out := &in.LoadBalancer, &out.LoadBalancer + *out = new(kops.LoadBalancerAccessSpec) + if err := Convert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec(*in, *out, s); err != nil { + return err + } + } else { + out.LoadBalancer = nil + } + return nil +} + +// Convert_v1alpha1_AccessSpec_To_kops_AccessSpec is an autogenerated conversion function. +func Convert_v1alpha1_AccessSpec_To_kops_AccessSpec(in *AccessSpec, out *kops.AccessSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AccessSpec_To_kops_AccessSpec(in, out, s) +} + +func autoConvert_kops_AccessSpec_To_v1alpha1_AccessSpec(in *kops.AccessSpec, out *AccessSpec, s conversion.Scope) error { + if in.DNS != nil { + in, out := &in.DNS, &out.DNS + *out = new(DNSAccessSpec) + if err := Convert_kops_DNSAccessSpec_To_v1alpha1_DNSAccessSpec(*in, *out, s); err != nil { + return err + } + } else { + out.DNS = nil + } + if in.LoadBalancer != nil { + in, out := &in.LoadBalancer, &out.LoadBalancer + *out = new(LoadBalancerAccessSpec) + if err := Convert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec(*in, *out, s); err != nil { + return err + } + } else { + out.LoadBalancer = nil + } + return nil +} + +// Convert_kops_AccessSpec_To_v1alpha1_AccessSpec is an autogenerated conversion function. +func Convert_kops_AccessSpec_To_v1alpha1_AccessSpec(in *kops.AccessSpec, out *AccessSpec, s conversion.Scope) error { + return autoConvert_kops_AccessSpec_To_v1alpha1_AccessSpec(in, out, s) +} + +func autoConvert_v1alpha1_AddonSpec_To_kops_AddonSpec(in *AddonSpec, out *kops.AddonSpec, s conversion.Scope) error { + out.Manifest = in.Manifest + return nil +} + +// Convert_v1alpha1_AddonSpec_To_kops_AddonSpec is an autogenerated conversion function. +func Convert_v1alpha1_AddonSpec_To_kops_AddonSpec(in *AddonSpec, out *kops.AddonSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AddonSpec_To_kops_AddonSpec(in, out, s) +} + +func autoConvert_kops_AddonSpec_To_v1alpha1_AddonSpec(in *kops.AddonSpec, out *AddonSpec, s conversion.Scope) error { + out.Manifest = in.Manifest + return nil +} + +// Convert_kops_AddonSpec_To_v1alpha1_AddonSpec is an autogenerated conversion function. +func Convert_kops_AddonSpec_To_v1alpha1_AddonSpec(in *kops.AddonSpec, out *AddonSpec, s conversion.Scope) error { + return autoConvert_kops_AddonSpec_To_v1alpha1_AddonSpec(in, out, s) +} + +func autoConvert_v1alpha1_AlwaysAllowAuthorizationSpec_To_kops_AlwaysAllowAuthorizationSpec(in *AlwaysAllowAuthorizationSpec, out *kops.AlwaysAllowAuthorizationSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_AlwaysAllowAuthorizationSpec_To_kops_AlwaysAllowAuthorizationSpec is an autogenerated conversion function. +func Convert_v1alpha1_AlwaysAllowAuthorizationSpec_To_kops_AlwaysAllowAuthorizationSpec(in *AlwaysAllowAuthorizationSpec, out *kops.AlwaysAllowAuthorizationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AlwaysAllowAuthorizationSpec_To_kops_AlwaysAllowAuthorizationSpec(in, out, s) +} + +func autoConvert_kops_AlwaysAllowAuthorizationSpec_To_v1alpha1_AlwaysAllowAuthorizationSpec(in *kops.AlwaysAllowAuthorizationSpec, out *AlwaysAllowAuthorizationSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_AlwaysAllowAuthorizationSpec_To_v1alpha1_AlwaysAllowAuthorizationSpec is an autogenerated conversion function. +func Convert_kops_AlwaysAllowAuthorizationSpec_To_v1alpha1_AlwaysAllowAuthorizationSpec(in *kops.AlwaysAllowAuthorizationSpec, out *AlwaysAllowAuthorizationSpec, s conversion.Scope) error { + return autoConvert_kops_AlwaysAllowAuthorizationSpec_To_v1alpha1_AlwaysAllowAuthorizationSpec(in, out, s) +} + +func autoConvert_v1alpha1_AmazonVPCNetworkingSpec_To_kops_AmazonVPCNetworkingSpec(in *AmazonVPCNetworkingSpec, out *kops.AmazonVPCNetworkingSpec, s conversion.Scope) error { + out.ImageName = in.ImageName + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]kops.EnvVar, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_EnvVar_To_kops_EnvVar(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Env = nil + } + return nil +} + +// Convert_v1alpha1_AmazonVPCNetworkingSpec_To_kops_AmazonVPCNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_AmazonVPCNetworkingSpec_To_kops_AmazonVPCNetworkingSpec(in *AmazonVPCNetworkingSpec, out *kops.AmazonVPCNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AmazonVPCNetworkingSpec_To_kops_AmazonVPCNetworkingSpec(in, out, s) +} + +func autoConvert_kops_AmazonVPCNetworkingSpec_To_v1alpha1_AmazonVPCNetworkingSpec(in *kops.AmazonVPCNetworkingSpec, out *AmazonVPCNetworkingSpec, s conversion.Scope) error { + out.ImageName = in.ImageName + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]EnvVar, len(*in)) + for i := range *in { + if err := Convert_kops_EnvVar_To_v1alpha1_EnvVar(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Env = nil + } + return nil +} + +// Convert_kops_AmazonVPCNetworkingSpec_To_v1alpha1_AmazonVPCNetworkingSpec is an autogenerated conversion function. +func Convert_kops_AmazonVPCNetworkingSpec_To_v1alpha1_AmazonVPCNetworkingSpec(in *kops.AmazonVPCNetworkingSpec, out *AmazonVPCNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_AmazonVPCNetworkingSpec_To_v1alpha1_AmazonVPCNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_Assets_To_kops_Assets(in *Assets, out *kops.Assets, s conversion.Scope) error { + out.ContainerRegistry = in.ContainerRegistry + out.FileRepository = in.FileRepository + out.ContainerProxy = in.ContainerProxy + return nil +} + +// Convert_v1alpha1_Assets_To_kops_Assets is an autogenerated conversion function. +func Convert_v1alpha1_Assets_To_kops_Assets(in *Assets, out *kops.Assets, s conversion.Scope) error { + return autoConvert_v1alpha1_Assets_To_kops_Assets(in, out, s) +} + +func autoConvert_kops_Assets_To_v1alpha1_Assets(in *kops.Assets, out *Assets, s conversion.Scope) error { + out.ContainerRegistry = in.ContainerRegistry + out.FileRepository = in.FileRepository + out.ContainerProxy = in.ContainerProxy + return nil +} + +// Convert_kops_Assets_To_v1alpha1_Assets is an autogenerated conversion function. +func Convert_kops_Assets_To_v1alpha1_Assets(in *kops.Assets, out *Assets, s conversion.Scope) error { + return autoConvert_kops_Assets_To_v1alpha1_Assets(in, out, s) +} + +func autoConvert_v1alpha1_AuthenticationSpec_To_kops_AuthenticationSpec(in *AuthenticationSpec, out *kops.AuthenticationSpec, s conversion.Scope) error { + if in.Kopeio != nil { + in, out := &in.Kopeio, &out.Kopeio + *out = new(kops.KopeioAuthenticationSpec) + if err := Convert_v1alpha1_KopeioAuthenticationSpec_To_kops_KopeioAuthenticationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kopeio = nil + } + if in.Aws != nil { + in, out := &in.Aws, &out.Aws + *out = new(kops.AwsAuthenticationSpec) + if err := Convert_v1alpha1_AwsAuthenticationSpec_To_kops_AwsAuthenticationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Aws = nil + } + return nil +} + +// Convert_v1alpha1_AuthenticationSpec_To_kops_AuthenticationSpec is an autogenerated conversion function. +func Convert_v1alpha1_AuthenticationSpec_To_kops_AuthenticationSpec(in *AuthenticationSpec, out *kops.AuthenticationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AuthenticationSpec_To_kops_AuthenticationSpec(in, out, s) +} + +func autoConvert_kops_AuthenticationSpec_To_v1alpha1_AuthenticationSpec(in *kops.AuthenticationSpec, out *AuthenticationSpec, s conversion.Scope) error { + if in.Kopeio != nil { + in, out := &in.Kopeio, &out.Kopeio + *out = new(KopeioAuthenticationSpec) + if err := Convert_kops_KopeioAuthenticationSpec_To_v1alpha1_KopeioAuthenticationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kopeio = nil + } + if in.Aws != nil { + in, out := &in.Aws, &out.Aws + *out = new(AwsAuthenticationSpec) + if err := Convert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Aws = nil + } + return nil +} + +// Convert_kops_AuthenticationSpec_To_v1alpha1_AuthenticationSpec is an autogenerated conversion function. +func Convert_kops_AuthenticationSpec_To_v1alpha1_AuthenticationSpec(in *kops.AuthenticationSpec, out *AuthenticationSpec, s conversion.Scope) error { + return autoConvert_kops_AuthenticationSpec_To_v1alpha1_AuthenticationSpec(in, out, s) +} + +func autoConvert_v1alpha1_AuthorizationSpec_To_kops_AuthorizationSpec(in *AuthorizationSpec, out *kops.AuthorizationSpec, s conversion.Scope) error { + if in.AlwaysAllow != nil { + in, out := &in.AlwaysAllow, &out.AlwaysAllow + *out = new(kops.AlwaysAllowAuthorizationSpec) + if err := Convert_v1alpha1_AlwaysAllowAuthorizationSpec_To_kops_AlwaysAllowAuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.AlwaysAllow = nil + } + if in.RBAC != nil { + in, out := &in.RBAC, &out.RBAC + *out = new(kops.RBACAuthorizationSpec) + if err := Convert_v1alpha1_RBACAuthorizationSpec_To_kops_RBACAuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.RBAC = nil + } + return nil +} + +// Convert_v1alpha1_AuthorizationSpec_To_kops_AuthorizationSpec is an autogenerated conversion function. +func Convert_v1alpha1_AuthorizationSpec_To_kops_AuthorizationSpec(in *AuthorizationSpec, out *kops.AuthorizationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AuthorizationSpec_To_kops_AuthorizationSpec(in, out, s) +} + +func autoConvert_kops_AuthorizationSpec_To_v1alpha1_AuthorizationSpec(in *kops.AuthorizationSpec, out *AuthorizationSpec, s conversion.Scope) error { + if in.AlwaysAllow != nil { + in, out := &in.AlwaysAllow, &out.AlwaysAllow + *out = new(AlwaysAllowAuthorizationSpec) + if err := Convert_kops_AlwaysAllowAuthorizationSpec_To_v1alpha1_AlwaysAllowAuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.AlwaysAllow = nil + } + if in.RBAC != nil { + in, out := &in.RBAC, &out.RBAC + *out = new(RBACAuthorizationSpec) + if err := Convert_kops_RBACAuthorizationSpec_To_v1alpha1_RBACAuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.RBAC = nil + } + return nil +} + +// Convert_kops_AuthorizationSpec_To_v1alpha1_AuthorizationSpec is an autogenerated conversion function. +func Convert_kops_AuthorizationSpec_To_v1alpha1_AuthorizationSpec(in *kops.AuthorizationSpec, out *AuthorizationSpec, s conversion.Scope) error { + return autoConvert_kops_AuthorizationSpec_To_v1alpha1_AuthorizationSpec(in, out, s) +} + +func autoConvert_v1alpha1_AwsAuthenticationSpec_To_kops_AwsAuthenticationSpec(in *AwsAuthenticationSpec, out *kops.AwsAuthenticationSpec, s conversion.Scope) error { + out.Image = in.Image + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + out.MemoryLimit = in.MemoryLimit + out.CPULimit = in.CPULimit + return nil +} + +// Convert_v1alpha1_AwsAuthenticationSpec_To_kops_AwsAuthenticationSpec is an autogenerated conversion function. +func Convert_v1alpha1_AwsAuthenticationSpec_To_kops_AwsAuthenticationSpec(in *AwsAuthenticationSpec, out *kops.AwsAuthenticationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_AwsAuthenticationSpec_To_kops_AwsAuthenticationSpec(in, out, s) +} + +func autoConvert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec(in *kops.AwsAuthenticationSpec, out *AwsAuthenticationSpec, s conversion.Scope) error { + out.Image = in.Image + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + out.MemoryLimit = in.MemoryLimit + out.CPULimit = in.CPULimit + return nil +} + +// Convert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec is an autogenerated conversion function. +func Convert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec(in *kops.AwsAuthenticationSpec, out *AwsAuthenticationSpec, s conversion.Scope) error { + return autoConvert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec(in, out, s) +} + +func autoConvert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetworkingSpec, out *kops.CNINetworkingSpec, s conversion.Scope) error { + out.UsesSecondaryIP = in.UsesSecondaryIP + return nil +} + +// Convert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetworkingSpec, out *kops.CNINetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(in, out, s) +} + +func autoConvert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(in *kops.CNINetworkingSpec, out *CNINetworkingSpec, s conversion.Scope) error { + out.UsesSecondaryIP = in.UsesSecondaryIP + return nil +} + +// Convert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec is an autogenerated conversion function. +func Convert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(in *kops.CNINetworkingSpec, out *CNINetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in *CalicoNetworkingSpec, out *kops.CalicoNetworkingSpec, s conversion.Scope) error { + out.CrossSubnet = in.CrossSubnet + out.LogSeverityScreen = in.LogSeverityScreen + out.MTU = in.MTU + out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled + out.PrometheusMetricsPort = in.PrometheusMetricsPort + out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled + out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.MajorVersion = in.MajorVersion + out.IptablesBackend = in.IptablesBackend + out.IPIPMode = in.IPIPMode + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas + return nil +} + +// Convert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in *CalicoNetworkingSpec, out *kops.CalicoNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(in, out, s) +} + +func autoConvert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec(in *kops.CalicoNetworkingSpec, out *CalicoNetworkingSpec, s conversion.Scope) error { + out.CrossSubnet = in.CrossSubnet + out.LogSeverityScreen = in.LogSeverityScreen + out.MTU = in.MTU + out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled + out.PrometheusMetricsPort = in.PrometheusMetricsPort + out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled + out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.MajorVersion = in.MajorVersion + out.IptablesBackend = in.IptablesBackend + out.IPIPMode = in.IPIPMode + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas + return nil +} + +// Convert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec is an autogenerated conversion function. +func Convert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec(in *kops.CalicoNetworkingSpec, out *CalicoNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(in *CanalNetworkingSpec, out *kops.CanalNetworkingSpec, s conversion.Scope) error { + out.ChainInsertMode = in.ChainInsertMode + out.DefaultEndpointToHostAction = in.DefaultEndpointToHostAction + out.DisableFlannelForwardRules = in.DisableFlannelForwardRules + out.IptablesBackend = in.IptablesBackend + out.LogSeveritySys = in.LogSeveritySys + out.MTU = in.MTU + out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled + out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled + out.PrometheusMetricsPort = in.PrometheusMetricsPort + out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas + return nil +} + +// Convert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(in *CanalNetworkingSpec, out *kops.CanalNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(in, out, s) +} + +func autoConvert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec(in *kops.CanalNetworkingSpec, out *CanalNetworkingSpec, s conversion.Scope) error { + out.ChainInsertMode = in.ChainInsertMode + out.DefaultEndpointToHostAction = in.DefaultEndpointToHostAction + out.DisableFlannelForwardRules = in.DisableFlannelForwardRules + out.IptablesBackend = in.IptablesBackend + out.LogSeveritySys = in.LogSeveritySys + out.MTU = in.MTU + out.PrometheusGoMetricsEnabled = in.PrometheusGoMetricsEnabled + out.PrometheusMetricsEnabled = in.PrometheusMetricsEnabled + out.PrometheusMetricsPort = in.PrometheusMetricsPort + out.PrometheusProcessMetricsEnabled = in.PrometheusProcessMetricsEnabled + out.TyphaPrometheusMetricsEnabled = in.TyphaPrometheusMetricsEnabled + out.TyphaPrometheusMetricsPort = in.TyphaPrometheusMetricsPort + out.TyphaReplicas = in.TyphaReplicas + return nil +} + +// Convert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec is an autogenerated conversion function. +func Convert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec(in *kops.CanalNetworkingSpec, out *CanalNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_CiliumNetworkingSpec_To_kops_CiliumNetworkingSpec(in *CiliumNetworkingSpec, out *kops.CiliumNetworkingSpec, s conversion.Scope) error { + out.Version = in.Version + out.AccessLog = in.AccessLog + out.AgentLabels = in.AgentLabels + out.AgentPrometheusPort = in.AgentPrometheusPort + out.AllowLocalhost = in.AllowLocalhost + out.AutoIpv6NodeRoutes = in.AutoIpv6NodeRoutes + out.BPFRoot = in.BPFRoot + out.ContainerRuntime = in.ContainerRuntime + out.ContainerRuntimeEndpoint = in.ContainerRuntimeEndpoint + out.Debug = in.Debug + out.DebugVerbose = in.DebugVerbose + out.Device = in.Device + out.DisableConntrack = in.DisableConntrack + out.DisableIpv4 = in.DisableIpv4 + out.DisableK8sServices = in.DisableK8sServices + out.EnablePolicy = in.EnablePolicy + out.EnableTracing = in.EnableTracing + out.EnablePrometheusMetrics = in.EnablePrometheusMetrics + out.EnvoyLog = in.EnvoyLog + out.Ipv4ClusterCIDRMaskSize = in.Ipv4ClusterCIDRMaskSize + out.Ipv4Node = in.Ipv4Node + out.Ipv4Range = in.Ipv4Range + out.Ipv4ServiceRange = in.Ipv4ServiceRange + out.Ipv6ClusterAllocCidr = in.Ipv6ClusterAllocCidr + out.Ipv6Node = in.Ipv6Node + out.Ipv6Range = in.Ipv6Range + out.Ipv6ServiceRange = in.Ipv6ServiceRange + out.K8sAPIServer = in.K8sAPIServer + out.K8sKubeconfigPath = in.K8sKubeconfigPath + out.KeepBPFTemplates = in.KeepBPFTemplates + out.KeepConfig = in.KeepConfig + out.LabelPrefixFile = in.LabelPrefixFile + out.Labels = in.Labels + out.LB = in.LB + out.LibDir = in.LibDir + out.LogDrivers = in.LogDrivers + out.LogOpt = in.LogOpt + out.Logstash = in.Logstash + out.LogstashAgent = in.LogstashAgent + out.LogstashProbeTimer = in.LogstashProbeTimer + out.DisableMasquerade = in.DisableMasquerade + out.Nat46Range = in.Nat46Range + out.Pprof = in.Pprof + out.PrefilterDevice = in.PrefilterDevice + out.PrometheusServeAddr = in.PrometheusServeAddr + out.Restore = in.Restore + out.SingleClusterRoute = in.SingleClusterRoute + out.SocketPath = in.SocketPath + out.StateDir = in.StateDir + out.TracePayloadLen = in.TracePayloadLen + out.Tunnel = in.Tunnel + out.EnableIpv6 = in.EnableIpv6 + out.EnableIpv4 = in.EnableIpv4 + out.MonitorAggregation = in.MonitorAggregation + out.BPFCTGlobalTCPMax = in.BPFCTGlobalTCPMax + out.BPFCTGlobalAnyMax = in.BPFCTGlobalAnyMax + out.PreallocateBPFMaps = in.PreallocateBPFMaps + out.SidecarIstioProxyImage = in.SidecarIstioProxyImage + out.ClusterName = in.ClusterName + out.ToFqdnsDNSRejectResponseCode = in.ToFqdnsDNSRejectResponseCode + out.ToFqdnsEnablePoller = in.ToFqdnsEnablePoller + out.ContainerRuntimeLabels = in.ContainerRuntimeLabels + out.Ipam = in.Ipam + out.IPTablesRulesNoinstall = in.IPTablesRulesNoinstall + out.AutoDirectNodeRoutes = in.AutoDirectNodeRoutes + out.EnableNodePort = in.EnableNodePort + out.EtcdManaged = in.EtcdManaged + out.EnableRemoteNodeIdentity = in.EnableRemoteNodeIdentity + out.RemoveCbrBridge = in.RemoveCbrBridge + out.RestartPods = in.RestartPods + out.ReconfigureKubelet = in.ReconfigureKubelet + out.NodeInitBootstrapFile = in.NodeInitBootstrapFile + out.CniBinPath = in.CniBinPath + return nil +} + +// Convert_v1alpha1_CiliumNetworkingSpec_To_kops_CiliumNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_CiliumNetworkingSpec_To_kops_CiliumNetworkingSpec(in *CiliumNetworkingSpec, out *kops.CiliumNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_CiliumNetworkingSpec_To_kops_CiliumNetworkingSpec(in, out, s) +} + +func autoConvert_kops_CiliumNetworkingSpec_To_v1alpha1_CiliumNetworkingSpec(in *kops.CiliumNetworkingSpec, out *CiliumNetworkingSpec, s conversion.Scope) error { + out.Version = in.Version + out.AccessLog = in.AccessLog + out.AgentLabels = in.AgentLabels + out.AgentPrometheusPort = in.AgentPrometheusPort + out.AllowLocalhost = in.AllowLocalhost + out.AutoIpv6NodeRoutes = in.AutoIpv6NodeRoutes + out.BPFRoot = in.BPFRoot + out.ContainerRuntime = in.ContainerRuntime + out.ContainerRuntimeEndpoint = in.ContainerRuntimeEndpoint + out.Debug = in.Debug + out.DebugVerbose = in.DebugVerbose + out.Device = in.Device + out.DisableConntrack = in.DisableConntrack + out.DisableIpv4 = in.DisableIpv4 + out.DisableK8sServices = in.DisableK8sServices + out.EnablePolicy = in.EnablePolicy + out.EnableTracing = in.EnableTracing + out.EnablePrometheusMetrics = in.EnablePrometheusMetrics + out.EnvoyLog = in.EnvoyLog + out.Ipv4ClusterCIDRMaskSize = in.Ipv4ClusterCIDRMaskSize + out.Ipv4Node = in.Ipv4Node + out.Ipv4Range = in.Ipv4Range + out.Ipv4ServiceRange = in.Ipv4ServiceRange + out.Ipv6ClusterAllocCidr = in.Ipv6ClusterAllocCidr + out.Ipv6Node = in.Ipv6Node + out.Ipv6Range = in.Ipv6Range + out.Ipv6ServiceRange = in.Ipv6ServiceRange + out.K8sAPIServer = in.K8sAPIServer + out.K8sKubeconfigPath = in.K8sKubeconfigPath + out.KeepBPFTemplates = in.KeepBPFTemplates + out.KeepConfig = in.KeepConfig + out.LabelPrefixFile = in.LabelPrefixFile + out.Labels = in.Labels + out.LB = in.LB + out.LibDir = in.LibDir + out.LogDrivers = in.LogDrivers + out.LogOpt = in.LogOpt + out.Logstash = in.Logstash + out.LogstashAgent = in.LogstashAgent + out.LogstashProbeTimer = in.LogstashProbeTimer + out.DisableMasquerade = in.DisableMasquerade + out.Nat46Range = in.Nat46Range + out.Pprof = in.Pprof + out.PrefilterDevice = in.PrefilterDevice + out.PrometheusServeAddr = in.PrometheusServeAddr + out.Restore = in.Restore + out.SingleClusterRoute = in.SingleClusterRoute + out.SocketPath = in.SocketPath + out.StateDir = in.StateDir + out.TracePayloadLen = in.TracePayloadLen + out.Tunnel = in.Tunnel + out.EnableIpv6 = in.EnableIpv6 + out.EnableIpv4 = in.EnableIpv4 + out.MonitorAggregation = in.MonitorAggregation + out.BPFCTGlobalTCPMax = in.BPFCTGlobalTCPMax + out.BPFCTGlobalAnyMax = in.BPFCTGlobalAnyMax + out.PreallocateBPFMaps = in.PreallocateBPFMaps + out.SidecarIstioProxyImage = in.SidecarIstioProxyImage + out.ClusterName = in.ClusterName + out.ToFqdnsDNSRejectResponseCode = in.ToFqdnsDNSRejectResponseCode + out.ToFqdnsEnablePoller = in.ToFqdnsEnablePoller + out.ContainerRuntimeLabels = in.ContainerRuntimeLabels + out.Ipam = in.Ipam + out.IPTablesRulesNoinstall = in.IPTablesRulesNoinstall + out.AutoDirectNodeRoutes = in.AutoDirectNodeRoutes + out.EnableNodePort = in.EnableNodePort + out.EtcdManaged = in.EtcdManaged + out.EnableRemoteNodeIdentity = in.EnableRemoteNodeIdentity + out.RemoveCbrBridge = in.RemoveCbrBridge + out.RestartPods = in.RestartPods + out.ReconfigureKubelet = in.ReconfigureKubelet + out.NodeInitBootstrapFile = in.NodeInitBootstrapFile + out.CniBinPath = in.CniBinPath + return nil +} + +// Convert_kops_CiliumNetworkingSpec_To_v1alpha1_CiliumNetworkingSpec is an autogenerated conversion function. +func Convert_kops_CiliumNetworkingSpec_To_v1alpha1_CiliumNetworkingSpec(in *kops.CiliumNetworkingSpec, out *CiliumNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_CiliumNetworkingSpec_To_v1alpha1_CiliumNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_ClassicNetworkingSpec_To_kops_ClassicNetworkingSpec(in *ClassicNetworkingSpec, out *kops.ClassicNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_ClassicNetworkingSpec_To_kops_ClassicNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_ClassicNetworkingSpec_To_kops_ClassicNetworkingSpec(in *ClassicNetworkingSpec, out *kops.ClassicNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_ClassicNetworkingSpec_To_kops_ClassicNetworkingSpec(in, out, s) +} + +func autoConvert_kops_ClassicNetworkingSpec_To_v1alpha1_ClassicNetworkingSpec(in *kops.ClassicNetworkingSpec, out *ClassicNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_ClassicNetworkingSpec_To_v1alpha1_ClassicNetworkingSpec is an autogenerated conversion function. +func Convert_kops_ClassicNetworkingSpec_To_v1alpha1_ClassicNetworkingSpec(in *kops.ClassicNetworkingSpec, out *ClassicNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_ClassicNetworkingSpec_To_v1alpha1_ClassicNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_CloudConfiguration_To_kops_CloudConfiguration(in *CloudConfiguration, out *kops.CloudConfiguration, s conversion.Scope) error { + out.Multizone = in.Multizone + out.NodeTags = in.NodeTags + out.NodeInstancePrefix = in.NodeInstancePrefix + out.DisableSecurityGroupIngress = in.DisableSecurityGroupIngress + out.ElbSecurityGroup = in.ElbSecurityGroup + out.VSphereUsername = in.VSphereUsername + out.VSpherePassword = in.VSpherePassword + out.VSphereServer = in.VSphereServer + out.VSphereDatacenter = in.VSphereDatacenter + out.VSphereResourcePool = in.VSphereResourcePool + out.VSphereDatastore = in.VSphereDatastore + out.VSphereCoreDNSServer = in.VSphereCoreDNSServer + out.SpotinstProduct = in.SpotinstProduct + out.SpotinstOrientation = in.SpotinstOrientation + if in.Openstack != nil { + in, out := &in.Openstack, &out.Openstack + *out = new(kops.OpenstackConfiguration) + if err := Convert_v1alpha1_OpenstackConfiguration_To_kops_OpenstackConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.Openstack = nil + } + return nil +} + +// Convert_v1alpha1_CloudConfiguration_To_kops_CloudConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_CloudConfiguration_To_kops_CloudConfiguration(in *CloudConfiguration, out *kops.CloudConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_CloudConfiguration_To_kops_CloudConfiguration(in, out, s) +} + +func autoConvert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration(in *kops.CloudConfiguration, out *CloudConfiguration, s conversion.Scope) error { + out.Multizone = in.Multizone + out.NodeTags = in.NodeTags + out.NodeInstancePrefix = in.NodeInstancePrefix + out.DisableSecurityGroupIngress = in.DisableSecurityGroupIngress + out.ElbSecurityGroup = in.ElbSecurityGroup + out.VSphereUsername = in.VSphereUsername + out.VSpherePassword = in.VSpherePassword + out.VSphereServer = in.VSphereServer + out.VSphereDatacenter = in.VSphereDatacenter + out.VSphereResourcePool = in.VSphereResourcePool + out.VSphereDatastore = in.VSphereDatastore + out.VSphereCoreDNSServer = in.VSphereCoreDNSServer + out.SpotinstProduct = in.SpotinstProduct + out.SpotinstOrientation = in.SpotinstOrientation + if in.Openstack != nil { + in, out := &in.Openstack, &out.Openstack + *out = new(OpenstackConfiguration) + if err := Convert_kops_OpenstackConfiguration_To_v1alpha1_OpenstackConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.Openstack = nil + } + return nil +} + +// Convert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration is an autogenerated conversion function. +func Convert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration(in *kops.CloudConfiguration, out *CloudConfiguration, s conversion.Scope) error { + return autoConvert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_CloudControllerManagerConfig_To_kops_CloudControllerManagerConfig(in *CloudControllerManagerConfig, out *kops.CloudControllerManagerConfig, s conversion.Scope) error { + out.Master = in.Master + out.LogLevel = in.LogLevel + out.Image = in.Image + out.CloudProvider = in.CloudProvider + out.ClusterName = in.ClusterName + out.ClusterCIDR = in.ClusterCIDR + out.AllocateNodeCIDRs = in.AllocateNodeCIDRs + out.ConfigureCloudRoutes = in.ConfigureCloudRoutes + out.CIDRAllocatorType = in.CIDRAllocatorType + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(kops.LeaderElectionConfiguration) + if err := Convert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.LeaderElection = nil + } + out.UseServiceAccountCredentials = in.UseServiceAccountCredentials + return nil +} + +// Convert_v1alpha1_CloudControllerManagerConfig_To_kops_CloudControllerManagerConfig is an autogenerated conversion function. +func Convert_v1alpha1_CloudControllerManagerConfig_To_kops_CloudControllerManagerConfig(in *CloudControllerManagerConfig, out *kops.CloudControllerManagerConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_CloudControllerManagerConfig_To_kops_CloudControllerManagerConfig(in, out, s) +} + +func autoConvert_kops_CloudControllerManagerConfig_To_v1alpha1_CloudControllerManagerConfig(in *kops.CloudControllerManagerConfig, out *CloudControllerManagerConfig, s conversion.Scope) error { + out.Master = in.Master + out.LogLevel = in.LogLevel + out.Image = in.Image + out.CloudProvider = in.CloudProvider + out.ClusterName = in.ClusterName + out.ClusterCIDR = in.ClusterCIDR + out.AllocateNodeCIDRs = in.AllocateNodeCIDRs + out.ConfigureCloudRoutes = in.ConfigureCloudRoutes + out.CIDRAllocatorType = in.CIDRAllocatorType + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(LeaderElectionConfiguration) + if err := Convert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.LeaderElection = nil + } + out.UseServiceAccountCredentials = in.UseServiceAccountCredentials + return nil +} + +// Convert_kops_CloudControllerManagerConfig_To_v1alpha1_CloudControllerManagerConfig is an autogenerated conversion function. +func Convert_kops_CloudControllerManagerConfig_To_v1alpha1_CloudControllerManagerConfig(in *kops.CloudControllerManagerConfig, out *CloudControllerManagerConfig, s conversion.Scope) error { + return autoConvert_kops_CloudControllerManagerConfig_To_v1alpha1_CloudControllerManagerConfig(in, out, s) +} + +func autoConvert_v1alpha1_Cluster_To_kops_Cluster(in *Cluster, out *kops.Cluster, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha1_ClusterSpec_To_kops_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha1_Cluster_To_kops_Cluster is an autogenerated conversion function. +func Convert_v1alpha1_Cluster_To_kops_Cluster(in *Cluster, out *kops.Cluster, s conversion.Scope) error { + return autoConvert_v1alpha1_Cluster_To_kops_Cluster(in, out, s) +} + +func autoConvert_kops_Cluster_To_v1alpha1_Cluster(in *kops.Cluster, out *Cluster, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_kops_ClusterSpec_To_v1alpha1_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_kops_Cluster_To_v1alpha1_Cluster is an autogenerated conversion function. +func Convert_kops_Cluster_To_v1alpha1_Cluster(in *kops.Cluster, out *Cluster, s conversion.Scope) error { + return autoConvert_kops_Cluster_To_v1alpha1_Cluster(in, out, s) +} + +func autoConvert_v1alpha1_ClusterList_To_kops_ClusterList(in *ClusterList, out *kops.ClusterList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]kops.Cluster, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_Cluster_To_kops_Cluster(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1alpha1_ClusterList_To_kops_ClusterList is an autogenerated conversion function. +func Convert_v1alpha1_ClusterList_To_kops_ClusterList(in *ClusterList, out *kops.ClusterList, s conversion.Scope) error { + return autoConvert_v1alpha1_ClusterList_To_kops_ClusterList(in, out, s) +} + +func autoConvert_kops_ClusterList_To_v1alpha1_ClusterList(in *kops.ClusterList, out *ClusterList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Cluster, len(*in)) + for i := range *in { + if err := Convert_kops_Cluster_To_v1alpha1_Cluster(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_kops_ClusterList_To_v1alpha1_ClusterList is an autogenerated conversion function. +func Convert_kops_ClusterList_To_v1alpha1_ClusterList(in *kops.ClusterList, out *ClusterList, s conversion.Scope) error { + return autoConvert_kops_ClusterList_To_v1alpha1_ClusterList(in, out, s) +} + +func autoConvert_v1alpha1_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out *kops.ClusterSpec, s conversion.Scope) error { + out.Channel = in.Channel + if in.Addons != nil { + in, out := &in.Addons, &out.Addons + *out = make([]kops.AddonSpec, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_AddonSpec_To_kops_AddonSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Addons = nil + } + out.ConfigBase = in.ConfigBase + out.CloudProvider = in.CloudProvider + if in.GossipConfig != nil { + in, out := &in.GossipConfig, &out.GossipConfig + *out = new(kops.GossipConfig) + if err := Convert_v1alpha1_GossipConfig_To_kops_GossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.GossipConfig = nil + } + out.ContainerRuntime = in.ContainerRuntime + out.KubernetesVersion = in.KubernetesVersion + // WARNING: in.Zones requires manual conversion: does not exist in peer-type + out.Project = in.Project + out.MasterPublicName = in.MasterPublicName + out.MasterInternalName = in.MasterInternalName + out.NetworkCIDR = in.NetworkCIDR + out.AdditionalNetworkCIDRs = in.AdditionalNetworkCIDRs + out.NetworkID = in.NetworkID + if in.Topology != nil { + in, out := &in.Topology, &out.Topology + *out = new(kops.TopologySpec) + if err := Convert_v1alpha1_TopologySpec_To_kops_TopologySpec(*in, *out, s); err != nil { + return err + } + } else { + out.Topology = nil + } + out.SecretStore = in.SecretStore + out.KeyStore = in.KeyStore + out.ConfigStore = in.ConfigStore + out.DNSZone = in.DNSZone + if in.DNSControllerGossipConfig != nil { + in, out := &in.DNSControllerGossipConfig, &out.DNSControllerGossipConfig + *out = new(kops.DNSControllerGossipConfig) + if err := Convert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.DNSControllerGossipConfig = nil + } + out.AdditionalSANs = in.AdditionalSANs + out.ClusterDNSDomain = in.ClusterDNSDomain + // WARNING: in.Multizone requires manual conversion: does not exist in peer-type + out.ServiceClusterIPRange = in.ServiceClusterIPRange + out.PodCIDR = in.PodCIDR + out.NonMasqueradeCIDR = in.NonMasqueradeCIDR + // WARNING: in.AdminAccess requires manual conversion: does not exist in peer-type + out.IsolateMasters = in.IsolateMasters + out.UpdatePolicy = in.UpdatePolicy + out.ExternalPolicies = in.ExternalPolicies + out.AdditionalPolicies = in.AdditionalPolicies + if in.FileAssets != nil { + in, out := &in.FileAssets, &out.FileAssets + *out = make([]kops.FileAssetSpec, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.FileAssets = nil + } + if in.EgressProxy != nil { + in, out := &in.EgressProxy, &out.EgressProxy + *out = new(kops.EgressProxySpec) + if err := Convert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(*in, *out, s); err != nil { + return err + } + } else { + out.EgressProxy = nil + } + out.SSHKeyName = in.SSHKeyName + if in.EtcdClusters != nil { + in, out := &in.EtcdClusters, &out.EtcdClusters + *out = make([]*kops.EtcdClusterSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.EtcdClusters = nil + } + if in.Containerd != nil { + in, out := &in.Containerd, &out.Containerd + *out = new(kops.ContainerdConfig) + if err := Convert_v1alpha1_ContainerdConfig_To_kops_ContainerdConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Containerd = nil + } + if in.Docker != nil { + in, out := &in.Docker, &out.Docker + *out = new(kops.DockerConfig) + if err := Convert_v1alpha1_DockerConfig_To_kops_DockerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Docker = nil + } + if in.KubeDNS != nil { + in, out := &in.KubeDNS, &out.KubeDNS + *out = new(kops.KubeDNSConfig) + if err := Convert_v1alpha1_KubeDNSConfig_To_kops_KubeDNSConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeDNS = nil + } + if in.KubeAPIServer != nil { + in, out := &in.KubeAPIServer, &out.KubeAPIServer + *out = new(kops.KubeAPIServerConfig) + if err := Convert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeAPIServer = nil + } + if in.KubeControllerManager != nil { + in, out := &in.KubeControllerManager, &out.KubeControllerManager + *out = new(kops.KubeControllerManagerConfig) + if err := Convert_v1alpha1_KubeControllerManagerConfig_To_kops_KubeControllerManagerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeControllerManager = nil + } + if in.ExternalCloudControllerManager != nil { + in, out := &in.ExternalCloudControllerManager, &out.ExternalCloudControllerManager + *out = new(kops.CloudControllerManagerConfig) + if err := Convert_v1alpha1_CloudControllerManagerConfig_To_kops_CloudControllerManagerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.ExternalCloudControllerManager = nil + } + if in.KubeScheduler != nil { + in, out := &in.KubeScheduler, &out.KubeScheduler + *out = new(kops.KubeSchedulerConfig) + if err := Convert_v1alpha1_KubeSchedulerConfig_To_kops_KubeSchedulerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeScheduler = nil + } + if in.KubeProxy != nil { + in, out := &in.KubeProxy, &out.KubeProxy + *out = new(kops.KubeProxyConfig) + if err := Convert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeProxy = nil + } + if in.Kubelet != nil { + in, out := &in.Kubelet, &out.Kubelet + *out = new(kops.KubeletConfigSpec) + if err := Convert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kubelet = nil + } + if in.MasterKubelet != nil { + in, out := &in.MasterKubelet, &out.MasterKubelet + *out = new(kops.KubeletConfigSpec) + if err := Convert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(*in, *out, s); err != nil { + return err + } + } else { + out.MasterKubelet = nil + } + if in.CloudConfig != nil { + in, out := &in.CloudConfig, &out.CloudConfig + *out = new(kops.CloudConfiguration) + if err := Convert_v1alpha1_CloudConfiguration_To_kops_CloudConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.CloudConfig = nil + } + if in.ExternalDNS != nil { + in, out := &in.ExternalDNS, &out.ExternalDNS + *out = new(kops.ExternalDNSConfig) + if err := Convert_v1alpha1_ExternalDNSConfig_To_kops_ExternalDNSConfig(*in, *out, s); err != nil { + return err + } + } else { + out.ExternalDNS = nil + } + if in.Networking != nil { + in, out := &in.Networking, &out.Networking + *out = new(kops.NetworkingSpec) + if err := Convert_v1alpha1_NetworkingSpec_To_kops_NetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Networking = nil + } + if in.API != nil { + in, out := &in.API, &out.API + *out = new(kops.AccessSpec) + if err := Convert_v1alpha1_AccessSpec_To_kops_AccessSpec(*in, *out, s); err != nil { + return err + } + } else { + out.API = nil + } + if in.Authentication != nil { + in, out := &in.Authentication, &out.Authentication + *out = new(kops.AuthenticationSpec) + if err := Convert_v1alpha1_AuthenticationSpec_To_kops_AuthenticationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Authentication = nil + } + if in.Authorization != nil { + in, out := &in.Authorization, &out.Authorization + *out = new(kops.AuthorizationSpec) + if err := Convert_v1alpha1_AuthorizationSpec_To_kops_AuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Authorization = nil + } + if in.NodeAuthorization != nil { + in, out := &in.NodeAuthorization, &out.NodeAuthorization + *out = new(kops.NodeAuthorizationSpec) + if err := Convert_v1alpha1_NodeAuthorizationSpec_To_kops_NodeAuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.NodeAuthorization = nil + } + out.CloudLabels = in.CloudLabels + if in.Hooks != nil { + in, out := &in.Hooks, &out.Hooks + *out = make([]kops.HookSpec, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_HookSpec_To_kops_HookSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Hooks = nil + } + if in.Assets != nil { + in, out := &in.Assets, &out.Assets + *out = new(kops.Assets) + if err := Convert_v1alpha1_Assets_To_kops_Assets(*in, *out, s); err != nil { + return err + } + } else { + out.Assets = nil + } + if in.IAM != nil { + in, out := &in.IAM, &out.IAM + *out = new(kops.IAMSpec) + if err := Convert_v1alpha1_IAMSpec_To_kops_IAMSpec(*in, *out, s); err != nil { + return err + } + } else { + out.IAM = nil + } + out.EncryptionConfig = in.EncryptionConfig + out.DisableSubnetTags = in.DisableSubnetTags + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(kops.TargetSpec) + if err := Convert_v1alpha1_TargetSpec_To_kops_TargetSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Target = nil + } + out.UseHostCertificates = in.UseHostCertificates + out.SysctlParameters = in.SysctlParameters + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(kops.RollingUpdate) + if err := Convert_v1alpha1_RollingUpdate_To_kops_RollingUpdate(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_kops_ClusterSpec_To_v1alpha1_ClusterSpec(in *kops.ClusterSpec, out *ClusterSpec, s conversion.Scope) error { + out.Channel = in.Channel + if in.Addons != nil { + in, out := &in.Addons, &out.Addons + *out = make([]AddonSpec, len(*in)) + for i := range *in { + if err := Convert_kops_AddonSpec_To_v1alpha1_AddonSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Addons = nil + } + out.ConfigBase = in.ConfigBase + out.CloudProvider = in.CloudProvider + if in.GossipConfig != nil { + in, out := &in.GossipConfig, &out.GossipConfig + *out = new(GossipConfig) + if err := Convert_kops_GossipConfig_To_v1alpha1_GossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.GossipConfig = nil + } + out.ContainerRuntime = in.ContainerRuntime + out.KubernetesVersion = in.KubernetesVersion + // WARNING: in.Subnets requires manual conversion: does not exist in peer-type + out.Project = in.Project + out.MasterPublicName = in.MasterPublicName + out.MasterInternalName = in.MasterInternalName + out.NetworkCIDR = in.NetworkCIDR + out.AdditionalNetworkCIDRs = in.AdditionalNetworkCIDRs + out.NetworkID = in.NetworkID + if in.Topology != nil { + in, out := &in.Topology, &out.Topology + *out = new(TopologySpec) + if err := Convert_kops_TopologySpec_To_v1alpha1_TopologySpec(*in, *out, s); err != nil { + return err + } + } else { + out.Topology = nil + } + out.SecretStore = in.SecretStore + out.KeyStore = in.KeyStore + out.ConfigStore = in.ConfigStore + out.DNSZone = in.DNSZone + if in.DNSControllerGossipConfig != nil { + in, out := &in.DNSControllerGossipConfig, &out.DNSControllerGossipConfig + *out = new(DNSControllerGossipConfig) + if err := Convert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.DNSControllerGossipConfig = nil + } + out.AdditionalSANs = in.AdditionalSANs + out.ClusterDNSDomain = in.ClusterDNSDomain + out.ServiceClusterIPRange = in.ServiceClusterIPRange + out.PodCIDR = in.PodCIDR + out.NonMasqueradeCIDR = in.NonMasqueradeCIDR + // WARNING: in.SSHAccess requires manual conversion: does not exist in peer-type + // WARNING: in.NodePortAccess requires manual conversion: does not exist in peer-type + if in.EgressProxy != nil { + in, out := &in.EgressProxy, &out.EgressProxy + *out = new(EgressProxySpec) + if err := Convert_kops_EgressProxySpec_To_v1alpha1_EgressProxySpec(*in, *out, s); err != nil { + return err + } + } else { + out.EgressProxy = nil + } + out.SSHKeyName = in.SSHKeyName + // WARNING: in.KubernetesAPIAccess requires manual conversion: does not exist in peer-type + out.IsolateMasters = in.IsolateMasters + out.UpdatePolicy = in.UpdatePolicy + out.ExternalPolicies = in.ExternalPolicies + out.AdditionalPolicies = in.AdditionalPolicies + if in.FileAssets != nil { + in, out := &in.FileAssets, &out.FileAssets + *out = make([]FileAssetSpec, len(*in)) + for i := range *in { + if err := Convert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.FileAssets = nil + } + if in.EtcdClusters != nil { + in, out := &in.EtcdClusters, &out.EtcdClusters + *out = make([]*EtcdClusterSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.EtcdClusters = nil + } + if in.Containerd != nil { + in, out := &in.Containerd, &out.Containerd + *out = new(ContainerdConfig) + if err := Convert_kops_ContainerdConfig_To_v1alpha1_ContainerdConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Containerd = nil + } + if in.Docker != nil { + in, out := &in.Docker, &out.Docker + *out = new(DockerConfig) + if err := Convert_kops_DockerConfig_To_v1alpha1_DockerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Docker = nil + } + if in.KubeDNS != nil { + in, out := &in.KubeDNS, &out.KubeDNS + *out = new(KubeDNSConfig) + if err := Convert_kops_KubeDNSConfig_To_v1alpha1_KubeDNSConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeDNS = nil + } + if in.KubeAPIServer != nil { + in, out := &in.KubeAPIServer, &out.KubeAPIServer + *out = new(KubeAPIServerConfig) + if err := Convert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeAPIServer = nil + } + if in.KubeControllerManager != nil { + in, out := &in.KubeControllerManager, &out.KubeControllerManager + *out = new(KubeControllerManagerConfig) + if err := Convert_kops_KubeControllerManagerConfig_To_v1alpha1_KubeControllerManagerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeControllerManager = nil + } + if in.ExternalCloudControllerManager != nil { + in, out := &in.ExternalCloudControllerManager, &out.ExternalCloudControllerManager + *out = new(CloudControllerManagerConfig) + if err := Convert_kops_CloudControllerManagerConfig_To_v1alpha1_CloudControllerManagerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.ExternalCloudControllerManager = nil + } + if in.KubeScheduler != nil { + in, out := &in.KubeScheduler, &out.KubeScheduler + *out = new(KubeSchedulerConfig) + if err := Convert_kops_KubeSchedulerConfig_To_v1alpha1_KubeSchedulerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeScheduler = nil + } + if in.KubeProxy != nil { + in, out := &in.KubeProxy, &out.KubeProxy + *out = new(KubeProxyConfig) + if err := Convert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig(*in, *out, s); err != nil { + return err + } + } else { + out.KubeProxy = nil + } + if in.Kubelet != nil { + in, out := &in.Kubelet, &out.Kubelet + *out = new(KubeletConfigSpec) + if err := Convert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kubelet = nil + } + if in.MasterKubelet != nil { + in, out := &in.MasterKubelet, &out.MasterKubelet + *out = new(KubeletConfigSpec) + if err := Convert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(*in, *out, s); err != nil { + return err + } + } else { + out.MasterKubelet = nil + } + if in.CloudConfig != nil { + in, out := &in.CloudConfig, &out.CloudConfig + *out = new(CloudConfiguration) + if err := Convert_kops_CloudConfiguration_To_v1alpha1_CloudConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.CloudConfig = nil + } + if in.ExternalDNS != nil { + in, out := &in.ExternalDNS, &out.ExternalDNS + *out = new(ExternalDNSConfig) + if err := Convert_kops_ExternalDNSConfig_To_v1alpha1_ExternalDNSConfig(*in, *out, s); err != nil { + return err + } + } else { + out.ExternalDNS = nil + } + if in.Networking != nil { + in, out := &in.Networking, &out.Networking + *out = new(NetworkingSpec) + if err := Convert_kops_NetworkingSpec_To_v1alpha1_NetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Networking = nil + } + if in.API != nil { + in, out := &in.API, &out.API + *out = new(AccessSpec) + if err := Convert_kops_AccessSpec_To_v1alpha1_AccessSpec(*in, *out, s); err != nil { + return err + } + } else { + out.API = nil + } + if in.Authentication != nil { + in, out := &in.Authentication, &out.Authentication + *out = new(AuthenticationSpec) + if err := Convert_kops_AuthenticationSpec_To_v1alpha1_AuthenticationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Authentication = nil + } + if in.Authorization != nil { + in, out := &in.Authorization, &out.Authorization + *out = new(AuthorizationSpec) + if err := Convert_kops_AuthorizationSpec_To_v1alpha1_AuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Authorization = nil + } + if in.NodeAuthorization != nil { + in, out := &in.NodeAuthorization, &out.NodeAuthorization + *out = new(NodeAuthorizationSpec) + if err := Convert_kops_NodeAuthorizationSpec_To_v1alpha1_NodeAuthorizationSpec(*in, *out, s); err != nil { + return err + } + } else { + out.NodeAuthorization = nil + } + out.CloudLabels = in.CloudLabels + if in.Hooks != nil { + in, out := &in.Hooks, &out.Hooks + *out = make([]HookSpec, len(*in)) + for i := range *in { + if err := Convert_kops_HookSpec_To_v1alpha1_HookSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Hooks = nil + } + if in.Assets != nil { + in, out := &in.Assets, &out.Assets + *out = new(Assets) + if err := Convert_kops_Assets_To_v1alpha1_Assets(*in, *out, s); err != nil { + return err + } + } else { + out.Assets = nil + } + if in.IAM != nil { + in, out := &in.IAM, &out.IAM + *out = new(IAMSpec) + if err := Convert_kops_IAMSpec_To_v1alpha1_IAMSpec(*in, *out, s); err != nil { + return err + } + } else { + out.IAM = nil + } + out.EncryptionConfig = in.EncryptionConfig + out.DisableSubnetTags = in.DisableSubnetTags + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(TargetSpec) + if err := Convert_kops_TargetSpec_To_v1alpha1_TargetSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Target = nil + } + out.UseHostCertificates = in.UseHostCertificates + out.SysctlParameters = in.SysctlParameters + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(RollingUpdate) + if err := Convert_kops_RollingUpdate_To_v1alpha1_RollingUpdate(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + // WARNING: in.GCEServiceAccount requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_v1alpha1_ContainerdConfig_To_kops_ContainerdConfig(in *ContainerdConfig, out *kops.ContainerdConfig, s conversion.Scope) error { + out.Address = in.Address + out.ConfigOverride = in.ConfigOverride + out.LogLevel = in.LogLevel + out.Root = in.Root + out.SkipInstall = in.SkipInstall + out.State = in.State + out.Version = in.Version + return nil +} + +// Convert_v1alpha1_ContainerdConfig_To_kops_ContainerdConfig is an autogenerated conversion function. +func Convert_v1alpha1_ContainerdConfig_To_kops_ContainerdConfig(in *ContainerdConfig, out *kops.ContainerdConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_ContainerdConfig_To_kops_ContainerdConfig(in, out, s) +} + +func autoConvert_kops_ContainerdConfig_To_v1alpha1_ContainerdConfig(in *kops.ContainerdConfig, out *ContainerdConfig, s conversion.Scope) error { + out.Address = in.Address + out.ConfigOverride = in.ConfigOverride + out.LogLevel = in.LogLevel + out.Root = in.Root + out.SkipInstall = in.SkipInstall + out.State = in.State + out.Version = in.Version + return nil +} + +// Convert_kops_ContainerdConfig_To_v1alpha1_ContainerdConfig is an autogenerated conversion function. +func Convert_kops_ContainerdConfig_To_v1alpha1_ContainerdConfig(in *kops.ContainerdConfig, out *ContainerdConfig, s conversion.Scope) error { + return autoConvert_kops_ContainerdConfig_To_v1alpha1_ContainerdConfig(in, out, s) +} + +func autoConvert_v1alpha1_DNSAccessSpec_To_kops_DNSAccessSpec(in *DNSAccessSpec, out *kops.DNSAccessSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_DNSAccessSpec_To_kops_DNSAccessSpec is an autogenerated conversion function. +func Convert_v1alpha1_DNSAccessSpec_To_kops_DNSAccessSpec(in *DNSAccessSpec, out *kops.DNSAccessSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_DNSAccessSpec_To_kops_DNSAccessSpec(in, out, s) +} + +func autoConvert_kops_DNSAccessSpec_To_v1alpha1_DNSAccessSpec(in *kops.DNSAccessSpec, out *DNSAccessSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_DNSAccessSpec_To_v1alpha1_DNSAccessSpec is an autogenerated conversion function. +func Convert_kops_DNSAccessSpec_To_v1alpha1_DNSAccessSpec(in *kops.DNSAccessSpec, out *DNSAccessSpec, s conversion.Scope) error { + return autoConvert_kops_DNSAccessSpec_To_v1alpha1_DNSAccessSpec(in, out, s) +} + +func autoConvert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig(in *DNSControllerGossipConfig, out *kops.DNSControllerGossipConfig, s conversion.Scope) error { + out.Protocol = in.Protocol + out.Listen = in.Listen + out.Secret = in.Secret + if in.Secondary != nil { + in, out := &in.Secondary, &out.Secondary + *out = new(kops.DNSControllerGossipConfig) + if err := Convert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Secondary = nil + } + out.Seed = in.Seed + return nil +} + +// Convert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig is an autogenerated conversion function. +func Convert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig(in *DNSControllerGossipConfig, out *kops.DNSControllerGossipConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_DNSControllerGossipConfig_To_kops_DNSControllerGossipConfig(in, out, s) +} + +func autoConvert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig(in *kops.DNSControllerGossipConfig, out *DNSControllerGossipConfig, s conversion.Scope) error { + out.Protocol = in.Protocol + out.Listen = in.Listen + out.Secret = in.Secret + if in.Secondary != nil { + in, out := &in.Secondary, &out.Secondary + *out = new(DNSControllerGossipConfig) + if err := Convert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Secondary = nil + } + out.Seed = in.Seed + return nil +} + +// Convert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig is an autogenerated conversion function. +func Convert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig(in *kops.DNSControllerGossipConfig, out *DNSControllerGossipConfig, s conversion.Scope) error { + return autoConvert_kops_DNSControllerGossipConfig_To_v1alpha1_DNSControllerGossipConfig(in, out, s) +} + +func autoConvert_v1alpha1_DNSSpec_To_kops_DNSSpec(in *DNSSpec, out *kops.DNSSpec, s conversion.Scope) error { + out.Type = kops.DNSType(in.Type) + return nil +} + +// Convert_v1alpha1_DNSSpec_To_kops_DNSSpec is an autogenerated conversion function. +func Convert_v1alpha1_DNSSpec_To_kops_DNSSpec(in *DNSSpec, out *kops.DNSSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_DNSSpec_To_kops_DNSSpec(in, out, s) +} + +func autoConvert_kops_DNSSpec_To_v1alpha1_DNSSpec(in *kops.DNSSpec, out *DNSSpec, s conversion.Scope) error { + out.Type = DNSType(in.Type) + return nil +} + +// Convert_kops_DNSSpec_To_v1alpha1_DNSSpec is an autogenerated conversion function. +func Convert_kops_DNSSpec_To_v1alpha1_DNSSpec(in *kops.DNSSpec, out *DNSSpec, s conversion.Scope) error { + return autoConvert_kops_DNSSpec_To_v1alpha1_DNSSpec(in, out, s) +} + +func autoConvert_v1alpha1_DockerConfig_To_kops_DockerConfig(in *DockerConfig, out *kops.DockerConfig, s conversion.Scope) error { + out.AuthorizationPlugins = in.AuthorizationPlugins + out.Bridge = in.Bridge + out.BridgeIP = in.BridgeIP + out.DataRoot = in.DataRoot + out.DefaultUlimit = in.DefaultUlimit + out.ExecOpt = in.ExecOpt + out.ExecRoot = in.ExecRoot + out.Experimental = in.Experimental + out.HealthCheck = in.HealthCheck + out.Hosts = in.Hosts + out.IPMasq = in.IPMasq + out.IPTables = in.IPTables + out.InsecureRegistry = in.InsecureRegistry + out.InsecureRegistries = in.InsecureRegistries + out.LiveRestore = in.LiveRestore + out.LogDriver = in.LogDriver + out.LogLevel = in.LogLevel + out.LogOpt = in.LogOpt + out.MetricsAddress = in.MetricsAddress + out.MTU = in.MTU + out.RegistryMirrors = in.RegistryMirrors + out.SkipInstall = in.SkipInstall + out.Storage = in.Storage + out.StorageOpts = in.StorageOpts + out.UserNamespaceRemap = in.UserNamespaceRemap + out.Version = in.Version + return nil +} + +// Convert_v1alpha1_DockerConfig_To_kops_DockerConfig is an autogenerated conversion function. +func Convert_v1alpha1_DockerConfig_To_kops_DockerConfig(in *DockerConfig, out *kops.DockerConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_DockerConfig_To_kops_DockerConfig(in, out, s) +} + +func autoConvert_kops_DockerConfig_To_v1alpha1_DockerConfig(in *kops.DockerConfig, out *DockerConfig, s conversion.Scope) error { + out.AuthorizationPlugins = in.AuthorizationPlugins + out.Bridge = in.Bridge + out.BridgeIP = in.BridgeIP + out.DataRoot = in.DataRoot + out.DefaultUlimit = in.DefaultUlimit + out.ExecOpt = in.ExecOpt + out.ExecRoot = in.ExecRoot + out.Experimental = in.Experimental + out.HealthCheck = in.HealthCheck + out.Hosts = in.Hosts + out.IPMasq = in.IPMasq + out.IPTables = in.IPTables + out.InsecureRegistry = in.InsecureRegistry + out.InsecureRegistries = in.InsecureRegistries + out.LiveRestore = in.LiveRestore + out.LogDriver = in.LogDriver + out.LogLevel = in.LogLevel + out.LogOpt = in.LogOpt + out.MetricsAddress = in.MetricsAddress + out.MTU = in.MTU + out.RegistryMirrors = in.RegistryMirrors + out.SkipInstall = in.SkipInstall + out.Storage = in.Storage + out.StorageOpts = in.StorageOpts + out.UserNamespaceRemap = in.UserNamespaceRemap + out.Version = in.Version + return nil +} + +// Convert_kops_DockerConfig_To_v1alpha1_DockerConfig is an autogenerated conversion function. +func Convert_kops_DockerConfig_To_v1alpha1_DockerConfig(in *kops.DockerConfig, out *DockerConfig, s conversion.Scope) error { + return autoConvert_kops_DockerConfig_To_v1alpha1_DockerConfig(in, out, s) +} + +func autoConvert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(in *EgressProxySpec, out *kops.EgressProxySpec, s conversion.Scope) error { + if err := Convert_v1alpha1_HTTPProxy_To_kops_HTTPProxy(&in.HTTPProxy, &out.HTTPProxy, s); err != nil { + return err + } + out.ProxyExcludes = in.ProxyExcludes + return nil +} + +// Convert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec is an autogenerated conversion function. +func Convert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(in *EgressProxySpec, out *kops.EgressProxySpec, s conversion.Scope) error { + return autoConvert_v1alpha1_EgressProxySpec_To_kops_EgressProxySpec(in, out, s) +} + +func autoConvert_kops_EgressProxySpec_To_v1alpha1_EgressProxySpec(in *kops.EgressProxySpec, out *EgressProxySpec, s conversion.Scope) error { + if err := Convert_kops_HTTPProxy_To_v1alpha1_HTTPProxy(&in.HTTPProxy, &out.HTTPProxy, s); err != nil { + return err + } + out.ProxyExcludes = in.ProxyExcludes + return nil +} + +// Convert_kops_EgressProxySpec_To_v1alpha1_EgressProxySpec is an autogenerated conversion function. +func Convert_kops_EgressProxySpec_To_v1alpha1_EgressProxySpec(in *kops.EgressProxySpec, out *EgressProxySpec, s conversion.Scope) error { + return autoConvert_kops_EgressProxySpec_To_v1alpha1_EgressProxySpec(in, out, s) +} + +func autoConvert_v1alpha1_EnvVar_To_kops_EnvVar(in *EnvVar, out *kops.EnvVar, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + return nil +} + +// Convert_v1alpha1_EnvVar_To_kops_EnvVar is an autogenerated conversion function. +func Convert_v1alpha1_EnvVar_To_kops_EnvVar(in *EnvVar, out *kops.EnvVar, s conversion.Scope) error { + return autoConvert_v1alpha1_EnvVar_To_kops_EnvVar(in, out, s) +} + +func autoConvert_kops_EnvVar_To_v1alpha1_EnvVar(in *kops.EnvVar, out *EnvVar, s conversion.Scope) error { + out.Name = in.Name + out.Value = in.Value + return nil +} + +// Convert_kops_EnvVar_To_v1alpha1_EnvVar is an autogenerated conversion function. +func Convert_kops_EnvVar_To_v1alpha1_EnvVar(in *kops.EnvVar, out *EnvVar, s conversion.Scope) error { + return autoConvert_kops_EnvVar_To_v1alpha1_EnvVar(in, out, s) +} + +func autoConvert_v1alpha1_EtcdBackupSpec_To_kops_EtcdBackupSpec(in *EtcdBackupSpec, out *kops.EtcdBackupSpec, s conversion.Scope) error { + out.BackupStore = in.BackupStore + out.Image = in.Image + return nil +} + +// Convert_v1alpha1_EtcdBackupSpec_To_kops_EtcdBackupSpec is an autogenerated conversion function. +func Convert_v1alpha1_EtcdBackupSpec_To_kops_EtcdBackupSpec(in *EtcdBackupSpec, out *kops.EtcdBackupSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_EtcdBackupSpec_To_kops_EtcdBackupSpec(in, out, s) +} + +func autoConvert_kops_EtcdBackupSpec_To_v1alpha1_EtcdBackupSpec(in *kops.EtcdBackupSpec, out *EtcdBackupSpec, s conversion.Scope) error { + out.BackupStore = in.BackupStore + out.Image = in.Image + return nil +} + +// Convert_kops_EtcdBackupSpec_To_v1alpha1_EtcdBackupSpec is an autogenerated conversion function. +func Convert_kops_EtcdBackupSpec_To_v1alpha1_EtcdBackupSpec(in *kops.EtcdBackupSpec, out *EtcdBackupSpec, s conversion.Scope) error { + return autoConvert_kops_EtcdBackupSpec_To_v1alpha1_EtcdBackupSpec(in, out, s) +} + +func autoConvert_v1alpha1_EtcdClusterSpec_To_kops_EtcdClusterSpec(in *EtcdClusterSpec, out *kops.EtcdClusterSpec, s conversion.Scope) error { + out.Name = in.Name + out.Provider = kops.EtcdProviderType(in.Provider) + if in.Members != nil { + in, out := &in.Members, &out.Members + *out = make([]*kops.EtcdMemberSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.Members = nil + } + out.EnableTLSAuth = in.EnableTLSAuth + out.EnableEtcdTLS = in.EnableEtcdTLS + out.Version = in.Version + out.LeaderElectionTimeout = in.LeaderElectionTimeout + out.HeartbeatInterval = in.HeartbeatInterval + out.Image = in.Image + if in.Backups != nil { + in, out := &in.Backups, &out.Backups + *out = new(kops.EtcdBackupSpec) + if err := Convert_v1alpha1_EtcdBackupSpec_To_kops_EtcdBackupSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Backups = nil + } + if in.Manager != nil { + in, out := &in.Manager, &out.Manager + *out = new(kops.EtcdManagerSpec) + if err := Convert_v1alpha1_EtcdManagerSpec_To_kops_EtcdManagerSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Manager = nil + } + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + return nil +} + +// Convert_v1alpha1_EtcdClusterSpec_To_kops_EtcdClusterSpec is an autogenerated conversion function. +func Convert_v1alpha1_EtcdClusterSpec_To_kops_EtcdClusterSpec(in *EtcdClusterSpec, out *kops.EtcdClusterSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_EtcdClusterSpec_To_kops_EtcdClusterSpec(in, out, s) +} + +func autoConvert_kops_EtcdClusterSpec_To_v1alpha1_EtcdClusterSpec(in *kops.EtcdClusterSpec, out *EtcdClusterSpec, s conversion.Scope) error { + out.Name = in.Name + out.Provider = EtcdProviderType(in.Provider) + if in.Members != nil { + in, out := &in.Members, &out.Members + *out = make([]*EtcdMemberSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.Members = nil + } + out.EnableEtcdTLS = in.EnableEtcdTLS + out.EnableTLSAuth = in.EnableTLSAuth + out.Version = in.Version + out.LeaderElectionTimeout = in.LeaderElectionTimeout + out.HeartbeatInterval = in.HeartbeatInterval + out.Image = in.Image + if in.Backups != nil { + in, out := &in.Backups, &out.Backups + *out = new(EtcdBackupSpec) + if err := Convert_kops_EtcdBackupSpec_To_v1alpha1_EtcdBackupSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Backups = nil + } + if in.Manager != nil { + in, out := &in.Manager, &out.Manager + *out = new(EtcdManagerSpec) + if err := Convert_kops_EtcdManagerSpec_To_v1alpha1_EtcdManagerSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Manager = nil + } + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + return nil +} + +// Convert_kops_EtcdClusterSpec_To_v1alpha1_EtcdClusterSpec is an autogenerated conversion function. +func Convert_kops_EtcdClusterSpec_To_v1alpha1_EtcdClusterSpec(in *kops.EtcdClusterSpec, out *EtcdClusterSpec, s conversion.Scope) error { + return autoConvert_kops_EtcdClusterSpec_To_v1alpha1_EtcdClusterSpec(in, out, s) +} + +func autoConvert_v1alpha1_EtcdManagerSpec_To_kops_EtcdManagerSpec(in *EtcdManagerSpec, out *kops.EtcdManagerSpec, s conversion.Scope) error { + out.Image = in.Image + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]kops.EnvVar, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_EnvVar_To_kops_EnvVar(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Env = nil + } + return nil +} + +// Convert_v1alpha1_EtcdManagerSpec_To_kops_EtcdManagerSpec is an autogenerated conversion function. +func Convert_v1alpha1_EtcdManagerSpec_To_kops_EtcdManagerSpec(in *EtcdManagerSpec, out *kops.EtcdManagerSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_EtcdManagerSpec_To_kops_EtcdManagerSpec(in, out, s) +} + +func autoConvert_kops_EtcdManagerSpec_To_v1alpha1_EtcdManagerSpec(in *kops.EtcdManagerSpec, out *EtcdManagerSpec, s conversion.Scope) error { + out.Image = in.Image + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]EnvVar, len(*in)) + for i := range *in { + if err := Convert_kops_EnvVar_To_v1alpha1_EnvVar(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Env = nil + } + return nil +} + +// Convert_kops_EtcdManagerSpec_To_v1alpha1_EtcdManagerSpec is an autogenerated conversion function. +func Convert_kops_EtcdManagerSpec_To_v1alpha1_EtcdManagerSpec(in *kops.EtcdManagerSpec, out *EtcdManagerSpec, s conversion.Scope) error { + return autoConvert_kops_EtcdManagerSpec_To_v1alpha1_EtcdManagerSpec(in, out, s) +} + +func autoConvert_v1alpha1_EtcdMemberSpec_To_kops_EtcdMemberSpec(in *EtcdMemberSpec, out *kops.EtcdMemberSpec, s conversion.Scope) error { + out.Name = in.Name + // WARNING: in.Zone requires manual conversion: does not exist in peer-type + out.VolumeType = in.VolumeType + out.VolumeIops = in.VolumeIops + out.VolumeSize = in.VolumeSize + out.KmsKeyId = in.KmsKeyId + out.EncryptedVolume = in.EncryptedVolume + return nil +} + +func autoConvert_kops_EtcdMemberSpec_To_v1alpha1_EtcdMemberSpec(in *kops.EtcdMemberSpec, out *EtcdMemberSpec, s conversion.Scope) error { + out.Name = in.Name + // WARNING: in.InstanceGroup requires manual conversion: does not exist in peer-type + out.VolumeType = in.VolumeType + out.VolumeIops = in.VolumeIops + out.VolumeSize = in.VolumeSize + out.KmsKeyId = in.KmsKeyId + out.EncryptedVolume = in.EncryptedVolume + return nil +} + +func autoConvert_v1alpha1_ExecContainerAction_To_kops_ExecContainerAction(in *ExecContainerAction, out *kops.ExecContainerAction, s conversion.Scope) error { + out.Image = in.Image + out.Command = in.Command + out.Environment = in.Environment + return nil +} + +// Convert_v1alpha1_ExecContainerAction_To_kops_ExecContainerAction is an autogenerated conversion function. +func Convert_v1alpha1_ExecContainerAction_To_kops_ExecContainerAction(in *ExecContainerAction, out *kops.ExecContainerAction, s conversion.Scope) error { + return autoConvert_v1alpha1_ExecContainerAction_To_kops_ExecContainerAction(in, out, s) +} + +func autoConvert_kops_ExecContainerAction_To_v1alpha1_ExecContainerAction(in *kops.ExecContainerAction, out *ExecContainerAction, s conversion.Scope) error { + out.Image = in.Image + out.Command = in.Command + out.Environment = in.Environment + return nil +} + +// Convert_kops_ExecContainerAction_To_v1alpha1_ExecContainerAction is an autogenerated conversion function. +func Convert_kops_ExecContainerAction_To_v1alpha1_ExecContainerAction(in *kops.ExecContainerAction, out *ExecContainerAction, s conversion.Scope) error { + return autoConvert_kops_ExecContainerAction_To_v1alpha1_ExecContainerAction(in, out, s) +} + +func autoConvert_v1alpha1_ExternalDNSConfig_To_kops_ExternalDNSConfig(in *ExternalDNSConfig, out *kops.ExternalDNSConfig, s conversion.Scope) error { + out.Disable = in.Disable + out.WatchIngress = in.WatchIngress + out.WatchNamespace = in.WatchNamespace + return nil +} + +// Convert_v1alpha1_ExternalDNSConfig_To_kops_ExternalDNSConfig is an autogenerated conversion function. +func Convert_v1alpha1_ExternalDNSConfig_To_kops_ExternalDNSConfig(in *ExternalDNSConfig, out *kops.ExternalDNSConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_ExternalDNSConfig_To_kops_ExternalDNSConfig(in, out, s) +} + +func autoConvert_kops_ExternalDNSConfig_To_v1alpha1_ExternalDNSConfig(in *kops.ExternalDNSConfig, out *ExternalDNSConfig, s conversion.Scope) error { + out.Disable = in.Disable + out.WatchIngress = in.WatchIngress + out.WatchNamespace = in.WatchNamespace + return nil +} + +// Convert_kops_ExternalDNSConfig_To_v1alpha1_ExternalDNSConfig is an autogenerated conversion function. +func Convert_kops_ExternalDNSConfig_To_v1alpha1_ExternalDNSConfig(in *kops.ExternalDNSConfig, out *ExternalDNSConfig, s conversion.Scope) error { + return autoConvert_kops_ExternalDNSConfig_To_v1alpha1_ExternalDNSConfig(in, out, s) +} + +func autoConvert_v1alpha1_ExternalNetworkingSpec_To_kops_ExternalNetworkingSpec(in *ExternalNetworkingSpec, out *kops.ExternalNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_ExternalNetworkingSpec_To_kops_ExternalNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_ExternalNetworkingSpec_To_kops_ExternalNetworkingSpec(in *ExternalNetworkingSpec, out *kops.ExternalNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_ExternalNetworkingSpec_To_kops_ExternalNetworkingSpec(in, out, s) +} + +func autoConvert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec(in *kops.ExternalNetworkingSpec, out *ExternalNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec is an autogenerated conversion function. +func Convert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec(in *kops.ExternalNetworkingSpec, out *ExternalNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec(in *FileAssetSpec, out *kops.FileAssetSpec, s conversion.Scope) error { + out.Name = in.Name + out.Path = in.Path + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]kops.InstanceGroupRole, len(*in)) + for i := range *in { + (*out)[i] = kops.InstanceGroupRole((*in)[i]) + } + } else { + out.Roles = nil + } + out.Content = in.Content + out.IsBase64 = in.IsBase64 + return nil +} + +// Convert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec is an autogenerated conversion function. +func Convert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec(in *FileAssetSpec, out *kops.FileAssetSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec(in, out, s) +} + +func autoConvert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec(in *kops.FileAssetSpec, out *FileAssetSpec, s conversion.Scope) error { + out.Name = in.Name + out.Path = in.Path + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]InstanceGroupRole, len(*in)) + for i := range *in { + (*out)[i] = InstanceGroupRole((*in)[i]) + } + } else { + out.Roles = nil + } + out.Content = in.Content + out.IsBase64 = in.IsBase64 + return nil +} + +// Convert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec is an autogenerated conversion function. +func Convert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec(in *kops.FileAssetSpec, out *FileAssetSpec, s conversion.Scope) error { + return autoConvert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec(in, out, s) +} + +func autoConvert_v1alpha1_FlannelNetworkingSpec_To_kops_FlannelNetworkingSpec(in *FlannelNetworkingSpec, out *kops.FlannelNetworkingSpec, s conversion.Scope) error { + out.Backend = in.Backend + out.IptablesResyncSeconds = in.IptablesResyncSeconds + return nil +} + +// Convert_v1alpha1_FlannelNetworkingSpec_To_kops_FlannelNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_FlannelNetworkingSpec_To_kops_FlannelNetworkingSpec(in *FlannelNetworkingSpec, out *kops.FlannelNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_FlannelNetworkingSpec_To_kops_FlannelNetworkingSpec(in, out, s) +} + +func autoConvert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec(in *kops.FlannelNetworkingSpec, out *FlannelNetworkingSpec, s conversion.Scope) error { + out.Backend = in.Backend + out.IptablesResyncSeconds = in.IptablesResyncSeconds + return nil +} + +// Convert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec is an autogenerated conversion function. +func Convert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec(in *kops.FlannelNetworkingSpec, out *FlannelNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_GCENetworkingSpec_To_kops_GCENetworkingSpec(in *GCENetworkingSpec, out *kops.GCENetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_GCENetworkingSpec_To_kops_GCENetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_GCENetworkingSpec_To_kops_GCENetworkingSpec(in *GCENetworkingSpec, out *kops.GCENetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_GCENetworkingSpec_To_kops_GCENetworkingSpec(in, out, s) +} + +func autoConvert_kops_GCENetworkingSpec_To_v1alpha1_GCENetworkingSpec(in *kops.GCENetworkingSpec, out *GCENetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_GCENetworkingSpec_To_v1alpha1_GCENetworkingSpec is an autogenerated conversion function. +func Convert_kops_GCENetworkingSpec_To_v1alpha1_GCENetworkingSpec(in *kops.GCENetworkingSpec, out *GCENetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_GCENetworkingSpec_To_v1alpha1_GCENetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_GossipConfig_To_kops_GossipConfig(in *GossipConfig, out *kops.GossipConfig, s conversion.Scope) error { + out.Protocol = in.Protocol + out.Listen = in.Listen + out.Secret = in.Secret + if in.Secondary != nil { + in, out := &in.Secondary, &out.Secondary + *out = new(kops.GossipConfig) + if err := Convert_v1alpha1_GossipConfig_To_kops_GossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Secondary = nil + } + return nil +} + +// Convert_v1alpha1_GossipConfig_To_kops_GossipConfig is an autogenerated conversion function. +func Convert_v1alpha1_GossipConfig_To_kops_GossipConfig(in *GossipConfig, out *kops.GossipConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_GossipConfig_To_kops_GossipConfig(in, out, s) +} + +func autoConvert_kops_GossipConfig_To_v1alpha1_GossipConfig(in *kops.GossipConfig, out *GossipConfig, s conversion.Scope) error { + out.Protocol = in.Protocol + out.Listen = in.Listen + out.Secret = in.Secret + if in.Secondary != nil { + in, out := &in.Secondary, &out.Secondary + *out = new(GossipConfig) + if err := Convert_kops_GossipConfig_To_v1alpha1_GossipConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Secondary = nil + } + return nil +} + +// Convert_kops_GossipConfig_To_v1alpha1_GossipConfig is an autogenerated conversion function. +func Convert_kops_GossipConfig_To_v1alpha1_GossipConfig(in *kops.GossipConfig, out *GossipConfig, s conversion.Scope) error { + return autoConvert_kops_GossipConfig_To_v1alpha1_GossipConfig(in, out, s) +} + +func autoConvert_v1alpha1_HTTPProxy_To_kops_HTTPProxy(in *HTTPProxy, out *kops.HTTPProxy, s conversion.Scope) error { + out.Host = in.Host + out.Port = in.Port + return nil +} + +// Convert_v1alpha1_HTTPProxy_To_kops_HTTPProxy is an autogenerated conversion function. +func Convert_v1alpha1_HTTPProxy_To_kops_HTTPProxy(in *HTTPProxy, out *kops.HTTPProxy, s conversion.Scope) error { + return autoConvert_v1alpha1_HTTPProxy_To_kops_HTTPProxy(in, out, s) +} + +func autoConvert_kops_HTTPProxy_To_v1alpha1_HTTPProxy(in *kops.HTTPProxy, out *HTTPProxy, s conversion.Scope) error { + out.Host = in.Host + out.Port = in.Port + return nil +} + +// Convert_kops_HTTPProxy_To_v1alpha1_HTTPProxy is an autogenerated conversion function. +func Convert_kops_HTTPProxy_To_v1alpha1_HTTPProxy(in *kops.HTTPProxy, out *HTTPProxy, s conversion.Scope) error { + return autoConvert_kops_HTTPProxy_To_v1alpha1_HTTPProxy(in, out, s) +} + +func autoConvert_v1alpha1_HookSpec_To_kops_HookSpec(in *HookSpec, out *kops.HookSpec, s conversion.Scope) error { + out.Name = in.Name + out.Disabled = in.Disabled + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]kops.InstanceGroupRole, len(*in)) + for i := range *in { + (*out)[i] = kops.InstanceGroupRole((*in)[i]) + } + } else { + out.Roles = nil + } + out.Requires = in.Requires + out.Before = in.Before + if in.ExecContainer != nil { + in, out := &in.ExecContainer, &out.ExecContainer + *out = new(kops.ExecContainerAction) + if err := Convert_v1alpha1_ExecContainerAction_To_kops_ExecContainerAction(*in, *out, s); err != nil { + return err + } + } else { + out.ExecContainer = nil + } + out.Manifest = in.Manifest + out.UseRawManifest = in.UseRawManifest + return nil +} + +// Convert_v1alpha1_HookSpec_To_kops_HookSpec is an autogenerated conversion function. +func Convert_v1alpha1_HookSpec_To_kops_HookSpec(in *HookSpec, out *kops.HookSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_HookSpec_To_kops_HookSpec(in, out, s) +} + +func autoConvert_kops_HookSpec_To_v1alpha1_HookSpec(in *kops.HookSpec, out *HookSpec, s conversion.Scope) error { + out.Name = in.Name + out.Disabled = in.Disabled + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]InstanceGroupRole, len(*in)) + for i := range *in { + (*out)[i] = InstanceGroupRole((*in)[i]) + } + } else { + out.Roles = nil + } + out.Requires = in.Requires + out.Before = in.Before + if in.ExecContainer != nil { + in, out := &in.ExecContainer, &out.ExecContainer + *out = new(ExecContainerAction) + if err := Convert_kops_ExecContainerAction_To_v1alpha1_ExecContainerAction(*in, *out, s); err != nil { + return err + } + } else { + out.ExecContainer = nil + } + out.Manifest = in.Manifest + out.UseRawManifest = in.UseRawManifest + return nil +} + +// Convert_kops_HookSpec_To_v1alpha1_HookSpec is an autogenerated conversion function. +func Convert_kops_HookSpec_To_v1alpha1_HookSpec(in *kops.HookSpec, out *HookSpec, s conversion.Scope) error { + return autoConvert_kops_HookSpec_To_v1alpha1_HookSpec(in, out, s) +} + +func autoConvert_v1alpha1_IAMProfileSpec_To_kops_IAMProfileSpec(in *IAMProfileSpec, out *kops.IAMProfileSpec, s conversion.Scope) error { + out.Profile = in.Profile + return nil +} + +// Convert_v1alpha1_IAMProfileSpec_To_kops_IAMProfileSpec is an autogenerated conversion function. +func Convert_v1alpha1_IAMProfileSpec_To_kops_IAMProfileSpec(in *IAMProfileSpec, out *kops.IAMProfileSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_IAMProfileSpec_To_kops_IAMProfileSpec(in, out, s) +} + +func autoConvert_kops_IAMProfileSpec_To_v1alpha1_IAMProfileSpec(in *kops.IAMProfileSpec, out *IAMProfileSpec, s conversion.Scope) error { + out.Profile = in.Profile + return nil +} + +// Convert_kops_IAMProfileSpec_To_v1alpha1_IAMProfileSpec is an autogenerated conversion function. +func Convert_kops_IAMProfileSpec_To_v1alpha1_IAMProfileSpec(in *kops.IAMProfileSpec, out *IAMProfileSpec, s conversion.Scope) error { + return autoConvert_kops_IAMProfileSpec_To_v1alpha1_IAMProfileSpec(in, out, s) +} + +func autoConvert_v1alpha1_IAMSpec_To_kops_IAMSpec(in *IAMSpec, out *kops.IAMSpec, s conversion.Scope) error { + out.Legacy = in.Legacy + out.AllowContainerRegistry = in.AllowContainerRegistry + return nil +} + +// Convert_v1alpha1_IAMSpec_To_kops_IAMSpec is an autogenerated conversion function. +func Convert_v1alpha1_IAMSpec_To_kops_IAMSpec(in *IAMSpec, out *kops.IAMSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_IAMSpec_To_kops_IAMSpec(in, out, s) +} + +func autoConvert_kops_IAMSpec_To_v1alpha1_IAMSpec(in *kops.IAMSpec, out *IAMSpec, s conversion.Scope) error { + out.Legacy = in.Legacy + out.AllowContainerRegistry = in.AllowContainerRegistry + return nil +} + +// Convert_kops_IAMSpec_To_v1alpha1_IAMSpec is an autogenerated conversion function. +func Convert_kops_IAMSpec_To_v1alpha1_IAMSpec(in *kops.IAMSpec, out *IAMSpec, s conversion.Scope) error { + return autoConvert_kops_IAMSpec_To_v1alpha1_IAMSpec(in, out, s) +} + +func autoConvert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(in *InstanceGroup, out *kops.InstanceGroup, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha1_InstanceGroupSpec_To_kops_InstanceGroupSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha1_InstanceGroup_To_kops_InstanceGroup is an autogenerated conversion function. +func Convert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(in *InstanceGroup, out *kops.InstanceGroup, s conversion.Scope) error { + return autoConvert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(in, out, s) +} + +func autoConvert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(in *kops.InstanceGroup, out *InstanceGroup, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_kops_InstanceGroupSpec_To_v1alpha1_InstanceGroupSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_kops_InstanceGroup_To_v1alpha1_InstanceGroup is an autogenerated conversion function. +func Convert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(in *kops.InstanceGroup, out *InstanceGroup, s conversion.Scope) error { + return autoConvert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(in, out, s) +} + +func autoConvert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList(in *InstanceGroupList, out *kops.InstanceGroupList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]kops.InstanceGroup, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_InstanceGroup_To_kops_InstanceGroup(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList is an autogenerated conversion function. +func Convert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList(in *InstanceGroupList, out *kops.InstanceGroupList, s conversion.Scope) error { + return autoConvert_v1alpha1_InstanceGroupList_To_kops_InstanceGroupList(in, out, s) +} + +func autoConvert_kops_InstanceGroupList_To_v1alpha1_InstanceGroupList(in *kops.InstanceGroupList, out *InstanceGroupList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceGroup, len(*in)) + for i := range *in { + if err := Convert_kops_InstanceGroup_To_v1alpha1_InstanceGroup(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_kops_InstanceGroupList_To_v1alpha1_InstanceGroupList is an autogenerated conversion function. +func Convert_kops_InstanceGroupList_To_v1alpha1_InstanceGroupList(in *kops.InstanceGroupList, out *InstanceGroupList, s conversion.Scope) error { + return autoConvert_kops_InstanceGroupList_To_v1alpha1_InstanceGroupList(in, out, s) +} + +func autoConvert_v1alpha1_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *InstanceGroupSpec, out *kops.InstanceGroupSpec, s conversion.Scope) error { + out.Role = kops.InstanceGroupRole(in.Role) + out.Image = in.Image + out.MinSize = in.MinSize + out.MaxSize = in.MaxSize + out.MachineType = in.MachineType + out.RootVolumeSize = in.RootVolumeSize + out.RootVolumeType = in.RootVolumeType + out.RootVolumeIops = in.RootVolumeIops + out.RootVolumeOptimization = in.RootVolumeOptimization + out.RootVolumeDeleteOnTermination = in.RootVolumeDeleteOnTermination + if in.Volumes != nil { + in, out := &in.Volumes, &out.Volumes + *out = make([]*kops.VolumeSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.Volumes = nil + } + if in.VolumeMounts != nil { + in, out := &in.VolumeMounts, &out.VolumeMounts + *out = make([]*kops.VolumeMountSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.VolumeMounts = nil + } + if in.Hooks != nil { + in, out := &in.Hooks, &out.Hooks + *out = make([]kops.HookSpec, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_HookSpec_To_kops_HookSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Hooks = nil + } + out.MaxPrice = in.MaxPrice + out.AssociatePublicIP = in.AssociatePublicIP + out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.CloudLabels = in.CloudLabels + out.NodeLabels = in.NodeLabels + if in.FileAssets != nil { + in, out := &in.FileAssets, &out.FileAssets + *out = make([]kops.FileAssetSpec, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_FileAssetSpec_To_kops_FileAssetSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.FileAssets = nil + } + out.Tenancy = in.Tenancy + if in.Kubelet != nil { + in, out := &in.Kubelet, &out.Kubelet + *out = new(kops.KubeletConfigSpec) + if err := Convert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kubelet = nil + } + out.Taints = in.Taints + if in.MixedInstancesPolicy != nil { + in, out := &in.MixedInstancesPolicy, &out.MixedInstancesPolicy + *out = new(kops.MixedInstancesPolicySpec) + if err := Convert_v1alpha1_MixedInstancesPolicySpec_To_kops_MixedInstancesPolicySpec(*in, *out, s); err != nil { + return err + } + } else { + out.MixedInstancesPolicy = nil + } + if in.AdditionalUserData != nil { + in, out := &in.AdditionalUserData, &out.AdditionalUserData + *out = make([]kops.UserData, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_UserData_To_kops_UserData(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.AdditionalUserData = nil + } + out.Zones = in.Zones + out.SuspendProcesses = in.SuspendProcesses + if in.ExternalLoadBalancers != nil { + in, out := &in.ExternalLoadBalancers, &out.ExternalLoadBalancers + *out = make([]kops.LoadBalancer, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_LoadBalancer_To_kops_LoadBalancer(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.ExternalLoadBalancers = nil + } + out.DetailedInstanceMonitoring = in.DetailedInstanceMonitoring + if in.IAM != nil { + in, out := &in.IAM, &out.IAM + *out = new(kops.IAMProfileSpec) + if err := Convert_v1alpha1_IAMProfileSpec_To_kops_IAMProfileSpec(*in, *out, s); err != nil { + return err + } + } else { + out.IAM = nil + } + out.SecurityGroupOverride = in.SecurityGroupOverride + out.InstanceProtection = in.InstanceProtection + out.SysctlParameters = in.SysctlParameters + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(kops.RollingUpdate) + if err := Convert_v1alpha1_RollingUpdate_To_kops_RollingUpdate(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_kops_InstanceGroupSpec_To_v1alpha1_InstanceGroupSpec(in *kops.InstanceGroupSpec, out *InstanceGroupSpec, s conversion.Scope) error { + out.Role = InstanceGroupRole(in.Role) + out.Image = in.Image + out.MinSize = in.MinSize + out.MaxSize = in.MaxSize + out.MachineType = in.MachineType + out.RootVolumeSize = in.RootVolumeSize + out.RootVolumeType = in.RootVolumeType + out.RootVolumeIops = in.RootVolumeIops + out.RootVolumeOptimization = in.RootVolumeOptimization + out.RootVolumeDeleteOnTermination = in.RootVolumeDeleteOnTermination + if in.Volumes != nil { + in, out := &in.Volumes, &out.Volumes + *out = make([]*VolumeSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.Volumes = nil + } + if in.VolumeMounts != nil { + in, out := &in.VolumeMounts, &out.VolumeMounts + *out = make([]*VolumeMountSpec, len(*in)) + for i := range *in { + // TODO: Inefficient conversion - can we improve it? + if err := s.Convert(&(*in)[i], &(*out)[i], 0); err != nil { + return err + } + } + } else { + out.VolumeMounts = nil + } + // WARNING: in.Subnets requires manual conversion: does not exist in peer-type + out.Zones = in.Zones + if in.Hooks != nil { + in, out := &in.Hooks, &out.Hooks + *out = make([]HookSpec, len(*in)) + for i := range *in { + if err := Convert_kops_HookSpec_To_v1alpha1_HookSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Hooks = nil + } + out.MaxPrice = in.MaxPrice + out.AssociatePublicIP = in.AssociatePublicIP + out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.CloudLabels = in.CloudLabels + out.NodeLabels = in.NodeLabels + if in.FileAssets != nil { + in, out := &in.FileAssets, &out.FileAssets + *out = make([]FileAssetSpec, len(*in)) + for i := range *in { + if err := Convert_kops_FileAssetSpec_To_v1alpha1_FileAssetSpec(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.FileAssets = nil + } + out.Tenancy = in.Tenancy + if in.Kubelet != nil { + in, out := &in.Kubelet, &out.Kubelet + *out = new(KubeletConfigSpec) + if err := Convert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kubelet = nil + } + out.Taints = in.Taints + if in.MixedInstancesPolicy != nil { + in, out := &in.MixedInstancesPolicy, &out.MixedInstancesPolicy + *out = new(MixedInstancesPolicySpec) + if err := Convert_kops_MixedInstancesPolicySpec_To_v1alpha1_MixedInstancesPolicySpec(*in, *out, s); err != nil { + return err + } + } else { + out.MixedInstancesPolicy = nil + } + if in.AdditionalUserData != nil { + in, out := &in.AdditionalUserData, &out.AdditionalUserData + *out = make([]UserData, len(*in)) + for i := range *in { + if err := Convert_kops_UserData_To_v1alpha1_UserData(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.AdditionalUserData = nil + } + out.SuspendProcesses = in.SuspendProcesses + if in.ExternalLoadBalancers != nil { + in, out := &in.ExternalLoadBalancers, &out.ExternalLoadBalancers + *out = make([]LoadBalancer, len(*in)) + for i := range *in { + if err := Convert_kops_LoadBalancer_To_v1alpha1_LoadBalancer(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.ExternalLoadBalancers = nil + } + out.DetailedInstanceMonitoring = in.DetailedInstanceMonitoring + if in.IAM != nil { + in, out := &in.IAM, &out.IAM + *out = new(IAMProfileSpec) + if err := Convert_kops_IAMProfileSpec_To_v1alpha1_IAMProfileSpec(*in, *out, s); err != nil { + return err + } + } else { + out.IAM = nil + } + out.SecurityGroupOverride = in.SecurityGroupOverride + out.InstanceProtection = in.InstanceProtection + out.SysctlParameters = in.SysctlParameters + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(RollingUpdate) + if err := Convert_kops_RollingUpdate_To_v1alpha1_RollingUpdate(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_v1alpha1_KopeioAuthenticationSpec_To_kops_KopeioAuthenticationSpec(in *KopeioAuthenticationSpec, out *kops.KopeioAuthenticationSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_KopeioAuthenticationSpec_To_kops_KopeioAuthenticationSpec is an autogenerated conversion function. +func Convert_v1alpha1_KopeioAuthenticationSpec_To_kops_KopeioAuthenticationSpec(in *KopeioAuthenticationSpec, out *kops.KopeioAuthenticationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_KopeioAuthenticationSpec_To_kops_KopeioAuthenticationSpec(in, out, s) +} + +func autoConvert_kops_KopeioAuthenticationSpec_To_v1alpha1_KopeioAuthenticationSpec(in *kops.KopeioAuthenticationSpec, out *KopeioAuthenticationSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_KopeioAuthenticationSpec_To_v1alpha1_KopeioAuthenticationSpec is an autogenerated conversion function. +func Convert_kops_KopeioAuthenticationSpec_To_v1alpha1_KopeioAuthenticationSpec(in *kops.KopeioAuthenticationSpec, out *KopeioAuthenticationSpec, s conversion.Scope) error { + return autoConvert_kops_KopeioAuthenticationSpec_To_v1alpha1_KopeioAuthenticationSpec(in, out, s) +} + +func autoConvert_v1alpha1_KopeioNetworkingSpec_To_kops_KopeioNetworkingSpec(in *KopeioNetworkingSpec, out *kops.KopeioNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_KopeioNetworkingSpec_To_kops_KopeioNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_KopeioNetworkingSpec_To_kops_KopeioNetworkingSpec(in *KopeioNetworkingSpec, out *kops.KopeioNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_KopeioNetworkingSpec_To_kops_KopeioNetworkingSpec(in, out, s) +} + +func autoConvert_kops_KopeioNetworkingSpec_To_v1alpha1_KopeioNetworkingSpec(in *kops.KopeioNetworkingSpec, out *KopeioNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_KopeioNetworkingSpec_To_v1alpha1_KopeioNetworkingSpec is an autogenerated conversion function. +func Convert_kops_KopeioNetworkingSpec_To_v1alpha1_KopeioNetworkingSpec(in *kops.KopeioNetworkingSpec, out *KopeioNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_KopeioNetworkingSpec_To_v1alpha1_KopeioNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in *KubeAPIServerConfig, out *kops.KubeAPIServerConfig, s conversion.Scope) error { + out.Image = in.Image + out.DisableBasicAuth = in.DisableBasicAuth + out.LogLevel = in.LogLevel + out.CloudProvider = in.CloudProvider + out.SecurePort = in.SecurePort + out.InsecurePort = in.InsecurePort + out.Address = in.Address + out.BindAddress = in.BindAddress + out.InsecureBindAddress = in.InsecureBindAddress + out.EnableBootstrapAuthToken = in.EnableBootstrapAuthToken + out.EnableAggregatorRouting = in.EnableAggregatorRouting + out.AdmissionControl = in.AdmissionControl + out.AppendAdmissionPlugins = in.AppendAdmissionPlugins + out.EnableAdmissionPlugins = in.EnableAdmissionPlugins + out.DisableAdmissionPlugins = in.DisableAdmissionPlugins + out.AdmissionControlConfigFile = in.AdmissionControlConfigFile + out.ServiceClusterIPRange = in.ServiceClusterIPRange + out.ServiceNodePortRange = in.ServiceNodePortRange + out.EtcdServers = in.EtcdServers + out.EtcdServersOverrides = in.EtcdServersOverrides + out.EtcdCAFile = in.EtcdCAFile + out.EtcdCertFile = in.EtcdCertFile + out.EtcdKeyFile = in.EtcdKeyFile + out.BasicAuthFile = in.BasicAuthFile + out.ClientCAFile = in.ClientCAFile + out.TLSCertFile = in.TLSCertFile + out.TLSPrivateKeyFile = in.TLSPrivateKeyFile + out.TLSCipherSuites = in.TLSCipherSuites + out.TLSMinVersion = in.TLSMinVersion + out.TokenAuthFile = in.TokenAuthFile + out.AllowPrivileged = in.AllowPrivileged + out.APIServerCount = in.APIServerCount + out.RuntimeConfig = in.RuntimeConfig + out.KubeletClientCertificate = in.KubeletClientCertificate + out.KubeletCertificateAuthority = in.KubeletCertificateAuthority + out.KubeletClientKey = in.KubeletClientKey + out.AnonymousAuth = in.AnonymousAuth + out.KubeletPreferredAddressTypes = in.KubeletPreferredAddressTypes + out.StorageBackend = in.StorageBackend + out.OIDCUsernameClaim = in.OIDCUsernameClaim + out.OIDCUsernamePrefix = in.OIDCUsernamePrefix + out.OIDCGroupsClaim = in.OIDCGroupsClaim + out.OIDCGroupsPrefix = in.OIDCGroupsPrefix + out.OIDCIssuerURL = in.OIDCIssuerURL + out.OIDCClientID = in.OIDCClientID + out.OIDCRequiredClaim = in.OIDCRequiredClaim + out.OIDCCAFile = in.OIDCCAFile + out.ProxyClientCertFile = in.ProxyClientCertFile + out.ProxyClientKeyFile = in.ProxyClientKeyFile + out.AuditLogFormat = in.AuditLogFormat + out.AuditLogPath = in.AuditLogPath + out.AuditLogMaxAge = in.AuditLogMaxAge + out.AuditLogMaxBackups = in.AuditLogMaxBackups + out.AuditLogMaxSize = in.AuditLogMaxSize + out.AuditPolicyFile = in.AuditPolicyFile + out.AuditWebhookBatchBufferSize = in.AuditWebhookBatchBufferSize + out.AuditWebhookBatchMaxSize = in.AuditWebhookBatchMaxSize + out.AuditWebhookBatchMaxWait = in.AuditWebhookBatchMaxWait + out.AuditWebhookBatchThrottleBurst = in.AuditWebhookBatchThrottleBurst + out.AuditWebhookBatchThrottleEnable = in.AuditWebhookBatchThrottleEnable + out.AuditWebhookBatchThrottleQps = in.AuditWebhookBatchThrottleQps + out.AuditWebhookConfigFile = in.AuditWebhookConfigFile + out.AuditWebhookInitialBackoff = in.AuditWebhookInitialBackoff + out.AuditWebhookMode = in.AuditWebhookMode + out.AuthenticationTokenWebhookConfigFile = in.AuthenticationTokenWebhookConfigFile + out.AuthenticationTokenWebhookCacheTTL = in.AuthenticationTokenWebhookCacheTTL + out.AuthorizationMode = in.AuthorizationMode + out.AuthorizationWebhookConfigFile = in.AuthorizationWebhookConfigFile + out.AuthorizationWebhookCacheAuthorizedTTL = in.AuthorizationWebhookCacheAuthorizedTTL + out.AuthorizationWebhookCacheUnauthorizedTTL = in.AuthorizationWebhookCacheUnauthorizedTTL + out.AuthorizationRBACSuperUser = in.AuthorizationRBACSuperUser + out.EncryptionProviderConfig = in.EncryptionProviderConfig + out.ExperimentalEncryptionProviderConfig = in.ExperimentalEncryptionProviderConfig + out.RequestheaderUsernameHeaders = in.RequestheaderUsernameHeaders + out.RequestheaderGroupHeaders = in.RequestheaderGroupHeaders + out.RequestheaderExtraHeaderPrefixes = in.RequestheaderExtraHeaderPrefixes + out.RequestheaderClientCAFile = in.RequestheaderClientCAFile + out.RequestheaderAllowedNames = in.RequestheaderAllowedNames + out.FeatureGates = in.FeatureGates + out.MaxRequestsInflight = in.MaxRequestsInflight + out.MaxMutatingRequestsInflight = in.MaxMutatingRequestsInflight + out.HTTP2MaxStreamsPerConnection = in.HTTP2MaxStreamsPerConnection + out.EtcdQuorumRead = in.EtcdQuorumRead + out.MinRequestTimeout = in.MinRequestTimeout + out.TargetRamMb = in.TargetRamMb + out.ServiceAccountKeyFile = in.ServiceAccountKeyFile + out.ServiceAccountSigningKeyFile = in.ServiceAccountSigningKeyFile + out.ServiceAccountIssuer = in.ServiceAccountIssuer + out.APIAudiences = in.APIAudiences + out.CPURequest = in.CPURequest + out.EventTTL = in.EventTTL + out.AuditDynamicConfiguration = in.AuditDynamicConfiguration + return nil +} + +// Convert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig is an autogenerated conversion function. +func Convert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in *KubeAPIServerConfig, out *kops.KubeAPIServerConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in, out, s) +} + +func autoConvert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(in *kops.KubeAPIServerConfig, out *KubeAPIServerConfig, s conversion.Scope) error { + out.Image = in.Image + out.DisableBasicAuth = in.DisableBasicAuth + out.LogLevel = in.LogLevel + out.CloudProvider = in.CloudProvider + out.SecurePort = in.SecurePort + out.InsecurePort = in.InsecurePort + out.Address = in.Address + out.BindAddress = in.BindAddress + out.InsecureBindAddress = in.InsecureBindAddress + out.EnableBootstrapAuthToken = in.EnableBootstrapAuthToken + out.EnableAggregatorRouting = in.EnableAggregatorRouting + out.AdmissionControl = in.AdmissionControl + out.AppendAdmissionPlugins = in.AppendAdmissionPlugins + out.EnableAdmissionPlugins = in.EnableAdmissionPlugins + out.DisableAdmissionPlugins = in.DisableAdmissionPlugins + out.AdmissionControlConfigFile = in.AdmissionControlConfigFile + out.ServiceClusterIPRange = in.ServiceClusterIPRange + out.ServiceNodePortRange = in.ServiceNodePortRange + out.EtcdServers = in.EtcdServers + out.EtcdServersOverrides = in.EtcdServersOverrides + out.EtcdCAFile = in.EtcdCAFile + out.EtcdCertFile = in.EtcdCertFile + out.EtcdKeyFile = in.EtcdKeyFile + out.BasicAuthFile = in.BasicAuthFile + out.ClientCAFile = in.ClientCAFile + out.TLSCertFile = in.TLSCertFile + out.TLSPrivateKeyFile = in.TLSPrivateKeyFile + out.TLSCipherSuites = in.TLSCipherSuites + out.TLSMinVersion = in.TLSMinVersion + out.TokenAuthFile = in.TokenAuthFile + out.AllowPrivileged = in.AllowPrivileged + out.APIServerCount = in.APIServerCount + out.RuntimeConfig = in.RuntimeConfig + out.KubeletClientCertificate = in.KubeletClientCertificate + out.KubeletCertificateAuthority = in.KubeletCertificateAuthority + out.KubeletClientKey = in.KubeletClientKey + out.AnonymousAuth = in.AnonymousAuth + out.KubeletPreferredAddressTypes = in.KubeletPreferredAddressTypes + out.StorageBackend = in.StorageBackend + out.OIDCUsernameClaim = in.OIDCUsernameClaim + out.OIDCUsernamePrefix = in.OIDCUsernamePrefix + out.OIDCGroupsClaim = in.OIDCGroupsClaim + out.OIDCGroupsPrefix = in.OIDCGroupsPrefix + out.OIDCIssuerURL = in.OIDCIssuerURL + out.OIDCClientID = in.OIDCClientID + out.OIDCRequiredClaim = in.OIDCRequiredClaim + out.OIDCCAFile = in.OIDCCAFile + out.ProxyClientCertFile = in.ProxyClientCertFile + out.ProxyClientKeyFile = in.ProxyClientKeyFile + out.AuditLogFormat = in.AuditLogFormat + out.AuditLogPath = in.AuditLogPath + out.AuditLogMaxAge = in.AuditLogMaxAge + out.AuditLogMaxBackups = in.AuditLogMaxBackups + out.AuditLogMaxSize = in.AuditLogMaxSize + out.AuditPolicyFile = in.AuditPolicyFile + out.AuditWebhookBatchBufferSize = in.AuditWebhookBatchBufferSize + out.AuditWebhookBatchMaxSize = in.AuditWebhookBatchMaxSize + out.AuditWebhookBatchMaxWait = in.AuditWebhookBatchMaxWait + out.AuditWebhookBatchThrottleBurst = in.AuditWebhookBatchThrottleBurst + out.AuditWebhookBatchThrottleEnable = in.AuditWebhookBatchThrottleEnable + out.AuditWebhookBatchThrottleQps = in.AuditWebhookBatchThrottleQps + out.AuditWebhookConfigFile = in.AuditWebhookConfigFile + out.AuditWebhookInitialBackoff = in.AuditWebhookInitialBackoff + out.AuditWebhookMode = in.AuditWebhookMode + out.AuthenticationTokenWebhookConfigFile = in.AuthenticationTokenWebhookConfigFile + out.AuthenticationTokenWebhookCacheTTL = in.AuthenticationTokenWebhookCacheTTL + out.AuthorizationMode = in.AuthorizationMode + out.AuthorizationWebhookConfigFile = in.AuthorizationWebhookConfigFile + out.AuthorizationWebhookCacheAuthorizedTTL = in.AuthorizationWebhookCacheAuthorizedTTL + out.AuthorizationWebhookCacheUnauthorizedTTL = in.AuthorizationWebhookCacheUnauthorizedTTL + out.AuthorizationRBACSuperUser = in.AuthorizationRBACSuperUser + out.EncryptionProviderConfig = in.EncryptionProviderConfig + out.ExperimentalEncryptionProviderConfig = in.ExperimentalEncryptionProviderConfig + out.RequestheaderUsernameHeaders = in.RequestheaderUsernameHeaders + out.RequestheaderGroupHeaders = in.RequestheaderGroupHeaders + out.RequestheaderExtraHeaderPrefixes = in.RequestheaderExtraHeaderPrefixes + out.RequestheaderClientCAFile = in.RequestheaderClientCAFile + out.RequestheaderAllowedNames = in.RequestheaderAllowedNames + out.FeatureGates = in.FeatureGates + out.MaxRequestsInflight = in.MaxRequestsInflight + out.MaxMutatingRequestsInflight = in.MaxMutatingRequestsInflight + out.HTTP2MaxStreamsPerConnection = in.HTTP2MaxStreamsPerConnection + out.EtcdQuorumRead = in.EtcdQuorumRead + out.MinRequestTimeout = in.MinRequestTimeout + out.TargetRamMb = in.TargetRamMb + out.ServiceAccountKeyFile = in.ServiceAccountKeyFile + out.ServiceAccountSigningKeyFile = in.ServiceAccountSigningKeyFile + out.ServiceAccountIssuer = in.ServiceAccountIssuer + out.APIAudiences = in.APIAudiences + out.CPURequest = in.CPURequest + out.EventTTL = in.EventTTL + out.AuditDynamicConfiguration = in.AuditDynamicConfiguration + return nil +} + +// Convert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig is an autogenerated conversion function. +func Convert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(in *kops.KubeAPIServerConfig, out *KubeAPIServerConfig, s conversion.Scope) error { + return autoConvert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(in, out, s) +} + +func autoConvert_v1alpha1_KubeControllerManagerConfig_To_kops_KubeControllerManagerConfig(in *KubeControllerManagerConfig, out *kops.KubeControllerManagerConfig, s conversion.Scope) error { + out.Master = in.Master + out.LogLevel = in.LogLevel + out.ServiceAccountPrivateKeyFile = in.ServiceAccountPrivateKeyFile + out.Image = in.Image + out.CloudProvider = in.CloudProvider + out.ClusterName = in.ClusterName + out.ClusterCIDR = in.ClusterCIDR + out.AllocateNodeCIDRs = in.AllocateNodeCIDRs + out.NodeCIDRMaskSize = in.NodeCIDRMaskSize + out.ConfigureCloudRoutes = in.ConfigureCloudRoutes + out.Controllers = in.Controllers + out.CIDRAllocatorType = in.CIDRAllocatorType + out.RootCAFile = in.RootCAFile + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(kops.LeaderElectionConfiguration) + if err := Convert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.LeaderElection = nil + } + out.AttachDetachReconcileSyncPeriod = in.AttachDetachReconcileSyncPeriod + out.TerminatedPodGCThreshold = in.TerminatedPodGCThreshold + out.NodeMonitorPeriod = in.NodeMonitorPeriod + out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod + out.PodEvictionTimeout = in.PodEvictionTimeout + out.UseServiceAccountCredentials = in.UseServiceAccountCredentials + out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod + out.HorizontalPodAutoscalerDownscaleDelay = in.HorizontalPodAutoscalerDownscaleDelay + out.HorizontalPodAutoscalerDownscaleStabilization = in.HorizontalPodAutoscalerDownscaleStabilization + out.HorizontalPodAutoscalerUpscaleDelay = in.HorizontalPodAutoscalerUpscaleDelay + out.HorizontalPodAutoscalerTolerance = in.HorizontalPodAutoscalerTolerance + out.HorizontalPodAutoscalerUseRestClients = in.HorizontalPodAutoscalerUseRestClients + out.ExperimentalClusterSigningDuration = in.ExperimentalClusterSigningDuration + out.FeatureGates = in.FeatureGates + out.TLSCipherSuites = in.TLSCipherSuites + out.TLSMinVersion = in.TLSMinVersion + out.MinResyncPeriod = in.MinResyncPeriod + out.KubeAPIQPS = in.KubeAPIQPS + out.KubeAPIBurst = in.KubeAPIBurst + out.ConcurrentDeploymentSyncs = in.ConcurrentDeploymentSyncs + out.ConcurrentEndpointSyncs = in.ConcurrentEndpointSyncs + out.ConcurrentNamespaceSyncs = in.ConcurrentNamespaceSyncs + out.ConcurrentReplicasetSyncs = in.ConcurrentReplicasetSyncs + out.ConcurrentServiceSyncs = in.ConcurrentServiceSyncs + out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs + out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs + out.ConcurrentRcSyncs = in.ConcurrentRcSyncs + return nil +} + +// Convert_v1alpha1_KubeControllerManagerConfig_To_kops_KubeControllerManagerConfig is an autogenerated conversion function. +func Convert_v1alpha1_KubeControllerManagerConfig_To_kops_KubeControllerManagerConfig(in *KubeControllerManagerConfig, out *kops.KubeControllerManagerConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeControllerManagerConfig_To_kops_KubeControllerManagerConfig(in, out, s) +} + +func autoConvert_kops_KubeControllerManagerConfig_To_v1alpha1_KubeControllerManagerConfig(in *kops.KubeControllerManagerConfig, out *KubeControllerManagerConfig, s conversion.Scope) error { + out.Master = in.Master + out.LogLevel = in.LogLevel + out.ServiceAccountPrivateKeyFile = in.ServiceAccountPrivateKeyFile + out.Image = in.Image + out.CloudProvider = in.CloudProvider + out.ClusterName = in.ClusterName + out.ClusterCIDR = in.ClusterCIDR + out.AllocateNodeCIDRs = in.AllocateNodeCIDRs + out.NodeCIDRMaskSize = in.NodeCIDRMaskSize + out.ConfigureCloudRoutes = in.ConfigureCloudRoutes + out.Controllers = in.Controllers + out.CIDRAllocatorType = in.CIDRAllocatorType + out.RootCAFile = in.RootCAFile + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(LeaderElectionConfiguration) + if err := Convert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.LeaderElection = nil + } + out.AttachDetachReconcileSyncPeriod = in.AttachDetachReconcileSyncPeriod + out.TerminatedPodGCThreshold = in.TerminatedPodGCThreshold + out.NodeMonitorPeriod = in.NodeMonitorPeriod + out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod + out.PodEvictionTimeout = in.PodEvictionTimeout + out.UseServiceAccountCredentials = in.UseServiceAccountCredentials + out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod + out.HorizontalPodAutoscalerDownscaleDelay = in.HorizontalPodAutoscalerDownscaleDelay + out.HorizontalPodAutoscalerDownscaleStabilization = in.HorizontalPodAutoscalerDownscaleStabilization + out.HorizontalPodAutoscalerUpscaleDelay = in.HorizontalPodAutoscalerUpscaleDelay + out.HorizontalPodAutoscalerTolerance = in.HorizontalPodAutoscalerTolerance + out.HorizontalPodAutoscalerUseRestClients = in.HorizontalPodAutoscalerUseRestClients + out.ExperimentalClusterSigningDuration = in.ExperimentalClusterSigningDuration + out.FeatureGates = in.FeatureGates + out.TLSCipherSuites = in.TLSCipherSuites + out.TLSMinVersion = in.TLSMinVersion + out.MinResyncPeriod = in.MinResyncPeriod + out.KubeAPIQPS = in.KubeAPIQPS + out.KubeAPIBurst = in.KubeAPIBurst + out.ConcurrentDeploymentSyncs = in.ConcurrentDeploymentSyncs + out.ConcurrentEndpointSyncs = in.ConcurrentEndpointSyncs + out.ConcurrentNamespaceSyncs = in.ConcurrentNamespaceSyncs + out.ConcurrentReplicasetSyncs = in.ConcurrentReplicasetSyncs + out.ConcurrentServiceSyncs = in.ConcurrentServiceSyncs + out.ConcurrentResourceQuotaSyncs = in.ConcurrentResourceQuotaSyncs + out.ConcurrentServiceaccountTokenSyncs = in.ConcurrentServiceaccountTokenSyncs + out.ConcurrentRcSyncs = in.ConcurrentRcSyncs + return nil +} + +// Convert_kops_KubeControllerManagerConfig_To_v1alpha1_KubeControllerManagerConfig is an autogenerated conversion function. +func Convert_kops_KubeControllerManagerConfig_To_v1alpha1_KubeControllerManagerConfig(in *kops.KubeControllerManagerConfig, out *KubeControllerManagerConfig, s conversion.Scope) error { + return autoConvert_kops_KubeControllerManagerConfig_To_v1alpha1_KubeControllerManagerConfig(in, out, s) +} + +func autoConvert_v1alpha1_KubeDNSConfig_To_kops_KubeDNSConfig(in *KubeDNSConfig, out *kops.KubeDNSConfig, s conversion.Scope) error { + out.CacheMaxSize = in.CacheMaxSize + out.CacheMaxConcurrent = in.CacheMaxConcurrent + out.CoreDNSImage = in.CoreDNSImage + out.Domain = in.Domain + out.ExternalCoreFile = in.ExternalCoreFile + out.Image = in.Image + out.Replicas = in.Replicas + out.Provider = in.Provider + out.ServerIP = in.ServerIP + out.StubDomains = in.StubDomains + out.UpstreamNameservers = in.UpstreamNameservers + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + out.MemoryLimit = in.MemoryLimit + return nil +} + +// Convert_v1alpha1_KubeDNSConfig_To_kops_KubeDNSConfig is an autogenerated conversion function. +func Convert_v1alpha1_KubeDNSConfig_To_kops_KubeDNSConfig(in *KubeDNSConfig, out *kops.KubeDNSConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeDNSConfig_To_kops_KubeDNSConfig(in, out, s) +} + +func autoConvert_kops_KubeDNSConfig_To_v1alpha1_KubeDNSConfig(in *kops.KubeDNSConfig, out *KubeDNSConfig, s conversion.Scope) error { + out.CacheMaxSize = in.CacheMaxSize + out.CacheMaxConcurrent = in.CacheMaxConcurrent + out.CoreDNSImage = in.CoreDNSImage + out.Domain = in.Domain + out.ExternalCoreFile = in.ExternalCoreFile + out.Image = in.Image + out.Replicas = in.Replicas + out.Provider = in.Provider + out.ServerIP = in.ServerIP + out.StubDomains = in.StubDomains + out.UpstreamNameservers = in.UpstreamNameservers + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + out.MemoryLimit = in.MemoryLimit + return nil +} + +// Convert_kops_KubeDNSConfig_To_v1alpha1_KubeDNSConfig is an autogenerated conversion function. +func Convert_kops_KubeDNSConfig_To_v1alpha1_KubeDNSConfig(in *kops.KubeDNSConfig, out *KubeDNSConfig, s conversion.Scope) error { + return autoConvert_kops_KubeDNSConfig_To_v1alpha1_KubeDNSConfig(in, out, s) +} + +func autoConvert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig(in *KubeProxyConfig, out *kops.KubeProxyConfig, s conversion.Scope) error { + out.Image = in.Image + out.CPURequest = in.CPURequest + out.CPULimit = in.CPULimit + out.MemoryRequest = in.MemoryRequest + out.MemoryLimit = in.MemoryLimit + out.LogLevel = in.LogLevel + out.ClusterCIDR = in.ClusterCIDR + out.HostnameOverride = in.HostnameOverride + out.BindAddress = in.BindAddress + out.Master = in.Master + out.MetricsBindAddress = in.MetricsBindAddress + out.Enabled = in.Enabled + out.ProxyMode = in.ProxyMode + out.IPVSExcludeCIDRS = in.IPVSExcludeCIDRS + out.IPVSMinSyncPeriod = in.IPVSMinSyncPeriod + out.IPVSScheduler = in.IPVSScheduler + out.IPVSSyncPeriod = in.IPVSSyncPeriod + out.FeatureGates = in.FeatureGates + out.ConntrackMaxPerCore = in.ConntrackMaxPerCore + out.ConntrackMin = in.ConntrackMin + return nil +} + +// Convert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig is an autogenerated conversion function. +func Convert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig(in *KubeProxyConfig, out *kops.KubeProxyConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeProxyConfig_To_kops_KubeProxyConfig(in, out, s) +} + +func autoConvert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig(in *kops.KubeProxyConfig, out *KubeProxyConfig, s conversion.Scope) error { + out.Image = in.Image + out.CPURequest = in.CPURequest + out.CPULimit = in.CPULimit + out.MemoryRequest = in.MemoryRequest + out.MemoryLimit = in.MemoryLimit + out.LogLevel = in.LogLevel + out.ClusterCIDR = in.ClusterCIDR + out.HostnameOverride = in.HostnameOverride + out.BindAddress = in.BindAddress + out.Master = in.Master + out.MetricsBindAddress = in.MetricsBindAddress + out.Enabled = in.Enabled + out.ProxyMode = in.ProxyMode + out.IPVSExcludeCIDRS = in.IPVSExcludeCIDRS + out.IPVSMinSyncPeriod = in.IPVSMinSyncPeriod + out.IPVSScheduler = in.IPVSScheduler + out.IPVSSyncPeriod = in.IPVSSyncPeriod + out.FeatureGates = in.FeatureGates + out.ConntrackMaxPerCore = in.ConntrackMaxPerCore + out.ConntrackMin = in.ConntrackMin + return nil +} + +// Convert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig is an autogenerated conversion function. +func Convert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig(in *kops.KubeProxyConfig, out *KubeProxyConfig, s conversion.Scope) error { + return autoConvert_kops_KubeProxyConfig_To_v1alpha1_KubeProxyConfig(in, out, s) +} + +func autoConvert_v1alpha1_KubeSchedulerConfig_To_kops_KubeSchedulerConfig(in *KubeSchedulerConfig, out *kops.KubeSchedulerConfig, s conversion.Scope) error { + out.Master = in.Master + out.LogLevel = in.LogLevel + out.Image = in.Image + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(kops.LeaderElectionConfiguration) + if err := Convert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.LeaderElection = nil + } + out.UsePolicyConfigMap = in.UsePolicyConfigMap + out.FeatureGates = in.FeatureGates + out.MaxPersistentVolumes = in.MaxPersistentVolumes + out.Qps = in.Qps + out.Burst = in.Burst + return nil +} + +// Convert_v1alpha1_KubeSchedulerConfig_To_kops_KubeSchedulerConfig is an autogenerated conversion function. +func Convert_v1alpha1_KubeSchedulerConfig_To_kops_KubeSchedulerConfig(in *KubeSchedulerConfig, out *kops.KubeSchedulerConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeSchedulerConfig_To_kops_KubeSchedulerConfig(in, out, s) +} + +func autoConvert_kops_KubeSchedulerConfig_To_v1alpha1_KubeSchedulerConfig(in *kops.KubeSchedulerConfig, out *KubeSchedulerConfig, s conversion.Scope) error { + out.Master = in.Master + out.LogLevel = in.LogLevel + out.Image = in.Image + if in.LeaderElection != nil { + in, out := &in.LeaderElection, &out.LeaderElection + *out = new(LeaderElectionConfiguration) + if err := Convert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(*in, *out, s); err != nil { + return err + } + } else { + out.LeaderElection = nil + } + out.UsePolicyConfigMap = in.UsePolicyConfigMap + out.FeatureGates = in.FeatureGates + out.MaxPersistentVolumes = in.MaxPersistentVolumes + out.Qps = in.Qps + out.Burst = in.Burst + return nil +} + +// Convert_kops_KubeSchedulerConfig_To_v1alpha1_KubeSchedulerConfig is an autogenerated conversion function. +func Convert_kops_KubeSchedulerConfig_To_v1alpha1_KubeSchedulerConfig(in *kops.KubeSchedulerConfig, out *KubeSchedulerConfig, s conversion.Scope) error { + return autoConvert_kops_KubeSchedulerConfig_To_v1alpha1_KubeSchedulerConfig(in, out, s) +} + +func autoConvert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(in *KubeletConfigSpec, out *kops.KubeletConfigSpec, s conversion.Scope) error { + out.APIServers = in.APIServers + out.AnonymousAuth = in.AnonymousAuth + out.AuthorizationMode = in.AuthorizationMode + out.BootstrapKubeconfig = in.BootstrapKubeconfig + out.ClientCAFile = in.ClientCAFile + out.TLSCertFile = in.TLSCertFile + out.TLSPrivateKeyFile = in.TLSPrivateKeyFile + out.TLSCipherSuites = in.TLSCipherSuites + out.TLSMinVersion = in.TLSMinVersion + out.KubeconfigPath = in.KubeconfigPath + out.RequireKubeconfig = in.RequireKubeconfig + out.LogLevel = in.LogLevel + out.PodManifestPath = in.PodManifestPath + out.HostnameOverride = in.HostnameOverride + out.PodInfraContainerImage = in.PodInfraContainerImage + out.SeccompProfileRoot = in.SeccompProfileRoot + out.AllowPrivileged = in.AllowPrivileged + out.EnableDebuggingHandlers = in.EnableDebuggingHandlers + out.RegisterNode = in.RegisterNode + out.NodeStatusUpdateFrequency = in.NodeStatusUpdateFrequency + out.ClusterDomain = in.ClusterDomain + out.ClusterDNS = in.ClusterDNS + out.NetworkPluginName = in.NetworkPluginName + out.CloudProvider = in.CloudProvider + out.KubeletCgroups = in.KubeletCgroups + out.RuntimeCgroups = in.RuntimeCgroups + out.ReadOnlyPort = in.ReadOnlyPort + out.SystemCgroups = in.SystemCgroups + out.CgroupRoot = in.CgroupRoot + out.ConfigureCBR0 = in.ConfigureCBR0 + out.HairpinMode = in.HairpinMode + out.BabysitDaemons = in.BabysitDaemons + out.MaxPods = in.MaxPods + out.NvidiaGPUs = in.NvidiaGPUs + out.PodCIDR = in.PodCIDR + out.ResolverConfig = in.ResolverConfig + out.ReconcileCIDR = in.ReconcileCIDR + out.RegisterSchedulable = in.RegisterSchedulable + out.SerializeImagePulls = in.SerializeImagePulls + out.NodeLabels = in.NodeLabels + out.NonMasqueradeCIDR = in.NonMasqueradeCIDR + out.EnableCustomMetrics = in.EnableCustomMetrics + out.NetworkPluginMTU = in.NetworkPluginMTU + out.ImageGCHighThresholdPercent = in.ImageGCHighThresholdPercent + out.ImageGCLowThresholdPercent = in.ImageGCLowThresholdPercent + out.ImagePullProgressDeadline = in.ImagePullProgressDeadline + out.EvictionHard = in.EvictionHard + out.EvictionSoft = in.EvictionSoft + out.EvictionSoftGracePeriod = in.EvictionSoftGracePeriod + out.EvictionPressureTransitionPeriod = in.EvictionPressureTransitionPeriod + out.EvictionMaxPodGracePeriod = in.EvictionMaxPodGracePeriod + out.EvictionMinimumReclaim = in.EvictionMinimumReclaim + out.VolumePluginDirectory = in.VolumePluginDirectory + out.Taints = in.Taints + out.FeatureGates = in.FeatureGates + out.KubeReserved = in.KubeReserved + out.KubeReservedCgroup = in.KubeReservedCgroup + out.SystemReserved = in.SystemReserved + out.SystemReservedCgroup = in.SystemReservedCgroup + out.EnforceNodeAllocatable = in.EnforceNodeAllocatable + out.RuntimeRequestTimeout = in.RuntimeRequestTimeout + out.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod + out.FailSwapOn = in.FailSwapOn + out.ExperimentalAllowedUnsafeSysctls = in.ExperimentalAllowedUnsafeSysctls + out.AllowedUnsafeSysctls = in.AllowedUnsafeSysctls + out.StreamingConnectionIdleTimeout = in.StreamingConnectionIdleTimeout + out.DockerDisableSharedPID = in.DockerDisableSharedPID + out.RootDir = in.RootDir + out.AuthenticationTokenWebhook = in.AuthenticationTokenWebhook + out.AuthenticationTokenWebhookCacheTTL = in.AuthenticationTokenWebhookCacheTTL + out.CPUCFSQuota = in.CPUCFSQuota + out.CPUCFSQuotaPeriod = in.CPUCFSQuotaPeriod + out.CpuManagerPolicy = in.CpuManagerPolicy + out.RegistryPullQPS = in.RegistryPullQPS + out.RegistryBurst = in.RegistryBurst + out.RotateCertificates = in.RotateCertificates + return nil +} + +// Convert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec is an autogenerated conversion function. +func Convert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(in *KubeletConfigSpec, out *kops.KubeletConfigSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_KubeletConfigSpec_To_kops_KubeletConfigSpec(in, out, s) +} + +func autoConvert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(in *kops.KubeletConfigSpec, out *KubeletConfigSpec, s conversion.Scope) error { + out.APIServers = in.APIServers + out.AnonymousAuth = in.AnonymousAuth + out.AuthorizationMode = in.AuthorizationMode + out.BootstrapKubeconfig = in.BootstrapKubeconfig + out.ClientCAFile = in.ClientCAFile + out.TLSCertFile = in.TLSCertFile + out.TLSPrivateKeyFile = in.TLSPrivateKeyFile + out.TLSCipherSuites = in.TLSCipherSuites + out.TLSMinVersion = in.TLSMinVersion + out.KubeconfigPath = in.KubeconfigPath + out.RequireKubeconfig = in.RequireKubeconfig + out.LogLevel = in.LogLevel + out.PodManifestPath = in.PodManifestPath + out.HostnameOverride = in.HostnameOverride + out.PodInfraContainerImage = in.PodInfraContainerImage + out.SeccompProfileRoot = in.SeccompProfileRoot + out.AllowPrivileged = in.AllowPrivileged + out.EnableDebuggingHandlers = in.EnableDebuggingHandlers + out.RegisterNode = in.RegisterNode + out.NodeStatusUpdateFrequency = in.NodeStatusUpdateFrequency + out.ClusterDomain = in.ClusterDomain + out.ClusterDNS = in.ClusterDNS + out.NetworkPluginName = in.NetworkPluginName + out.CloudProvider = in.CloudProvider + out.KubeletCgroups = in.KubeletCgroups + out.RuntimeCgroups = in.RuntimeCgroups + out.ReadOnlyPort = in.ReadOnlyPort + out.SystemCgroups = in.SystemCgroups + out.CgroupRoot = in.CgroupRoot + out.ConfigureCBR0 = in.ConfigureCBR0 + out.HairpinMode = in.HairpinMode + out.BabysitDaemons = in.BabysitDaemons + out.MaxPods = in.MaxPods + out.NvidiaGPUs = in.NvidiaGPUs + out.PodCIDR = in.PodCIDR + out.ResolverConfig = in.ResolverConfig + out.ReconcileCIDR = in.ReconcileCIDR + out.RegisterSchedulable = in.RegisterSchedulable + out.SerializeImagePulls = in.SerializeImagePulls + out.NodeLabels = in.NodeLabels + out.NonMasqueradeCIDR = in.NonMasqueradeCIDR + out.EnableCustomMetrics = in.EnableCustomMetrics + out.NetworkPluginMTU = in.NetworkPluginMTU + out.ImageGCHighThresholdPercent = in.ImageGCHighThresholdPercent + out.ImageGCLowThresholdPercent = in.ImageGCLowThresholdPercent + out.ImagePullProgressDeadline = in.ImagePullProgressDeadline + out.EvictionHard = in.EvictionHard + out.EvictionSoft = in.EvictionSoft + out.EvictionSoftGracePeriod = in.EvictionSoftGracePeriod + out.EvictionPressureTransitionPeriod = in.EvictionPressureTransitionPeriod + out.EvictionMaxPodGracePeriod = in.EvictionMaxPodGracePeriod + out.EvictionMinimumReclaim = in.EvictionMinimumReclaim + out.VolumePluginDirectory = in.VolumePluginDirectory + out.Taints = in.Taints + out.FeatureGates = in.FeatureGates + out.KubeReserved = in.KubeReserved + out.KubeReservedCgroup = in.KubeReservedCgroup + out.SystemReserved = in.SystemReserved + out.SystemReservedCgroup = in.SystemReservedCgroup + out.EnforceNodeAllocatable = in.EnforceNodeAllocatable + out.RuntimeRequestTimeout = in.RuntimeRequestTimeout + out.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod + out.FailSwapOn = in.FailSwapOn + out.ExperimentalAllowedUnsafeSysctls = in.ExperimentalAllowedUnsafeSysctls + out.AllowedUnsafeSysctls = in.AllowedUnsafeSysctls + out.StreamingConnectionIdleTimeout = in.StreamingConnectionIdleTimeout + out.DockerDisableSharedPID = in.DockerDisableSharedPID + out.RootDir = in.RootDir + out.AuthenticationTokenWebhook = in.AuthenticationTokenWebhook + out.AuthenticationTokenWebhookCacheTTL = in.AuthenticationTokenWebhookCacheTTL + out.CPUCFSQuota = in.CPUCFSQuota + out.CPUCFSQuotaPeriod = in.CPUCFSQuotaPeriod + out.CpuManagerPolicy = in.CpuManagerPolicy + out.RegistryPullQPS = in.RegistryPullQPS + out.RegistryBurst = in.RegistryBurst + out.RotateCertificates = in.RotateCertificates + return nil +} + +// Convert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec is an autogenerated conversion function. +func Convert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(in *kops.KubeletConfigSpec, out *KubeletConfigSpec, s conversion.Scope) error { + return autoConvert_kops_KubeletConfigSpec_To_v1alpha1_KubeletConfigSpec(in, out, s) +} + +func autoConvert_v1alpha1_KubenetNetworkingSpec_To_kops_KubenetNetworkingSpec(in *KubenetNetworkingSpec, out *kops.KubenetNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_KubenetNetworkingSpec_To_kops_KubenetNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_KubenetNetworkingSpec_To_kops_KubenetNetworkingSpec(in *KubenetNetworkingSpec, out *kops.KubenetNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_KubenetNetworkingSpec_To_kops_KubenetNetworkingSpec(in, out, s) +} + +func autoConvert_kops_KubenetNetworkingSpec_To_v1alpha1_KubenetNetworkingSpec(in *kops.KubenetNetworkingSpec, out *KubenetNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_KubenetNetworkingSpec_To_v1alpha1_KubenetNetworkingSpec is an autogenerated conversion function. +func Convert_kops_KubenetNetworkingSpec_To_v1alpha1_KubenetNetworkingSpec(in *kops.KubenetNetworkingSpec, out *KubenetNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_KubenetNetworkingSpec_To_v1alpha1_KubenetNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_KuberouterNetworkingSpec_To_kops_KuberouterNetworkingSpec(in *KuberouterNetworkingSpec, out *kops.KuberouterNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_KuberouterNetworkingSpec_To_kops_KuberouterNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_KuberouterNetworkingSpec_To_kops_KuberouterNetworkingSpec(in *KuberouterNetworkingSpec, out *kops.KuberouterNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_KuberouterNetworkingSpec_To_kops_KuberouterNetworkingSpec(in, out, s) +} + +func autoConvert_kops_KuberouterNetworkingSpec_To_v1alpha1_KuberouterNetworkingSpec(in *kops.KuberouterNetworkingSpec, out *KuberouterNetworkingSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_KuberouterNetworkingSpec_To_v1alpha1_KuberouterNetworkingSpec is an autogenerated conversion function. +func Convert_kops_KuberouterNetworkingSpec_To_v1alpha1_KuberouterNetworkingSpec(in *kops.KuberouterNetworkingSpec, out *KuberouterNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_KuberouterNetworkingSpec_To_v1alpha1_KuberouterNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *kops.LeaderElectionConfiguration, s conversion.Scope) error { + out.LeaderElect = in.LeaderElect + out.LeaderElectLeaseDuration = in.LeaderElectLeaseDuration + out.LeaderElectRenewDeadlineDuration = in.LeaderElectRenewDeadlineDuration + out.LeaderElectResourceLock = in.LeaderElectResourceLock + out.LeaderElectResourceName = in.LeaderElectResourceName + out.LeaderElectResourceNamespace = in.LeaderElectResourceNamespace + out.LeaderElectRetryPeriod = in.LeaderElectRetryPeriod + return nil +} + +// Convert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(in *LeaderElectionConfiguration, out *kops.LeaderElectionConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_LeaderElectionConfiguration_To_kops_LeaderElectionConfiguration(in, out, s) +} + +func autoConvert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *kops.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { + out.LeaderElect = in.LeaderElect + out.LeaderElectLeaseDuration = in.LeaderElectLeaseDuration + out.LeaderElectRenewDeadlineDuration = in.LeaderElectRenewDeadlineDuration + out.LeaderElectResourceLock = in.LeaderElectResourceLock + out.LeaderElectResourceName = in.LeaderElectResourceName + out.LeaderElectResourceNamespace = in.LeaderElectResourceNamespace + out.LeaderElectRetryPeriod = in.LeaderElectRetryPeriod + return nil +} + +// Convert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration is an autogenerated conversion function. +func Convert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in *kops.LeaderElectionConfiguration, out *LeaderElectionConfiguration, s conversion.Scope) error { + return autoConvert_kops_LeaderElectionConfiguration_To_v1alpha1_LeaderElectionConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_LoadBalancer_To_kops_LoadBalancer(in *LoadBalancer, out *kops.LoadBalancer, s conversion.Scope) error { + out.LoadBalancerName = in.LoadBalancerName + out.TargetGroupARN = in.TargetGroupARN + return nil +} + +// Convert_v1alpha1_LoadBalancer_To_kops_LoadBalancer is an autogenerated conversion function. +func Convert_v1alpha1_LoadBalancer_To_kops_LoadBalancer(in *LoadBalancer, out *kops.LoadBalancer, s conversion.Scope) error { + return autoConvert_v1alpha1_LoadBalancer_To_kops_LoadBalancer(in, out, s) +} + +func autoConvert_kops_LoadBalancer_To_v1alpha1_LoadBalancer(in *kops.LoadBalancer, out *LoadBalancer, s conversion.Scope) error { + out.LoadBalancerName = in.LoadBalancerName + out.TargetGroupARN = in.TargetGroupARN + return nil +} + +// Convert_kops_LoadBalancer_To_v1alpha1_LoadBalancer is an autogenerated conversion function. +func Convert_kops_LoadBalancer_To_v1alpha1_LoadBalancer(in *kops.LoadBalancer, out *LoadBalancer, s conversion.Scope) error { + return autoConvert_kops_LoadBalancer_To_v1alpha1_LoadBalancer(in, out, s) +} + +func autoConvert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec(in *LoadBalancerAccessSpec, out *kops.LoadBalancerAccessSpec, s conversion.Scope) error { + out.Type = kops.LoadBalancerType(in.Type) + out.IdleTimeoutSeconds = in.IdleTimeoutSeconds + out.SecurityGroupOverride = in.SecurityGroupOverride + out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.UseForInternalApi = in.UseForInternalApi + out.SSLCertificate = in.SSLCertificate + out.CrossZoneLoadBalancing = in.CrossZoneLoadBalancing + return nil +} + +// Convert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec is an autogenerated conversion function. +func Convert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec(in *LoadBalancerAccessSpec, out *kops.LoadBalancerAccessSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec(in, out, s) +} + +func autoConvert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec(in *kops.LoadBalancerAccessSpec, out *LoadBalancerAccessSpec, s conversion.Scope) error { + out.Type = LoadBalancerType(in.Type) + out.IdleTimeoutSeconds = in.IdleTimeoutSeconds + out.SecurityGroupOverride = in.SecurityGroupOverride + out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.UseForInternalApi = in.UseForInternalApi + out.SSLCertificate = in.SSLCertificate + out.CrossZoneLoadBalancing = in.CrossZoneLoadBalancing + return nil +} + +// Convert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec is an autogenerated conversion function. +func Convert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec(in *kops.LoadBalancerAccessSpec, out *LoadBalancerAccessSpec, s conversion.Scope) error { + return autoConvert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec(in, out, s) +} + +func autoConvert_v1alpha1_LyftVPCNetworkingSpec_To_kops_LyftVPCNetworkingSpec(in *LyftVPCNetworkingSpec, out *kops.LyftVPCNetworkingSpec, s conversion.Scope) error { + out.SubnetTags = in.SubnetTags + return nil +} + +// Convert_v1alpha1_LyftVPCNetworkingSpec_To_kops_LyftVPCNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_LyftVPCNetworkingSpec_To_kops_LyftVPCNetworkingSpec(in *LyftVPCNetworkingSpec, out *kops.LyftVPCNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_LyftVPCNetworkingSpec_To_kops_LyftVPCNetworkingSpec(in, out, s) +} + +func autoConvert_kops_LyftVPCNetworkingSpec_To_v1alpha1_LyftVPCNetworkingSpec(in *kops.LyftVPCNetworkingSpec, out *LyftVPCNetworkingSpec, s conversion.Scope) error { + out.SubnetTags = in.SubnetTags + return nil +} + +// Convert_kops_LyftVPCNetworkingSpec_To_v1alpha1_LyftVPCNetworkingSpec is an autogenerated conversion function. +func Convert_kops_LyftVPCNetworkingSpec_To_v1alpha1_LyftVPCNetworkingSpec(in *kops.LyftVPCNetworkingSpec, out *LyftVPCNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_LyftVPCNetworkingSpec_To_v1alpha1_LyftVPCNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_MixedInstancesPolicySpec_To_kops_MixedInstancesPolicySpec(in *MixedInstancesPolicySpec, out *kops.MixedInstancesPolicySpec, s conversion.Scope) error { + out.Instances = in.Instances + out.OnDemandAllocationStrategy = in.OnDemandAllocationStrategy + out.OnDemandBase = in.OnDemandBase + out.OnDemandAboveBase = in.OnDemandAboveBase + out.SpotAllocationStrategy = in.SpotAllocationStrategy + out.SpotInstancePools = in.SpotInstancePools + return nil +} + +// Convert_v1alpha1_MixedInstancesPolicySpec_To_kops_MixedInstancesPolicySpec is an autogenerated conversion function. +func Convert_v1alpha1_MixedInstancesPolicySpec_To_kops_MixedInstancesPolicySpec(in *MixedInstancesPolicySpec, out *kops.MixedInstancesPolicySpec, s conversion.Scope) error { + return autoConvert_v1alpha1_MixedInstancesPolicySpec_To_kops_MixedInstancesPolicySpec(in, out, s) +} + +func autoConvert_kops_MixedInstancesPolicySpec_To_v1alpha1_MixedInstancesPolicySpec(in *kops.MixedInstancesPolicySpec, out *MixedInstancesPolicySpec, s conversion.Scope) error { + out.Instances = in.Instances + out.OnDemandAllocationStrategy = in.OnDemandAllocationStrategy + out.OnDemandBase = in.OnDemandBase + out.OnDemandAboveBase = in.OnDemandAboveBase + out.SpotAllocationStrategy = in.SpotAllocationStrategy + out.SpotInstancePools = in.SpotInstancePools + return nil +} + +// Convert_kops_MixedInstancesPolicySpec_To_v1alpha1_MixedInstancesPolicySpec is an autogenerated conversion function. +func Convert_kops_MixedInstancesPolicySpec_To_v1alpha1_MixedInstancesPolicySpec(in *kops.MixedInstancesPolicySpec, out *MixedInstancesPolicySpec, s conversion.Scope) error { + return autoConvert_kops_MixedInstancesPolicySpec_To_v1alpha1_MixedInstancesPolicySpec(in, out, s) +} + +func autoConvert_v1alpha1_NetworkingSpec_To_kops_NetworkingSpec(in *NetworkingSpec, out *kops.NetworkingSpec, s conversion.Scope) error { + if in.Classic != nil { + in, out := &in.Classic, &out.Classic + *out = new(kops.ClassicNetworkingSpec) + if err := Convert_v1alpha1_ClassicNetworkingSpec_To_kops_ClassicNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Classic = nil + } + if in.Kubenet != nil { + in, out := &in.Kubenet, &out.Kubenet + *out = new(kops.KubenetNetworkingSpec) + if err := Convert_v1alpha1_KubenetNetworkingSpec_To_kops_KubenetNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kubenet = nil + } + if in.External != nil { + in, out := &in.External, &out.External + *out = new(kops.ExternalNetworkingSpec) + if err := Convert_v1alpha1_ExternalNetworkingSpec_To_kops_ExternalNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.External = nil + } + if in.CNI != nil { + in, out := &in.CNI, &out.CNI + *out = new(kops.CNINetworkingSpec) + if err := Convert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.CNI = nil + } + if in.Kopeio != nil { + in, out := &in.Kopeio, &out.Kopeio + *out = new(kops.KopeioNetworkingSpec) + if err := Convert_v1alpha1_KopeioNetworkingSpec_To_kops_KopeioNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kopeio = nil + } + if in.Weave != nil { + in, out := &in.Weave, &out.Weave + *out = new(kops.WeaveNetworkingSpec) + if err := Convert_v1alpha1_WeaveNetworkingSpec_To_kops_WeaveNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Weave = nil + } + if in.Flannel != nil { + in, out := &in.Flannel, &out.Flannel + *out = new(kops.FlannelNetworkingSpec) + if err := Convert_v1alpha1_FlannelNetworkingSpec_To_kops_FlannelNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Flannel = nil + } + if in.Calico != nil { + in, out := &in.Calico, &out.Calico + *out = new(kops.CalicoNetworkingSpec) + if err := Convert_v1alpha1_CalicoNetworkingSpec_To_kops_CalicoNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Calico = nil + } + if in.Canal != nil { + in, out := &in.Canal, &out.Canal + *out = new(kops.CanalNetworkingSpec) + if err := Convert_v1alpha1_CanalNetworkingSpec_To_kops_CanalNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Canal = nil + } + if in.Kuberouter != nil { + in, out := &in.Kuberouter, &out.Kuberouter + *out = new(kops.KuberouterNetworkingSpec) + if err := Convert_v1alpha1_KuberouterNetworkingSpec_To_kops_KuberouterNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kuberouter = nil + } + if in.Romana != nil { + in, out := &in.Romana, &out.Romana + *out = new(kops.RomanaNetworkingSpec) + if err := Convert_v1alpha1_RomanaNetworkingSpec_To_kops_RomanaNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Romana = nil + } + if in.AmazonVPC != nil { + in, out := &in.AmazonVPC, &out.AmazonVPC + *out = new(kops.AmazonVPCNetworkingSpec) + if err := Convert_v1alpha1_AmazonVPCNetworkingSpec_To_kops_AmazonVPCNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.AmazonVPC = nil + } + if in.Cilium != nil { + in, out := &in.Cilium, &out.Cilium + *out = new(kops.CiliumNetworkingSpec) + if err := Convert_v1alpha1_CiliumNetworkingSpec_To_kops_CiliumNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Cilium = nil + } + if in.LyftVPC != nil { + in, out := &in.LyftVPC, &out.LyftVPC + *out = new(kops.LyftVPCNetworkingSpec) + if err := Convert_v1alpha1_LyftVPCNetworkingSpec_To_kops_LyftVPCNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.LyftVPC = nil + } + if in.GCE != nil { + in, out := &in.GCE, &out.GCE + *out = new(kops.GCENetworkingSpec) + if err := Convert_v1alpha1_GCENetworkingSpec_To_kops_GCENetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.GCE = nil + } + return nil +} + +// Convert_v1alpha1_NetworkingSpec_To_kops_NetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_NetworkingSpec_To_kops_NetworkingSpec(in *NetworkingSpec, out *kops.NetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkingSpec_To_kops_NetworkingSpec(in, out, s) +} + +func autoConvert_kops_NetworkingSpec_To_v1alpha1_NetworkingSpec(in *kops.NetworkingSpec, out *NetworkingSpec, s conversion.Scope) error { + if in.Classic != nil { + in, out := &in.Classic, &out.Classic + *out = new(ClassicNetworkingSpec) + if err := Convert_kops_ClassicNetworkingSpec_To_v1alpha1_ClassicNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Classic = nil + } + if in.Kubenet != nil { + in, out := &in.Kubenet, &out.Kubenet + *out = new(KubenetNetworkingSpec) + if err := Convert_kops_KubenetNetworkingSpec_To_v1alpha1_KubenetNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kubenet = nil + } + if in.External != nil { + in, out := &in.External, &out.External + *out = new(ExternalNetworkingSpec) + if err := Convert_kops_ExternalNetworkingSpec_To_v1alpha1_ExternalNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.External = nil + } + if in.CNI != nil { + in, out := &in.CNI, &out.CNI + *out = new(CNINetworkingSpec) + if err := Convert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.CNI = nil + } + if in.Kopeio != nil { + in, out := &in.Kopeio, &out.Kopeio + *out = new(KopeioNetworkingSpec) + if err := Convert_kops_KopeioNetworkingSpec_To_v1alpha1_KopeioNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kopeio = nil + } + if in.Weave != nil { + in, out := &in.Weave, &out.Weave + *out = new(WeaveNetworkingSpec) + if err := Convert_kops_WeaveNetworkingSpec_To_v1alpha1_WeaveNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Weave = nil + } + if in.Flannel != nil { + in, out := &in.Flannel, &out.Flannel + *out = new(FlannelNetworkingSpec) + if err := Convert_kops_FlannelNetworkingSpec_To_v1alpha1_FlannelNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Flannel = nil + } + if in.Calico != nil { + in, out := &in.Calico, &out.Calico + *out = new(CalicoNetworkingSpec) + if err := Convert_kops_CalicoNetworkingSpec_To_v1alpha1_CalicoNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Calico = nil + } + if in.Canal != nil { + in, out := &in.Canal, &out.Canal + *out = new(CanalNetworkingSpec) + if err := Convert_kops_CanalNetworkingSpec_To_v1alpha1_CanalNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Canal = nil + } + if in.Kuberouter != nil { + in, out := &in.Kuberouter, &out.Kuberouter + *out = new(KuberouterNetworkingSpec) + if err := Convert_kops_KuberouterNetworkingSpec_To_v1alpha1_KuberouterNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Kuberouter = nil + } + if in.Romana != nil { + in, out := &in.Romana, &out.Romana + *out = new(RomanaNetworkingSpec) + if err := Convert_kops_RomanaNetworkingSpec_To_v1alpha1_RomanaNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Romana = nil + } + if in.AmazonVPC != nil { + in, out := &in.AmazonVPC, &out.AmazonVPC + *out = new(AmazonVPCNetworkingSpec) + if err := Convert_kops_AmazonVPCNetworkingSpec_To_v1alpha1_AmazonVPCNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.AmazonVPC = nil + } + if in.Cilium != nil { + in, out := &in.Cilium, &out.Cilium + *out = new(CiliumNetworkingSpec) + if err := Convert_kops_CiliumNetworkingSpec_To_v1alpha1_CiliumNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Cilium = nil + } + if in.LyftVPC != nil { + in, out := &in.LyftVPC, &out.LyftVPC + *out = new(LyftVPCNetworkingSpec) + if err := Convert_kops_LyftVPCNetworkingSpec_To_v1alpha1_LyftVPCNetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.LyftVPC = nil + } + if in.GCE != nil { + in, out := &in.GCE, &out.GCE + *out = new(GCENetworkingSpec) + if err := Convert_kops_GCENetworkingSpec_To_v1alpha1_GCENetworkingSpec(*in, *out, s); err != nil { + return err + } + } else { + out.GCE = nil + } + return nil +} + +// Convert_kops_NetworkingSpec_To_v1alpha1_NetworkingSpec is an autogenerated conversion function. +func Convert_kops_NetworkingSpec_To_v1alpha1_NetworkingSpec(in *kops.NetworkingSpec, out *NetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_NetworkingSpec_To_v1alpha1_NetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_NodeAuthorizationSpec_To_kops_NodeAuthorizationSpec(in *NodeAuthorizationSpec, out *kops.NodeAuthorizationSpec, s conversion.Scope) error { + if in.NodeAuthorizer != nil { + in, out := &in.NodeAuthorizer, &out.NodeAuthorizer + *out = new(kops.NodeAuthorizerSpec) + if err := Convert_v1alpha1_NodeAuthorizerSpec_To_kops_NodeAuthorizerSpec(*in, *out, s); err != nil { + return err + } + } else { + out.NodeAuthorizer = nil + } + return nil +} + +// Convert_v1alpha1_NodeAuthorizationSpec_To_kops_NodeAuthorizationSpec is an autogenerated conversion function. +func Convert_v1alpha1_NodeAuthorizationSpec_To_kops_NodeAuthorizationSpec(in *NodeAuthorizationSpec, out *kops.NodeAuthorizationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_NodeAuthorizationSpec_To_kops_NodeAuthorizationSpec(in, out, s) +} + +func autoConvert_kops_NodeAuthorizationSpec_To_v1alpha1_NodeAuthorizationSpec(in *kops.NodeAuthorizationSpec, out *NodeAuthorizationSpec, s conversion.Scope) error { + if in.NodeAuthorizer != nil { + in, out := &in.NodeAuthorizer, &out.NodeAuthorizer + *out = new(NodeAuthorizerSpec) + if err := Convert_kops_NodeAuthorizerSpec_To_v1alpha1_NodeAuthorizerSpec(*in, *out, s); err != nil { + return err + } + } else { + out.NodeAuthorizer = nil + } + return nil +} + +// Convert_kops_NodeAuthorizationSpec_To_v1alpha1_NodeAuthorizationSpec is an autogenerated conversion function. +func Convert_kops_NodeAuthorizationSpec_To_v1alpha1_NodeAuthorizationSpec(in *kops.NodeAuthorizationSpec, out *NodeAuthorizationSpec, s conversion.Scope) error { + return autoConvert_kops_NodeAuthorizationSpec_To_v1alpha1_NodeAuthorizationSpec(in, out, s) +} + +func autoConvert_v1alpha1_NodeAuthorizerSpec_To_kops_NodeAuthorizerSpec(in *NodeAuthorizerSpec, out *kops.NodeAuthorizerSpec, s conversion.Scope) error { + out.Authorizer = in.Authorizer + out.Features = in.Features + out.Image = in.Image + out.NodeURL = in.NodeURL + out.Port = in.Port + out.Interval = in.Interval + out.Timeout = in.Timeout + out.TokenTTL = in.TokenTTL + return nil +} + +// Convert_v1alpha1_NodeAuthorizerSpec_To_kops_NodeAuthorizerSpec is an autogenerated conversion function. +func Convert_v1alpha1_NodeAuthorizerSpec_To_kops_NodeAuthorizerSpec(in *NodeAuthorizerSpec, out *kops.NodeAuthorizerSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_NodeAuthorizerSpec_To_kops_NodeAuthorizerSpec(in, out, s) +} + +func autoConvert_kops_NodeAuthorizerSpec_To_v1alpha1_NodeAuthorizerSpec(in *kops.NodeAuthorizerSpec, out *NodeAuthorizerSpec, s conversion.Scope) error { + out.Authorizer = in.Authorizer + out.Features = in.Features + out.Image = in.Image + out.NodeURL = in.NodeURL + out.Port = in.Port + out.Interval = in.Interval + out.Timeout = in.Timeout + out.TokenTTL = in.TokenTTL + return nil +} + +// Convert_kops_NodeAuthorizerSpec_To_v1alpha1_NodeAuthorizerSpec is an autogenerated conversion function. +func Convert_kops_NodeAuthorizerSpec_To_v1alpha1_NodeAuthorizerSpec(in *kops.NodeAuthorizerSpec, out *NodeAuthorizerSpec, s conversion.Scope) error { + return autoConvert_kops_NodeAuthorizerSpec_To_v1alpha1_NodeAuthorizerSpec(in, out, s) +} + +func autoConvert_v1alpha1_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(in *OpenstackBlockStorageConfig, out *kops.OpenstackBlockStorageConfig, s conversion.Scope) error { + out.Version = in.Version + out.IgnoreAZ = in.IgnoreAZ + out.OverrideAZ = in.OverrideAZ + return nil +} + +// Convert_v1alpha1_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig is an autogenerated conversion function. +func Convert_v1alpha1_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(in *OpenstackBlockStorageConfig, out *kops.OpenstackBlockStorageConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(in, out, s) +} + +func autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha1_OpenstackBlockStorageConfig(in *kops.OpenstackBlockStorageConfig, out *OpenstackBlockStorageConfig, s conversion.Scope) error { + out.Version = in.Version + out.IgnoreAZ = in.IgnoreAZ + out.OverrideAZ = in.OverrideAZ + return nil +} + +// Convert_kops_OpenstackBlockStorageConfig_To_v1alpha1_OpenstackBlockStorageConfig is an autogenerated conversion function. +func Convert_kops_OpenstackBlockStorageConfig_To_v1alpha1_OpenstackBlockStorageConfig(in *kops.OpenstackBlockStorageConfig, out *OpenstackBlockStorageConfig, s conversion.Scope) error { + return autoConvert_kops_OpenstackBlockStorageConfig_To_v1alpha1_OpenstackBlockStorageConfig(in, out, s) +} + +func autoConvert_v1alpha1_OpenstackConfiguration_To_kops_OpenstackConfiguration(in *OpenstackConfiguration, out *kops.OpenstackConfiguration, s conversion.Scope) error { + if in.Loadbalancer != nil { + in, out := &in.Loadbalancer, &out.Loadbalancer + *out = new(kops.OpenstackLoadbalancerConfig) + if err := Convert_v1alpha1_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Loadbalancer = nil + } + if in.Monitor != nil { + in, out := &in.Monitor, &out.Monitor + *out = new(kops.OpenstackMonitor) + if err := Convert_v1alpha1_OpenstackMonitor_To_kops_OpenstackMonitor(*in, *out, s); err != nil { + return err + } + } else { + out.Monitor = nil + } + if in.Router != nil { + in, out := &in.Router, &out.Router + *out = new(kops.OpenstackRouter) + if err := Convert_v1alpha1_OpenstackRouter_To_kops_OpenstackRouter(*in, *out, s); err != nil { + return err + } + } else { + out.Router = nil + } + if in.BlockStorage != nil { + in, out := &in.BlockStorage, &out.BlockStorage + *out = new(kops.OpenstackBlockStorageConfig) + if err := Convert_v1alpha1_OpenstackBlockStorageConfig_To_kops_OpenstackBlockStorageConfig(*in, *out, s); err != nil { + return err + } + } else { + out.BlockStorage = nil + } + out.InsecureSkipVerify = in.InsecureSkipVerify + return nil +} + +// Convert_v1alpha1_OpenstackConfiguration_To_kops_OpenstackConfiguration is an autogenerated conversion function. +func Convert_v1alpha1_OpenstackConfiguration_To_kops_OpenstackConfiguration(in *OpenstackConfiguration, out *kops.OpenstackConfiguration, s conversion.Scope) error { + return autoConvert_v1alpha1_OpenstackConfiguration_To_kops_OpenstackConfiguration(in, out, s) +} + +func autoConvert_kops_OpenstackConfiguration_To_v1alpha1_OpenstackConfiguration(in *kops.OpenstackConfiguration, out *OpenstackConfiguration, s conversion.Scope) error { + if in.Loadbalancer != nil { + in, out := &in.Loadbalancer, &out.Loadbalancer + *out = new(OpenstackLoadbalancerConfig) + if err := Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha1_OpenstackLoadbalancerConfig(*in, *out, s); err != nil { + return err + } + } else { + out.Loadbalancer = nil + } + if in.Monitor != nil { + in, out := &in.Monitor, &out.Monitor + *out = new(OpenstackMonitor) + if err := Convert_kops_OpenstackMonitor_To_v1alpha1_OpenstackMonitor(*in, *out, s); err != nil { + return err + } + } else { + out.Monitor = nil + } + if in.Router != nil { + in, out := &in.Router, &out.Router + *out = new(OpenstackRouter) + if err := Convert_kops_OpenstackRouter_To_v1alpha1_OpenstackRouter(*in, *out, s); err != nil { + return err + } + } else { + out.Router = nil + } + if in.BlockStorage != nil { + in, out := &in.BlockStorage, &out.BlockStorage + *out = new(OpenstackBlockStorageConfig) + if err := Convert_kops_OpenstackBlockStorageConfig_To_v1alpha1_OpenstackBlockStorageConfig(*in, *out, s); err != nil { + return err + } + } else { + out.BlockStorage = nil + } + out.InsecureSkipVerify = in.InsecureSkipVerify + return nil +} + +// Convert_kops_OpenstackConfiguration_To_v1alpha1_OpenstackConfiguration is an autogenerated conversion function. +func Convert_kops_OpenstackConfiguration_To_v1alpha1_OpenstackConfiguration(in *kops.OpenstackConfiguration, out *OpenstackConfiguration, s conversion.Scope) error { + return autoConvert_kops_OpenstackConfiguration_To_v1alpha1_OpenstackConfiguration(in, out, s) +} + +func autoConvert_v1alpha1_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(in *OpenstackLoadbalancerConfig, out *kops.OpenstackLoadbalancerConfig, s conversion.Scope) error { + out.Method = in.Method + out.Provider = in.Provider + out.UseOctavia = in.UseOctavia + out.FloatingNetwork = in.FloatingNetwork + out.FloatingNetworkID = in.FloatingNetworkID + out.FloatingSubnet = in.FloatingSubnet + out.SubnetID = in.SubnetID + out.ManageSecGroups = in.ManageSecGroups + return nil +} + +// Convert_v1alpha1_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig is an autogenerated conversion function. +func Convert_v1alpha1_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(in *OpenstackLoadbalancerConfig, out *kops.OpenstackLoadbalancerConfig, s conversion.Scope) error { + return autoConvert_v1alpha1_OpenstackLoadbalancerConfig_To_kops_OpenstackLoadbalancerConfig(in, out, s) +} + +func autoConvert_kops_OpenstackLoadbalancerConfig_To_v1alpha1_OpenstackLoadbalancerConfig(in *kops.OpenstackLoadbalancerConfig, out *OpenstackLoadbalancerConfig, s conversion.Scope) error { + out.Method = in.Method + out.Provider = in.Provider + out.UseOctavia = in.UseOctavia + out.FloatingNetwork = in.FloatingNetwork + out.FloatingNetworkID = in.FloatingNetworkID + out.FloatingSubnet = in.FloatingSubnet + out.SubnetID = in.SubnetID + out.ManageSecGroups = in.ManageSecGroups + return nil +} + +// Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha1_OpenstackLoadbalancerConfig is an autogenerated conversion function. +func Convert_kops_OpenstackLoadbalancerConfig_To_v1alpha1_OpenstackLoadbalancerConfig(in *kops.OpenstackLoadbalancerConfig, out *OpenstackLoadbalancerConfig, s conversion.Scope) error { + return autoConvert_kops_OpenstackLoadbalancerConfig_To_v1alpha1_OpenstackLoadbalancerConfig(in, out, s) +} + +func autoConvert_v1alpha1_OpenstackMonitor_To_kops_OpenstackMonitor(in *OpenstackMonitor, out *kops.OpenstackMonitor, s conversion.Scope) error { + out.Delay = in.Delay + out.Timeout = in.Timeout + out.MaxRetries = in.MaxRetries + return nil +} + +// Convert_v1alpha1_OpenstackMonitor_To_kops_OpenstackMonitor is an autogenerated conversion function. +func Convert_v1alpha1_OpenstackMonitor_To_kops_OpenstackMonitor(in *OpenstackMonitor, out *kops.OpenstackMonitor, s conversion.Scope) error { + return autoConvert_v1alpha1_OpenstackMonitor_To_kops_OpenstackMonitor(in, out, s) +} + +func autoConvert_kops_OpenstackMonitor_To_v1alpha1_OpenstackMonitor(in *kops.OpenstackMonitor, out *OpenstackMonitor, s conversion.Scope) error { + out.Delay = in.Delay + out.Timeout = in.Timeout + out.MaxRetries = in.MaxRetries + return nil +} + +// Convert_kops_OpenstackMonitor_To_v1alpha1_OpenstackMonitor is an autogenerated conversion function. +func Convert_kops_OpenstackMonitor_To_v1alpha1_OpenstackMonitor(in *kops.OpenstackMonitor, out *OpenstackMonitor, s conversion.Scope) error { + return autoConvert_kops_OpenstackMonitor_To_v1alpha1_OpenstackMonitor(in, out, s) +} + +func autoConvert_v1alpha1_OpenstackRouter_To_kops_OpenstackRouter(in *OpenstackRouter, out *kops.OpenstackRouter, s conversion.Scope) error { + out.ExternalNetwork = in.ExternalNetwork + out.DNSServers = in.DNSServers + out.ExternalSubnet = in.ExternalSubnet + return nil +} + +// Convert_v1alpha1_OpenstackRouter_To_kops_OpenstackRouter is an autogenerated conversion function. +func Convert_v1alpha1_OpenstackRouter_To_kops_OpenstackRouter(in *OpenstackRouter, out *kops.OpenstackRouter, s conversion.Scope) error { + return autoConvert_v1alpha1_OpenstackRouter_To_kops_OpenstackRouter(in, out, s) +} + +func autoConvert_kops_OpenstackRouter_To_v1alpha1_OpenstackRouter(in *kops.OpenstackRouter, out *OpenstackRouter, s conversion.Scope) error { + out.ExternalNetwork = in.ExternalNetwork + out.DNSServers = in.DNSServers + out.ExternalSubnet = in.ExternalSubnet + return nil +} + +// Convert_kops_OpenstackRouter_To_v1alpha1_OpenstackRouter is an autogenerated conversion function. +func Convert_kops_OpenstackRouter_To_v1alpha1_OpenstackRouter(in *kops.OpenstackRouter, out *OpenstackRouter, s conversion.Scope) error { + return autoConvert_kops_OpenstackRouter_To_v1alpha1_OpenstackRouter(in, out, s) +} + +func autoConvert_v1alpha1_RBACAuthorizationSpec_To_kops_RBACAuthorizationSpec(in *RBACAuthorizationSpec, out *kops.RBACAuthorizationSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha1_RBACAuthorizationSpec_To_kops_RBACAuthorizationSpec is an autogenerated conversion function. +func Convert_v1alpha1_RBACAuthorizationSpec_To_kops_RBACAuthorizationSpec(in *RBACAuthorizationSpec, out *kops.RBACAuthorizationSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_RBACAuthorizationSpec_To_kops_RBACAuthorizationSpec(in, out, s) +} + +func autoConvert_kops_RBACAuthorizationSpec_To_v1alpha1_RBACAuthorizationSpec(in *kops.RBACAuthorizationSpec, out *RBACAuthorizationSpec, s conversion.Scope) error { + return nil +} + +// Convert_kops_RBACAuthorizationSpec_To_v1alpha1_RBACAuthorizationSpec is an autogenerated conversion function. +func Convert_kops_RBACAuthorizationSpec_To_v1alpha1_RBACAuthorizationSpec(in *kops.RBACAuthorizationSpec, out *RBACAuthorizationSpec, s conversion.Scope) error { + return autoConvert_kops_RBACAuthorizationSpec_To_v1alpha1_RBACAuthorizationSpec(in, out, s) +} + +func autoConvert_v1alpha1_RollingUpdate_To_kops_RollingUpdate(in *RollingUpdate, out *kops.RollingUpdate, s conversion.Scope) error { + out.MaxUnavailable = in.MaxUnavailable + out.MaxSurge = in.MaxSurge + return nil +} + +// Convert_v1alpha1_RollingUpdate_To_kops_RollingUpdate is an autogenerated conversion function. +func Convert_v1alpha1_RollingUpdate_To_kops_RollingUpdate(in *RollingUpdate, out *kops.RollingUpdate, s conversion.Scope) error { + return autoConvert_v1alpha1_RollingUpdate_To_kops_RollingUpdate(in, out, s) +} + +func autoConvert_kops_RollingUpdate_To_v1alpha1_RollingUpdate(in *kops.RollingUpdate, out *RollingUpdate, s conversion.Scope) error { + out.MaxUnavailable = in.MaxUnavailable + out.MaxSurge = in.MaxSurge + return nil +} + +// Convert_kops_RollingUpdate_To_v1alpha1_RollingUpdate is an autogenerated conversion function. +func Convert_kops_RollingUpdate_To_v1alpha1_RollingUpdate(in *kops.RollingUpdate, out *RollingUpdate, s conversion.Scope) error { + return autoConvert_kops_RollingUpdate_To_v1alpha1_RollingUpdate(in, out, s) +} + +func autoConvert_v1alpha1_RomanaNetworkingSpec_To_kops_RomanaNetworkingSpec(in *RomanaNetworkingSpec, out *kops.RomanaNetworkingSpec, s conversion.Scope) error { + out.DaemonServiceIP = in.DaemonServiceIP + out.EtcdServiceIP = in.EtcdServiceIP + return nil +} + +// Convert_v1alpha1_RomanaNetworkingSpec_To_kops_RomanaNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_RomanaNetworkingSpec_To_kops_RomanaNetworkingSpec(in *RomanaNetworkingSpec, out *kops.RomanaNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_RomanaNetworkingSpec_To_kops_RomanaNetworkingSpec(in, out, s) +} + +func autoConvert_kops_RomanaNetworkingSpec_To_v1alpha1_RomanaNetworkingSpec(in *kops.RomanaNetworkingSpec, out *RomanaNetworkingSpec, s conversion.Scope) error { + out.DaemonServiceIP = in.DaemonServiceIP + out.EtcdServiceIP = in.EtcdServiceIP + return nil +} + +// Convert_kops_RomanaNetworkingSpec_To_v1alpha1_RomanaNetworkingSpec is an autogenerated conversion function. +func Convert_kops_RomanaNetworkingSpec_To_v1alpha1_RomanaNetworkingSpec(in *kops.RomanaNetworkingSpec, out *RomanaNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_RomanaNetworkingSpec_To_v1alpha1_RomanaNetworkingSpec(in, out, s) +} + +func autoConvert_v1alpha1_SSHCredential_To_kops_SSHCredential(in *SSHCredential, out *kops.SSHCredential, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha1_SSHCredentialSpec_To_kops_SSHCredentialSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha1_SSHCredential_To_kops_SSHCredential is an autogenerated conversion function. +func Convert_v1alpha1_SSHCredential_To_kops_SSHCredential(in *SSHCredential, out *kops.SSHCredential, s conversion.Scope) error { + return autoConvert_v1alpha1_SSHCredential_To_kops_SSHCredential(in, out, s) +} + +func autoConvert_kops_SSHCredential_To_v1alpha1_SSHCredential(in *kops.SSHCredential, out *SSHCredential, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_kops_SSHCredentialSpec_To_v1alpha1_SSHCredentialSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_kops_SSHCredential_To_v1alpha1_SSHCredential is an autogenerated conversion function. +func Convert_kops_SSHCredential_To_v1alpha1_SSHCredential(in *kops.SSHCredential, out *SSHCredential, s conversion.Scope) error { + return autoConvert_kops_SSHCredential_To_v1alpha1_SSHCredential(in, out, s) +} + +func autoConvert_v1alpha1_SSHCredentialList_To_kops_SSHCredentialList(in *SSHCredentialList, out *kops.SSHCredentialList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]kops.SSHCredential, len(*in)) + for i := range *in { + if err := Convert_v1alpha1_SSHCredential_To_kops_SSHCredential(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1alpha1_SSHCredentialList_To_kops_SSHCredentialList is an autogenerated conversion function. +func Convert_v1alpha1_SSHCredentialList_To_kops_SSHCredentialList(in *SSHCredentialList, out *kops.SSHCredentialList, s conversion.Scope) error { + return autoConvert_v1alpha1_SSHCredentialList_To_kops_SSHCredentialList(in, out, s) +} + +func autoConvert_kops_SSHCredentialList_To_v1alpha1_SSHCredentialList(in *kops.SSHCredentialList, out *SSHCredentialList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SSHCredential, len(*in)) + for i := range *in { + if err := Convert_kops_SSHCredential_To_v1alpha1_SSHCredential(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_kops_SSHCredentialList_To_v1alpha1_SSHCredentialList is an autogenerated conversion function. +func Convert_kops_SSHCredentialList_To_v1alpha1_SSHCredentialList(in *kops.SSHCredentialList, out *SSHCredentialList, s conversion.Scope) error { + return autoConvert_kops_SSHCredentialList_To_v1alpha1_SSHCredentialList(in, out, s) +} + +func autoConvert_v1alpha1_SSHCredentialSpec_To_kops_SSHCredentialSpec(in *SSHCredentialSpec, out *kops.SSHCredentialSpec, s conversion.Scope) error { + out.PublicKey = in.PublicKey + return nil +} + +// Convert_v1alpha1_SSHCredentialSpec_To_kops_SSHCredentialSpec is an autogenerated conversion function. +func Convert_v1alpha1_SSHCredentialSpec_To_kops_SSHCredentialSpec(in *SSHCredentialSpec, out *kops.SSHCredentialSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_SSHCredentialSpec_To_kops_SSHCredentialSpec(in, out, s) +} + +func autoConvert_kops_SSHCredentialSpec_To_v1alpha1_SSHCredentialSpec(in *kops.SSHCredentialSpec, out *SSHCredentialSpec, s conversion.Scope) error { + out.PublicKey = in.PublicKey + return nil +} + +// Convert_kops_SSHCredentialSpec_To_v1alpha1_SSHCredentialSpec is an autogenerated conversion function. +func Convert_kops_SSHCredentialSpec_To_v1alpha1_SSHCredentialSpec(in *kops.SSHCredentialSpec, out *SSHCredentialSpec, s conversion.Scope) error { + return autoConvert_kops_SSHCredentialSpec_To_v1alpha1_SSHCredentialSpec(in, out, s) +} + +func autoConvert_v1alpha1_TargetSpec_To_kops_TargetSpec(in *TargetSpec, out *kops.TargetSpec, s conversion.Scope) error { + if in.Terraform != nil { + in, out := &in.Terraform, &out.Terraform + *out = new(kops.TerraformSpec) + if err := Convert_v1alpha1_TerraformSpec_To_kops_TerraformSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Terraform = nil + } + return nil +} + +// Convert_v1alpha1_TargetSpec_To_kops_TargetSpec is an autogenerated conversion function. +func Convert_v1alpha1_TargetSpec_To_kops_TargetSpec(in *TargetSpec, out *kops.TargetSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_TargetSpec_To_kops_TargetSpec(in, out, s) +} + +func autoConvert_kops_TargetSpec_To_v1alpha1_TargetSpec(in *kops.TargetSpec, out *TargetSpec, s conversion.Scope) error { + if in.Terraform != nil { + in, out := &in.Terraform, &out.Terraform + *out = new(TerraformSpec) + if err := Convert_kops_TerraformSpec_To_v1alpha1_TerraformSpec(*in, *out, s); err != nil { + return err + } + } else { + out.Terraform = nil + } + return nil +} + +// Convert_kops_TargetSpec_To_v1alpha1_TargetSpec is an autogenerated conversion function. +func Convert_kops_TargetSpec_To_v1alpha1_TargetSpec(in *kops.TargetSpec, out *TargetSpec, s conversion.Scope) error { + return autoConvert_kops_TargetSpec_To_v1alpha1_TargetSpec(in, out, s) +} + +func autoConvert_v1alpha1_TerraformSpec_To_kops_TerraformSpec(in *TerraformSpec, out *kops.TerraformSpec, s conversion.Scope) error { + out.ProviderExtraConfig = in.ProviderExtraConfig + return nil +} + +// Convert_v1alpha1_TerraformSpec_To_kops_TerraformSpec is an autogenerated conversion function. +func Convert_v1alpha1_TerraformSpec_To_kops_TerraformSpec(in *TerraformSpec, out *kops.TerraformSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_TerraformSpec_To_kops_TerraformSpec(in, out, s) +} + +func autoConvert_kops_TerraformSpec_To_v1alpha1_TerraformSpec(in *kops.TerraformSpec, out *TerraformSpec, s conversion.Scope) error { + out.ProviderExtraConfig = in.ProviderExtraConfig + return nil +} + +// Convert_kops_TerraformSpec_To_v1alpha1_TerraformSpec is an autogenerated conversion function. +func Convert_kops_TerraformSpec_To_v1alpha1_TerraformSpec(in *kops.TerraformSpec, out *TerraformSpec, s conversion.Scope) error { + return autoConvert_kops_TerraformSpec_To_v1alpha1_TerraformSpec(in, out, s) +} + +func autoConvert_v1alpha1_UserData_To_kops_UserData(in *UserData, out *kops.UserData, s conversion.Scope) error { + out.Name = in.Name + out.Type = in.Type + out.Content = in.Content + return nil +} + +// Convert_v1alpha1_UserData_To_kops_UserData is an autogenerated conversion function. +func Convert_v1alpha1_UserData_To_kops_UserData(in *UserData, out *kops.UserData, s conversion.Scope) error { + return autoConvert_v1alpha1_UserData_To_kops_UserData(in, out, s) +} + +func autoConvert_kops_UserData_To_v1alpha1_UserData(in *kops.UserData, out *UserData, s conversion.Scope) error { + out.Name = in.Name + out.Type = in.Type + out.Content = in.Content + return nil +} + +// Convert_kops_UserData_To_v1alpha1_UserData is an autogenerated conversion function. +func Convert_kops_UserData_To_v1alpha1_UserData(in *kops.UserData, out *UserData, s conversion.Scope) error { + return autoConvert_kops_UserData_To_v1alpha1_UserData(in, out, s) +} + +func autoConvert_v1alpha1_VolumeMountSpec_To_kops_VolumeMountSpec(in *VolumeMountSpec, out *kops.VolumeMountSpec, s conversion.Scope) error { + out.Device = in.Device + out.Filesystem = in.Filesystem + out.FormatOptions = in.FormatOptions + out.MountOptions = in.MountOptions + out.Path = in.Path + return nil +} + +// Convert_v1alpha1_VolumeMountSpec_To_kops_VolumeMountSpec is an autogenerated conversion function. +func Convert_v1alpha1_VolumeMountSpec_To_kops_VolumeMountSpec(in *VolumeMountSpec, out *kops.VolumeMountSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeMountSpec_To_kops_VolumeMountSpec(in, out, s) +} + +func autoConvert_kops_VolumeMountSpec_To_v1alpha1_VolumeMountSpec(in *kops.VolumeMountSpec, out *VolumeMountSpec, s conversion.Scope) error { + out.Device = in.Device + out.Filesystem = in.Filesystem + out.FormatOptions = in.FormatOptions + out.MountOptions = in.MountOptions + out.Path = in.Path + return nil +} + +// Convert_kops_VolumeMountSpec_To_v1alpha1_VolumeMountSpec is an autogenerated conversion function. +func Convert_kops_VolumeMountSpec_To_v1alpha1_VolumeMountSpec(in *kops.VolumeMountSpec, out *VolumeMountSpec, s conversion.Scope) error { + return autoConvert_kops_VolumeMountSpec_To_v1alpha1_VolumeMountSpec(in, out, s) +} + +func autoConvert_v1alpha1_VolumeSpec_To_kops_VolumeSpec(in *VolumeSpec, out *kops.VolumeSpec, s conversion.Scope) error { + out.DeleteOnTermination = in.DeleteOnTermination + out.Device = in.Device + out.Encrypted = in.Encrypted + out.Iops = in.Iops + out.Size = in.Size + out.Type = in.Type + return nil +} + +// Convert_v1alpha1_VolumeSpec_To_kops_VolumeSpec is an autogenerated conversion function. +func Convert_v1alpha1_VolumeSpec_To_kops_VolumeSpec(in *VolumeSpec, out *kops.VolumeSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_VolumeSpec_To_kops_VolumeSpec(in, out, s) +} + +func autoConvert_kops_VolumeSpec_To_v1alpha1_VolumeSpec(in *kops.VolumeSpec, out *VolumeSpec, s conversion.Scope) error { + out.DeleteOnTermination = in.DeleteOnTermination + out.Device = in.Device + out.Encrypted = in.Encrypted + out.Iops = in.Iops + out.Size = in.Size + out.Type = in.Type + return nil +} + +// Convert_kops_VolumeSpec_To_v1alpha1_VolumeSpec is an autogenerated conversion function. +func Convert_kops_VolumeSpec_To_v1alpha1_VolumeSpec(in *kops.VolumeSpec, out *VolumeSpec, s conversion.Scope) error { + return autoConvert_kops_VolumeSpec_To_v1alpha1_VolumeSpec(in, out, s) +} + +func autoConvert_v1alpha1_WeaveNetworkingSpec_To_kops_WeaveNetworkingSpec(in *WeaveNetworkingSpec, out *kops.WeaveNetworkingSpec, s conversion.Scope) error { + out.MTU = in.MTU + out.ConnLimit = in.ConnLimit + out.NoMasqLocal = in.NoMasqLocal + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + out.MemoryLimit = in.MemoryLimit + out.CPULimit = in.CPULimit + out.NetExtraArgs = in.NetExtraArgs + out.NPCMemoryRequest = in.NPCMemoryRequest + out.NPCCPURequest = in.NPCCPURequest + out.NPCMemoryLimit = in.NPCMemoryLimit + out.NPCCPULimit = in.NPCCPULimit + out.NPCExtraArgs = in.NPCExtraArgs + return nil +} + +// Convert_v1alpha1_WeaveNetworkingSpec_To_kops_WeaveNetworkingSpec is an autogenerated conversion function. +func Convert_v1alpha1_WeaveNetworkingSpec_To_kops_WeaveNetworkingSpec(in *WeaveNetworkingSpec, out *kops.WeaveNetworkingSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_WeaveNetworkingSpec_To_kops_WeaveNetworkingSpec(in, out, s) +} + +func autoConvert_kops_WeaveNetworkingSpec_To_v1alpha1_WeaveNetworkingSpec(in *kops.WeaveNetworkingSpec, out *WeaveNetworkingSpec, s conversion.Scope) error { + out.MTU = in.MTU + out.ConnLimit = in.ConnLimit + out.NoMasqLocal = in.NoMasqLocal + out.MemoryRequest = in.MemoryRequest + out.CPURequest = in.CPURequest + out.MemoryLimit = in.MemoryLimit + out.CPULimit = in.CPULimit + out.NetExtraArgs = in.NetExtraArgs + out.NPCMemoryRequest = in.NPCMemoryRequest + out.NPCCPURequest = in.NPCCPURequest + out.NPCMemoryLimit = in.NPCMemoryLimit + out.NPCCPULimit = in.NPCCPULimit + out.NPCExtraArgs = in.NPCExtraArgs + return nil +} + +// Convert_kops_WeaveNetworkingSpec_To_v1alpha1_WeaveNetworkingSpec is an autogenerated conversion function. +func Convert_kops_WeaveNetworkingSpec_To_v1alpha1_WeaveNetworkingSpec(in *kops.WeaveNetworkingSpec, out *WeaveNetworkingSpec, s conversion.Scope) error { + return autoConvert_kops_WeaveNetworkingSpec_To_v1alpha1_WeaveNetworkingSpec(in, out, s) +} diff --git a/pkg/apis/kops/v1alpha2/cluster.go b/pkg/apis/kops/v1alpha2/cluster.go index 769bbd4af5..af05ba7d71 100644 --- a/pkg/apis/kops/v1alpha2/cluster.go +++ b/pkg/apis/kops/v1alpha2/cluster.go @@ -189,6 +189,8 @@ type ClusterSpec struct { SysctlParameters []string `json:"sysctlParameters,omitempty"` // RollingUpdate defines the default rolling-update settings for instance groups RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"` + // GCEServiceAccount specifies the service account with which the GCE VM runs + GCEServiceAccount string `json:"gceServiceAccount,omitempty"` } // NodeAuthorizationSpec is used to node authorization diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index 1769d3ed17..fd203e5c10 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -1995,6 +1995,7 @@ func autoConvert_v1alpha2_ClusterSpec_To_kops_ClusterSpec(in *ClusterSpec, out * } else { out.RollingUpdate = nil } + out.GCEServiceAccount = in.GCEServiceAccount return nil } @@ -2318,6 +2319,7 @@ func autoConvert_kops_ClusterSpec_To_v1alpha2_ClusterSpec(in *kops.ClusterSpec, } else { out.RollingUpdate = nil } + out.GCEServiceAccount = in.GCEServiceAccount return nil } diff --git a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go index 67966b3f30..87128ec70d 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go @@ -821,6 +821,11 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { *out = new(RollingUpdate) (*in).DeepCopyInto(*out) } + if in.GCEServiceAccount != nil { + in, out := &in.GCEServiceAccount, &out.GCEServiceAccount + *out = new(string) + **out = **in + } return } diff --git a/pkg/apis/kops/zz_generated.deepcopy.go b/pkg/apis/kops/zz_generated.deepcopy.go index 9e0f3a7c36..259bc19740 100644 --- a/pkg/apis/kops/zz_generated.deepcopy.go +++ b/pkg/apis/kops/zz_generated.deepcopy.go @@ -921,6 +921,11 @@ func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { *out = new(RollingUpdate) (*in).DeepCopyInto(*out) } + if in.GCEServiceAccount != nil { + in, out := &in.GCEServiceAccount, &out.GCEServiceAccount + *out = new(string) + **out = **in + } return } diff --git a/pkg/model/gcemodel/autoscalinggroup.go b/pkg/model/gcemodel/autoscalinggroup.go index 806f20d4d2..92fe7c3711 100644 --- a/pkg/model/gcemodel/autoscalinggroup.go +++ b/pkg/model/gcemodel/autoscalinggroup.go @@ -35,6 +35,7 @@ const ( DefaultVolumeType = "pd-standard" ) +// TODO: rework these parts to be more GCE native. ie: Managed Instance Groups > ASGs // AutoscalingGroupModelBuilder configures AutoscalingGroup objects type AutoscalingGroupModelBuilder struct { *GCEModelContext @@ -70,7 +71,6 @@ func (b *AutoscalingGroupModelBuilder) Build(c *fi.ModelBuilderContext) error { } namePrefix := gce.LimitedLengthName(name, gcetasks.InstanceTemplateNamePrefixMaxLength) - t := &gcetasks.InstanceTemplate{ Name: s(name), NamePrefix: s(namePrefix), @@ -89,7 +89,6 @@ func (b *AutoscalingGroupModelBuilder) Build(c *fi.ModelBuilderContext) error { "monitoring", "logging-write", }, - Metadata: map[string]*fi.ResourceHolder{ "startup-script": startupScript, //"config": resources/config.yaml $nodeset.Name @@ -121,6 +120,7 @@ func (b *AutoscalingGroupModelBuilder) Build(c *fi.ModelBuilderContext) error { switch ig.Spec.Role { case kops.InstanceGroupRoleMaster: // Grant DNS permissions + // TODO: migrate to IAM permissions instead of oldschool scopes? t.Scopes = append(t.Scopes, "https://www.googleapis.com/auth/ndev.clouddns.readwrite") t.Tags = append(t.Tags, b.GCETagForRole(kops.InstanceGroupRoleMaster)) @@ -139,6 +139,7 @@ func (b *AutoscalingGroupModelBuilder) Build(c *fi.ModelBuilderContext) error { t.CanIPForward = fi.Bool(true) } + t.ServiceAccount = b.Cluster.Spec.GCEServiceAccount //labels, err := b.CloudTagsForInstanceGroup(ig) //if err != nil { // return fmt.Errorf("error building cloud tags: %v", err) diff --git a/tests/integration/create_cluster/gce_byo_sa/expected-v1alpha2.yaml b/tests/integration/create_cluster/gce_byo_sa/expected-v1alpha2.yaml new file mode 100644 index 0000000000..2efae9c1ae --- /dev/null +++ b/tests/integration/create_cluster/gce_byo_sa/expected-v1alpha2.yaml @@ -0,0 +1,153 @@ +apiVersion: kops.k8s.io/v1alpha2 +kind: Cluster +metadata: + creationTimestamp: "2017-01-01T00:00:00Z" + name: ha-gce.example.com +spec: + api: + dns: {} + authorization: + rbac: {} + channel: stable + cloudProvider: gce + configBase: memfs://tests/ha-gce.example.com + containerRuntime: docker + etcdClusters: + - cpuRequest: 200m + etcdMembers: + - instanceGroup: master-us-test1-a + name: a + - instanceGroup: master-us-test1-b + name: b + - instanceGroup: master-us-test1-c + name: c + memoryRequest: 100Mi + name: main + - cpuRequest: 100m + etcdMembers: + - instanceGroup: master-us-test1-a + name: a + - instanceGroup: master-us-test1-b + name: b + - instanceGroup: master-us-test1-c + name: c + memoryRequest: 100Mi + name: events + iam: + allowContainerRegistry: true + legacy: false + kubelet: + anonymousAuth: false + kubernetesApiAccess: + - 0.0.0.0/0 + kubernetesVersion: v1.15.6-beta.1 + masterPublicName: api.ha-gce.example.com + networking: + kubenet: {} + nonMasqueradeCIDR: 100.64.0.0/10 + project: testproject + sshAccess: + - 0.0.0.0/0 + subnets: + - name: us-test1 + region: us-test1 + type: Public + topology: + dns: + type: Public + masters: public + nodes: public + +--- + +apiVersion: kops.k8s.io/v1alpha2 +kind: InstanceGroup +metadata: + creationTimestamp: "2017-01-01T00:00:00Z" + labels: + kops.k8s.io/cluster: ha-gce.example.com + name: master-us-test1-a +spec: + image: cos-cloud/cos-stable-65-10323-99-0 + machineType: n1-standard-1 + maxSize: 1 + minSize: 1 + nodeLabels: + cloud.google.com/metadata-proxy-ready: "true" + kops.k8s.io/instancegroup: master-us-test1-a + role: Master + subnets: + - us-test1 + zones: + - us-test1-a + +--- + +apiVersion: kops.k8s.io/v1alpha2 +kind: InstanceGroup +metadata: + creationTimestamp: "2017-01-01T00:00:00Z" + labels: + kops.k8s.io/cluster: ha-gce.example.com + name: master-us-test1-b +spec: + image: cos-cloud/cos-stable-65-10323-99-0 + machineType: n1-standard-1 + maxSize: 1 + minSize: 1 + nodeLabels: + cloud.google.com/metadata-proxy-ready: "true" + kops.k8s.io/instancegroup: master-us-test1-b + role: Master + subnets: + - us-test1 + zones: + - us-test1-b + +--- + +apiVersion: kops.k8s.io/v1alpha2 +kind: InstanceGroup +metadata: + creationTimestamp: "2017-01-01T00:00:00Z" + labels: + kops.k8s.io/cluster: ha-gce.example.com + name: master-us-test1-c +spec: + image: cos-cloud/cos-stable-65-10323-99-0 + machineType: n1-standard-1 + maxSize: 1 + minSize: 1 + nodeLabels: + cloud.google.com/metadata-proxy-ready: "true" + kops.k8s.io/instancegroup: master-us-test1-c + role: Master + subnets: + - us-test1 + zones: + - us-test1-c + +--- + +apiVersion: kops.k8s.io/v1alpha2 +kind: InstanceGroup +metadata: + creationTimestamp: "2017-01-01T00:00:00Z" + labels: + kops.k8s.io/cluster: ha-gce.example.com + name: nodes +spec: + image: cos-cloud/cos-stable-65-10323-99-0 + machineType: n1-standard-2 + maxSize: 2 + minSize: 2 + nodeLabels: + cloud.google.com/metadata-proxy-ready: "true" + kops.k8s.io/instancegroup: nodes + role: Node + subnets: + - us-test1 + zones: + - us-test1-a + - us-test1-b + - us-test1-c diff --git a/tests/integration/create_cluster/gce_byo_sa/options.yaml b/tests/integration/create_cluster/gce_byo_sa/options.yaml new file mode 100644 index 0000000000..c5e169b592 --- /dev/null +++ b/tests/integration/create_cluster/gce_byo_sa/options.yaml @@ -0,0 +1,9 @@ +ClusterName: ha-gce.example.com +Zones: +- us-test1-a +MasterZones: +- us-test1-a +Cloud: gce +KubernetesVersion: v1.15.6-beta.1 +Project: testproject +GCEServiceAccount: test-account@testproject.iam.gserviceaccount.com \ No newline at end of file diff --git a/tests/integration/create_cluster/ha_gce/expected-v1alpha2.yaml b/tests/integration/create_cluster/ha_gce/expected-v1alpha2.yaml index 2efae9c1ae..b9542d3831 100644 --- a/tests/integration/create_cluster/ha_gce/expected-v1alpha2.yaml +++ b/tests/integration/create_cluster/ha_gce/expected-v1alpha2.yaml @@ -4,6 +4,7 @@ metadata: creationTimestamp: "2017-01-01T00:00:00Z" name: ha-gce.example.com spec: + GCEServiceAccount: default api: dns: {} authorization: diff --git a/tests/integration/update_cluster/ha_gce/kubernetes.tf b/tests/integration/update_cluster/ha_gce/kubernetes.tf index eb9525e356..91db0e4e88 100644 --- a/tests/integration/update_cluster/ha_gce/kubernetes.tf +++ b/tests/integration/update_cluster/ha_gce/kubernetes.tf @@ -397,10 +397,6 @@ resource "google_compute_instance_template" "master-us-test1-a-ha-gce-example-co can_ip_forward = true machine_type = "n1-standard-1" - service_account = { - scopes = ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/monitoring", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/devstorage.read_write", "https://www.googleapis.com/auth/ndev.clouddns.readwrite"] - } - scheduling = { automatic_restart = true on_host_maintenance = "MIGRATE" @@ -438,10 +434,6 @@ resource "google_compute_instance_template" "master-us-test1-b-ha-gce-example-co can_ip_forward = true machine_type = "n1-standard-1" - service_account = { - scopes = ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/monitoring", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/devstorage.read_write", "https://www.googleapis.com/auth/ndev.clouddns.readwrite"] - } - scheduling = { automatic_restart = true on_host_maintenance = "MIGRATE" @@ -479,10 +471,6 @@ resource "google_compute_instance_template" "master-us-test1-c-ha-gce-example-co can_ip_forward = true machine_type = "n1-standard-1" - service_account = { - scopes = ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/monitoring", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/devstorage.read_write", "https://www.googleapis.com/auth/ndev.clouddns.readwrite"] - } - scheduling = { automatic_restart = true on_host_maintenance = "MIGRATE" @@ -520,10 +508,6 @@ resource "google_compute_instance_template" "nodes-ha-gce-example-com" { can_ip_forward = true machine_type = "n1-standard-2" - service_account = { - scopes = ["https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/monitoring", "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/devstorage.read_only"] - } - scheduling = { automatic_restart = true on_host_maintenance = "MIGRATE" diff --git a/upup/pkg/fi/cloudup/gcetasks/instance.go b/upup/pkg/fi/cloudup/gcetasks/instance.go index a3e76878f5..37a4759a63 100644 --- a/upup/pkg/fi/cloudup/gcetasks/instance.go +++ b/upup/pkg/fi/cloudup/gcetasks/instance.go @@ -35,11 +35,12 @@ type Instance struct { Name *string Lifecycle *fi.Lifecycle - Network *Network - Tags []string - Preemptible *bool - Image *string - Disks map[string]*Disk + Network *Network + Tags []string + Preemptible *bool + Image *string + Disks map[string]*Disk + ServiceAccount *string CanIPForward *bool IPAddress *Address @@ -253,17 +254,18 @@ func (e *Instance) mapToGCE(project string, ipAddressResolver func(*Address) (*s } var serviceAccounts []*compute.ServiceAccount - if e.Scopes != nil { - var scopes []string - for _, s := range e.Scopes { - s = scopeToLongForm(s) - - scopes = append(scopes, s) + if e.ServiceAccount != nil { + if e.Scopes != nil { + var scopes []string + for _, s := range e.Scopes { + s = scopeToLongForm(s) + scopes = append(scopes, s) + } + serviceAccounts = append(serviceAccounts, &compute.ServiceAccount{ + Email: fi.StringValue(e.ServiceAccount), + Scopes: scopes, + }) } - serviceAccounts = append(serviceAccounts, &compute.ServiceAccount{ - Email: "default", - Scopes: scopes, - }) } var metadataItems []*compute.MetadataItems diff --git a/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go b/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go index 934af39e48..852947aa6d 100644 --- a/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go +++ b/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go @@ -58,7 +58,8 @@ type InstanceTemplate struct { Subnet *Subnet AliasIPRanges map[string]string - Scopes []string + Scopes []string + ServiceAccount *string Metadata map[string]*fi.ResourceHolder MachineType *string @@ -270,15 +271,16 @@ func (e *InstanceTemplate) mapToGCE(project string, region string) (*compute.Ins networkInterfaces = append(networkInterfaces, ni) var serviceAccounts []*compute.ServiceAccount - if e.Scopes != nil { - var scopes []string - for _, s := range e.Scopes { - s = scopeToLongForm(s) - - scopes = append(scopes, s) + if e.ServiceAccount != nil { + scopes := make([]string, 0) + if e.Scopes != nil { + for _, s := range e.Scopes { + s = scopeToLongForm(s) + scopes = append(scopes, s) + } } serviceAccounts = append(serviceAccounts, &compute.ServiceAccount{ - Email: "default", + Email: fi.StringValue(e.ServiceAccount), Scopes: scopes, }) }