1
0
mirror of https://github.com/rancher/types.git synced 2025-08-01 21:07:41 +00:00

Merge pull request #325 from galal-hussein/strong_types

rke types for each network and cloud provider
This commit is contained in:
Alena Prokharchyk 2018-03-29 11:02:36 -07:00 committed by GitHub
commit 54361434ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 340 additions and 31 deletions

View File

@ -33,6 +33,16 @@ type RancherKubernetesEngineConfig struct {
ClusterName string `yaml:"cluster_name" json:"clusterName,omitempty"`
// Cloud Provider options
CloudProvider CloudProvider `yaml:"cloud_provider" json:"cloudProvider,omitempty"`
// AWSCloudProvicer
AWSCloudProvider AWSCloudProvider `yaml:",omitempty" json:"awsCloudProvider,omitempty"`
// AzureCloudProvicer
AzureCloudProvider AzureCloudProvider `yaml:",omitempty" json:"azureCloudProvider,omitempty"`
// CalicoNetworkProvider
CalicoNetworkProvider CalicoNetworkProvider `yaml:",omitempty" json:"calicoNetworkProvider,omitempty"`
// CanalNetworkProvider
CanalNetworkProvider CanalNetworkProvider `yaml:",omitempty" json:"canalNetworkProvider,omitempty"`
// FlannelNetworkProvider
FlannelNetworkProvider FlannelNetworkProvider `yaml:",omitempty" json:"flannelNetworkProvider,omitempty"`
}
type PrivateRegistry struct {
@ -305,3 +315,87 @@ type CloudProvider struct {
// Configuration Options of Cloud Provider
CloudConfig map[string]string `yaml:"cloud_config" json:"cloudConfig,omitempty"`
}
type AzureCloudProvider struct {
// The cloud environment identifier. Takes values from https://github.com/Azure/go-autorest/blob/ec5f4903f77ed9927ac95b19ab8e44ada64c1356/autorest/azure/environments.go#L13
Cloud string `json:"cloud" yaml:"cloud"`
// The AAD Tenant ID for the Subscription that the cluster is deployed in
TenantID string `json:"tenantId" yaml:"tenantId"`
// The ID of the Azure Subscription that the cluster is deployed in
SubscriptionID string `json:"subscriptionId" yaml:"subscriptionId"`
// The name of the resource group that the cluster is deployed in
ResourceGroup string `json:"resourceGroup" yaml:"resourceGroup"`
// The location of the resource group that the cluster is deployed in
Location string `json:"location" yaml:"location"`
// The name of the VNet that the cluster is deployed in
VnetName string `json:"vnetName" yaml:"vnetName"`
// The name of the resource group that the Vnet is deployed in
VnetResourceGroup string `json:"vnetResourceGroup" yaml:"vnetResourceGroup"`
// The name of the subnet that the cluster is deployed in
SubnetName string `json:"subnetName" yaml:"subnetName"`
// The name of the security group attached to the cluster's subnet
SecurityGroupName string `json:"securityGroupName" yaml:"securityGroupName"`
// (Optional in 1.6) The name of the route table attached to the subnet that the cluster is deployed in
RouteTableName string `json:"routeTableName" yaml:"routeTableName"`
// (Optional) The name of the availability set that should be used as the load balancer backend
// If this is set, the Azure cloudprovider will only add nodes from that availability set to the load
// balancer backend pool. If this is not set, and multiple agent pools (availability sets) are used, then
// the cloudprovider will try to add all nodes to a single backend pool which is forbidden.
// In other words, if you use multiple agent pools (availability sets), you MUST set this field.
PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName" yaml:"primaryAvailabilitySetName"`
// The type of azure nodes. Candidate valudes are: vmss and standard.
// If not set, it will be default to standard.
VMType string `json:"vmType" yaml:"vmType"`
// The name of the scale set that should be used as the load balancer backend.
// If this is set, the Azure cloudprovider will only add nodes from that scale set to the load
// balancer backend pool. If this is not set, and multiple agent pools (scale sets) are used, then
// the cloudprovider will try to add all nodes to a single backend pool which is forbidden.
// In other words, if you use multiple agent pools (scale sets), you MUST set this field.
PrimaryScaleSetName string `json:"primaryScaleSetName" yaml:"primaryScaleSetName"`
// The ClientID for an AAD application with RBAC access to talk to Azure RM APIs
AADClientID string `json:"aadClientId" yaml:"aadClientId"`
// The ClientSecret for an AAD application with RBAC access to talk to Azure RM APIs
AADClientSecret string `json:"aadClientSecret" yaml:"aadClientSecret"`
// The path of a client certificate for an AAD application with RBAC access to talk to Azure RM APIs
AADClientCertPath string `json:"aadClientCertPath" yaml:"aadClientCertPath"`
// The password of the client certificate for an AAD application with RBAC access to talk to Azure RM APIs
AADClientCertPassword string `json:"aadClientCertPassword" yaml:"aadClientCertPassword"`
// Enable exponential backoff to manage resource request retries
CloudProviderBackoff bool `json:"cloudProviderBackoff" yaml:"cloudProviderBackoff"`
// Backoff retry limit
CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries" yaml:"cloudProviderBackoffRetries"`
// Backoff exponent
CloudProviderBackoffExponent int `json:"cloudProviderBackoffExponent" yaml:"cloudProviderBackoffExponent"`
// Backoff duration
CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration" yaml:"cloudProviderBackoffDuration"`
// Backoff jitter
CloudProviderBackoffJitter int `json:"cloudProviderBackoffJitter" yaml:"cloudProviderBackoffJitter"`
// Enable rate limiting
CloudProviderRateLimit bool `json:"cloudProviderRateLimit" yaml:"cloudProviderRateLimit"`
// Rate limit QPS
CloudProviderRateLimitQPS int `json:"cloudProviderRateLimitQPS" yaml:"cloudProviderRateLimitQPS"`
// Rate limit Bucket Size
CloudProviderRateLimitBucket int `json:"cloudProviderRateLimitBucket" yaml:"cloudProviderRateLimitBucket"`
// Use instance metadata service where possible
UseInstanceMetadata bool `json:"useInstanceMetadata" yaml:"useInstanceMetadata"`
// Use managed service identity for the virtual machine to access Azure ARM APIs
UseManagedIdentityExtension bool `json:"useManagedIdentityExtension"`
// Maximum allowed LoadBalancer Rule Count is the limit enforced by Azure Load balancer
MaximumLoadBalancerRuleCount int `json:"maximumLoadBalancerRuleCount"`
}
type AWSCloudProvider struct {
}
type CalicoNetworkProvider struct {
// Cloud provider type used with calico
CloudProvider string
}
type FlannelNetworkProvider struct {
// Alternate cloud interface for flannel
Iface string
}
type CanalNetworkProvider struct {
}

View File

@ -19,6 +19,10 @@ func init() {
// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented.
func RegisterDeepCopies(scheme *runtime.Scheme) error {
return scheme.AddGeneratedDeepCopyFuncs(
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*AWSCloudProvider).DeepCopyInto(out.(*AWSCloudProvider))
return nil
}, InType: reflect.TypeOf(&AWSCloudProvider{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*Action).DeepCopyInto(out.(*Action))
return nil
@ -67,6 +71,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error {
in.(*AuthzConfig).DeepCopyInto(out.(*AuthzConfig))
return nil
}, InType: reflect.TypeOf(&AuthzConfig{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*AzureCloudProvider).DeepCopyInto(out.(*AzureCloudProvider))
return nil
}, InType: reflect.TypeOf(&AzureCloudProvider{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*AzureKubernetesServiceConfig).DeepCopyInto(out.(*AzureKubernetesServiceConfig))
return nil
@ -75,6 +83,14 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error {
in.(*BaseService).DeepCopyInto(out.(*BaseService))
return nil
}, InType: reflect.TypeOf(&BaseService{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*CalicoNetworkProvider).DeepCopyInto(out.(*CalicoNetworkProvider))
return nil
}, InType: reflect.TypeOf(&CalicoNetworkProvider{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*CanalNetworkProvider).DeepCopyInto(out.(*CanalNetworkProvider))
return nil
}, InType: reflect.TypeOf(&CanalNetworkProvider{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*Catalog).DeepCopyInto(out.(*Catalog))
return nil
@ -271,6 +287,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error {
in.(*Filter).DeepCopyInto(out.(*Filter))
return nil
}, InType: reflect.TypeOf(&Filter{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*FlannelNetworkProvider).DeepCopyInto(out.(*FlannelNetworkProvider))
return nil
}, InType: reflect.TypeOf(&FlannelNetworkProvider{})},
conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error {
in.(*GenerateKubeConfigOutput).DeepCopyInto(out.(*GenerateKubeConfigOutput))
return nil
@ -902,6 +922,22 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error {
)
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSCloudProvider) DeepCopyInto(out *AWSCloudProvider) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSCloudProvider.
func (in *AWSCloudProvider) DeepCopy() *AWSCloudProvider {
if in == nil {
return nil
}
out := new(AWSCloudProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Action) DeepCopyInto(out *Action) {
*out = *in
@ -1170,6 +1206,22 @@ func (in *AuthzConfig) DeepCopy() *AuthzConfig {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AzureCloudProvider) DeepCopyInto(out *AzureCloudProvider) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureCloudProvider.
func (in *AzureCloudProvider) DeepCopy() *AzureCloudProvider {
if in == nil {
return nil
}
out := new(AzureCloudProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AzureKubernetesServiceConfig) DeepCopyInto(out *AzureKubernetesServiceConfig) {
*out = *in
@ -1221,6 +1273,38 @@ func (in *BaseService) DeepCopy() *BaseService {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CalicoNetworkProvider) DeepCopyInto(out *CalicoNetworkProvider) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CalicoNetworkProvider.
func (in *CalicoNetworkProvider) DeepCopy() *CalicoNetworkProvider {
if in == nil {
return nil
}
out := new(CalicoNetworkProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CanalNetworkProvider) DeepCopyInto(out *CanalNetworkProvider) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanalNetworkProvider.
func (in *CanalNetworkProvider) DeepCopy() *CanalNetworkProvider {
if in == nil {
return nil
}
out := new(CanalNetworkProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Catalog) DeepCopyInto(out *Catalog) {
*out = *in
@ -2522,6 +2606,22 @@ func (in *Filter) DeepCopy() *Filter {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FlannelNetworkProvider) DeepCopyInto(out *FlannelNetworkProvider) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlannelNetworkProvider.
func (in *FlannelNetworkProvider) DeepCopy() *FlannelNetworkProvider {
if in == nil {
return nil
}
out := new(FlannelNetworkProvider)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GenerateKubeConfigOutput) DeepCopyInto(out *GenerateKubeConfigOutput) {
*out = *in
@ -5473,6 +5573,11 @@ func (in *RancherKubernetesEngineConfig) DeepCopyInto(out *RancherKubernetesEngi
}
in.Ingress.DeepCopyInto(&out.Ingress)
in.CloudProvider.DeepCopyInto(&out.CloudProvider)
out.AWSCloudProvider = in.AWSCloudProvider
out.AzureCloudProvider = in.AzureCloudProvider
out.CalicoNetworkProvider = in.CalicoNetworkProvider
out.CanalNetworkProvider = in.CanalNetworkProvider
out.FlannelNetworkProvider = in.FlannelNetworkProvider
return
}

View File

@ -0,0 +1,8 @@
package client
const (
AWSCloudProviderType = "awsCloudProvider"
)
type AWSCloudProvider struct {
}

View File

@ -0,0 +1,64 @@
package client
const (
AzureCloudProviderType = "azureCloudProvider"
AzureCloudProviderFieldAADClientCertPassword = "aadClientCertPassword"
AzureCloudProviderFieldAADClientCertPath = "aadClientCertPath"
AzureCloudProviderFieldAADClientID = "aadClientId"
AzureCloudProviderFieldAADClientSecret = "aadClientSecret"
AzureCloudProviderFieldCloud = "cloud"
AzureCloudProviderFieldCloudProviderBackoff = "cloudProviderBackoff"
AzureCloudProviderFieldCloudProviderBackoffDuration = "cloudProviderBackoffDuration"
AzureCloudProviderFieldCloudProviderBackoffExponent = "cloudProviderBackoffExponent"
AzureCloudProviderFieldCloudProviderBackoffJitter = "cloudProviderBackoffJitter"
AzureCloudProviderFieldCloudProviderBackoffRetries = "cloudProviderBackoffRetries"
AzureCloudProviderFieldCloudProviderRateLimit = "cloudProviderRateLimit"
AzureCloudProviderFieldCloudProviderRateLimitBucket = "cloudProviderRateLimitBucket"
AzureCloudProviderFieldCloudProviderRateLimitQPS = "cloudProviderRateLimitQPS"
AzureCloudProviderFieldLocation = "location"
AzureCloudProviderFieldMaximumLoadBalancerRuleCount = "maximumLoadBalancerRuleCount"
AzureCloudProviderFieldPrimaryAvailabilitySetName = "primaryAvailabilitySetName"
AzureCloudProviderFieldPrimaryScaleSetName = "primaryScaleSetName"
AzureCloudProviderFieldResourceGroup = "resourceGroup"
AzureCloudProviderFieldRouteTableName = "routeTableName"
AzureCloudProviderFieldSecurityGroupName = "securityGroupName"
AzureCloudProviderFieldSubnetName = "subnetName"
AzureCloudProviderFieldSubscriptionID = "subscriptionId"
AzureCloudProviderFieldTenantID = "tenantId"
AzureCloudProviderFieldUseInstanceMetadata = "useInstanceMetadata"
AzureCloudProviderFieldUseManagedIdentityExtension = "useManagedIdentityExtension"
AzureCloudProviderFieldVMType = "vmType"
AzureCloudProviderFieldVnetName = "vnetName"
AzureCloudProviderFieldVnetResourceGroup = "vnetResourceGroup"
)
type AzureCloudProvider struct {
AADClientCertPassword string `json:"aadClientCertPassword,omitempty" yaml:"aadClientCertPassword,omitempty"`
AADClientCertPath string `json:"aadClientCertPath,omitempty" yaml:"aadClientCertPath,omitempty"`
AADClientID string `json:"aadClientId,omitempty" yaml:"aadClientId,omitempty"`
AADClientSecret string `json:"aadClientSecret,omitempty" yaml:"aadClientSecret,omitempty"`
Cloud string `json:"cloud,omitempty" yaml:"cloud,omitempty"`
CloudProviderBackoff bool `json:"cloudProviderBackoff,omitempty" yaml:"cloudProviderBackoff,omitempty"`
CloudProviderBackoffDuration int64 `json:"cloudProviderBackoffDuration,omitempty" yaml:"cloudProviderBackoffDuration,omitempty"`
CloudProviderBackoffExponent int64 `json:"cloudProviderBackoffExponent,omitempty" yaml:"cloudProviderBackoffExponent,omitempty"`
CloudProviderBackoffJitter int64 `json:"cloudProviderBackoffJitter,omitempty" yaml:"cloudProviderBackoffJitter,omitempty"`
CloudProviderBackoffRetries int64 `json:"cloudProviderBackoffRetries,omitempty" yaml:"cloudProviderBackoffRetries,omitempty"`
CloudProviderRateLimit bool `json:"cloudProviderRateLimit,omitempty" yaml:"cloudProviderRateLimit,omitempty"`
CloudProviderRateLimitBucket int64 `json:"cloudProviderRateLimitBucket,omitempty" yaml:"cloudProviderRateLimitBucket,omitempty"`
CloudProviderRateLimitQPS int64 `json:"cloudProviderRateLimitQPS,omitempty" yaml:"cloudProviderRateLimitQPS,omitempty"`
Location string `json:"location,omitempty" yaml:"location,omitempty"`
MaximumLoadBalancerRuleCount int64 `json:"maximumLoadBalancerRuleCount,omitempty" yaml:"maximumLoadBalancerRuleCount,omitempty"`
PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName,omitempty" yaml:"primaryAvailabilitySetName,omitempty"`
PrimaryScaleSetName string `json:"primaryScaleSetName,omitempty" yaml:"primaryScaleSetName,omitempty"`
ResourceGroup string `json:"resourceGroup,omitempty" yaml:"resourceGroup,omitempty"`
RouteTableName string `json:"routeTableName,omitempty" yaml:"routeTableName,omitempty"`
SecurityGroupName string `json:"securityGroupName,omitempty" yaml:"securityGroupName,omitempty"`
SubnetName string `json:"subnetName,omitempty" yaml:"subnetName,omitempty"`
SubscriptionID string `json:"subscriptionId,omitempty" yaml:"subscriptionId,omitempty"`
TenantID string `json:"tenantId,omitempty" yaml:"tenantId,omitempty"`
UseInstanceMetadata bool `json:"useInstanceMetadata,omitempty" yaml:"useInstanceMetadata,omitempty"`
UseManagedIdentityExtension bool `json:"useManagedIdentityExtension,omitempty" yaml:"useManagedIdentityExtension,omitempty"`
VMType string `json:"vmType,omitempty" yaml:"vmType,omitempty"`
VnetName string `json:"vnetName,omitempty" yaml:"vnetName,omitempty"`
VnetResourceGroup string `json:"vnetResourceGroup,omitempty" yaml:"vnetResourceGroup,omitempty"`
}

View File

@ -0,0 +1,10 @@
package client
const (
CalicoNetworkProviderType = "calicoNetworkProvider"
CalicoNetworkProviderFieldCloudProvider = "cloudProvider"
)
type CalicoNetworkProvider struct {
CloudProvider string `json:"cloudProvider,omitempty" yaml:"cloudProvider,omitempty"`
}

View File

@ -0,0 +1,8 @@
package client
const (
CanalNetworkProviderType = "canalNetworkProvider"
)
type CanalNetworkProvider struct {
}

View File

@ -0,0 +1,10 @@
package client
const (
FlannelNetworkProviderType = "flannelNetworkProvider"
FlannelNetworkProviderFieldIface = "iface"
)
type FlannelNetworkProvider struct {
Iface string `json:"iface,omitempty" yaml:"iface,omitempty"`
}

View File

@ -1,38 +1,48 @@
package client
const (
RancherKubernetesEngineConfigType = "rancherKubernetesEngineConfig"
RancherKubernetesEngineConfigFieldAddons = "addons"
RancherKubernetesEngineConfigFieldAddonsInclude = "addonsInclude"
RancherKubernetesEngineConfigFieldAuthentication = "authentication"
RancherKubernetesEngineConfigFieldAuthorization = "authorization"
RancherKubernetesEngineConfigFieldCloudProvider = "cloudProvider"
RancherKubernetesEngineConfigFieldClusterName = "clusterName"
RancherKubernetesEngineConfigFieldIgnoreDockerVersion = "ignoreDockerVersion"
RancherKubernetesEngineConfigFieldIngress = "ingress"
RancherKubernetesEngineConfigFieldNetwork = "network"
RancherKubernetesEngineConfigFieldNodes = "nodes"
RancherKubernetesEngineConfigFieldPrivateRegistries = "privateRegistries"
RancherKubernetesEngineConfigFieldSSHAgentAuth = "sshAgentAuth"
RancherKubernetesEngineConfigFieldSSHKeyPath = "sshKeyPath"
RancherKubernetesEngineConfigFieldServices = "services"
RancherKubernetesEngineConfigFieldVersion = "kubernetesVersion"
RancherKubernetesEngineConfigType = "rancherKubernetesEngineConfig"
RancherKubernetesEngineConfigFieldAWSCloudProvider = "awsCloudProvider"
RancherKubernetesEngineConfigFieldAddons = "addons"
RancherKubernetesEngineConfigFieldAddonsInclude = "addonsInclude"
RancherKubernetesEngineConfigFieldAuthentication = "authentication"
RancherKubernetesEngineConfigFieldAuthorization = "authorization"
RancherKubernetesEngineConfigFieldAzureCloudProvider = "azureCloudProvider"
RancherKubernetesEngineConfigFieldCalicoNetworkProvider = "calicoNetworkProvider"
RancherKubernetesEngineConfigFieldCanalNetworkProvider = "canalNetworkProvider"
RancherKubernetesEngineConfigFieldCloudProvider = "cloudProvider"
RancherKubernetesEngineConfigFieldClusterName = "clusterName"
RancherKubernetesEngineConfigFieldFlannelNetworkProvider = "flannelNetworkProvider"
RancherKubernetesEngineConfigFieldIgnoreDockerVersion = "ignoreDockerVersion"
RancherKubernetesEngineConfigFieldIngress = "ingress"
RancherKubernetesEngineConfigFieldNetwork = "network"
RancherKubernetesEngineConfigFieldNodes = "nodes"
RancherKubernetesEngineConfigFieldPrivateRegistries = "privateRegistries"
RancherKubernetesEngineConfigFieldSSHAgentAuth = "sshAgentAuth"
RancherKubernetesEngineConfigFieldSSHKeyPath = "sshKeyPath"
RancherKubernetesEngineConfigFieldServices = "services"
RancherKubernetesEngineConfigFieldVersion = "kubernetesVersion"
)
type RancherKubernetesEngineConfig struct {
Addons string `json:"addons,omitempty" yaml:"addons,omitempty"`
AddonsInclude []string `json:"addonsInclude,omitempty" yaml:"addonsInclude,omitempty"`
Authentication *AuthnConfig `json:"authentication,omitempty" yaml:"authentication,omitempty"`
Authorization *AuthzConfig `json:"authorization,omitempty" yaml:"authorization,omitempty"`
CloudProvider *CloudProvider `json:"cloudProvider,omitempty" yaml:"cloudProvider,omitempty"`
ClusterName string `json:"clusterName,omitempty" yaml:"clusterName,omitempty"`
IgnoreDockerVersion bool `json:"ignoreDockerVersion,omitempty" yaml:"ignoreDockerVersion,omitempty"`
Ingress *IngressConfig `json:"ingress,omitempty" yaml:"ingress,omitempty"`
Network *NetworkConfig `json:"network,omitempty" yaml:"network,omitempty"`
Nodes []RKEConfigNode `json:"nodes,omitempty" yaml:"nodes,omitempty"`
PrivateRegistries []PrivateRegistry `json:"privateRegistries,omitempty" yaml:"privateRegistries,omitempty"`
SSHAgentAuth bool `json:"sshAgentAuth,omitempty" yaml:"sshAgentAuth,omitempty"`
SSHKeyPath string `json:"sshKeyPath,omitempty" yaml:"sshKeyPath,omitempty"`
Services *RKEConfigServices `json:"services,omitempty" yaml:"services,omitempty"`
Version string `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
AWSCloudProvider *AWSCloudProvider `json:"awsCloudProvider,omitempty" yaml:"awsCloudProvider,omitempty"`
Addons string `json:"addons,omitempty" yaml:"addons,omitempty"`
AddonsInclude []string `json:"addonsInclude,omitempty" yaml:"addonsInclude,omitempty"`
Authentication *AuthnConfig `json:"authentication,omitempty" yaml:"authentication,omitempty"`
Authorization *AuthzConfig `json:"authorization,omitempty" yaml:"authorization,omitempty"`
AzureCloudProvider *AzureCloudProvider `json:"azureCloudProvider,omitempty" yaml:"azureCloudProvider,omitempty"`
CalicoNetworkProvider *CalicoNetworkProvider `json:"calicoNetworkProvider,omitempty" yaml:"calicoNetworkProvider,omitempty"`
CanalNetworkProvider *CanalNetworkProvider `json:"canalNetworkProvider,omitempty" yaml:"canalNetworkProvider,omitempty"`
CloudProvider *CloudProvider `json:"cloudProvider,omitempty" yaml:"cloudProvider,omitempty"`
ClusterName string `json:"clusterName,omitempty" yaml:"clusterName,omitempty"`
FlannelNetworkProvider *FlannelNetworkProvider `json:"flannelNetworkProvider,omitempty" yaml:"flannelNetworkProvider,omitempty"`
IgnoreDockerVersion bool `json:"ignoreDockerVersion,omitempty" yaml:"ignoreDockerVersion,omitempty"`
Ingress *IngressConfig `json:"ingress,omitempty" yaml:"ingress,omitempty"`
Network *NetworkConfig `json:"network,omitempty" yaml:"network,omitempty"`
Nodes []RKEConfigNode `json:"nodes,omitempty" yaml:"nodes,omitempty"`
PrivateRegistries []PrivateRegistry `json:"privateRegistries,omitempty" yaml:"privateRegistries,omitempty"`
SSHAgentAuth bool `json:"sshAgentAuth,omitempty" yaml:"sshAgentAuth,omitempty"`
SSHKeyPath string `json:"sshKeyPath,omitempty" yaml:"sshKeyPath,omitempty"`
Services *RKEConfigServices `json:"services,omitempty" yaml:"services,omitempty"`
Version string `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
}