kops

package
v1.30.0 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2024 License: Apache-2.0 Imports: 18 Imported by: 1,652

Documentation

Overview

+groupName=kops.k8s.io

Index

Constants

View Source
const (
	// EgressNatGateway means that egress configuration is using an existing NAT Gateway
	EgressNatGateway = "nat"
	// EgressElasticIP means that egress configuration is using a NAT Gateway with an existing Elastic IP
	EgressElasticIP = "eipalloc"
	// EgressNatInstance means that egress configuration is using an existing NAT Instance
	EgressNatInstance = "i"
	// EgressTransitGateway means that egress configuration is using a Transit Gateway
	EgressTransitGateway = "tgw"
	// EgressExternal means that egress configuration is done externally (preconfigured)
	EgressExternal = "External"
)
View Source
const (
	// LabelClusterName is a cluster label cloud tag
	LabelClusterName = "kops.k8s.io/cluster"
	// NodeLabelInstanceGroup is a node label set to the name of the instance group
	NodeLabelInstanceGroup = "kops.k8s.io/instancegroup"
)
View Source
const (
	// BtfsFilesystem indicates a btfs filesystem
	BtfsFilesystem = "btfs"
	// Ext4Filesystem indicates a ext3 filesystem
	Ext4Filesystem = "ext4"
	// XFSFilesystem indicates a xfs filesystem
	XFSFilesystem = "xfs"
)
View Source
const (
	// SpotAllocationStrategyLowestPrices indicates a lowest-price strategy
	SpotAllocationStrategyLowestPrices = "lowest-price"
	// SpotAllocationStrategyDiversified indicates a diversified strategy
	SpotAllocationStrategyDiversified = "diversified"
	// SpotAllocationStrategyCapacityOptimized indicates a capacity optimized strategy
	SpotAllocationStrategyCapacityOptimized = "capacity-optimized"
	// SpotAllocationStrategyCapacityOptimizedPrioritized indicates a capacity optimized prioritized strategy
	SpotAllocationStrategyCapacityOptimizedPrioritized = "capacity-optimized-prioritized"
	// SpotAllocationStrategyPriceCapacityOptimized indicates a price/capacity optimized strategy
	SpotAllocationStrategyPriceCapacityOptimized = "price-capacity-optimized"
)
View Source
const (
	// AnnotationNameManagement is the annotation that indicates that a cluster is under external or non-standard management
	AnnotationNameManagement = "kops.kubernetes.io/management"

	// AnnotationValueManagementImported is the annotation value that indicates a cluster was imported, typically as part of an upgrade
	AnnotationValueManagementImported = "imported"

	// UpdatePolicyAutomatic is a value for ClusterSpec.UpdatePolicy and InstanceGroup.UpdatePolicy indicating that upgrades are performed automatically
	UpdatePolicyAutomatic = "automatic"

	// UpdatePolicyExternal is a value for ClusterSpec.UpdatePolicy and InstanceGroup.UpdatePolicy indicating that upgrades are done externally, and we should disable automatic upgrades
	UpdatePolicyExternal = "external"

	// DiscoveryLabelKey is the label we use for services that should be exposed internally.
	// Endpoints get the same labels as their services.
	DiscoveryLabelKey = "discovery.kops.k8s.io/internal-name"
)
View Source
const (
	TopologyPublic  = "public"
	TopologyPrivate = "private"
)
View Source
const CiliumIpamEni = "eni"
View Source
const (
	DefaultChannel = "stable"
)
View Source
const GroupName = "kops.k8s.io"

GroupName is the group name use in this package

View Source
const NvidiaDefaultDriverPackage = "nvidia-headless-515-server"

NvidiaDefaultDriverPackage is the nvidia driver default version

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)

AllInstanceGroupRoles is a slice of all valid InstanceGroupRole values

View Source
var DefaultChannelBase = "https://raw.githubusercontent.com/kubernetes/kops/master/channels/"
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}

SchemeGroupVersion is the group version used to register these objects

SpotAllocationStrategies is a collection of supported strategies

View Source
var SupportedDnsTypes = []DNSType{
	DNSTypePublic,
	DNSTypePrivate,
	DNSTypeNone,
}

SupportedFilesystems is a list of supported filesystems to format as

View Source
var SupportedTopologies = []string{
	TopologyPublic,
	TopologyPrivate,
}

Functions

func ParseRawYaml

func ParseRawYaml(data []byte, dest interface{}) error

ParseRawYaml parses an object just using yaml, without the full api machinery Deprecated: prefer using the API machinery

func RecommendedKubernetesVersion

func RecommendedKubernetesVersion(c *Channel, kopsVersionString string) *semver.Version

RecommendedKubernetesVersion returns the recommended kubernetes version for a version of kops It is used by default when creating a new cluster, for example

func ResolveChannel added in v1.21.3

func ResolveChannel(location string) (*url.URL, error)

ResolveChannel maps a channel to an absolute URL (possibly a VFS URL) If the channel is the well-known "none" value, we return (nil, nil)

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func ToRawYaml

func ToRawYaml(obj interface{}) ([]byte, error)

ToRawYaml marshals an object to yaml, without the full api machinery Deprecated: prefer using the API machinery

Types

type APISpec added in v1.26.0

type APISpec struct {
	// DNS will be used to provide configuration for the Kubernetes API's DNS server.
	DNS *DNSAccessSpec `json:"dns,omitempty"`
	// LoadBalancer is the configuration for the Kubernetes API load balancer.
	LoadBalancer *LoadBalancerAccessSpec `json:"loadBalancer,omitempty"`
	// PublicName is the external DNS name for the Kubernetes API.
	PublicName string `json:"publicName,omitempty"`
	// AdditionalSANs adds additional Subject Alternate Names to the Kubernetes API certificate.
	AdditionalSANs []string `json:"additionalSANs,omitempty"`
	// Access is a list of the CIDRs that can access the Kubernetes API endpoint.
	Access []string `json:"access,omitempty"`
}

APISpec provides configuration details related to the Kubernetes API.

func (*APISpec) DeepCopy added in v1.26.0

func (in *APISpec) DeepCopy() *APISpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APISpec.

func (*APISpec) DeepCopyInto added in v1.26.0

func (in *APISpec) DeepCopyInto(out *APISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AWSAuthenticationIdentityMappingSpec added in v1.23.0

type AWSAuthenticationIdentityMappingSpec struct {
	// Arn of the IAM User or IAM Role to be allowed to authenticate
	ARN string `json:"arn,omitempty"`
	// Username that Kubernetes will see the user as
	Username string `json:"username,omitempty"`
	// Groups to be attached to your users/roles
	Groups []string `json:"groups,omitempty"`
}

func (*AWSAuthenticationIdentityMappingSpec) DeepCopy added in v1.23.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSAuthenticationIdentityMappingSpec.

func (*AWSAuthenticationIdentityMappingSpec) DeepCopyInto added in v1.23.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AWSAuthenticationSpec added in v1.23.0

type AWSAuthenticationSpec struct {
	// Image is the AWS IAM Authenticator container image to use.
	Image string `json:"image,omitempty"`
	// BackendMode is the AWS IAM Authenticator backend to use. Default MountedFile
	BackendMode string `json:"backendMode,omitempty"`
	// ClusterID identifies the cluster performing authentication to prevent certain replay attacks. Default master public DNS name
	ClusterID string `json:"clusterID,omitempty"`
	// MemoryRequest memory request of AWS IAM Authenticator container. Default 20Mi
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest CPU request of AWS IAM Authenticator container. Default 10m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// MemoryLimit memory limit of AWS IAM Authenticator container. Default 20Mi
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
	// CPULimit CPU limit of AWS IAM Authenticator container. Default 10m
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
	// IdentityMappings maps IAM Identities to Kubernetes users/groups
	IdentityMappings []AWSAuthenticationIdentityMappingSpec `json:"identityMappings,omitempty"`
}

func (*AWSAuthenticationSpec) DeepCopy added in v1.23.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSAuthenticationSpec.

func (*AWSAuthenticationSpec) DeepCopyInto added in v1.23.0

func (in *AWSAuthenticationSpec) DeepCopyInto(out *AWSAuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AWSPermission added in v1.21.0

type AWSPermission struct {
	// PolicyARNs is a list of existing IAM Policies.
	PolicyARNs []string `json:"policyARNs,omitempty"`
	// InlinePolicy is an IAM Policy that will be attached inline to the IAM Role.
	InlinePolicy string `json:"inlinePolicy,omitempty"`
}

AWSPermission grants permissions to AWS resources.

func (*AWSPermission) DeepCopy added in v1.21.0

func (in *AWSPermission) DeepCopy() *AWSPermission

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSPermission.

func (*AWSPermission) DeepCopyInto added in v1.21.0

func (in *AWSPermission) DeepCopyInto(out *AWSPermission)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AWSSpec added in v1.24.0

type AWSSpec struct {
	// EBSCSIDriverSpec is the config for the EBS CSI driver.
	EBSCSIDriver *EBSCSIDriverSpec `json:"ebsCSIDriver,omitempty"`
	// NodeTerminationHandler determines the node termination handler configuration.
	NodeTerminationHandler *NodeTerminationHandlerSpec `json:"nodeTerminationHandler,omitempty"`
	// LoadbalancerController determines the Load Balancer Controller configuration.
	LoadBalancerController *LoadBalancerControllerSpec `json:"loadBalancerController,omitempty"`
	// PodIdentityWebhook determines the EKS Pod Identity Webhook configuration.
	PodIdentityWebhook *PodIdentityWebhookSpec `json:"podIdentityWebhook,omitempty"`
	// WarmPool defines the default warm pool settings for instance groups.
	WarmPool *WarmPoolSpec `json:"warmPool,omitempty"`

	// NodeIPFamilies control the IP families reported for each node.
	NodeIPFamilies []string `json:"nodeIPFamilies,omitempty"`
	// DisableSecurityGroupIngress disables the Cloud Controller Manager's creation
	// of an AWS Security Group for each load balancer provisioned for a Service.
	DisableSecurityGroupIngress *bool `json:"disableSecurityGroupIngress,omitempty"`
	// ElbSecurityGroup specifies an existing AWS Security group for the Cloud Controller
	// Manager to assign to each ELB provisioned for a Service, instead of creating
	// one per ELB.
	ElbSecurityGroup *string `json:"elbSecurityGroup,omitempty"`

	// Spotinst cloud-config specs
	SpotinstProduct     *string `json:"spotinstProduct,omitempty"`
	SpotinstOrientation *string `json:"spotinstOrientation,omitempty"`

	// BinariesLocation is the location of the AWS cloud provider binaries.
	BinariesLocation *string `json:"binariesLocation,omitempty"`
}

AWSSpec configures the AWS cloud provider.

func (*AWSSpec) DeepCopy added in v1.24.0

func (in *AWSSpec) DeepCopy() *AWSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSpec.

func (*AWSSpec) DeepCopyInto added in v1.24.0

func (in *AWSSpec) DeepCopyInto(out *AWSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AcceleratorConfig added in v1.24.0

type AcceleratorConfig struct {
	AcceleratorCount int64  `json:"acceleratorCount,omitempty"`
	AcceleratorType  string `json:"acceleratorType,omitempty"`
}

AcceleratorConfig defines an accelerator config

func (*AcceleratorConfig) DeepCopy added in v1.24.0

func (in *AcceleratorConfig) DeepCopy() *AcceleratorConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AcceleratorConfig.

func (*AcceleratorConfig) DeepCopyInto added in v1.24.0

func (in *AcceleratorConfig) DeepCopyInto(out *AcceleratorConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessLogSpec added in v1.21.3

type AccessLogSpec struct {
	// Interval is the publishing interval in minutes. This parameter is only used with classic load balancer.
	Interval int `json:"interval,omitempty"`
	// Bucket is the S3 bucket name to store the logs in.
	Bucket *string `json:"bucket,omitempty"`
	// BucketPrefix is the S3 bucket prefix. Logs are stored in the root if not configured.
	BucketPrefix *string `json:"bucketPrefix,omitempty"`
}

func (*AccessLogSpec) DeepCopy added in v1.21.3

func (in *AccessLogSpec) DeepCopy() *AccessLogSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessLogSpec.

func (*AccessLogSpec) DeepCopyInto added in v1.21.3

func (in *AccessLogSpec) DeepCopyInto(out *AccessLogSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AddonSpec

type AddonSpec struct {
	// Manifest is a path to the manifest that defines the addon
	Manifest string `json:"manifest,omitempty"`
}

AddonSpec defines an addon that we want to install in the cluster

func (*AddonSpec) DeepCopy

func (in *AddonSpec) DeepCopy() *AddonSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonSpec.

func (*AddonSpec) DeepCopyInto

func (in *AddonSpec) DeepCopyInto(out *AddonSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AlwaysAllowAuthorizationSpec

type AlwaysAllowAuthorizationSpec struct{}

func (*AlwaysAllowAuthorizationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlwaysAllowAuthorizationSpec.

func (*AlwaysAllowAuthorizationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AmazonVPCNetworkingSpec

type AmazonVPCNetworkingSpec struct {
	// Image is the container image name to use.
	Image string `json:"image,omitempty"`
	// InitImage is the init container image name to use.
	InitImage string `json:"initImage,omitempty"`
	// NetworkPolicyAgentImage is the container image to use for the network policy agent
	NetworkPolicyAgentImage string `json:"networkPolicyAgentImage,omitempty"`
	// Env is a list of environment variables to set in the container.
	Env []EnvVar `json:"env,omitempty"`
}

AmazonVPCNetworkingSpec declares that we want Amazon VPC CNI networking

func (*AmazonVPCNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonVPCNetworkingSpec.

func (*AmazonVPCNetworkingSpec) DeepCopyInto

func (in *AmazonVPCNetworkingSpec) DeepCopyInto(out *AmazonVPCNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AssetsSpec added in v1.27.0

type AssetsSpec struct {
	// ContainerRegistry is a url for to a container registry.
	ContainerRegistry *string `json:"containerRegistry,omitempty"`
	// FileRepository is the url for a private file serving repository
	FileRepository *string `json:"fileRepository,omitempty"`
	// ContainerProxy is a url for a pull-through proxy of a container registry.
	ContainerProxy *string `json:"containerProxy,omitempty"`
}

AssetsSpec defines the privately hosted assets

func (*AssetsSpec) DeepCopy added in v1.27.0

func (in *AssetsSpec) DeepCopy() *AssetsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetsSpec.

func (*AssetsSpec) DeepCopyInto added in v1.27.0

func (in *AssetsSpec) DeepCopyInto(out *AssetsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AuthenticationSpec

type AuthenticationSpec struct {
	Kopeio *KopeioAuthenticationSpec `json:"kopeio,omitempty"`
	AWS    *AWSAuthenticationSpec    `json:"aws,omitempty"`
	OIDC   *OIDCAuthenticationSpec   `json:"oidc,omitempty"`
}

func (*AuthenticationSpec) DeepCopy

func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec.

func (*AuthenticationSpec) DeepCopyInto

func (in *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AuthenticationSpec) IsEmpty

func (s *AuthenticationSpec) IsEmpty() bool

type AuthorizationSpec

type AuthorizationSpec struct {
	AlwaysAllow *AlwaysAllowAuthorizationSpec `json:"alwaysAllow,omitempty"`
	RBAC        *RBACAuthorizationSpec        `json:"rbac,omitempty"`
}

func (*AuthorizationSpec) DeepCopy

func (in *AuthorizationSpec) DeepCopy() *AuthorizationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthorizationSpec.

func (*AuthorizationSpec) DeepCopyInto

func (in *AuthorizationSpec) DeepCopyInto(out *AuthorizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AuthorizationSpec) IsEmpty

func (s *AuthorizationSpec) IsEmpty() bool

type AzureSpec added in v1.24.0

type AzureSpec struct {
	// SubscriptionID specifies the subscription used for the cluster installation.
	SubscriptionID string `json:"subscriptionID,omitempty"`
	// StorageAccountID specifies the storage account used for the cluster installation.
	StorageAccountID string `json:"storageAccountID,omitempty"`
	// TenantID is the ID of the tenant that the cluster is deployed in.
	TenantID string `json:"tenantID"`
	// ResourceGroupName specifies the name of the resource group
	// where the cluster is built.
	// If this is empty, kops will create a new resource group
	// whose name is same as the cluster name. If this is not
	// empty, kops will not create a new resource group, and
	// it will just reuse the existing resource group of the name.
	// This follows the model that kops takes for AWS VPC.
	ResourceGroupName string `json:"resourceGroupName,omitempty"`
	// RouteTableName is the name of the route table attached to the subnet that the cluster is deployed in.
	RouteTableName string `json:"routeTableName,omitempty"`
	// AdminUser specifies the admin user of VMs.
	AdminUser string `json:"adminUser,omitempty"`
}

AzureSpec defines Azure specific cluster configuration.

func (*AzureSpec) DeepCopy added in v1.24.0

func (in *AzureSpec) DeepCopy() *AzureSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureSpec.

func (*AzureSpec) DeepCopyInto added in v1.24.0

func (in *AzureSpec) DeepCopyInto(out *AzureSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BastionLoadBalancerSpec added in v1.18.0

type BastionLoadBalancerSpec struct {
	// Type of load balancer to create, it can be Public or Internal.
	Type LoadBalancerType `json:"type,omitempty"`
}

func (*BastionLoadBalancerSpec) DeepCopy added in v1.18.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BastionLoadBalancerSpec.

func (*BastionLoadBalancerSpec) DeepCopyInto added in v1.18.0

func (in *BastionLoadBalancerSpec) DeepCopyInto(out *BastionLoadBalancerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BastionSpec

type BastionSpec struct {
	// PublicName is the domain name for the bastion load balancer.
	PublicName string `json:"publicName,omitempty"`
	// LoadBalancer contains settings for the load balancer fronting bastion instances.
	LoadBalancer *BastionLoadBalancerSpec `json:"loadBalancer,omitempty"`
}

func (*BastionSpec) DeepCopy

func (in *BastionSpec) DeepCopy() *BastionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BastionSpec.

func (*BastionSpec) DeepCopyInto

func (in *BastionSpec) DeepCopyInto(out *BastionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CNINetworkingSpec

type CNINetworkingSpec struct {
	UsesSecondaryIP bool `json:"usesSecondaryIP,omitempty"`
}

CNINetworkingSpec is the specification for networking that is implemented by a user-provided Daemonset, which uses the CNI kubelet networking plugin.

func (*CNINetworkingSpec) DeepCopy

func (in *CNINetworkingSpec) DeepCopy() *CNINetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CNINetworkingSpec.

func (*CNINetworkingSpec) DeepCopyInto

func (in *CNINetworkingSpec) DeepCopyInto(out *CNINetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CalicoNetworkingSpec

type CalicoNetworkingSpec struct {
	// Registry overrides the Calico container image registry.
	Registry string `json:"registry,omitempty"`
	// Version overrides the Calico container image tag.
	Version string `json:"version,omitempty"`

	// AllowIPForwarding enable ip_forwarding setting within the container namespace.
	// (default: false)
	AllowIPForwarding bool `json:"allowIPForwarding,omitempty"`
	// AWSSrcDstCheck enables/disables ENI source/destination checks (AWS IPv4 only)
	// Options: Disable (default for IPv4), Enable, or DoNothing
	AWSSrcDstCheck string `json:"awsSrcDstCheck,omitempty"`
	// BPFEnabled enables the eBPF dataplane mode.
	BPFEnabled bool `json:"bpfEnabled,omitempty"`
	// BPFExternalServiceMode controls how traffic from outside the cluster to NodePorts and ClusterIPs is handled.
	// In Tunnel mode, packet is tunneled from the ingress host to the host with the backing pod and back again.
	// In DSR mode, traffic is tunneled to the host with the backing pod and then returned directly;
	// this requires a network that allows direct return.
	// Default: Tunnel (other options: DSR)
	BPFExternalServiceMode string `json:"bpfExternalServiceMode,omitempty"`
	// BPFKubeProxyIptablesCleanupEnabled controls whether Felix will clean up the iptables rules
	// created by the Kubernetes kube-proxy; should only be enabled if kube-proxy is not running.
	BPFKubeProxyIptablesCleanupEnabled bool `json:"bpfKubeProxyIptablesCleanupEnabled,omitempty"`
	// BPFLogLevel controls the log level used by the BPF programs. The logs are emitted
	// to the BPF trace pipe, accessible with the command tc exec BPF debug.
	// Default: Off (other options: Info, Debug)
	BPFLogLevel string `json:"bpfLogLevel,omitempty"`
	// ChainInsertMode controls whether Felix inserts rules to the top of iptables chains, or
	// appends to the bottom. Leaving the default option is safest to prevent accidentally
	// breaking connectivity. Default: 'insert' (other options: 'append')
	ChainInsertMode string `json:"chainInsertMode,omitempty"`
	// CPURequest CPU request of Calico container. Default: 100m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// CrossSubnet is deprecated as of kOps 1.22 and has no effect
	CrossSubnet *bool `json:"crossSubnet,omitempty"`
	// EncapsulationMode specifies the network packet encapsulation protocol for Calico to use,
	// employing such encapsulation at the necessary scope per the related CrossSubnet field. In
	// "ipip" mode, Calico will use IP-in-IP encapsulation as needed. In "vxlan" mode, Calico will
	// encapsulate packets as needed using the VXLAN scheme.
	// Options: ipip (default) or vxlan
	EncapsulationMode string `json:"encapsulationMode,omitempty"`
	// IPIPMode determines when to use IP-in-IP encapsulation for the default Calico IPv4 pool.
	// It is conveyed to the "calico-node" daemon container via the CALICO_IPV4POOL_IPIP
	// environment variable. EncapsulationMode must be set to "ipip".
	// Options: "CrossSubnet", "Always", or "Never".
	// Default: "CrossSubnet" if EncapsulationMode is "ipip", "Never" otherwise.
	IPIPMode string `json:"ipipMode,omitempty"`
	// IPv4AutoDetectionMethod configures how Calico chooses the IP address used to route
	// between nodes.  This should be set when the host has multiple interfaces
	// and it is important to select the interface used.
	// Options: "first-found" (default), "can-reach=DESTINATION",
	// "interface=INTERFACE-REGEX", or "skip-interface=INTERFACE-REGEX"
	IPv4AutoDetectionMethod string `json:"ipv4AutoDetectionMethod,omitempty"`
	// IPv6AutoDetectionMethod configures how Calico chooses the IP address used to route
	// between nodes.  This should be set when the host has multiple interfaces
	// and it is important to select the interface used.
	// Options: "first-found" (default), "can-reach=DESTINATION",
	// "interface=INTERFACE-REGEX", or "skip-interface=INTERFACE-REGEX"
	IPv6AutoDetectionMethod string `json:"ipv6AutoDetectionMethod,omitempty"`
	// IptablesBackend controls which variant of iptables binary Felix uses
	// Default: Auto (other options: Legacy, NFT)
	IptablesBackend string `json:"iptablesBackend,omitempty"`
	// LogSeverityScreen lets us set the desired log level. (Default: info)
	LogSeverityScreen string `json:"logSeverityScreen,omitempty"`
	// MTU to be set in the cni-network-config for calico.
	MTU *int32 `json:"mtu,omitempty"`
	// PrometheusMetricsEnabled can be set to enable the experimental Prometheus
	// metrics server (default: false)
	PrometheusMetricsEnabled bool `json:"prometheusMetricsEnabled,omitempty"`
	// PrometheusMetricsPort is the TCP port that the experimental Prometheus
	// metrics server should bind to (default: 9091)
	PrometheusMetricsPort int32 `json:"prometheusMetricsPort,omitempty"`
	// PrometheusGoMetricsEnabled enables Prometheus Go runtime metrics collection
	PrometheusGoMetricsEnabled bool `json:"prometheusGoMetricsEnabled,omitempty"`
	// PrometheusProcessMetricsEnabled enables Prometheus process metrics collection
	PrometheusProcessMetricsEnabled bool `json:"prometheusProcessMetricsEnabled,omitempty"`
	// TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha
	// (default: false)
	TyphaPrometheusMetricsEnabled bool `json:"typhaPrometheusMetricsEnabled,omitempty"`
	// TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server
	// should bind to (default: 9093)
	TyphaPrometheusMetricsPort int32 `json:"typhaPrometheusMetricsPort,omitempty"`
	// TyphaReplicas is the number of replicas of Typha to deploy
	TyphaReplicas int32 `json:"typhaReplicas,omitempty"`
	// VXLANMode determines when to use VXLAN encapsulation for the default Calico IPv4 pool.
	// It is conveyed to the "calico-node" daemon container via the CALICO_IPV4POOL_VXLAN
	// environment variable. EncapsulationMode must be set to "vxlan".
	// Options: "CrossSubnet", "Always", or "Never".
	// Default: "CrossSubnet" if EncapsulationMode is "vxlan", "Never" otherwise.
	VXLANMode string `json:"vxlanMode,omitempty"`
	// WireguardEnabled enables WireGuard encryption for all on-the-wire pod-to-pod traffic
	// (default: false)
	WireguardEnabled bool `json:"wireguardEnabled,omitempty"`
}

CalicoNetworkingSpec declares that we want Calico networking

func (*CalicoNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CalicoNetworkingSpec.

func (*CalicoNetworkingSpec) DeepCopyInto

func (in *CalicoNetworkingSpec) DeepCopyInto(out *CalicoNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CanalNetworkingSpec

type CanalNetworkingSpec struct {
	// ChainInsertMode controls whether Felix inserts rules to the top of iptables chains, or
	// appends to the bottom. Leaving the default option is safest to prevent accidentally
	// breaking connectivity. Default: 'insert' (other options: 'append')
	ChainInsertMode string `json:"chainInsertMode,omitempty"`
	// CPURequest CPU request of Canal container. Default: 100m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// DefaultEndpointToHostAction allows users to configure the default behaviour
	// for traffic between pod to host after calico rules have been processed.
	// Default: ACCEPT (other options: DROP, RETURN)
	DefaultEndpointToHostAction string `json:"defaultEndpointToHostAction,omitempty"`
	// FlanneldIptablesForwardRules configures Flannel to add the
	// default ACCEPT traffic rules to the iptables FORWARD chain. (default: true)
	FlanneldIptablesForwardRules *bool `json:"flanneldIptablesForwardRules,omitempty"`
	// IptablesBackend controls which variant of iptables binary Felix uses
	// Default: Auto (other options: Legacy, NFT)
	IptablesBackend string `json:"iptablesBackend,omitempty"`
	// LogSeveritySys the severity to set for logs which are sent to syslog
	// Default: INFO (other options: DEBUG, WARNING, ERROR, CRITICAL, NONE)
	LogSeveritySys string `json:"logSeveritySys,omitempty"`
	// MTU to be set in the cni-network-config (default: 1500)
	MTU *int32 `json:"mtu,omitempty"`
	// PrometheusGoMetricsEnabled enables Prometheus Go runtime metrics collection
	PrometheusGoMetricsEnabled bool `json:"prometheusGoMetricsEnabled,omitempty"`
	// PrometheusMetricsEnabled can be set to enable the experimental Prometheus
	// metrics server (default: false)
	PrometheusMetricsEnabled bool `json:"prometheusMetricsEnabled,omitempty"`
	// PrometheusMetricsPort is the TCP port that the experimental Prometheus
	// metrics server should bind to (default: 9091)
	PrometheusMetricsPort int32 `json:"prometheusMetricsPort,omitempty"`
	// PrometheusProcessMetricsEnabled enables Prometheus process metrics collection
	PrometheusProcessMetricsEnabled bool `json:"prometheusProcessMetricsEnabled,omitempty"`
	// TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha
	// (default: false)
	TyphaPrometheusMetricsEnabled bool `json:"typhaPrometheusMetricsEnabled,omitempty"`
	// TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server
	// should bind to (default: 9093)
	TyphaPrometheusMetricsPort int32 `json:"typhaPrometheusMetricsPort,omitempty"`
	// TyphaReplicas is the number of replicas of Typha to deploy
	TyphaReplicas int32 `json:"typhaReplicas,omitempty"`
}

CanalNetworkingSpec declares that we want Canal networking

func (*CanalNetworkingSpec) DeepCopy

func (in *CanalNetworkingSpec) DeepCopy() *CanalNetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanalNetworkingSpec.

func (*CanalNetworkingSpec) DeepCopyInto

func (in *CanalNetworkingSpec) DeepCopyInto(out *CanalNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertManagerConfig added in v1.20.0

type CertManagerConfig struct {
	// Enabled enables the cert manager.
	// Default: false
	Enabled *bool `json:"enabled,omitempty"`

	// Managed controls if cert-manager is manged and deployed by kOps.
	// The deployment of cert-manager is skipped if this is set to false.
	Managed *bool `json:"managed,omitempty"`

	// Image is the container image used.
	// Default: the latest supported image for the specified kubernetes version.
	Image *string `json:"image,omitempty"`

	// defaultIssuer sets a default clusterIssuer
	// Default: none
	DefaultIssuer *string `json:"defaultIssuer,omitempty"`

	// nameservers is a list of nameserver IP addresses to use instead of the pod defaults.
	// Default: none
	Nameservers []string `json:"nameservers,omitempty"`

	// HostedZoneIDs is a list of route53 hostedzone IDs that cert-manager will be allowed to do dns-01 validation for
	HostedZoneIDs []string `json:"hostedZoneIDs,omitempty"`

	// FeatureGates is a list of experimental features that can be enabled or disabled.
	FeatureGates map[string]bool `json:"featureGates,omitempty"`
}

CertManagerConfig determines the cert manager configuration.

func (*CertManagerConfig) DeepCopy added in v1.20.0

func (in *CertManagerConfig) DeepCopy() *CertManagerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertManagerConfig.

func (*CertManagerConfig) DeepCopyInto added in v1.20.0

func (in *CertManagerConfig) DeepCopyInto(out *CertManagerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Channel

type Channel struct {
	metav1.TypeMeta `json:",inline"`
	ObjectMeta      metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ChannelSpec `json:"spec,omitempty"`
}

func LoadChannel

func LoadChannel(vfsContext *vfs.VFSContext, location string) (*Channel, error)

LoadChannel loads a Channel object from the specified VFS location

func ParseChannel

func ParseChannel(channelBytes []byte) (*Channel, error)

ParseChannel parses a Channel object

func (*Channel) DeepCopy

func (in *Channel) DeepCopy() *Channel

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Channel.

func (*Channel) DeepCopyInto

func (in *Channel) DeepCopyInto(out *Channel)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Channel) FindImage

func (c *Channel) FindImage(provider CloudProviderID, kubernetesVersion semver.Version, architecture architectures.Architecture) *ChannelImageSpec

FindImage returns the image for the cloudprovider, or nil if none found

func (*Channel) GetPackageVersion added in v1.24.0

func (c *Channel) GetPackageVersion(name string, kubernetesVersion *semver.Version) (*util.Version, error)

GetPackageVersion returns the version for the package, or an error if could not be found.

func (*Channel) HasUpstreamImagePrefix added in v1.19.0

func (c *Channel) HasUpstreamImagePrefix(image string) bool

Returns true if the given image name has the stable or alpha channel images prefix. Otherwise false.

type ChannelImageSpec

type ChannelImageSpec struct {
	ProviderID string `json:"providerID,omitempty"`

	ArchitectureID string `json:"architectureID,omitempty"`

	Name string `json:"name,omitempty"`

	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
}

func (*ChannelImageSpec) DeepCopy

func (in *ChannelImageSpec) DeepCopy() *ChannelImageSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChannelImageSpec.

func (*ChannelImageSpec) DeepCopyInto

func (in *ChannelImageSpec) DeepCopyInto(out *ChannelImageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChannelSpec

type ChannelSpec struct {
	Images []*ChannelImageSpec `json:"images,omitempty"`

	Cluster *ClusterSpec `json:"cluster,omitempty"`

	// KopsVersions allows us to recommend/require kops versions
	KopsVersions []KopsVersionSpec `json:"kopsVersions,omitempty"`

	// KubernetesVersions allows us to recommend/requires kubernetes versions
	KubernetesVersions []KubernetesVersionSpec `json:"kubernetesVersions,omitempty"`

	// Packages specifies the package versions that correspond to this channel.
	Packages []PackageVersionSpec `json:"packages,omitempty"`
}

func (*ChannelSpec) DeepCopy

func (in *ChannelSpec) DeepCopy() *ChannelSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChannelSpec.

func (*ChannelSpec) DeepCopyInto

func (in *ChannelSpec) DeepCopyInto(out *ChannelSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CiliumEncryptionType added in v1.21.3

type CiliumEncryptionType string
const (
	CiliumEncryptionTypeIPSec     CiliumEncryptionType = "ipsec"
	CiliumEncryptionTypeWireguard CiliumEncryptionType = "wireguard"
)

type CiliumIngressSpec added in v1.29.0

type CiliumIngressSpec struct {
	// Enabled specifies whether Cilium Ingress is enabled.
	Enabled *bool `json:"enabled,omitempty"`

	// EnforceHttps specifies whether HTTPS enforcement is enabled for Ingress traffic.
	// Default: true
	EnforceHttps *bool `json:"enforceHttps,omitempty"`

	// EnableSecretsSync specifies whether synchronization of secrets is enabled.
	// Default: true
	EnableSecretsSync *bool `json:"enableSecretsSync,omitempty"`

	// LoadBalancerAnnotationPrefixes specifies annotation prefixes for Load Balancer configuration.
	// Default: "service.beta.kubernetes.io service.kubernetes.io cloud.google.com"
	LoadBalancerAnnotationPrefixes string `json:"loadBalancerAnnotationPrefixes,omitempty"`

	// DefaultLoadBalancerMode specifies the default load balancer mode.
	// Possible values: 'shared' or 'dedicated'
	// Default: dedicated
	DefaultLoadBalancerMode string `json:"defaultLoadBalancerMode,omitempty"`

	// SharedLoadBalancerServiceName specifies the name of the shared load balancer service.
	// Default: cilium-ingress
	SharedLoadBalancerServiceName string `json:"sharedLoadBalancerServiceName,omitempty"`
}

CiliumIngressSpec configures Cilium Ingress settings.

func (*CiliumIngressSpec) DeepCopy added in v1.29.0

func (in *CiliumIngressSpec) DeepCopy() *CiliumIngressSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumIngressSpec.

func (*CiliumIngressSpec) DeepCopyInto added in v1.29.0

func (in *CiliumIngressSpec) DeepCopyInto(out *CiliumIngressSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CiliumNetworkingSpec

type CiliumNetworkingSpec struct {
	// Registry overrides the default Cilium container registry (quay.io)
	Registry string `json:"registry,omitempty"`

	// Version is the version of the Cilium agent and the Cilium Operator.
	Version string `json:"version,omitempty"`

	// MemoryRequest memory request of Cilium agent + operator container. (default: 128Mi)
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest CPU request of Cilium agent + operator container. (default: 25m)
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`

	// AgentPrometheusPort is the port to listen to for Prometheus metrics.
	// Defaults to 9090.
	AgentPrometheusPort int `json:"agentPrometheusPort,omitempty"`
	// Metrics is a list of metrics to add or remove from the default list of metrics the agent exposes.
	Metrics []string `json:"metrics,omitempty"`

	// ChainingMode allows using Cilium in combination with other CNI plugins.
	// With Cilium CNI chaining, the base network connectivity and IP address management is managed
	// by the non-Cilium CNI plugin, but Cilium attaches eBPF programs to the network devices created
	// by the non-Cilium plugin to provide L3/L4 network visibility, policy enforcement and other advanced features.
	// Default: none
	ChainingMode string `json:"chainingMode,omitempty"`
	// Debug runs Cilium in debug mode.
	Debug bool `json:"debug,omitempty"`
	// DisableEndpointCRD disables usage of CiliumEndpoint CRD.
	// Default: false
	DisableEndpointCRD bool `json:"disableEndpointCRD,omitempty"`
	// EnablePolicy specifies the policy enforcement mode.
	// "default": Follows Kubernetes policy enforcement.
	// "always": Cilium restricts all traffic if no policy is in place.
	// "never": Cilium allows all traffic regardless of policies in place.
	// If unspecified, "default" policy mode will be used.
	EnablePolicy string `json:"enablePolicy,omitempty"`
	// EnableL7Proxy enables L7 proxy for L7 policy enforcement.
	// Default: true
	EnableL7Proxy *bool `json:"enableL7Proxy,omitempty"`
	// EnableBPFMasquerade enables masquerading packets from endpoints leaving the host with BPF instead of iptables.
	// Default: false
	EnableBPFMasquerade *bool `json:"enableBPFMasquerade,omitempty"`
	// EnableEndpointHealthChecking enables connectivity health checking between virtual endpoints.
	// Default: true
	EnableEndpointHealthChecking *bool `json:"enableEndpointHealthChecking,omitempty"`
	// EnablePrometheusMetrics enables the Cilium "/metrics" endpoint for both the agent and the operator.
	EnablePrometheusMetrics bool `json:"enablePrometheusMetrics,omitempty"`
	// EnableEncryption enables Cilium Encryption.
	// Default: false
	EnableEncryption bool `json:"enableEncryption,omitempty"`
	// EncryptionType specifies Cilium Encryption method ("ipsec", "wireguard").
	// Default: ipsec
	EncryptionType CiliumEncryptionType `json:"encryptionType,omitempty"`
	// NodeEncryption enables encryption for pure node to node traffic.
	// Default: false
	NodeEncryption bool `json:"nodeEncryption,omitempty"`
	// IdentityAllocationMode specifies in which backend identities are stored ("crd", "kvstore").
	// Default: crd
	IdentityAllocationMode string `json:"identityAllocationMode,omitempty"`
	// IdentityChangeGracePeriod specifies the duration to wait before using a changed identity.
	// Default: 5s
	IdentityChangeGracePeriod string `json:"identityChangeGracePeriod,omitempty"`
	// Masquerade enables masquerading IPv4 traffic to external destinations behind the node IP.
	// Default: false if IPAM is "eni" or in IPv6 mode, otherwise true
	Masquerade *bool `json:"masquerade,omitempty"`
	// AgentPodAnnotations makes possible to add additional annotations to cilium agent.
	// Default: none
	AgentPodAnnotations map[string]string `json:"agentPodAnnotations,omitempty"`
	// OperatorPodAnnotations makes possible to add additional annotations to cilium operator.
	// Default: none
	OperatorPodAnnotations map[string]string `json:"operatorPodAnnotations,omitempty"`
	// Tunnel specifies the Cilium tunnelling mode. Possible values are "vxlan", "geneve", or "disabled".
	// Default: vxlan
	Tunnel string `json:"tunnel,omitempty"`
	// MonitorAggregation sets the level of packet monitoring. Possible values are "low", "medium", or "maximum".
	// Default: medium
	MonitorAggregation string `json:"monitorAggregation,omitempty"`
	// BPFCTGlobalTCPMax is the maximum number of entries in the TCP CT table.
	// Default: 524288
	BPFCTGlobalTCPMax int `json:"bpfCTGlobalTCPMax,omitempty"`
	// BPFCTGlobalAnyMax is the maximum number of entries in the non-TCP CT table.
	// Default: 262144
	BPFCTGlobalAnyMax int `json:"bpfCTGlobalAnyMax,omitempty"`
	// BPFLBAlgorithm is the load balancing algorithm ("random", "maglev").
	// Default: random
	BPFLBAlgorithm string `json:"bpfLBAlgorithm,omitempty"`
	// BPFLBMaglevTableSize is the per service backend table size when going with Maglev (parameter M).
	// Default: 16381
	BPFLBMaglevTableSize string `json:"bpfLBMaglevTableSize,omitempty"`
	// BPFNATGlobalMax is the the maximum number of entries in the BPF NAT table.
	// Default: 524288
	BPFNATGlobalMax int `json:"bpfNATGlobalMax,omitempty"`
	// BPFNeighGlobalMax is the the maximum number of entries in the BPF Neighbor table.
	// Default: 524288
	BPFNeighGlobalMax int `json:"bpfNeighGlobalMax,omitempty"`
	// BPFPolicyMapMax is the maximum number of entries in endpoint policy map.
	// Default: 16384
	BPFPolicyMapMax int `json:"bpfPolicyMapMax,omitempty"`
	// BPFLBMapMax is the maximum number of entries in bpf lb service, backend and affinity maps.
	// Default: 65536
	BPFLBMapMax int `json:"bpfLBMapMax,omitempty"`
	// BPFLBSockHostNSOnly enables skipping socket LB for services when inside a pod namespace,
	// in favor of service LB at the pod interface. Socket LB is still used when in the host namespace.
	// Required by service mesh (e.g., Istio, Linkerd).
	// Default: false
	BPFLBSockHostNSOnly bool `json:"bpfLBSockHostNSOnly,omitempty"`
	// PreallocateBPFMaps reduces the per-packet latency at the expense of up-front memory allocation.
	// Default: true
	PreallocateBPFMaps bool `json:"preallocateBPFMaps,omitempty"`
	// SidecarIstioProxyImage is the regular expression matching compatible Istio sidecar istio-proxy
	// container image names.
	// Default: cilium/istio_proxy
	SidecarIstioProxyImage string `json:"sidecarIstioProxyImage,omitempty"`
	// ClusterName is the name of the cluster. It is only relevant when building a mesh of clusters.
	ClusterName string `json:"clusterName,omitempty"`
	// ClusterID is the ID of the cluster. It is only relevant when building a mesh of clusters.
	// Must be a number between 1 and 255.
	ClusterID uint8 `json:"clusterID,omitempty"`
	// ToFQDNsDNSRejectResponseCode sets the DNS response code for rejecting DNS requests.
	// Possible values are "nameError" or "refused".
	// Default: refused
	ToFQDNsDNSRejectResponseCode string `json:"toFQDNsDNSRejectResponseCode,omitempty"`
	// ToFQDNsEnablePoller replaces the DNS proxy-based implementation of FQDN policies
	// with the less powerful legacy implementation.
	// Default: false
	ToFQDNsEnablePoller bool `json:"toFQDNsEnablePoller,omitempty"`
	// IPAM specifies the IP address allocation mode to use.
	// Possible values are "crd" and "eni".
	// "eni" will use AWS native networking for pods. Eni requires masquerade to be set to false.
	// "crd" will use CRDs for controlling IP address management.
	// "hostscope" will use hostscope IPAM mode.
	// "kubernetes" will use addersing based on node pod CIDR.
	// Default: "kubernetes".
	IPAM string `json:"ipam,omitempty"`
	// InstallIptablesRules enables installing the base IPTables rules used for masquerading and kube-proxy.
	// Default: true
	InstallIptablesRules *bool `json:"installIptablesRules,omitempty"`
	// AutoDirectNodeRoutes adds automatic L2 routing between nodes.
	// Default: false
	AutoDirectNodeRoutes bool `json:"autoDirectNodeRoutes,omitempty"`
	// EnableHostReachableServices configures Cilium to enable services to be
	// reached from the host namespace in addition to pod namespaces.
	// https://docs.cilium.io/en/v1.9/gettingstarted/host-services/
	// Default: false
	EnableHostReachableServices bool `json:"enableHostReachableServices,omitempty"`
	// EnableNodePort replaces kube-proxy with Cilium's BPF implementation.
	// Requires spec.kubeProxy.enabled be set to false.
	// Default: false
	EnableNodePort bool `json:"enableNodePort,omitempty"`
	// EtcdManagd installs an additional etcd cluster that is used for Cilium state change.
	// The cluster is operated by cilium-etcd-operator.
	// Default: false
	EtcdManaged bool `json:"etcdManaged,omitempty"`
	// EnableRemoteNodeIdentity enables the remote-node-identity.
	// Default: true
	EnableRemoteNodeIdentity *bool `json:"enableRemoteNodeIdentity,omitempty"`
	// EnableUnreachableRoutes enables unreachable routes on pod deletion.
	// Default: false
	EnableUnreachableRoutes *bool `json:"enableUnreachableRoutes,omitempty"`
	// Hubble configures the Hubble service on the Cilium agent.
	Hubble *HubbleSpec `json:"hubble,omitempty"`

	// DisableCNPStatusUpdates determines if CNP NodeStatus updates will be sent to the Kubernetes api-server.
	DisableCNPStatusUpdates *bool `json:"disableCNPStatusUpdates,omitempty"`

	// EnableServiceTopology determine if cilium should use topology aware hints.
	EnableServiceTopology bool `json:"enableServiceTopology,omitempty"`

	// Ingress specifies the configuration for Cilium Ingress settings.
	Ingress *CiliumIngressSpec `json:"ingress,omitempty"`
}

CiliumNetworkingSpec declares that we want Cilium networking

func (*CiliumNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumNetworkingSpec.

func (*CiliumNetworkingSpec) DeepCopyInto

func (in *CiliumNetworkingSpec) DeepCopyInto(out *CiliumNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClassicNetworkingSpec

type ClassicNetworkingSpec struct{}

ClassicNetworkingSpec is the specification of classic networking mode, integrated into kubernetes. Support been removed since Kubernetes 1.4.

func (*ClassicNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClassicNetworkingSpec.

func (*ClassicNetworkingSpec) DeepCopyInto

func (in *ClassicNetworkingSpec) DeepCopyInto(out *ClassicNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudConfiguration

type CloudConfiguration struct {

	// ManageStorageClasses specifies whether kOps should create and maintain a set of
	// StorageClasses, one of which it nominates as the default class for the cluster.
	ManageStorageClasses *bool `json:"manageStorageClasses,omitempty"`
}

CloudConfiguration defines the cloud provider configuration

func (*CloudConfiguration) DeepCopy

func (in *CloudConfiguration) DeepCopy() *CloudConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudConfiguration.

func (*CloudConfiguration) DeepCopyInto

func (in *CloudConfiguration) DeepCopyInto(out *CloudConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudControllerManagerConfig

type CloudControllerManagerConfig struct {
	// Master is the url for the kube api master.
	Master string `json:"master,omitempty" flag:"master"`
	// LogLevel is the verbosity of the logs.
	LogLevel int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// Image is the OCI image of the cloud controller manager.
	Image string `json:"image,omitempty"`
	// CloudProvider is the provider for cloud services.
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// ClusterName is the instance prefix for the cluster.
	ClusterName string `json:"clusterName,omitempty" flag:"cluster-name"`
	// Allow the cluster to run without the cluster-id on cloud instances
	AllowUntaggedCloud *bool `json:"allowUntaggedCloud,omitempty" flag:"allow-untagged-cloud"`
	// ClusterCIDR is CIDR Range for Pods in cluster.
	ClusterCIDR string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"`
	// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
	// ConfigureCloudRoutes is true, to be set on the cloud provider.
	AllocateNodeCIDRs *bool `json:"allocateNodeCIDRs,omitempty" flag:"allocate-node-cidrs"`
	// ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.
	ConfigureCloudRoutes *bool `json:"configureCloudRoutes,omitempty" flag:"configure-cloud-routes"`
	// Controllers is a list of controllers to enable on the controller-manager
	Controllers []string `json:"controllers,omitempty" flag:"controllers"`
	// CIDRAllocatorType specifies the type of CIDR allocator to use.
	CIDRAllocatorType *string `json:"cidrAllocatorType,omitempty" flag:"cidr-allocator-type"`
	// LeaderElection defines the configuration of leader election client.
	LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"`
	// UseServiceAccountCredentials controls whether we use individual service account credentials for each controller.
	UseServiceAccountCredentials *bool `json:"useServiceAccountCredentials,omitempty" flag:"use-service-account-credentials"`
	// EnableLeaderMigration enables controller leader migration.
	EnableLeaderMigration *bool `json:"enableLeaderMigration,omitempty" flag:"enable-leader-migration"`
	// CPURequest of NodeTerminationHandler container.
	// Default: 200m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// NodeStatusUpdateFrequency is the duration between node status updates. (default: 5m)
	NodeStatusUpdateFrequency *metav1.Duration `json:"nodeStatusUpdateFrequency,omitempty" flag:"node-status-update-frequency"`
	// ConcurrentNodeSyncs is the number of workers concurrently synchronizing nodes. (default: 1)
	ConcurrentNodeSyncs *int32 `json:"concurrentNodeSyncs,omitempty" flag:"concurrent-node-syncs"`
}

CloudControllerManagerConfig is the configuration of the cloud controller

func (*CloudControllerManagerConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudControllerManagerConfig.

func (*CloudControllerManagerConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudProviderID

type CloudProviderID string
const (
	CloudProviderAWS       CloudProviderID = "aws"
	CloudProviderDO        CloudProviderID = "digitalocean"
	CloudProviderGCE       CloudProviderID = "gce"
	CloudProviderHetzner   CloudProviderID = "hetzner"
	CloudProviderOpenstack CloudProviderID = "openstack"
	CloudProviderAzure     CloudProviderID = "azure"
	CloudProviderScaleway  CloudProviderID = "scaleway"
)

type CloudProviderSpec added in v1.24.0

type CloudProviderSpec struct {
	// AWS configures the AWS cloud provider.
	AWS *AWSSpec `json:"aws,omitempty"`
	// Azure configures the Azure cloud provider.
	Azure *AzureSpec `json:"azure,omitempty"`
	// DO configures the Digital Ocean cloud provider.
	DO *DOSpec `json:"do,omitempty"`
	// GCE configures the GCE cloud provider.
	GCE *GCESpec `json:"gce,omitempty"`
	// Hetzner configures the Hetzner cloud provider.
	Hetzner *HetznerSpec `json:"hetzner,omitempty"`
	// Openstack configures the Openstack cloud provider.
	Openstack *OpenstackSpec `json:"openstack,omitempty"`
	// Scaleway configures the Scaleway cloud provider.
	Scaleway *ScalewaySpec `json:"scaleway,omitempty"`
}

CloudProviderSpec configures the cloud provider to use.

func (*CloudProviderSpec) DeepCopy added in v1.24.0

func (in *CloudProviderSpec) DeepCopy() *CloudProviderSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderSpec.

func (*CloudProviderSpec) DeepCopyInto added in v1.24.0

func (in *CloudProviderSpec) DeepCopyInto(out *CloudProviderSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Cluster

type Cluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ClusterSpec `json:"spec,omitempty"`
}

Cluster is a specific cluster wrapper

func (*Cluster) APIInternalName added in v1.26.0

func (c *Cluster) APIInternalName() string

func (*Cluster) AzureResourceGroupName added in v1.20.0

func (c *Cluster) AzureResourceGroupName() string

AzureResourceGroupName returns the name of the resource group where the cluster is built.

func (*Cluster) AzureRouteTableName added in v1.30.0

func (c *Cluster) AzureRouteTableName() string

AzureRouteTableName returns the name of the route table used by the cluster.

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Cluster) DeepCopyObject

func (in *Cluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Cluster) FillDefaults

func (c *Cluster) FillDefaults() error

FillDefaults populates default values. This is different from PerformAssignments, because these values are changeable, and thus we don't need to store them (i.e. we don't need to 'lock them')

func (*Cluster) GetObjectKind

func (obj *Cluster) GetObjectKind() schema.ObjectKind

func (*Cluster) IsKubernetesGTE added in v1.16.0

func (c *Cluster) IsKubernetesGTE(version string) bool

IsKubernetesGTE checks if the version is >= the specified version. It panics if the kubernetes version in the cluster is invalid, or if the version is invalid.

func (*Cluster) IsKubernetesLT added in v1.19.0

func (c *Cluster) IsKubernetesLT(version string) bool

IsKubernetesLT checks if the version is < the specified version. It panics if the kubernetes version in the cluster is invalid, or if the version is invalid.

func (*Cluster) IsSharedAzureResourceGroup added in v1.20.0

func (c *Cluster) IsSharedAzureResourceGroup() bool

IsSharedAzureResourceGroup returns true if the resource group is shared.

func (*Cluster) IsSharedAzureRouteTable added in v1.20.0

func (c *Cluster) IsSharedAzureRouteTable() bool

IsSharedAzureRouteTable returns true if the route table is shared.

func (*Cluster) PublishesDNSRecords added in v1.27.0

func (c *Cluster) PublishesDNSRecords() bool

func (*Cluster) SharedVPC

func (c *Cluster) SharedVPC() bool

SharedVPC is a simple helper function which makes the templates for a shared VPC clearer

func (*Cluster) UsesLegacyGossip added in v1.27.0

func (c *Cluster) UsesLegacyGossip() bool

func (*Cluster) UsesNoneDNS added in v1.26.0

func (c *Cluster) UsesNoneDNS() bool

func (*Cluster) UsesPrivateDNS added in v1.26.0

func (c *Cluster) UsesPrivateDNS() bool

func (*Cluster) UsesPublicDNS added in v1.26.0

func (c *Cluster) UsesPublicDNS() bool

type ClusterAutoscalerConfig added in v1.19.0

type ClusterAutoscalerConfig struct {
	// Enabled enables the cluster autoscaler.
	// Default: false
	Enabled *bool `json:"enabled,omitempty"`
	// Expander determines the strategy for which instance group gets expanded.
	// Supported values: least-waste, most-pods, random, price, priority.
	// The price expander is only supported on GCE.
	// By default, kOps will generate the priority expander ConfigMap based on the `autoscale` and `autoscalePriority` fields in the InstanceGroup specs.
	// Default: least-waste
	Expander string `json:"expander,omitempty"`
	// BalanceSimilarNodeGroups makes the cluster autoscaler treat similar node groups as one.
	// Default: false
	BalanceSimilarNodeGroups *bool `json:"balanceSimilarNodeGroups,omitempty"`
	// EmitPerNodegroupMetrics If true, publishes the node groups min and max metrics count set on the cluster autoscaler.
	// Default: false
	EmitPerNodegroupMetrics *bool `json:"emitPerNodegroupMetrics,omitempty"`
	// AWSUseStaticInstanceList makes cluster autoscaler to use statically defined set of AWS EC2 Instance List.
	// Default: false
	AWSUseStaticInstanceList *bool `json:"awsUseStaticInstanceList,omitempty"`
	// IgnoreDaemonSetsUtilization causes the cluster autoscaler to ignore DaemonSet-managed pods when calculating resource utilization for scaling down.
	// Default: false
	IgnoreDaemonSetsUtilization *bool `json:"ignoreDaemonSetsUtilization,omitempty"`
	// ScaleDownUtilizationThreshold determines the utilization threshold for node scale-down.
	// Default: 0.5
	ScaleDownUtilizationThreshold *string `json:"scaleDownUtilizationThreshold,omitempty"`
	// SkipNodesWithCustomControllerPods makes the cluster autoscaler skip scale-down of nodes with pods owned by custom controllers.
	// Default: true
	SkipNodesWithCustomControllerPods *bool `json:"skipNodesWithCustomControllerPods,omitempty"`
	// SkipNodesWithSystemPods makes the cluster autoscaler skip scale-down of nodes with non-DaemonSet pods in the kube-system namespace.
	// Default: true
	SkipNodesWithSystemPods *bool `json:"skipNodesWithSystemPods,omitempty"`
	// SkipNodesWithLocalStorage makes the cluster autoscaler skip scale-down of nodes with local storage.
	// Default: true
	SkipNodesWithLocalStorage *bool `json:"skipNodesWithLocalStorage,omitempty"`
	// NewPodScaleUpDelay causes the cluster autoscaler to ignore unschedulable pods until they are a certain "age", regardless of the scan-interval
	// Default: 0s
	NewPodScaleUpDelay *string `json:"newPodScaleUpDelay,omitempty"`
	// ScaleDownDelayAfterAdd determines the time after scale up that scale down evaluation resumes
	// Default: 10m0s
	ScaleDownDelayAfterAdd *string `json:"scaleDownDelayAfterAdd,omitempty"`
	// scaleDownUnneededTime determines the time a node should be unneeded before it is eligible for scale down
	// Default: 10m0s
	ScaleDownUnneededTime *string `json:"scaleDownUnneededTime,omitempty"`
	// ScaleDownUnreadyTime determines the time an unready node should be unneeded before it is eligible for scale down
	// Default: 20m0s
	ScaleDownUnreadyTime *string `json:"scaleDownUnreadyTime,omitempty"`
	// CordonNodeBeforeTerminating should CA cordon nodes before terminating during downscale process
	// Default: false
	CordonNodeBeforeTerminating *bool `json:"cordonNodeBeforeTerminating,omitempty"`
	// Image is the container image used.
	// Default: the latest supported image for the specified kubernetes version.
	Image *string `json:"image,omitempty"`
	// MemoryRequest of cluster autoscaler container.
	// Default: 300Mi
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest of cluster autoscaler container.
	// Default: 100m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// MaxNodeProvisionTime determines how long CAS will wait for a node to join the cluster.
	MaxNodeProvisionTime string `json:"maxNodeProvisionTime,omitempty"`
	// PodAnnotations are the annotations added to cluster autoscaler pods when they are created.
	// Default: none
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
	// CreatePriorityExpenderConfig makes kOps create the priority-expander ConfigMap
	// Default: true
	CreatePriorityExpenderConfig *bool `json:"createPriorityExpanderConfig,omitempty"`
	// CustomPriorityExpanderConfig overides the priority-expander ConfigMap with the provided configuration. Any InstanceGroup configuration will be ignored if this is set.
	// This could be useful in order to use regex on priorities configuration
	CustomPriorityExpanderConfig map[string][]string `json:"customPriorityExpanderConfig,omitempty"`
}

ClusterAutoscalerConfig determines the cluster autoscaler configuration.

func (*ClusterAutoscalerConfig) DeepCopy added in v1.19.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAutoscalerConfig.

func (*ClusterAutoscalerConfig) DeepCopyInto added in v1.19.0

func (in *ClusterAutoscalerConfig) DeepCopyInto(out *ClusterAutoscalerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterList

type ClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Cluster `json:"items"`
}

ClusterList is a list of clusters

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterList) DeepCopyObject

func (in *ClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterSpec

type ClusterSpec struct {
	// The Channel we are following
	Channel string `json:"channel,omitempty"`
	// Additional addons that should be installed on the cluster
	Addons []AddonSpec `json:"addons,omitempty"`
	// ConfigStore configures the stores that nodes use to get their configuration.
	ConfigStore ConfigStoreSpec `json:"configStore"`
	// CloudProvider configures the cloud provider to use.
	CloudProvider CloudProviderSpec `json:"cloudProvider,omitempty"`
	// GossipConfig for the cluster assuming the use of gossip DNS
	GossipConfig *GossipConfig `json:"gossipConfig,omitempty"`
	// ContainerRuntime was removed.
	ContainerRuntime string `json:"-"`
	// The version of kubernetes to install (optional, and can be a "spec" like stable)
	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
	// DNSZone is the DNS zone we should use when configuring DNS
	// This is because some clouds let us define a managed zone foo.bar, and then have
	// kubernetes.dev.foo.bar, without needing to define dev.foo.bar as a hosted zone.
	// DNSZone will probably be a suffix of the MasterPublicName.
	// Note that DNSZone can either by the host name of the zone (containing dots),
	// or can be an identifier for the zone.
	DNSZone string `json:"dnsZone,omitempty"`
	// DNSControllerGossipConfig for the cluster assuming the use of gossip DNS
	DNSControllerGossipConfig *DNSControllerGossipConfig `json:"dnsControllerGossipConfig,omitempty"`
	// ClusterDNSDomain is the suffix we use for internal DNS names (normally cluster.local)
	ClusterDNSDomain string `json:"clusterDNSDomain,omitempty"`
	// SSHAccess is a list of the CIDRs that can access SSH.
	SSHAccess []string `json:"sshAccess,omitempty"`
	// NodePortAccess is a list of the CIDRs that can access the node ports range (30000-32767).
	NodePortAccess []string `json:"nodePortAccess,omitempty"`
	// SSHKeyName specifies a preexisting SSH key to use
	SSHKeyName *string `json:"sshKeyName,omitempty"`
	// UpdatePolicy determines the policy for applying upgrades automatically.
	// Valid values:
	//   'automatic' (default): apply updates automatically (apply OS security upgrades, avoiding rebooting when possible)
	//   'external': do not apply updates automatically; they are applied manually or by an external system
	UpdatePolicy *string `json:"updatePolicy,omitempty"`
	// ExternalPolicies allows the insertion of pre-existing managed policies on IG Roles
	ExternalPolicies map[string][]string `json:"externalPolicies,omitempty"`
	// Additional policies to add for roles
	AdditionalPolicies map[string]string `json:"additionalPolicies,omitempty"`
	// A collection of files assets for deployed cluster wide
	FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
	// EtcdClusters stores the configuration for each cluster
	EtcdClusters []EtcdClusterSpec `json:"etcdClusters,omitempty"`
	// Docker was removed.
	Docker *DockerConfig `json:"-"`
	// Component configurations
	Containerd                     *ContainerdConfig             `json:"containerd,omitempty"`
	KubeDNS                        *KubeDNSConfig                `json:"kubeDNS,omitempty"`
	KubeAPIServer                  *KubeAPIServerConfig          `json:"kubeAPIServer,omitempty"`
	KubeControllerManager          *KubeControllerManagerConfig  `json:"kubeControllerManager,omitempty"`
	ExternalCloudControllerManager *CloudControllerManagerConfig `json:"cloudControllerManager,omitempty"`
	KubeScheduler                  *KubeSchedulerConfig          `json:"kubeScheduler,omitempty"`
	KubeProxy                      *KubeProxyConfig              `json:"kubeProxy,omitempty"`
	// Kubelet is the kubelet configuration for nodes not belonging to the control plane.
	// It can be overridden by the kubelet configuration specified in the instance group.
	Kubelet *KubeletConfigSpec `json:"kubelet,omitempty"`
	// ControlPlaneKubelet is the kubelet configuration for nodes belonging to the control plane
	// It can be overridden by the kubelet configuration specified in the instance group.
	ControlPlaneKubelet *KubeletConfigSpec  `json:"controlPlaneKubelet,omitempty"`
	CloudConfig         *CloudConfiguration `json:"cloudConfig,omitempty"`
	ExternalDNS         *ExternalDNSConfig  `json:"externalDNS,omitempty"`
	NTP                 *NTPConfig          `json:"ntp,omitempty"`
	// Packages specifies additional packages to be installed.
	Packages []string `json:"packages,omitempty"`

	// NodeProblemDetector determines the node problem detector configuration.
	NodeProblemDetector *NodeProblemDetectorConfig `json:"nodeProblemDetector,omitempty"`
	// MetricsServer determines the metrics server configuration.
	MetricsServer *MetricsServerConfig `json:"metricsServer,omitempty"`
	// CertManager determines the metrics server configuration.
	CertManager *CertManagerConfig `json:"certManager,omitempty"`
	// Networking configures networking.
	Networking NetworkingSpec `json:"networking,omitempty"`
	// API controls how the Kubernetes API is exposed.
	API APISpec `json:"api,omitempty"`
	// Authentication field controls how the cluster is configured for authentication
	Authentication *AuthenticationSpec `json:"authentication,omitempty"`
	// Authorization field controls how the cluster is configured for authorization
	Authorization *AuthorizationSpec `json:"authorization,omitempty"`
	// NodeAuthorization defined the custom node authorization configuration
	NodeAuthorization *NodeAuthorizationSpec `json:"nodeAuthorization,omitempty"`
	// CloudLabels defines additional tags or labels on cloud provider resources
	CloudLabels map[string]string `json:"cloudLabels,omitempty"`
	// Hooks for custom actions e.g. on first installation
	Hooks []HookSpec `json:"hooks,omitempty"`
	// Assets is alternative locations for files and containers; the API under construction, will remove this comment once this API is fully functional.
	Assets *AssetsSpec `json:"assets,omitempty"`
	// IAM field adds control over the IAM security policies applied to resources
	IAM *IAMSpec `json:"iam,omitempty"`
	// EncryptionConfig controls if encryption is enabled
	EncryptionConfig *bool `json:"encryptionConfig,omitempty"`
	// Target allows for us to nest extra config for targets such as terraform
	Target *TargetSpec `json:"target,omitempty"`
	// UseHostCertificates will mount /etc/ssl/certs to inside needed containers.
	// This is needed if some APIs do have self-signed certs
	UseHostCertificates *bool `json:"useHostCertificates,omitempty"`
	// SysctlParameters will configure kernel parameters using sysctl(8). When
	// specified, each parameter must follow the form variable=value, the way
	// it would appear in sysctl.conf.
	SysctlParameters []string `json:"sysctlParameters,omitempty"`
	// RollingUpdate defines the default rolling-update settings for instance groups.
	RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"`
	// ClusterAutoscaler defines the cluster autoscaler configuration.
	ClusterAutoscaler *ClusterAutoscalerConfig `json:"clusterAutoscaler,omitempty"`
	// ServiceAccountIssuerDiscovery configures the OIDC Issuer for ServiceAccounts.
	ServiceAccountIssuerDiscovery *ServiceAccountIssuerDiscoveryConfig `json:"serviceAccountIssuerDiscovery,omitempty"`
	// SnapshotController defines the CSI Snapshot Controller configuration.
	SnapshotController *SnapshotControllerConfig `json:"snapshotController,omitempty"`
	// Karpenter defines the Karpenter configuration.
	Karpenter *KarpenterConfig `json:"karpenter,omitempty"`
}

ClusterSpec defines the configuration for a cluster

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterSpec) GetCloudProvider added in v1.24.0

func (c *ClusterSpec) GetCloudProvider() CloudProviderID

func (*ClusterSpec) IsIPv6Only added in v1.21.3

func (c *ClusterSpec) IsIPv6Only() bool

func (*ClusterSpec) IsKopsControllerIPAM added in v1.23.0

func (c *ClusterSpec) IsKopsControllerIPAM() bool

type ClusterStatus

type ClusterStatus struct {
	// EtcdClusters stores the status for each cluster
	EtcdClusters []EtcdClusterStatus `json:"etcdClusters,omitempty"`
}

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterSubnetSpec

type ClusterSubnetSpec struct {
	// Name is the name of the subnet
	Name string `json:"name,omitempty"`
	// CIDR is the IPv4 CIDR block assigned to the subnet.
	CIDR string `json:"cidr,omitempty"`
	// IPv6CIDR is the IPv6 CIDR block assigned to the subnet.
	IPv6CIDR string `json:"ipv6CIDR,omitempty"`
	// Zone is the zone the subnet is in, set for subnets that are zonally scoped
	Zone string `json:"zone,omitempty"`
	// Region is the region the subnet is in, set for subnets that are regionally scoped
	Region string `json:"region,omitempty"`
	// ID is the cloud provider ID for the objects associated with the zone (the subnet on AWS).
	ID string `json:"id,omitempty"`
	// Egress defines the method of traffic egress for this subnet
	Egress string `json:"egress,omitempty"`
	// Type define which one if the internal types (public, utility, private) the network is
	Type SubnetType `json:"type,omitempty"`
	// PublicIP to attach to NatGateway
	PublicIP string `json:"publicIP,omitempty"`
	// AdditionalRoutes to attach to the subnet's route table
	AdditionalRoutes []RouteSpec `json:"additionalRoutes,omitempty"`
}

ClusterSubnetSpec defines a subnet TODO: move to networking.go

func (*ClusterSubnetSpec) DeepCopy

func (in *ClusterSubnetSpec) DeepCopy() *ClusterSubnetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSubnetSpec.

func (*ClusterSubnetSpec) DeepCopyInto

func (in *ClusterSubnetSpec) DeepCopyInto(out *ClusterSubnetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigStoreSpec added in v1.28.0

type ConfigStoreSpec struct {
	// Base is the VFS path where we store configuration for the cluster
	// This might be different than the location where the cluster spec itself is stored,
	// both because this must be accessible to the cluster,
	// and because it might be on a different cloud or storage system (etcd vs S3).
	Base string `json:"base,omitempty"`
	// Keypairs is the VFS path to where certificates and corresponding private keys are stored.
	Keypairs string `json:"keypairs,omitempty"`
	// Secrets is the VFS path to where secrets are stored.
	Secrets string `json:"secrets,omitempty"`
}

ConfigStoreSpec configures the stores that nodes use to get their configuration.

func (*ConfigStoreSpec) DeepCopy added in v1.28.0

func (in *ConfigStoreSpec) DeepCopy() *ConfigStoreSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigStoreSpec.

func (*ConfigStoreSpec) DeepCopyInto added in v1.28.0

func (in *ConfigStoreSpec) DeepCopyInto(out *ConfigStoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ContainerdConfig added in v1.18.0

type ContainerdConfig struct {
	// Address of containerd's GRPC server (default "/run/containerd/containerd.sock").
	Address *string `json:"address,omitempty" flag:"address"`
	// ConfigAdditions adds additional config entries to the generated config file.
	ConfigAdditions map[string]intstr.IntOrString `json:"configAdditions,omitempty"`
	// ConfigOverride is the complete containerd config file provided by the user.
	ConfigOverride *string `json:"configOverride,omitempty"`
	// LogLevel controls the logging details [trace, debug, info, warn, error, fatal, panic] (default "info").
	LogLevel *string `json:"logLevel,omitempty" flag:"log-level"`
	// Packages overrides the URL and hash for the packages.
	Packages *PackagesConfig `json:"packages,omitempty"`
	// RegistryMirrors is list of image registries
	RegistryMirrors map[string][]string `json:"registryMirrors,omitempty"`
	// Root directory for persistent data (default "/var/lib/containerd").
	Root *string `json:"root,omitempty" flag:"root"`
	// SkipInstall prevents kOps from installing and modifying containerd in any way (default "false").
	SkipInstall bool `json:"skipInstall,omitempty"`
	// State directory for execution state files (default "/run/containerd").
	State *string `json:"state,omitempty" flag:"state"`
	// Version used to pick the containerd package.
	Version *string `json:"version,omitempty"`
	// NvidiaGPU configures the Nvidia GPU runtime.
	NvidiaGPU *NvidiaGPUConfig `json:"nvidiaGPU,omitempty"`
	// Runc configures the runc runtime.
	Runc *Runc `json:"runc,omitempty"`
	// SelinuxEnabled enables SELinux support
	SeLinuxEnabled bool `json:"selinuxEnabled,omitempty"`
	// NRI configures the Node Resource Interface.
	NRI *NRIConfig `json:"nri,omitempty"`
}

ContainerdConfig is the configuration for containerd

func (*ContainerdConfig) DeepCopy added in v1.18.0

func (in *ContainerdConfig) DeepCopy() *ContainerdConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerdConfig.

func (*ContainerdConfig) DeepCopyInto added in v1.18.0

func (in *ContainerdConfig) DeepCopyInto(out *ContainerdConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DCGMExporterConfig added in v1.26.0

type DCGMExporterConfig struct {
	// Enabled determines if kOps will install the DCGM exporter
	Enabled bool `json:"enabled,omitempty"`
}

DCGMExporterConfig configures the DCGM exporter. Only the DCGMExporterConfig in the cluster level takes effect. Configurations on the Instance Group are ignored.

func (*DCGMExporterConfig) DeepCopy added in v1.26.0

func (in *DCGMExporterConfig) DeepCopy() *DCGMExporterConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DCGMExporterConfig.

func (*DCGMExporterConfig) DeepCopyInto added in v1.26.0

func (in *DCGMExporterConfig) DeepCopyInto(out *DCGMExporterConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSAccessSpec

type DNSAccessSpec struct{}

func (*DNSAccessSpec) DeepCopy

func (in *DNSAccessSpec) DeepCopy() *DNSAccessSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSAccessSpec.

func (*DNSAccessSpec) DeepCopyInto

func (in *DNSAccessSpec) DeepCopyInto(out *DNSAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSControllerGossipConfig added in v1.16.0

type DNSControllerGossipConfig struct {
	Protocol  *string                             `json:"protocol,omitempty"`
	Listen    *string                             `json:"listen,omitempty"`
	Secret    *string                             `json:"secret,omitempty"`
	Secondary *DNSControllerGossipConfigSecondary `json:"secondary,omitempty"`
	Seed      *string                             `json:"seed,omitempty"`
}

func (*DNSControllerGossipConfig) DeepCopy added in v1.16.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSControllerGossipConfig.

func (*DNSControllerGossipConfig) DeepCopyInto added in v1.16.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSControllerGossipConfigSecondary added in v1.20.0

type DNSControllerGossipConfigSecondary struct {
	Protocol *string `json:"protocol,omitempty"`
	Listen   *string `json:"listen,omitempty"`
	Secret   *string `json:"secret,omitempty"`
	Seed     *string `json:"seed,omitempty"`
}

func (*DNSControllerGossipConfigSecondary) DeepCopy added in v1.20.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSControllerGossipConfigSecondary.

func (*DNSControllerGossipConfigSecondary) DeepCopyInto added in v1.20.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSType

type DNSType string
const (
	DNSTypePublic  DNSType = "Public"
	DNSTypePrivate DNSType = "Private"
	DNSTypeNone    DNSType = "None"
)

type DOSpec added in v1.24.0

type DOSpec struct{}

DOSpec configures the Digital Ocean cloud provider.

func (*DOSpec) DeepCopy added in v1.24.0

func (in *DOSpec) DeepCopy() *DOSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DOSpec.

func (*DOSpec) DeepCopyInto added in v1.24.0

func (in *DOSpec) DeepCopyInto(out *DOSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DockerConfig

type DockerConfig struct {
	// AuthorizationPlugins is a list of authorization plugins
	AuthorizationPlugins []string `json:"authorizationPlugins,omitempty" flag:"authorization-plugin,repeat"`
	// Bridge is the network interface containers should bind onto
	Bridge *string `json:"bridge,omitempty" flag:"bridge"`
	// BridgeIP is a specific IP address and netmask for the docker0 bridge, using standard CIDR notation
	BridgeIP *string `json:"bridgeIP,omitempty" flag:"bip"`
	// DataRoot is the root directory of persistent docker state (default "/var/lib/docker")
	DataRoot *string `json:"dataRoot,omitempty" flag:"data-root"`
	// DefaultUlimit is the ulimits for containers
	DefaultUlimit []string `json:"defaultUlimit,omitempty" flag:"default-ulimit,repeat"`
	// DefaultRuntime is the default OCI runtime for containers (default "runc")
	DefaultRuntime *string `json:"defaultRuntime,omitempty" flag:"default-runtime"`
	// DNS is the IP address of the DNS server
	DNS []string `json:"dns,omitempty" flag:"dns,repeat"`
	// ExecOpt is a series of options passed to the runtime
	ExecOpt []string `json:"execOpt,omitempty" flag:"exec-opt,repeat"`
	// ExecRoot is the root directory for execution state files (default "/var/run/docker")
	ExecRoot *string `json:"execRoot,omitempty" flag:"exec-root"`
	// Experimental features permits enabling new features such as dockerd metrics
	Experimental *bool `json:"experimental,omitempty" flag:"experimental"`
	// HealthCheck enables the periodic health-check service
	HealthCheck bool `json:"healthCheck,omitempty"`
	// Hosts enables you to configure the endpoints the docker daemon listens on i.e. tcp://0.0.0.0.2375 or unix:///var/run/docker.sock etc
	Hosts []string `json:"hosts,omitempty" flag:"host,repeat"`
	// IPMasq enables ip masquerading for containers
	IPMasq *bool `json:"ipMasq,omitempty" flag:"ip-masq"`
	// IPtables enables addition of iptables rules
	IPTables *bool `json:"ipTables,omitempty" flag:"iptables"`
	// InsecureRegistry enable insecure registry communication @question according to dockers this a list??
	InsecureRegistry *string `json:"insecureRegistry,omitempty" flag:"insecure-registry"`
	// InsecureRegistries enables multiple insecure docker registry communications
	InsecureRegistries []string `json:"insecureRegistries,omitempty" flag:"insecure-registry,repeat"`
	// LiveRestore enables live restore of docker when containers are still running
	LiveRestore *bool `json:"liveRestore,omitempty" flag:"live-restore"`
	// LogDriver is the default driver for container logs (default "json-file")
	LogDriver *string `json:"logDriver,omitempty" flag:"log-driver"`
	// LogLevel is the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
	LogLevel *string `json:"logLevel,omitempty" flag:"log-level"`
	// Logopt is a series of options given to the log driver options for containers
	LogOpt []string `json:"logOpt,omitempty" flag:"log-opt,repeat"`
	// MaxConcurrentDownloads sets the max concurrent downloads for each pull
	MaxConcurrentDownloads *int32 `json:"maxConcurrentDownloads,omitempty" flag:"max-concurrent-downloads"`
	// MaxConcurrentUploads sets the max concurrent uploads for each push
	MaxConcurrentUploads *int32 `json:"maxConcurrentUploads,omitempty" flag:"max-concurrent-uploads"`
	// MaxDownloadAttempts sets the max download attempts for each pull
	MaxDownloadAttempts *int32 `json:"maxDownloadAttempts,omitempty" flag:"max-download-attempts"`
	// Metrics address is the endpoint to serve with Prometheus format metrics
	MetricsAddress *string `json:"metricsAddress,omitempty" flag:"metrics-addr"`
	// MTU is the containers network MTU
	MTU *int32 `json:"mtu,omitempty" flag:"mtu"`
	// Packages overrides the URL and hash for the packages.
	Packages *PackagesConfig `json:"packages,omitempty"`
	// RegistryMirrors is a referred list of docker registry mirror
	RegistryMirrors []string `json:"registryMirrors,omitempty" flag:"registry-mirror,repeat"`
	// Runtimes registers an additional OCI compatible runtime (default [])
	Runtimes []string `json:"runtimes,omitempty" flag:"add-runtime,repeat"`
	// SelinuxEnabled enables SELinux support
	SelinuxEnabled *bool `json:"selinuxEnabled,omitempty" flag:"selinux-enabled"`
	// SkipInstall when set to true will prevent kops from installing and modifying Docker in any way
	SkipInstall bool `json:"skipInstall,omitempty"`
	// Storage is the docker storage driver to use
	Storage *string `json:"storage,omitempty" flag:"storage-driver"`
	// StorageOpts is a series of options passed to the storage driver
	StorageOpts []string `json:"storageOpts,omitempty" flag:"storage-opt,repeat"`
	// UserNamespaceRemap sets the user namespace remapping option for the docker daemon
	UserNamespaceRemap string `json:"userNamespaceRemap,omitempty" flag:"userns-remap"`
	// Version is consumed by the nodeup and used to pick the docker version
	Version *string `json:"version,omitempty"`
}

DockerConfig is the configuration for docker

func (*DockerConfig) DeepCopy

func (in *DockerConfig) DeepCopy() *DockerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerConfig.

func (*DockerConfig) DeepCopyInto

func (in *DockerConfig) DeepCopyInto(out *DockerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EBSCSIDriverSpec added in v1.26.0

type EBSCSIDriverSpec struct {
	// Enabled enables the AWS EBS CSI driver. Can only be set to true.
	// Default: true
	Enabled *bool `json:"-"`

	// Managed controls if aws-ebs-csi-driver is manged and deployed by kOps.
	// The deployment of aws-ebs-csi-driver is skipped if this is set to false.
	Managed *bool `json:"managed,omitempty"`

	// Version is the container image tag used.
	// Default: The latest stable release which is compatible with your Kubernetes version
	Version *string `json:"version,omitempty"`

	// KubeAPIQPS QPS to use while talking with Kubernetes API server. (default 20)
	KubeAPIQPS *resource.Quantity `json:"kubeAPIQPS,omitempty"`
	// KubeAPIBurst Burst to use while talking with Kubernetes API server. (default 100)
	KubeAPIBurst *int32 `json:"kubeAPIBurst,omitempty"`

	// HostNetwork can be used for large clusters for faster access to node info via instance metadata.
	// Default: false
	HostNetwork bool `json:"hostNetwork,omitempty"`

	// VolumeAttachLimit is the maximum number of volumes attachable per node.
	// If specified, the limit applies to all nodes.
	// If not specified, the value is approximated from the instance type.
	// Default: -
	VolumeAttachLimit *int `json:"volumeAttachLimit,omitempty"`

	// PodAnnotations are the annotations added to AWS EBS CSI node and controller Pods.
	// Default: none
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
}

EBSCSIDriverSpec is the config for the AWS EBS CSI driver

func (*EBSCSIDriverSpec) DeepCopy added in v1.26.0

func (in *EBSCSIDriverSpec) DeepCopy() *EBSCSIDriverSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EBSCSIDriverSpec.

func (*EBSCSIDriverSpec) DeepCopyInto added in v1.26.0

func (in *EBSCSIDriverSpec) DeepCopyInto(out *EBSCSIDriverSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EgressProxySpec

type EgressProxySpec struct {
	HTTPProxy     HTTPProxy `json:"httpProxy,omitempty"`
	ProxyExcludes string    `json:"excludes,omitempty"`
}

func (*EgressProxySpec) DeepCopy

func (in *EgressProxySpec) DeepCopy() *EgressProxySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressProxySpec.

func (*EgressProxySpec) DeepCopyInto

func (in *EgressProxySpec) DeepCopyInto(out *EgressProxySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnvVar added in v1.17.0

type EnvVar struct {
	// Name of the environment variable. Must be a C_IDENTIFIER.
	Name string `json:"name"`

	// Variable references $(VAR_NAME) are expanded
	// using the previous defined environment variables in the container and
	// any service environment variables. If a variable cannot be resolved,
	// the reference in the input string will be unchanged. The $(VAR_NAME)
	// syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
	// references will never be expanded, regardless of whether the variable
	// exists or not.
	// Defaults to "".
	// +optional
	Value string `json:"value,omitempty"`
}

EnvVar represents an environment variable present in a Container.

func (*EnvVar) DeepCopy added in v1.17.0

func (in *EnvVar) DeepCopy() *EnvVar

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.

func (*EnvVar) DeepCopyInto added in v1.17.0

func (in *EnvVar) DeepCopyInto(out *EnvVar)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdBackupSpec

type EtcdBackupSpec struct {
	// BackupStore is the VFS path where we will read/write backup data
	BackupStore string `json:"backupStore,omitempty"`
	// Image is the etcd backup manager image to use.  Setting this will create a sidecar container in the etcd pod with the specified image.
	Image string `json:"image,omitempty"`
}

EtcdBackupSpec describes how we want to do backups of etcd

func (*EtcdBackupSpec) DeepCopy

func (in *EtcdBackupSpec) DeepCopy() *EtcdBackupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupSpec.

func (*EtcdBackupSpec) DeepCopyInto

func (in *EtcdBackupSpec) DeepCopyInto(out *EtcdBackupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdClusterSpec

type EtcdClusterSpec struct {
	// Name is the name of the etcd cluster (main, events etc)
	Name string `json:"name,omitempty"`
	// Provider is the provider used to run etcd: Manager, Legacy.
	// Defaults to Manager.
	Provider EtcdProviderType `json:"provider,omitempty"`
	// Members stores the configurations for each member of the cluster (including the data volume)
	Members []EtcdMemberSpec `json:"etcdMembers,omitempty"`
	// Version is the version of etcd to run.
	Version string `json:"version,omitempty"`
	// LeaderElectionTimeout is the time (in milliseconds) for an etcd leader election timeout
	LeaderElectionTimeout *metav1.Duration `json:"leaderElectionTimeout,omitempty"`
	// HeartbeatInterval is the time (in milliseconds) for an etcd heartbeat interval
	HeartbeatInterval *metav1.Duration `json:"heartbeatInterval,omitempty"`
	// Image is the etcd container image to use. Setting this will ignore the Version specified.
	Image string `json:"image,omitempty"`
	// Backups describes how we do backups of etcd
	Backups *EtcdBackupSpec `json:"backups,omitempty"`
	// Manager describes the manager configuration
	Manager *EtcdManagerSpec `json:"manager,omitempty"`
	// MemoryRequest specifies the memory requests of each etcd container in the cluster.
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest specifies the cpu requests of each etcd container in the cluster.
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
}

EtcdClusterSpec is the etcd cluster specification

func (*EtcdClusterSpec) DeepCopy

func (in *EtcdClusterSpec) DeepCopy() *EtcdClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdClusterSpec.

func (*EtcdClusterSpec) DeepCopyInto

func (in *EtcdClusterSpec) DeepCopyInto(out *EtcdClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdClusterStatus

type EtcdClusterStatus struct {
	// Name is the name of the etcd cluster (main, events etc)
	Name string `json:"name,omitempty"`
	// EtcdMember stores the configurations for each member of the cluster (including the data volume)
	Members []*EtcdMemberStatus `json:"etcdMembers,omitempty"`
}

EtcdClusterStatus represents the status of etcd: because etcd only allows limited reconfiguration, we have to block changes once etcd has been initialized.

func (*EtcdClusterStatus) DeepCopy

func (in *EtcdClusterStatus) DeepCopy() *EtcdClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdClusterStatus.

func (*EtcdClusterStatus) DeepCopyInto

func (in *EtcdClusterStatus) DeepCopyInto(out *EtcdClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdManagerSpec

type EtcdManagerSpec struct {
	// Image is the etcd manager image to use.
	Image string `json:"image,omitempty"`
	// Env allows users to pass in env variables to the etcd-manager container.
	// Variables starting with ETCD_ will be further passed down to the etcd process.
	// This allows etcd setting to be overwriten. No config validation is done.
	// A list of etcd config ENV vars can be found at https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md
	Env []EnvVar `json:"env,omitempty"`
	// BackupInterval which is used for backups. The default is 15 minutes.
	BackupInterval *metav1.Duration `json:"backupInterval,omitempty"`
	// BackupRetentionDays which is used for backups. The default is 90 days.
	BackupRetentionDays *uint32 `json:"backupRetentionDays,omitempty"`
	// DiscoveryPollInterval which is used for discovering other cluster members. The default is 60 seconds.
	DiscoveryPollInterval *metav1.Duration `json:"discoveryPollInterval,omitempty"`
	// ListenMetricsURLs is the list of URLs to listen on that will respond to both the /metrics and /health endpoints
	ListenMetricsURLs []string `json:"listenMetricsURLs,omitempty"`
	// LogLevel allows the klog library verbose log level to be set for etcd-manager. The default is 6.
	// https://github.com/google/glog#verbose-logging
	LogLevel *int32 `json:"logLevel,omitempty"`
}

EtcdManagerSpec describes how we configure the etcd manager

func (*EtcdManagerSpec) DeepCopy

func (in *EtcdManagerSpec) DeepCopy() *EtcdManagerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdManagerSpec.

func (*EtcdManagerSpec) DeepCopyInto

func (in *EtcdManagerSpec) DeepCopyInto(out *EtcdManagerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdMemberSpec

type EtcdMemberSpec struct {
	// Name is the name of the member within the etcd cluster
	Name string `json:"name,omitempty"`
	// InstanceGroup is the instanceGroup this volume is associated
	InstanceGroup *string `json:"instanceGroup,omitempty"`
	// VolumeType is the underlying cloud storage class
	VolumeType *string `json:"volumeType,omitempty"`
	// If volume type is io1, then we need to specify the number of IOPS.
	VolumeIOPS *int32 `json:"volumeIOPS,omitempty"`
	// Parameter for disks that support provisioned throughput
	VolumeThroughput *int32 `json:"volumeThroughput,omitempty"`
	// VolumeSize is the underlying cloud volume size
	VolumeSize *int32 `json:"volumeSize,omitempty"`
	// KmsKeyID is a AWS KMS ID used to encrypt the volume
	KmsKeyID *string `json:"kmsKeyID,omitempty"`
	// EncryptedVolume indicates you want to encrypt the volume
	EncryptedVolume *bool `json:"encryptedVolume,omitempty"`
}

EtcdMemberSpec is a specification for a etcd member

func (*EtcdMemberSpec) DeepCopy

func (in *EtcdMemberSpec) DeepCopy() *EtcdMemberSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdMemberSpec.

func (*EtcdMemberSpec) DeepCopyInto

func (in *EtcdMemberSpec) DeepCopyInto(out *EtcdMemberSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdMemberStatus

type EtcdMemberStatus struct {
	// Name is the name of the member within the etcd cluster
	Name string `json:"name,omitempty"`

	// VolumeID is the id of the cloud volume (e.g. the AWS volume id)
	VolumeID string `json:"volumeID,omitempty"`
}

func (*EtcdMemberStatus) DeepCopy

func (in *EtcdMemberStatus) DeepCopy() *EtcdMemberStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdMemberStatus.

func (*EtcdMemberStatus) DeepCopyInto

func (in *EtcdMemberStatus) DeepCopyInto(out *EtcdMemberStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdProviderType added in v1.11.0

type EtcdProviderType string

EtcdProviderType describes etcd cluster provisioning types (Standalone, Manager)

const (
	EtcdProviderTypeManager EtcdProviderType = "Manager"
)

type ExecContainerAction

type ExecContainerAction struct {
	// Image is the container image.
	Image string `json:"image,omitempty"`
	// Command is the command supplied to the above image
	Command []string `json:"command,omitempty"`
	// Environment is a map of environment variables added to the hook
	Environment map[string]string `json:"environment,omitempty"`
}

ExecContainerAction defines an hood action

func (*ExecContainerAction) DeepCopy

func (in *ExecContainerAction) DeepCopy() *ExecContainerAction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecContainerAction.

func (*ExecContainerAction) DeepCopyInto

func (in *ExecContainerAction) DeepCopyInto(out *ExecContainerAction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSConfig

type ExternalDNSConfig struct {
	// WatchIngress indicates you want the dns-controller to watch and create dns entries for ingress resources.
	// Default: true if provider is 'external-dns', false otherwise.
	WatchIngress *bool `json:"watchIngress,omitempty"`
	// WatchNamespace is namespace to watch, defaults to all (use to control whom can creates dns entries)
	WatchNamespace string `json:"watchNamespace,omitempty"`
	// Provider determines which implementation of ExternalDNS to use.
	// 'dns-controller' will use kOps DNS Controller.
	// 'external-dns' will use kubernetes-sigs/external-dns.
	Provider ExternalDNSProvider `json:"provider,omitempty"`
}

ExternalDNSConfig are options of the dns-controller

func (*ExternalDNSConfig) DeepCopy

func (in *ExternalDNSConfig) DeepCopy() *ExternalDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSConfig.

func (*ExternalDNSConfig) DeepCopyInto

func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSProvider added in v1.21.3

type ExternalDNSProvider string
const (
	ExternalDNSProviderDNSController ExternalDNSProvider = "dns-controller"
	ExternalDNSProviderExternalDNS   ExternalDNSProvider = "external-dns"
	ExternalDNSProviderNone          ExternalDNSProvider = "none"
)

type ExternalNetworkingSpec

type ExternalNetworkingSpec struct{}

ExternalNetworkingSpec is the specification for networking that is implemented by a user-provided Daemonset that uses the Kubenet kubelet networking plugin.

func (*ExternalNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalNetworkingSpec.

func (*ExternalNetworkingSpec) DeepCopyInto

func (in *ExternalNetworkingSpec) DeepCopyInto(out *ExternalNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FileAssetSpec

type FileAssetSpec struct {
	// Name is a shortened reference to the asset
	Name string `json:"name,omitempty"`
	// Path is the location this file should reside
	Path string `json:"path,omitempty"`
	// Roles is a list of roles the file asset should be applied, defaults to all
	Roles []InstanceGroupRole `json:"roles,omitempty"`
	// Content is the contents of the file
	Content string `json:"content,omitempty"`
	// IsBase64 indicates the contents is base64 encoded
	IsBase64 bool `json:"isBase64,omitempty"`
	// Mode is this file's mode and permission bits
	Mode string `json:"mode,omitempty"`
}

FileAssetSpec defines the structure for a file asset

func (*FileAssetSpec) DeepCopy

func (in *FileAssetSpec) DeepCopy() *FileAssetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileAssetSpec.

func (*FileAssetSpec) DeepCopyInto

func (in *FileAssetSpec) DeepCopyInto(out *FileAssetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FlannelNetworkingSpec

type FlannelNetworkingSpec struct {
	// Backend is the backend overlay type we want to use (vxlan or udp)
	Backend string `json:"backend,omitempty"`
	// IptablesResyncSeconds sets resync period for iptables rules, in seconds
	IptablesResyncSeconds *int32 `json:"iptablesResyncSeconds,omitempty"`
}

FlannelNetworkingSpec declares that we want Flannel networking

func (*FlannelNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlannelNetworkingSpec.

func (*FlannelNetworkingSpec) DeepCopyInto

func (in *FlannelNetworkingSpec) DeepCopyInto(out *FlannelNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GCESpec added in v1.24.0

type GCESpec struct {
	// Project is the cloud project we should use.
	Project string `json:"project"`
	// ServiceAccount specifies the service account with which the GCE VM runs.
	ServiceAccount     string  `json:"serviceAccount,omitempty"`
	Multizone          *bool   `json:"multizone,omitempty"`
	NodeTags           *string `json:"nodeTags,omitempty"`
	NodeInstancePrefix *string `json:"nodeInstancePrefix,omitempty"`
	// PDCSIDriver is the config for the PD CSI driver.
	PDCSIDriver *PDCSIDriver `json:"pdCSIDriver,omitempty"`

	// BinariesLocation is the location of the GCE cloud provider binaries.
	BinariesLocation *string `json:"binariesLocation,omitempty"`
}

GCESpec configures the GCE cloud provider.

func (*GCESpec) DeepCopy added in v1.24.0

func (in *GCESpec) DeepCopy() *GCESpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCESpec.

func (*GCESpec) DeepCopyInto added in v1.24.0

func (in *GCESpec) DeepCopyInto(out *GCESpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GCPNetworkingSpec added in v1.28.0

type GCPNetworkingSpec struct{}

GCPNetworkingSpec is the specification of GCP's native networking mode, using IP aliases.

func (*GCPNetworkingSpec) DeepCopy added in v1.28.0

func (in *GCPNetworkingSpec) DeepCopy() *GCPNetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPNetworkingSpec.

func (*GCPNetworkingSpec) DeepCopyInto added in v1.28.0

func (in *GCPNetworkingSpec) DeepCopyInto(out *GCPNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GossipConfig added in v1.16.0

type GossipConfig struct {
	Protocol  *string                `json:"protocol,omitempty"`
	Listen    *string                `json:"listen,omitempty"`
	Secret    *string                `json:"secret,omitempty"`
	Secondary *GossipConfigSecondary `json:"secondary,omitempty"`
}

func (*GossipConfig) DeepCopy added in v1.16.0

func (in *GossipConfig) DeepCopy() *GossipConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GossipConfig.

func (*GossipConfig) DeepCopyInto added in v1.16.0

func (in *GossipConfig) DeepCopyInto(out *GossipConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GossipConfigSecondary added in v1.20.0

type GossipConfigSecondary struct {
	Protocol *string `json:"protocol,omitempty"`
	Listen   *string `json:"listen,omitempty"`
	Secret   *string `json:"secret,omitempty"`
}

func (*GossipConfigSecondary) DeepCopy added in v1.20.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GossipConfigSecondary.

func (*GossipConfigSecondary) DeepCopyInto added in v1.20.0

func (in *GossipConfigSecondary) DeepCopyInto(out *GossipConfigSecondary)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPProxy

type HTTPProxy struct {
	Host string `json:"host,omitempty"`
	Port int    `json:"port,omitempty"`
}

func (*HTTPProxy) DeepCopy

func (in *HTTPProxy) DeepCopy() *HTTPProxy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPProxy.

func (*HTTPProxy) DeepCopyInto

func (in *HTTPProxy) DeepCopyInto(out *HTTPProxy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HetznerSpec added in v1.24.0

type HetznerSpec struct{}

HetznerSpec configures the Hetzner cloud provider.

func (*HetznerSpec) DeepCopy added in v1.24.0

func (in *HetznerSpec) DeepCopy() *HetznerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HetznerSpec.

func (*HetznerSpec) DeepCopyInto added in v1.24.0

func (in *HetznerSpec) DeepCopyInto(out *HetznerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HookSpec

type HookSpec struct {
	// Name is an optional name for the hook, otherwise the name is kops-hook-<index>
	Name string `json:"name,omitempty"`
	// Enabled indicates if you want the unit switched on. Default: true
	Enabled *bool `json:"enabled,omitempty"`
	// Roles is an optional list of roles the hook should be rolled out to, defaults to all
	Roles []InstanceGroupRole `json:"roles,omitempty"`
	// Requires is a series of systemd units the action requires
	Requires []string `json:"requires,omitempty"`
	// Before is a series of systemd units which this hook must run before
	Before []string `json:"before,omitempty"`
	// ExecContainer is the image itself
	ExecContainer *ExecContainerAction `json:"execContainer,omitempty"`
	// Manifest is a raw systemd unit file
	Manifest string `json:"manifest,omitempty"`
	// UseRawManifest indicates that the contents of Manifest should be used as the contents
	// of the systemd unit, unmodified. Before and Requires are ignored when used together
	// with this value (and validation shouldn't allow them to be set)
	UseRawManifest bool `json:"useRawManifest,omitempty"`
}

HookSpec is a definition hook

func (*HookSpec) DeepCopy

func (in *HookSpec) DeepCopy() *HookSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HookSpec.

func (*HookSpec) DeepCopyInto

func (in *HookSpec) DeepCopyInto(out *HookSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HubbleSpec added in v1.19.0

type HubbleSpec struct {
	// Enabled decides if Hubble is enabled on the agent or not
	Enabled *bool `json:"enabled,omitempty"`

	// Metrics is a list of metrics to collect. If empty or null, metrics are disabled.
	// See https://docs.cilium.io/en/stable/configuration/metrics/#hubble-exported-metrics
	Metrics []string `json:"metrics,omitempty"`
}

HubbleSpec configures the Hubble service on the Cilium agent.

func (*HubbleSpec) DeepCopy added in v1.19.0

func (in *HubbleSpec) DeepCopy() *HubbleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HubbleSpec.

func (*HubbleSpec) DeepCopyInto added in v1.19.0

func (in *HubbleSpec) DeepCopyInto(out *HubbleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IAMProfileSpec

type IAMProfileSpec struct {
	// Profile is the AWS IAM Profile to attach to instances in this instance group.
	// Specify the ARN for the IAM instance profile. (AWS only)
	Profile *string `json:"profile,omitempty"`
}

IAMProfileSpec is the AWS IAM Profile to attach to instances in this instance group. Specify the ARN for the IAM instance profile (AWS only).

func (*IAMProfileSpec) DeepCopy

func (in *IAMProfileSpec) DeepCopy() *IAMProfileSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMProfileSpec.

func (*IAMProfileSpec) DeepCopyInto

func (in *IAMProfileSpec) DeepCopyInto(out *IAMProfileSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IAMSpec

type IAMSpec struct {
	Legacy                 bool    `json:"legacy"`
	AllowContainerRegistry bool    `json:"allowContainerRegistry,omitempty"`
	PermissionsBoundary    *string `json:"permissionsBoundary,omitempty"`
	// UseServiceAccountExternalPermissions determines if managed ServiceAccounts will use external permissions directly.
	// If this is set to false, ServiceAccounts will assume external permissions from the instances they run on.
	UseServiceAccountExternalPermissions *bool `json:"useServiceAccountExternalPermissions,omitempty"`
	// ServiceAccountExternalPermissions defines the relationship between Kubernetes ServiceAccounts and permissions with external resources.
	ServiceAccountExternalPermissions []ServiceAccountExternalPermission `json:"serviceAccountExternalPermissions,omitempty"`
}

IAMSpec adds control over the IAM security policies applied to resources

func (*IAMSpec) DeepCopy

func (in *IAMSpec) DeepCopy() *IAMSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMSpec.

func (*IAMSpec) DeepCopyInto

func (in *IAMSpec) DeepCopyInto(out *IAMSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceGroup

type InstanceGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec InstanceGroupSpec `json:"spec,omitempty"`
}

InstanceGroup represents a group of instances with the same configuration.

func (*InstanceGroup) AddInstanceGroupNodeLabel

func (g *InstanceGroup) AddInstanceGroupNodeLabel()

func (*InstanceGroup) DeepCopy

func (in *InstanceGroup) DeepCopy() *InstanceGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroup.

func (*InstanceGroup) DeepCopyInto

func (in *InstanceGroup) DeepCopyInto(out *InstanceGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceGroup) DeepCopyObject

func (in *InstanceGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*InstanceGroup) GetObjectKind

func (obj *InstanceGroup) GetObjectKind() schema.ObjectKind

func (*InstanceGroup) HasAPIServer added in v1.21.0

func (g *InstanceGroup) HasAPIServer() bool

hasAPIServer checks if instanceGroup runs an API Server

func (*InstanceGroup) IsAPIServerOnly added in v1.21.0

func (g *InstanceGroup) IsAPIServerOnly() bool

IsAPIServerOnly checks if instanceGroup runs only the API Server

func (*InstanceGroup) IsBastion

func (g *InstanceGroup) IsBastion() bool

IsBastion checks if instanceGroup is a bastion

func (*InstanceGroup) IsControlPlane added in v1.26.0

func (g *InstanceGroup) IsControlPlane() bool

IsControlPlane checks if instanceGroup is a control-plane node.

type InstanceGroupList

type InstanceGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []InstanceGroup `json:"items"`
}

InstanceGroupList is a list of instance groups

func (*InstanceGroupList) DeepCopy

func (in *InstanceGroupList) DeepCopy() *InstanceGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupList.

func (*InstanceGroupList) DeepCopyInto

func (in *InstanceGroupList) DeepCopyInto(out *InstanceGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceGroupList) DeepCopyObject

func (in *InstanceGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type InstanceGroupRole

type InstanceGroupRole string

InstanceGroupRole describes the roles of the nodes in this InstanceGroup.

const (
	// InstanceGroupRoleControlPlane is a control-plane role.
	InstanceGroupRoleControlPlane InstanceGroupRole = "ControlPlane"
	// InstanceGroupRoleNode is a node role.
	InstanceGroupRoleNode InstanceGroupRole = "Node"
	// InstanceGroupRoleBastion is a bastion role.
	InstanceGroupRoleBastion InstanceGroupRole = "Bastion"
	// InstanceGroupRoleAPIServer is an API server role.
	InstanceGroupRoleAPIServer InstanceGroupRole = "APIServer"
)

func ParseInstanceGroupRole

func ParseInstanceGroupRole(input string, lenient bool) (InstanceGroupRole, bool)

ParseInstanceGroupRole converts a string to an InstanceGroupRole.

If lenient is set to true, the function will match pluralised words too. It will return the instance group role and true if a match was found.

func (InstanceGroupRole) ToLowerString added in v1.26.0

func (r InstanceGroupRole) ToLowerString() string

type InstanceGroupSpec

type InstanceGroupSpec struct {
	// Manager determines what is managing the node lifecycle
	Manager InstanceManager `json:"manager,omitempty"`
	// Role determines the role of instances in this instance group.
	Role InstanceGroupRole `json:"role,omitempty"`
	// Image is the instance (ami etc) we should use
	Image string `json:"image,omitempty"`
	// MinSize is the minimum size of the pool
	MinSize *int32 `json:"minSize,omitempty"`
	// MaxSize is the maximum size of the pool
	MaxSize *int32 `json:"maxSize,omitempty"`
	// Autoscale determines if autoscaling will be enabled for this instance group if cluster autoscaler is enabled
	Autoscale *bool `json:"autoscale,omitempty"`
	// AutoscalePriority determines the InstanceGroup priority for scaling when cluster autoscaler uses the priority expander.
	AutoscalePriority int16 `json:"autoscalePriority,omitempty"`
	// MachineType is the instance class
	MachineType string `json:"machineType,omitempty"`
	// RootVolume specifies options for the instances' root volumes.
	RootVolume *InstanceRootVolumeSpec `json:"rootVolume,omitempty"`
	// Volumes is a collection of additional volumes to create for instances within this instance group
	Volumes []VolumeSpec `json:"volumes,omitempty"`
	// VolumeMounts a collection of volume mounts
	VolumeMounts []VolumeMountSpec `json:"volumeMounts,omitempty"`
	// Subnets is the names of the Subnets (as specified in the Cluster) where machines in this instance group should be placed
	Subnets []string `json:"subnets,omitempty"`
	// Zones is the names of the Zones where machines in this instance group should be placed
	// This is needed for regional subnets (e.g. GCE), to restrict placement to particular zones
	Zones []string `json:"zones,omitempty"`
	// Hooks is a list of hooks for this instance group, note: these can override the cluster wide ones if required
	Hooks []HookSpec `json:"hooks,omitempty"`
	// MaxPrice indicates this is a spot-pricing group, with the specified value as our max-price bid
	MaxPrice *string `json:"maxPrice,omitempty"`
	// SpotDurationInMinutes reserves a spot block for the period specified
	SpotDurationInMinutes *int64 `json:"spotDurationInMinutes,omitempty"`
	// CPUCredits is the credit option for CPU Usage on burstable instance types (AWS only)
	CPUCredits *string `json:"cpuCredits,omitempty"`
	// AssociatePublicIP is true if we want instances to have a public IP
	AssociatePublicIP *bool `json:"associatePublicIP,omitempty"`
	// AdditionalSecurityGroups attaches additional security groups (e.g. i-123456)
	AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`
	// CloudLabels defines additional tags or labels on cloud provider resources
	CloudLabels map[string]string `json:"cloudLabels,omitempty"`
	// NodeLabels indicates the kubernetes labels for nodes in this instance group
	NodeLabels map[string]string `json:"nodeLabels,omitempty"`
	// FileAssets is a collection of file assets for this instance group
	FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
	// Describes the tenancy of this instance group. Can be either default or dedicated. Currently only applies to AWS.
	Tenancy string `json:"tenancy,omitempty"`
	// Kubelet overrides kubelet config from the ClusterSpec
	Kubelet *KubeletConfigSpec `json:"kubelet,omitempty"`
	// Taints indicates the kubernetes taints for nodes in this instance group
	Taints []string `json:"taints,omitempty"`
	// MixedInstancesPolicy defined a optional backing of an AWS ASG by a EC2 Fleet (AWS Only)
	MixedInstancesPolicy *MixedInstancesPolicySpec `json:"mixedInstancesPolicy,omitempty"`
	// CapacityRebalance makes ASGs proactively replace spot instances when the ASG receives a rebalance recommendation (AWS Only).
	CapacityRebalance *bool `json:"capacityRebalance,omitempty"`
	// AdditionalUserData is any additional user-data to be passed to the host
	AdditionalUserData []UserData `json:"additionalUserData,omitempty"`
	// SuspendProcesses disables the listed Scaling Policies
	SuspendProcesses []string `json:"suspendProcesses,omitempty"`
	// ExternalLoadBalancers define loadbalancers that should be attached to this instance group
	ExternalLoadBalancers []LoadBalancerSpec `json:"externalLoadBalancers,omitempty"`
	// DetailedInstanceMonitoring defines if detailed-monitoring is enabled (AWS only)
	DetailedInstanceMonitoring *bool `json:"detailedInstanceMonitoring,omitempty"`
	// IAMProfileSpec defines the identity of the cloud group IAM profile (AWS only).
	IAM *IAMProfileSpec `json:"iam,omitempty"`
	// SecurityGroupOverride overrides the default security group created by Kops for this IG (AWS only).
	SecurityGroupOverride *string `json:"securityGroupOverride,omitempty"`
	// InstanceProtection makes new instances in an autoscaling group protected from scale in
	InstanceProtection *bool `json:"instanceProtection,omitempty"`
	// SysctlParameters will configure kernel parameters using sysctl(8). When
	// specified, each parameter must follow the form variable=value, the way
	// it would appear in sysctl.conf.
	SysctlParameters []string `json:"sysctlParameters,omitempty"`
	// RollingUpdate defines the rolling-update behavior
	RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"`
	// InstanceInterruptionBehavior defines if a spot instance should be terminated, hibernated,
	// or stopped after interruption
	InstanceInterruptionBehavior *string `json:"instanceInterruptionBehavior,omitempty"`
	// CompressUserData compresses parts of the user data to save space
	CompressUserData *bool `json:"compressUserData,omitempty"`
	// InstanceMetadata defines the EC2 instance metadata service options (AWS Only)
	InstanceMetadata *InstanceMetadataOptions `json:"instanceMetadata,omitempty"`
	// UpdatePolicy determines the policy for applying upgrades automatically.
	// If specified, this value overrides a value specified in the Cluster's "spec.updatePolicy" field.
	// Valid values:
	//   'automatic' (default): apply updates automatically (apply OS security upgrades, avoiding rebooting when possible)
	//   'external': do not apply updates automatically; they are applied manually or by an external system
	UpdatePolicy *string `json:"updatePolicy,omitempty"`
	// WarmPool specifies a pool of pre-warmed instances for later use (AWS only).
	WarmPool *WarmPoolSpec `json:"warmPool,omitempty"`
	// Containerd specifies override configuration for instance group
	Containerd *ContainerdConfig `json:"containerd,omitempty"`
	// Packages specifies additional packages to be installed.
	Packages []string `json:"packages,omitempty"`
	// GuestAccelerators configures additional accelerators
	GuestAccelerators []AcceleratorConfig `json:"guestAccelerators,omitempty"`
	// MaxInstanceLifetime to the maximum amount of time, in seconds, that an instance can be in service.
	// Value expected must be in form of duration ("ms", "s", "m", "h")
	MaxInstanceLifetime *metav1.Duration `json:"maxInstanceLifetime,omitempty"`
	// GCPProvisioningModel: Specifies the provisioning model of the GCP instance.
	// Valid values:
	//   'STANDARD': (default) standard provisioning with user controlled run time, no discounts
	//   'SPOT': heavily discounted, no guaranteed run time.
	GCPProvisioningModel *string `json:"gcpProvisioningModel,omitempty"`
}

InstanceGroupSpec is the specification for an InstanceGroup

func (*InstanceGroupSpec) DeepCopy

func (in *InstanceGroupSpec) DeepCopy() *InstanceGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupSpec.

func (*InstanceGroupSpec) DeepCopyInto

func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceManager added in v1.24.0

type InstanceManager string
const (
	InstanceManagerCloudGroup InstanceManager = "CloudGroup"
	InstanceManagerKarpenter  InstanceManager = "Karpenter"
)

type InstanceMetadataOptions added in v1.19.0

type InstanceMetadataOptions struct {
	// HTTPPutResponseHopLimit is the desired HTTP PUT response hop limit for instance metadata requests.
	// The larger the number, the further instance metadata requests can travel. The default value is 1.
	HTTPPutResponseHopLimit *int64 `json:"httpPutResponseHopLimit,omitempty"`
	// HTTPTokens is the state of token usage for the instance metadata requests.
	// If the parameter is not specified in the request, the default state is "required".
	HTTPTokens *string `json:"httpTokens,omitempty"`
}

InstanceMetadataOptions defines the EC2 instance metadata service options (AWS Only)

func (*InstanceMetadataOptions) DeepCopy added in v1.19.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceMetadataOptions.

func (*InstanceMetadataOptions) DeepCopyInto added in v1.19.0

func (in *InstanceMetadataOptions) DeepCopyInto(out *InstanceMetadataOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceRequirementsSpec added in v1.24.0

type InstanceRequirementsSpec struct {
	CPU    *MinMaxSpec `json:"cpu,omitempty"`
	Memory *MinMaxSpec `json:"memory,omitempty"`
}

InstanceRequirementsSpec is a list of requirements for any instance type we are willing to run in the EC2 fleet.

func (*InstanceRequirementsSpec) DeepCopy added in v1.24.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceRequirementsSpec.

func (*InstanceRequirementsSpec) DeepCopyInto added in v1.24.0

func (in *InstanceRequirementsSpec) DeepCopyInto(out *InstanceRequirementsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceRootVolumeSpec added in v1.27.0

type InstanceRootVolumeSpec struct {
	// Size is the size of the EBS root volume to use, in GB.
	Size *int32 `json:"size,omitempty"`
	// Type is the type of the EBS root volume to use (for example gp2).
	Type *string `json:"type,omitempty"`
	// IOPS is the provisioned IOPS when the volume type is io1, io2 or gp3 (AWS only).
	IOPS *int32 `json:"iops,omitempty"`
	// Throughput is the volume throughput in MBps when the volume type is gp3 (AWS only).
	Throughput *int32 `json:"throughput,omitempty"`
	// Optimization enables EBS optimization for an instance.
	Optimization *bool `json:"optimization,omitempty"`
	// Encryption enables EBS root volume encryption for an instance.
	Encryption *bool `json:"encryption,omitempty"`
	// EncryptionKey provides the key identifier for root volume encryption.
	EncryptionKey *string `json:"encryptionKey,omitempty"`
}

InstanceRootVolumeSpec specifies options for an instance's root volume.

func (*InstanceRootVolumeSpec) DeepCopy added in v1.27.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceRootVolumeSpec.

func (*InstanceRootVolumeSpec) DeepCopyInto added in v1.27.0

func (in *InstanceRootVolumeSpec) DeepCopyInto(out *InstanceRootVolumeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KarpenterConfig added in v1.24.0

type KarpenterConfig struct {
	Enabled       bool               `json:"enabled,omitempty"`
	LogEncoding   string             `json:"logFormat,omitempty"`
	LogLevel      string             `json:"logLevel,omitempty"`
	Image         string             `json:"image,omitempty"`
	MemoryLimit   *resource.Quantity `json:"memoryLimit,omitempty"`
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	CPURequest    *resource.Quantity `json:"cpuRequest,omitempty"`
}

func (*KarpenterConfig) DeepCopy added in v1.24.0

func (in *KarpenterConfig) DeepCopy() *KarpenterConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KarpenterConfig.

func (*KarpenterConfig) DeepCopyInto added in v1.24.0

func (in *KarpenterConfig) DeepCopyInto(out *KarpenterConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Keyset

type Keyset struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec KeysetSpec `json:"spec,omitempty"`
}

Keyset is a set of system keypairs, or other secret material. It is a set to support credential rotation etc.

func (*Keyset) DeepCopy

func (in *Keyset) DeepCopy() *Keyset

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Keyset.

func (*Keyset) DeepCopyInto

func (in *Keyset) DeepCopyInto(out *Keyset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Keyset) DeepCopyObject

func (in *Keyset) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Keyset) GetObjectKind

func (obj *Keyset) GetObjectKind() schema.ObjectKind

type KeysetItem

type KeysetItem struct {
	// Id is the unique identifier for this key in the keyset
	Id string `json:"id,omitempty"`

	// DistrustTimestamp is RFC 3339 date and time at which this keypair was distrusted.
	// If not set, keypair is trusted or is not a keypair.
	DistrustTimestamp *metav1.Time `json:"distrustTimestamp,omitempty"`

	// PublicMaterial holds non-secret material (e.g. a certificate)
	PublicMaterial []byte `json:"publicMaterial,omitempty"`

	// PrivateMaterial holds secret material (e.g. a private key, or symmetric token)
	PrivateMaterial []byte `json:"privateMaterial,omitempty"`
}

KeysetItem is an item (keypair or other secret material) in a Keyset

func (*KeysetItem) DeepCopy

func (in *KeysetItem) DeepCopy() *KeysetItem

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeysetItem.

func (*KeysetItem) DeepCopyInto

func (in *KeysetItem) DeepCopyInto(out *KeysetItem)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeysetList

type KeysetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Keyset `json:"items"`
}

KeysetList is a list of Keysets

func (*KeysetList) DeepCopy

func (in *KeysetList) DeepCopy() *KeysetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeysetList.

func (*KeysetList) DeepCopyInto

func (in *KeysetList) DeepCopyInto(out *KeysetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeysetList) DeepCopyObject

func (in *KeysetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeysetSpec

type KeysetSpec struct {
	// Type is the type of the Keyset (PKI keypair, or secret token)
	Type KeysetType `json:"type,omitempty"`

	// PrimaryID is the id of the key used to make new signatures.
	PrimaryID string `json:"primaryID,omitempty"`

	// Keys is the set of keys that make up the keyset
	Keys []KeysetItem `json:"keys,omitempty"`
}

KeysetSpec is the spec for a Keyset

func (*KeysetSpec) DeepCopy

func (in *KeysetSpec) DeepCopy() *KeysetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeysetSpec.

func (*KeysetSpec) DeepCopyInto

func (in *KeysetSpec) DeepCopyInto(out *KeysetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeysetType

type KeysetType string

KeysetType describes the type of keys in a KeySet

const (
	SecretTypeKeypair KeysetType = "Keypair"
	SecretTypeSecret  KeysetType = "Secret"
)

type KopeioAuthenticationSpec

type KopeioAuthenticationSpec struct{}

func (*KopeioAuthenticationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KopeioAuthenticationSpec.

func (*KopeioAuthenticationSpec) DeepCopyInto

func (in *KopeioAuthenticationSpec) DeepCopyInto(out *KopeioAuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KopeioNetworkingSpec

type KopeioNetworkingSpec struct{}

KopeioNetworkingSpec declares that we want Kopeio networking

func (*KopeioNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KopeioNetworkingSpec.

func (*KopeioNetworkingSpec) DeepCopyInto

func (in *KopeioNetworkingSpec) DeepCopyInto(out *KopeioNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KopsVersionSpec

type KopsVersionSpec struct {
	Range string `json:"range,omitempty"`

	// RecommendedVersion is the recommended version of kops to use for this Range of kops versions
	RecommendedVersion string `json:"recommendedVersion,omitempty"`

	// RequiredVersion is the required version of kops to use for this Range of kops versions, forcing an upgrade
	RequiredVersion string `json:"requiredVersion,omitempty"`

	// KubernetesVersion is the default version of kubernetes to use with this kops version e.g. for new clusters
	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
}

func FindKopsVersionSpec

func FindKopsVersionSpec(versions []KopsVersionSpec, version semver.Version) *KopsVersionSpec

FindKopsVersionSpec returns a KopsVersionSpec for the current version

func (*KopsVersionSpec) DeepCopy

func (in *KopsVersionSpec) DeepCopy() *KopsVersionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KopsVersionSpec.

func (*KopsVersionSpec) DeepCopyInto

func (in *KopsVersionSpec) DeepCopyInto(out *KopsVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KopsVersionSpec) FindRecommendedUpgrade

func (v *KopsVersionSpec) FindRecommendedUpgrade(version semver.Version) (*semver.Version, error)

FindRecommendedUpgrade returns a string with a new version, if the current version is out of date

func (*KopsVersionSpec) IsUpgradeRequired

func (v *KopsVersionSpec) IsUpgradeRequired(version semver.Version) (bool, error)

IsUpgradeRequired returns true if the current version is not acceptable

type KubeAPIServerConfig

type KubeAPIServerConfig struct {
	// Image is the container image used.
	Image string `json:"image,omitempty"`
	// DisableBasicAuth removes the --basic-auth-file flag
	DisableBasicAuth *bool `json:"disableBasicAuth,omitempty"`
	// LogFormat is the logging format of the api.
	// Supported values: text, json.
	// Default: text
	LogFormat string `json:"logFormat,omitempty" flag:"logging-format" flag-empty:"text"`
	// LogLevel is the logging level of the api
	LogLevel int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// CloudProvider is the name of the cloudProvider we are using, aws, gce etcd
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// SecurePort is the port the kube runs on
	SecurePort int32 `json:"securePort,omitempty" flag:"secure-port"`
	// InsecurePort is the port the insecure api runs
	InsecurePort *int32 `json:"insecurePort,omitempty" flag:"insecure-port"`
	// Address is the binding address for the kube api: Deprecated - use insecure-bind-address and bind-address
	Address string `json:"address,omitempty" flag:"address"`
	// AdvertiseAddress is the IP address on which to advertise the apiserver to members of the cluster.
	AdvertiseAddress string `json:"advertiseAddress,omitempty" flag:"advertise-address"`
	// BindAddress is the binding address for the secure kubernetes API
	BindAddress string `json:"bindAddress,omitempty" flag:"bind-address"`
	// InsecureBindAddress is the binding address for the InsecurePort for the insecure kubernetes API
	InsecureBindAddress string `json:"insecureBindAddress,omitempty" flag:"insecure-bind-address"`
	// EnableBootstrapAuthToken enables 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to be used for TLS bootstrapping authentication
	EnableBootstrapAuthToken *bool `json:"enableBootstrapTokenAuth,omitempty" flag:"enable-bootstrap-token-auth"`
	// EnableAggregatorRouting enables aggregator routing requests to endpoints IP rather than cluster IP
	EnableAggregatorRouting *bool `json:"enableAggregatorRouting,omitempty" flag:"enable-aggregator-routing"`
	// AdmissionControl is a list of admission controllers to use: Deprecated - use enable-admission-plugins instead
	AdmissionControl []string `json:"admissionControl,omitempty" flag:"admission-control"`
	// AppendAdmissionPlugins appends list of enabled admission plugins
	AppendAdmissionPlugins []string `json:"appendAdmissionPlugins,omitempty"`
	// EnableAdmissionPlugins is a list of enabled admission plugins
	EnableAdmissionPlugins []string `json:"enableAdmissionPlugins,omitempty" flag:"enable-admission-plugins"`
	// DisableAdmissionPlugins is a list of disabled admission plugins
	DisableAdmissionPlugins []string `json:"disableAdmissionPlugins,omitempty" flag:"disable-admission-plugins"`
	// AdmissionControlConfigFile is the location of the admission-control-config-file
	AdmissionControlConfigFile string `json:"admissionControlConfigFile,omitempty" flag:"admission-control-config-file"`
	// ServiceClusterIPRange is the service address range
	ServiceClusterIPRange string `json:"serviceClusterIPRange,omitempty" flag:"service-cluster-ip-range"`
	// Passed as --service-node-port-range to kube-apiserver. Expects 'startPort-endPort' format e.g. 30000-33000
	ServiceNodePortRange string `json:"serviceNodePortRange,omitempty" flag:"service-node-port-range"`
	// EtcdServers is a list of the etcd service to connect
	EtcdServers []string `json:"etcdServers,omitempty" flag:"etcd-servers"`
	// EtcdServersOverrides is per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated
	EtcdServersOverrides []string `json:"etcdServersOverrides,omitempty" flag:"etcd-servers-overrides"`
	// EtcdCAFile is the path to a ca certificate
	EtcdCAFile string `json:"etcdCAFile,omitempty" flag:"etcd-cafile"`
	// EtcdCertFile is the path to a certificate
	EtcdCertFile string `json:"etcdCertFile,omitempty" flag:"etcd-certfile"`
	// EtcdKeyFile is the path to a private key
	EtcdKeyFile string `json:"etcdKeyFile,omitempty" flag:"etcd-keyfile"`
	// TODO: Remove unused BasicAuthFile
	BasicAuthFile string `json:"basicAuthFile,omitempty" flag:"basic-auth-file"`
	// ClientCAFile is the file used by apisever that contains the client CA
	ClientCAFile string `json:"clientCAFile,omitempty" flag:"client-ca-file"`
	// TODO: Remove unused TLSCertFile
	TLSCertFile string `json:"tlsCertFile,omitempty" flag:"tls-cert-file"`
	// TODO: Remove unused TLSPrivateKeyFile
	TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty" flag:"tls-private-key-file"`
	// TLSCipherSuites indicates the allowed TLS cipher suite
	TLSCipherSuites []string `json:"tlsCipherSuites,omitempty" flag:"tls-cipher-suites"`
	// TLSMinVersion indicates the minimum TLS version allowed
	TLSMinVersion string `json:"tlsMinVersion,omitempty" flag:"tls-min-version"`
	// TODO: Remove unused TokenAuthFile
	TokenAuthFile string `json:"tokenAuthFile,omitempty" flag:"token-auth-file"`
	// AllowPrivileged indicates if we can run privileged containers
	AllowPrivileged *bool `json:"allowPrivileged,omitempty" flag:"allow-privileged"`
	// APIServerCount is the number of api servers
	APIServerCount *int32 `json:"apiServerCount,omitempty" flag:"apiserver-count"`
	// RuntimeConfig is a series of keys/values are parsed into the `--runtime-config` parameters
	RuntimeConfig map[string]string `json:"runtimeConfig,omitempty" flag:"runtime-config"`
	// KubeletClientCertificate is the path of a certificate for secure communication between api and kubelet
	KubeletClientCertificate string `json:"kubeletClientCertificate,omitempty" flag:"kubelet-client-certificate"`
	// KubeletCertificateAuthority is the path of a certificate authority for secure communication between api and kubelet.
	KubeletCertificateAuthority string `json:"kubeletCertificateAuthority,omitempty" flag:"kubelet-certificate-authority"`
	// KubeletClientKey is the path of a private to secure communication between api and kubelet
	KubeletClientKey string `json:"kubeletClientKey,omitempty" flag:"kubelet-client-key"`
	// AnonymousAuth indicates if anonymous authentication is permitted
	AnonymousAuth *bool `json:"anonymousAuth,omitempty" flag:"anonymous-auth"`
	// KubeletPreferredAddressTypes is a list of the preferred NodeAddressTypes to use for kubelet connections
	KubeletPreferredAddressTypes []string `json:"kubeletPreferredAddressTypes,omitempty" flag:"kubelet-preferred-address-types"`
	// StorageBackend is the backend storage
	StorageBackend *string `json:"storageBackend,omitempty" flag:"storage-backend"`
	// OIDCUsernameClaim is the OpenID claim to use as the user name.
	// Note that claims other than the default ('sub') is not guaranteed to be
	// unique and immutable.
	OIDCUsernameClaim *string `json:"-" flag:"oidc-username-claim"`
	// OIDCUsernamePrefix is the prefix prepended to username claims to prevent
	// clashes with existing names (such as 'system:' users).
	OIDCUsernamePrefix *string `json:"-" flag:"oidc-username-prefix"`
	// OIDCGroupsClaim if provided, the name of a custom OpenID Connect claim for
	// specifying user groups.
	// The claim value is expected to be a string or array of strings.
	OIDCGroupsClaim *string `json:"-" flag:"oidc-groups-claim"`
	// OIDCGroupsPrefix is the prefix prepended to group claims to prevent
	// clashes with existing names (such as 'system:' groups)
	OIDCGroupsPrefix *string `json:"-" flag:"oidc-groups-prefix"`
	// OIDCIssuerURL is the URL of the OpenID issuer, only HTTPS scheme will
	// be accepted.
	// If set, it will be used to verify the OIDC JSON Web Token (JWT).
	OIDCIssuerURL *string `json:"-" flag:"oidc-issuer-url"`
	// OIDCClientID is the client ID for the OpenID Connect client, must be set
	// if oidc-issuer-url is set.
	OIDCClientID *string `json:"-" flag:"oidc-client-id"`
	// A key=value pair that describes a required claim in the ID Token.
	// If set, the claim is verified to be present in the ID Token with a matching value.
	// Repeat this flag to specify multiple claims.
	OIDCRequiredClaim []string `json:"-" flag:"oidc-required-claim,repeat"`
	// OIDCCAFile if set, the OpenID server's certificate will be verified by one
	// of the authorities in the oidc-ca-file
	OIDCCAFile *string `json:"oidcCAFile,omitempty" flag:"oidc-ca-file"`
	// AuthenticationConfigFile is the location of the authentication-config
	// this option is mutually exclusive with all OIDC options
	AuthenticationConfigFile string `json:"authenticationConfigFile,omitempty" flag:"authentication-config"`
	// The apiserver's client certificate used for outbound requests.
	ProxyClientCertFile *string `json:"proxyClientCertFile,omitempty" flag:"proxy-client-cert-file"`
	// The apiserver's client key used for outbound requests.
	ProxyClientKeyFile *string `json:"proxyClientKeyFile,omitempty" flag:"proxy-client-key-file"`
	// AuditLogFormat flag specifies the format type for audit log files.
	AuditLogFormat *string `json:"auditLogFormat,omitempty" flag:"audit-log-format"`
	// If set, all requests coming to the apiserver will be logged to this file.
	AuditLogPath *string `json:"auditLogPath,omitempty" flag:"audit-log-path"`
	// The maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
	AuditLogMaxAge *int32 `json:"auditLogMaxAge,omitempty" flag:"audit-log-maxage"`
	// The maximum number of old audit log files to retain.
	AuditLogMaxBackups *int32 `json:"auditLogMaxBackups,omitempty" flag:"audit-log-maxbackup"`
	// The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB.
	AuditLogMaxSize *int32 `json:"auditLogMaxSize,omitempty" flag:"audit-log-maxsize"`
	// AuditPolicyFile is the full path to a advanced audit configuration file e.g. /srv/kubernetes/audit.conf
	AuditPolicyFile string `json:"auditPolicyFile,omitempty" flag:"audit-policy-file"`
	// AuditWebhookBatchBufferSize is The size of the buffer to store events before batching and writing. Only used in batch mode. (default 10000)
	AuditWebhookBatchBufferSize *int32 `json:"auditWebhookBatchBufferSize,omitempty" flag:"audit-webhook-batch-buffer-size"`
	// AuditWebhookBatchMaxSize is The maximum size of a batch. Only used in batch mode. (default 400)
	AuditWebhookBatchMaxSize *int32 `json:"auditWebhookBatchMaxSize,omitempty" flag:"audit-webhook-batch-max-size"`
	// AuditWebhookBatchMaxWait is The amount of time to wait before force writing the batch that hadn't reached the max size. Only used in batch mode. (default 30s)
	AuditWebhookBatchMaxWait *metav1.Duration `json:"auditWebhookBatchMaxWait,omitempty" flag:"audit-webhook-batch-max-wait"`
	// AuditWebhookBatchThrottleBurst is Maximum number of requests sent at the same moment if ThrottleQPS was not utilized before. Only used in batch mode. (default 15)
	AuditWebhookBatchThrottleBurst *int32 `json:"auditWebhookBatchThrottleBurst,omitempty" flag:"audit-webhook-batch-throttle-burst"`
	// AuditWebhookBatchThrottleEnable is Whether batching throttling is enabled. Only used in batch mode. (default true)
	AuditWebhookBatchThrottleEnable *bool `json:"auditWebhookBatchThrottleEnable,omitempty" flag:"audit-webhook-batch-throttle-enable"`
	// AuditWebhookBatchThrottleQps is Maximum average number of batches per second. Only used in batch mode. (default 10)
	AuditWebhookBatchThrottleQps *resource.Quantity `json:"auditWebhookBatchThrottleQps,omitempty" flag:"audit-webhook-batch-throttle-qps"`
	// AuditWebhookConfigFile is Path to a kubeconfig formatted file that defines the audit webhook configuration. Requires the 'AdvancedAuditing' feature gate.
	AuditWebhookConfigFile string `json:"auditWebhookConfigFile,omitempty" flag:"audit-webhook-config-file"`
	// AuditWebhookInitialBackoff is The amount of time to wait before retrying the first failed request. (default 10s)
	AuditWebhookInitialBackoff *metav1.Duration `json:"auditWebhookInitialBackoff,omitempty" flag:"audit-webhook-initial-backoff"`
	// AuditWebhookMode is Strategy for sending audit events. Blocking indicates sending events should block server responses. Batch causes the backend to buffer and write events asynchronously. Known modes are batch,blocking. (default "batch")
	AuditWebhookMode string `json:"auditWebhookMode,omitempty" flag:"audit-webhook-mode"`
	// File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens.
	AuthenticationTokenWebhookConfigFile *string `json:"authenticationTokenWebhookConfigFile,omitempty" flag:"authentication-token-webhook-config-file"`
	// The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s)
	AuthenticationTokenWebhookCacheTTL *metav1.Duration `json:"authenticationTokenWebhookCacheTtl,omitempty" flag:"authentication-token-webhook-cache-ttl"`
	// AuthorizationMode is the authorization mode the kubeapi is running in
	AuthorizationMode *string `json:"authorizationMode,omitempty" flag:"authorization-mode"`
	// File with webhook configuration for authorization in kubeconfig format. The API server will query the remote service to determine whether to authorize the request.
	AuthorizationWebhookConfigFile *string `json:"authorizationWebhookConfigFile,omitempty" flag:"authorization-webhook-config-file"`
	// The duration to cache authorized responses from the webhook token authorizer. Default is 5m. (default 5m0s)
	AuthorizationWebhookCacheAuthorizedTTL *metav1.Duration `json:"authorizationWebhookCacheAuthorizedTTL,omitempty" flag:"authorization-webhook-cache-authorized-ttl"`
	// The duration to cache authorized responses from the webhook token authorizer. Default is 30s. (default 30s)
	AuthorizationWebhookCacheUnauthorizedTTL *metav1.Duration `json:"authorizationWebhookCacheUnauthorizedTTL,omitempty" flag:"authorization-webhook-cache-unauthorized-ttl"`
	// AuthorizationRBACSuperUser is the name of the superuser for default rbac
	AuthorizationRBACSuperUser *string `json:"authorizationRBACSuperUser,omitempty" flag:"authorization-rbac-super-user"`
	// EncryptionProviderConfig enables encryption at rest for secrets.
	EncryptionProviderConfig *string `json:"encryptionProviderConfig,omitempty" flag:"encryption-provider-config"`
	// ExperimentalEncryptionProviderConfig enables encryption at rest for secrets.
	ExperimentalEncryptionProviderConfig *string `json:"experimentalEncryptionProviderConfig,omitempty" flag:"experimental-encryption-provider-config"`

	// List of request headers to inspect for usernames. X-Remote-User is common.
	RequestheaderUsernameHeaders []string `json:"requestheaderUsernameHeaders,omitempty" flag:"requestheader-username-headers"`
	// List of request headers to inspect for groups. X-Remote-Group is suggested.
	RequestheaderGroupHeaders []string `json:"requestheaderGroupHeaders,omitempty" flag:"requestheader-group-headers"`
	// List of request header prefixes to inspect. X-Remote-Extra- is suggested.
	RequestheaderExtraHeaderPrefixes []string `json:"requestheaderExtraHeaderPrefixes,omitempty" flag:"requestheader-extra-headers-prefix"`
	// Root certificate bundle to use to verify client certificates on incoming requests before trusting usernames in headers specified by --requestheader-username-headers
	RequestheaderClientCAFile string `json:"requestheaderClientCAFile,omitempty" flag:"requestheader-client-ca-file"`
	// List of client certificate common names to allow to provide usernames in headers specified by --requestheader-username-headers. If empty, any client certificate validated by the authorities in --requestheader-client-ca-file is allowed.
	RequestheaderAllowedNames []string `json:"requestheaderAllowedNames,omitempty" flag:"requestheader-allowed-names"`
	// FeatureGates is set of key=value pairs that describe feature gates for alpha/experimental features.
	FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
	// MaxRequestsInflight The maximum number of non-mutating requests in flight at a given time.
	MaxRequestsInflight int32 `json:"maxRequestsInflight,omitempty" flag:"max-requests-inflight" flag-empty:"0"`
	// MaxMutatingRequestsInflight The maximum number of mutating requests in flight at a given time. Defaults to 200
	MaxMutatingRequestsInflight int32 `json:"maxMutatingRequestsInflight,omitempty" flag:"max-mutating-requests-inflight" flag-empty:"0"`

	// HTTP2MaxStreamsPerConnection sets the limit that the server gives to clients for the maximum number of streams in an HTTP/2 connection. Zero means to use golang's default.
	HTTP2MaxStreamsPerConnection *int32 `json:"http2MaxStreamsPerConnection,omitempty" flag:"http2-max-streams-per-connection"`

	// EtcdQuorumRead configures the etcd-quorum-read flag, which forces consistent reads from etcd
	EtcdQuorumRead *bool `json:"etcdQuorumRead,omitempty" flag:"etcd-quorum-read"`

	// RequestTimeout configures the duration a handler must keep a request open before timing it out. (default 1m0s)
	RequestTimeout *metav1.Duration `json:"requestTimeout,omitempty" flag:"request-timeout"`

	// MinRequestTimeout configures the minimum number of seconds a handler must keep a request open before timing it out.
	// Currently only honored by the watch request handler
	MinRequestTimeout *int32 `json:"minRequestTimeout,omitempty" flag:"min-request-timeout"`

	// Memory limit for apiserver in MB (used to configure sizes of caches, etc.)
	TargetRamMB int32 `json:"targetRamMB,omitempty" flag:"target-ram-mb" flag-empty:"0"`

	// File containing PEM-encoded x509 RSA or ECDSA private or public keys, used to verify ServiceAccount tokens.
	// The specified file can contain multiple keys, and the flag can be specified multiple times with different files.
	// If unspecified, --tls-private-key-file is used.
	ServiceAccountKeyFile []string `json:"serviceAccountKeyFile,omitempty" flag:"service-account-key-file,repeat"`

	// Path to the file that contains the current private key of the service account token issuer.
	// The issuer will sign issued ID tokens with this private key. (Requires the 'TokenRequest' feature gate.)
	ServiceAccountSigningKeyFile *string `json:"serviceAccountSigningKeyFile,omitempty" flag:"service-account-signing-key-file"`

	// Identifier of the service account token issuer. The issuer will assert this identifier
	// in "iss" claim of issued tokens. This value is a string or URI.
	ServiceAccountIssuer *string `json:"serviceAccountIssuer,omitempty" flag:"service-account-issuer"`

	// AdditionalServiceAccountIssuers can contain additional service account token issuers.
	AdditionalServiceAccountIssuers []string `json:"additionalServiceAccountIssuers,omitempty"`

	// ServiceAccountJWKSURI overrides the path for the jwks document; this is useful when we are republishing the service account discovery information elsewhere.
	ServiceAccountJWKSURI *string `json:"serviceAccountJWKSURI,omitempty" flag:"service-account-jwks-uri"`

	// Identifiers of the API. The service account token authenticator will validate that
	// tokens used against the API are bound to at least one of these audiences. If the
	// --service-account-issuer flag is configured and this flag is not, this field
	// defaults to a single element list containing the issuer URL.
	APIAudiences []string `json:"apiAudiences,omitempty" flag:"api-audiences"`

	// CPURequest, cpu request compute resource for api server. Defaults to "150m"
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// CPULimit, cpu limit compute resource for api server e.g. "500m"
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
	// MemoryRequest, memory request compute resource for api server e.g. "30Mi"
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// MemoryLimit, memory limit compute resource for api server e.g. "30Mi"
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`

	// Amount of time to retain Kubernetes events
	EventTTL *metav1.Duration `json:"eventTTL,omitempty" flag:"event-ttl"`

	// AuditDynamicConfiguration enables dynamic audit configuration via AuditSinks
	AuditDynamicConfiguration *bool `json:"auditDynamicConfiguration,omitempty" flag:"audit-dynamic-configuration"`

	// EnableProfiling enables profiling via web interface host:port/debug/pprof/
	EnableProfiling *bool `json:"enableProfiling,omitempty" flag:"profiling"`
	// EnableContentionProfiling enables block profiling, if profiling is enabled
	EnableContentionProfiling *bool `json:"enableContentionProfiling,omitempty" flag:"contention-profiling"`

	// CorsAllowedOrigins is a list of origins for CORS. An allowed origin can be a regular
	// expression to support subdomain matching. If this list is empty CORS will not be enabled.
	CorsAllowedOrigins []string `json:"corsAllowedOrigins,omitempty" flag:"cors-allowed-origins"`

	// DefaultNotReadyTolerationSeconds indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.
	DefaultNotReadyTolerationSeconds *int64 `json:"defaultNotReadyTolerationSeconds,omitempty" flag:"default-not-ready-toleration-seconds"`
	// DefaultUnreachableTolerationSeconds indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.
	DefaultUnreachableTolerationSeconds *int64 `json:"defaultUnreachableTolerationSeconds,omitempty" flag:"default-unreachable-toleration-seconds"`
}

KubeAPIServerConfig defines the configuration for the kube api

func (*KubeAPIServerConfig) DeepCopy

func (in *KubeAPIServerConfig) DeepCopy() *KubeAPIServerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeAPIServerConfig.

func (*KubeAPIServerConfig) DeepCopyInto

func (in *KubeAPIServerConfig) DeepCopyInto(out *KubeAPIServerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubeAPIServerConfig) HasAdmissionController

func (c *KubeAPIServerConfig) HasAdmissionController(name string) bool

HasAdmissionController checks if a specific admission controller is enabled

type KubeControllerManagerConfig

type KubeControllerManagerConfig struct {
	// Master is the url for the kube api master
	Master string `json:"master,omitempty" flag:"master"`
	// LogFormat is the logging format of the controler manager.
	// Supported values: text, json.
	// Default: text
	LogFormat string `json:"logFormat,omitempty" flag:"logging-format" flag-empty:"text"`
	// LogLevel is the defined logLevel
	LogLevel int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// ServiceAccountPrivateKeyFile is the location of the private key for service account token signing.
	ServiceAccountPrivateKeyFile string `json:"serviceAccountPrivateKeyFile,omitempty" flag:"service-account-private-key-file"`
	// Image is the container image to use.
	Image string `json:"image,omitempty"`
	// CloudProvider is the provider for cloud services.
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// ClusterName is the instance prefix for the cluster.
	ClusterName string `json:"clusterName,omitempty" flag:"cluster-name"`
	// ClusterCIDR is CIDR Range for Pods in cluster.
	ClusterCIDR string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"`
	// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if ConfigureCloudRoutes is true, to be set on the cloud provider.
	AllocateNodeCIDRs *bool `json:"allocateNodeCIDRs,omitempty" flag:"allocate-node-cidrs"`
	// NodeCIDRMaskSize set the size for the mask of the nodes.
	NodeCIDRMaskSize *int32 `json:"nodeCIDRMaskSize,omitempty" flag:"node-cidr-mask-size"`
	// ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.
	ConfigureCloudRoutes *bool `json:"configureCloudRoutes,omitempty" flag:"configure-cloud-routes"`
	// Controllers is a list of controllers to enable on the controller-manager
	Controllers []string `json:"controllers,omitempty" flag:"controllers"`
	// CIDRAllocatorType specifies the type of CIDR allocator to use.
	CIDRAllocatorType *string `json:"cidrAllocatorType,omitempty" flag:"cidr-allocator-type"`
	// rootCAFile is the root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.
	RootCAFile string `json:"rootCAFile,omitempty" flag:"root-ca-file"`
	// LeaderElection defines the configuration of leader election client.
	LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"`
	// AttachDetachReconcileSyncPeriod is the amount of time the reconciler sync states loop
	// wait between successive executions. Is set to 1 min by kops by default
	AttachDetachReconcileSyncPeriod *metav1.Duration `json:"attachDetachReconcileSyncPeriod,omitempty" flag:"attach-detach-reconcile-sync-period"`
	// DisableAttachDetachReconcileSync disables the reconcile sync loop in the attach-detach controller.
	// This can cause volumes to become mismatched with pods
	DisableAttachDetachReconcileSync *bool `json:"disableAttachDetachReconcileSync,omitempty" flag:"disable-attach-detach-reconcile-sync"`
	// TerminatedPodGCThreshold is the number of terminated pods that can exist
	// before the terminated pod garbage collector starts deleting terminated pods.
	// If <= 0, the terminated pod garbage collector is disabled.
	TerminatedPodGCThreshold *int32 `json:"terminatedPodGCThreshold,omitempty" flag:"terminated-pod-gc-threshold"`
	// NodeMonitorPeriod is the period for syncing NodeStatus in NodeController. (default 5s)
	NodeMonitorPeriod *metav1.Duration `json:"nodeMonitorPeriod,omitempty" flag:"node-monitor-period"`
	// NodeMonitorGracePeriod is the amount of time which we allow running Node to be unresponsive before marking it unhealthy. (default 40s)
	// Must be N-1 times more than kubelet's nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet to post node status.
	NodeMonitorGracePeriod *metav1.Duration `json:"nodeMonitorGracePeriod,omitempty" flag:"node-monitor-grace-period"`
	// PodEvictionTimeout is the grace period for deleting pods on failed nodes. (default 5m0s)
	PodEvictionTimeout *metav1.Duration `json:"podEvictionTimeout,omitempty" flag:"pod-eviction-timeout"`
	// UseServiceAccountCredentials controls whether we use individual service account credentials for each controller.
	UseServiceAccountCredentials *bool `json:"useServiceAccountCredentials,omitempty" flag:"use-service-account-credentials"`
	// HorizontalPodAutoscalerSyncPeriod is the amount of time between syncs
	// During each period, the controller manager queries the resource utilization
	// against the metrics specified in each HorizontalPodAutoscaler definition.
	HorizontalPodAutoscalerSyncPeriod *metav1.Duration `json:"horizontalPodAutoscalerSyncPeriod,omitempty" flag:"horizontal-pod-autoscaler-sync-period"`
	// HorizontalPodAutoscalerDownscaleDelay is a duration that specifies
	// how long the autoscaler has to wait before another downscale
	// operation can be performed after the current one has completed.
	HorizontalPodAutoscalerDownscaleDelay *metav1.Duration `json:"horizontalPodAutoscalerDownscaleDelay,omitempty" flag:"horizontal-pod-autoscaler-downscale-delay"`
	// HorizontalPodAutoscalerDownscaleStabilization is the period for which
	// autoscaler will look backwards and not scale down below any
	// recommendation it made during that period.
	HorizontalPodAutoscalerDownscaleStabilization *metav1.Duration `json:"horizontalPodAutoscalerDownscaleStabilization,omitempty" flag:"horizontal-pod-autoscaler-downscale-stabilization"`
	// HorizontalPodAutoscalerUpscaleDelay is a duration that specifies how
	// long the autoscaler has to wait before another upscale operation can
	// be performed after the current one has completed.
	HorizontalPodAutoscalerUpscaleDelay *metav1.Duration `json:"horizontalPodAutoscalerUpscaleDelay,omitempty" flag:"horizontal-pod-autoscaler-upscale-delay"`
	// HorizontalPodAutoscalerInitialReadinessDelay is the period after pod start
	// during which readiness changes will be treated as initial readiness. (default 30s)
	HorizontalPodAutoscalerInitialReadinessDelay *metav1.Duration `json:"horizontalPodAutoscalerInitialReadinessDelay,omitempty" flag:"horizontal-pod-autoscaler-initial-readiness-delay"`
	// HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start
	// when CPU samples might be skipped. (default 5m)
	HorizontalPodAutoscalerCPUInitializationPeriod *metav1.Duration `json:"horizontalPodAutoscalerCpuInitializationPeriod,omitempty" flag:"horizontal-pod-autoscaler-cpu-initialization-period"`
	// HorizontalPodAutoscalerTolerance is the minimum change (from 1.0) in the
	// desired-to-actual metrics ratio for the horizontal pod autoscaler to
	// consider scaling.
	HorizontalPodAutoscalerTolerance *resource.Quantity `json:"horizontalPodAutoscalerTolerance,omitempty" flag:"horizontal-pod-autoscaler-tolerance"`
	// HorizontalPodAutoscalerUseRestClients determines if the new-style clients
	// should be used if support for custom metrics is enabled.
	HorizontalPodAutoscalerUseRestClients *bool `json:"horizontalPodAutoscalerUseRestClients,omitempty" flag:"horizontal-pod-autoscaler-use-rest-clients"`
	// ExperimentalClusterSigningDuration is the max length of duration that the signed certificates will be given. (default 365*24h)
	// Deprecated - use cluster-signing-duration instead
	ExperimentalClusterSigningDuration *metav1.Duration `json:"experimentalClusterSigningDuration,omitempty" flag:"experimental-cluster-signing-duration"`
	// ClusterSigningDuration is the max length of duration that the signed certificates will be given. (default 365*24h)
	ClusterSigningDuration *metav1.Duration `json:"ClusterSigningDuration,omitempty" flag:"cluster-signing-duration"`
	// FeatureGates is set of key=value pairs that describe feature gates for alpha/experimental features.
	FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
	// TLSCertFile is the file containing the TLS server certificate.
	TLSCertFile *string `json:"tlsCertFile,omitempty" flag:"tls-cert-file"`
	// TLSCipherSuites indicates the allowed TLS cipher suite
	TLSCipherSuites []string `json:"tlsCipherSuites,omitempty" flag:"tls-cipher-suites"`
	// TLSMinVersion indicates the minimum TLS version allowed
	TLSMinVersion string `json:"tlsMinVersion,omitempty" flag:"tls-min-version"`
	// TLSPrivateKeyFile is the file containing the private key for the TLS server certificate.
	TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty" flag:"tls-private-key-file"`
	// MinResyncPeriod indicates the resync period in reflectors.
	// The resync period will be random between MinResyncPeriod and 2*MinResyncPeriod. (default 12h0m0s)
	MinResyncPeriod string `json:"minResyncPeriod,omitempty" flag:"min-resync-period"`
	// KubeAPIQPS QPS to use while talking with kubernetes apiserver. (default 20)
	KubeAPIQPS *resource.Quantity `json:"kubeAPIQPS,omitempty" flag:"kube-api-qps"`
	// KubeAPIBurst Burst to use while talking with kubernetes apiserver. (default 30)
	KubeAPIBurst *int32 `json:"kubeAPIBurst,omitempty" flag:"kube-api-burst"`
	// The number of deployment objects that are allowed to sync concurrently.
	ConcurrentDeploymentSyncs *int32 `json:"concurrentDeploymentSyncs,omitempty" flag:"concurrent-deployment-syncs"`
	// The number of endpoint objects that are allowed to sync concurrently.
	ConcurrentEndpointSyncs *int32 `json:"concurrentEndpointSyncs,omitempty" flag:"concurrent-endpoint-syncs"`
	// The number of namespace objects that are allowed to sync concurrently.
	ConcurrentNamespaceSyncs *int32 `json:"concurrentNamespaceSyncs,omitempty" flag:"concurrent-namespace-syncs"`
	// The number of replicaset objects that are allowed to sync concurrently.
	ConcurrentReplicasetSyncs *int32 `json:"concurrentReplicasetSyncs,omitempty" flag:"concurrent-replicaset-syncs"`
	// The number of service objects that are allowed to sync concurrently.
	ConcurrentServiceSyncs *int32 `json:"concurrentServiceSyncs,omitempty" flag:"concurrent-service-syncs"`
	// The number of resourcequota objects that are allowed to sync concurrently.
	ConcurrentResourceQuotaSyncs *int32 `json:"concurrentResourceQuotaSyncs,omitempty" flag:"concurrent-resource-quota-syncs"`
	// The number of serviceaccount objects that are allowed to sync concurrently to create tokens.
	ConcurrentServiceaccountTokenSyncs *int32 `json:"concurrentServiceaccountTokenSyncs,omitempty" flag:"concurrent-serviceaccount-token-syncs"`
	// The number of replicationcontroller objects that are allowed to sync concurrently.
	ConcurrentRCSyncs *int32 `json:"concurrentRCSyncs,omitempty" flag:"concurrent-rc-syncs"`
	// The number of horizontal pod autoscaler objects that are allowed to sync concurrently (default 5).
	ConcurrentHorizontalPodAustoscalerSyncs *int32 `json:"concurrentHorizontalPodAustoscalerSyncs,omitempty" flag:"concurrent-horizontal-pod-autoscaler-syncs"`
	// The number of job objects that are allowed to sync concurrently (default 5).
	ConcurrentJobSyncs *int32 `json:"concurrentJobSyncs,omitempty" flag:"concurrent-job-syncs"`
	// AuthenticationKubeconfig is the path to an Authentication Kubeconfig
	AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"`
	// AuthorizationKubeconfig is the path to an Authorization Kubeconfig
	AuthorizationKubeconfig string `json:"authorizationKubeconfig,omitempty" flag:"authorization-kubeconfig"`
	// AuthorizationAlwaysAllowPaths is the list of HTTP paths to skip during authorization
	AuthorizationAlwaysAllowPaths []string `json:"authorizationAlwaysAllowPaths,omitempty" flag:"authorization-always-allow-paths"`
	// ExternalCloudVolumePlugin is a fallback mechanism that allows a legacy, in-tree cloudprovider to be used for volume plugins
	// even when an external cloud controller manager is being used.  This can be used instead of installing CSI.  The value should
	// be the same as is used for the --cloud-provider flag, i.e. "aws".
	ExternalCloudVolumePlugin string `json:"externalCloudVolumePlugin,omitempty" flag:"external-cloud-volume-plugin"`
	// The length of endpoint updates batching period. Processing of pod changes will be delayed by this duration
	// to join them with potential upcoming updates and reduce the overall number of endpoints updates.
	// Larger number = higher endpoint programming latency, but lower number of endpoints revision generated
	EndpointUpdatesBatchPeriod *metav1.Duration `json:"endpointUpdatesBatchPeriod,omitempty" flag:"endpoint-updates-batch-period"`
	// The length of endpoint slice updates batching period. Processing of pod changes will be delayed by this duration
	// to join them with potential upcoming updates and reduce the overall number of endpoints updates.
	// Larger number = higher endpoint programming latency, but lower number of endpoints revision generated.
	EndpointSliceUpdatesBatchPeriod *metav1.Duration `json:"endpointSliceUpdatesBatchPeriod,omitempty" flag:"endpointslice-updates-batch-period"`

	// EnableProfiling enables profiling via web interface host:port/debug/pprof/
	EnableProfiling *bool `json:"enableProfiling,omitempty" flag:"profiling"`
	// EnableContentionProfiling enables block profiling, if profiling is enabled
	EnableContentionProfiling *bool `json:"enableContentionProfiling,omitempty" flag:"contention-profiling"`
	// EnableLeaderMigration enables controller leader migration.
	EnableLeaderMigration *bool `json:"enableLeaderMigration,omitempty" flag:"enable-leader-migration"`

	// CPURequest, cpu request compute resource for kube-controler-manager. Defaults to "100m"
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// CPULimit, cpu limit compute resource for kube-controler-manager e.g. "500m"
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
	// MemoryRequest, memory request compute resource for kube-controler-manager e.g. "30Mi"
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// MemoryLimit, memory limit compute resource for kube-controler-manager e.g. "30Mi"
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
}

KubeControllerManagerConfig is the configuration for the controller

func (*KubeControllerManagerConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfig.

func (*KubeControllerManagerConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeDNSConfig

type KubeDNSConfig struct {
	// CacheMaxSize is the maximum entries to keep in dnsmasq
	CacheMaxSize int `json:"cacheMaxSize,omitempty"`
	// CacheMaxConcurrent is the maximum number of concurrent queries for dnsmasq
	CacheMaxConcurrent int `json:"cacheMaxConcurrent,omitempty"`
	// Tolerations	are tolerations to apply to the kube-dns deployment
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// Affinity is the kube-dns affinity, uses the same syntax as kubectl's affinity
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// CoreDNSImage is used to override the default image used for CoreDNS
	CoreDNSImage string `json:"coreDNSImage,omitempty"`
	// CPAImage is used to override the default image used for Cluster Proportional Autoscaler
	CPAImage string `json:"cpaImage,omitempty"`
	// Domain is the dns domain
	Domain string `json:"domain,omitempty"`
	// ExternalCoreFile is used to provide a complete CoreDNS CoreFile by the user - ignores other provided flags which modify the CoreFile.
	ExternalCoreFile string `json:"externalCoreFile,omitempty"`
	// Provider indicates whether CoreDNS or kube-dns will be the default service discovery.
	Provider string `json:"provider,omitempty"`
	// ServerIP is the server ip
	ServerIP string `json:"serverIP,omitempty"`
	// StubDomains redirects a domains to another DNS service
	StubDomains map[string][]string `json:"stubDomains,omitempty"`
	// UpstreamNameservers sets the upstream nameservers for queries not on the cluster domain
	UpstreamNameservers []string `json:"upstreamNameservers,omitempty"`
	// MemoryRequest specifies the memory requests of each dns container in the cluster. Default 70m.
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest specifies the cpu requests of each dns container in the cluster. Default 100m.
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// MemoryLimit specifies the memory limit of each dns container in the cluster. Default 170m.
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
	// NodeLocalDNS specifies the configuration for the node-local-dns addon
	NodeLocalDNS *NodeLocalDNSConfig `json:"nodeLocalDNS,omitempty"`
}

KubeDNSConfig defines the kube dns configuration

func (*KubeDNSConfig) DeepCopy

func (in *KubeDNSConfig) DeepCopy() *KubeDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeDNSConfig.

func (*KubeDNSConfig) DeepCopyInto

func (in *KubeDNSConfig) DeepCopyInto(out *KubeDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeProxyConfig

type KubeProxyConfig struct {
	Image string `json:"image,omitempty"`
	// CPURequest, cpu request compute resource for kube proxy e.g. "20m"
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// CPULimit, cpu limit compute resource for kube proxy e.g. "30m"
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
	// MemoryRequest, memory request compute resource for kube proxy e.g. "30Mi"
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// MemoryLimit, memory limit compute resource for kube proxy e.g. "30Mi"
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
	// LogLevel is the logging level of the proxy
	LogLevel int32 `json:"logLevel,omitempty" flag:"v"`
	// ClusterCIDR is the CIDR range of the pods in the cluster
	ClusterCIDR *string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"`
	// HostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.
	HostnameOverride string `json:"hostnameOverride,omitempty" flag:"hostname-override"`
	// BindAddress is IP address for the proxy server to serve on
	BindAddress string `json:"bindAddress,omitempty" flag:"bind-address"`
	// Master is the address of the Kubernetes API server (overrides any value in kubeconfig)
	Master string `json:"master,omitempty" flag:"master"`
	// MetricsBindAddress is the IP address for the metrics server to serve on
	MetricsBindAddress *string `json:"metricsBindAddress,omitempty" flag:"metrics-bind-address"`
	// Enabled allows enabling or disabling kube-proxy
	Enabled *bool `json:"enabled,omitempty"`
	// Which proxy mode to use: (userspace, iptables(default), ipvs)
	ProxyMode string `json:"proxyMode,omitempty" flag:"proxy-mode"`
	// IPVSExcludeCIDRs is comma-separated list of CIDR's which the ipvs proxier should not touch when cleaning up IPVS rules
	IPVSExcludeCIDRs []string `json:"ipvsExcludeCIDRs,omitempty" flag:"ipvs-exclude-cidrs"`
	// IPVSMinSyncPeriod is the minimum interval of how often the ipvs rules can be refreshed as endpoints and services change (e.g. '5s', '1m', '2h22m')
	IPVSMinSyncPeriod *metav1.Duration `json:"ipvsMinSyncPeriod,omitempty" flag:"ipvs-min-sync-period"`
	// IPVSScheduler is the ipvs scheduler type when proxy mode is ipvs
	IPVSScheduler *string `json:"ipvsScheduler,omitempty" flag:"ipvs-scheduler"`
	// IPVSSyncPeriod duration is the maximum interval of how often ipvs rules are refreshed
	IPVSSyncPeriod *metav1.Duration `json:"ipvsSyncPeriod,omitempty" flag:"ipvs-sync-period"`
	// FeatureGates is a series of key pairs used to switch on features for the proxy
	FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
	// Maximum number of NAT connections to track per CPU core (default: 131072)
	ConntrackMaxPerCore *int32 `json:"conntrackMaxPerCore,omitempty" flag:"conntrack-max-per-core"`
	// Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core
	ConntrackMin *int32 `json:"conntrackMin,omitempty" flag:"conntrack-min"`
}

KubeProxyConfig defines the configuration for a proxy

func (*KubeProxyConfig) DeepCopy

func (in *KubeProxyConfig) DeepCopy() *KubeProxyConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConfig.

func (*KubeProxyConfig) DeepCopyInto

func (in *KubeProxyConfig) DeepCopyInto(out *KubeProxyConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeSchedulerConfig

type KubeSchedulerConfig struct {
	// Master is a url to the kube master
	Master string `json:"master,omitempty" flag:"master"`
	// LogFormat is the logging format of the scheduler.
	// Supported values: text, json.
	// Default: text
	LogFormat string `json:"logFormat,omitempty" flag:"logging-format" flag-empty:"text"`
	// LogLevel is the logging level
	LogLevel int32 `json:"logLevel,omitempty" flag:"v"`
	// Image is the container image to use.
	Image string `json:"image,omitempty"`
	// LeaderElection defines the configuration of leader election client.
	LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"`
	// UsePolicyConfigMap enable setting the scheduler policy from a configmap
	// Deprecated - use KubeSchedulerConfiguration instead
	UsePolicyConfigMap *bool `json:"usePolicyConfigMap,omitempty"`
	// FeatureGates is set of key=value pairs that describe feature gates for alpha/experimental features.
	FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
	// MaxPersistentVolumes changes the maximum number of persistent volumes the scheduler will scheduler onto the same
	// node. Only takes effect if value is positive. This corresponds to the KUBE_MAX_PD_VOLS environment variable.
	// The default depends on the version and the cloud provider
	// as outlined: https://kubernetes.io/docs/concepts/storage/storage-limits/
	MaxPersistentVolumes *int32 `json:"maxPersistentVolumes,omitempty"`
	// Qps sets the maximum qps to send to apiserver after the burst quota is exhausted
	Qps *resource.Quantity `json:"qps,omitempty" configfile:"ClientConnection.QPS" config:"clientConnection.qps,omitempty"`
	// Burst sets the maximum qps to send to apiserver after the burst quota is exhausted
	Burst int32 `json:"burst,omitempty" configfile:"ClientConnection.Burst" config:"clientConnection.burst,omitempty"`
	// KubeAPIQPS QPS to use while talking with kubernetes apiserver. (default 20)
	KubeAPIQPS *resource.Quantity `json:"kubeAPIQPS,omitempty" flag:"kube-api-qps"`
	// KubeAPIBurst Burst to use while talking with kubernetes apiserver. (default 30)
	KubeAPIBurst *int32 `json:"kubeAPIBurst,omitempty" flag:"kube-api-burst"`
	// AuthenticationKubeconfig is the path to an Authentication Kubeconfig
	AuthenticationKubeconfig string `json:"authenticationKubeconfig,omitempty" flag:"authentication-kubeconfig"`
	// AuthorizationKubeconfig is the path to an Authorization Kubeconfig
	AuthorizationKubeconfig string `json:"authorizationKubeconfig,omitempty" flag:"authorization-kubeconfig"`
	// AuthorizationAlwaysAllowPaths is the list of HTTP paths to skip during authorization
	AuthorizationAlwaysAllowPaths []string `json:"authorizationAlwaysAllowPaths,omitempty" flag:"authorization-always-allow-paths"`

	// EnableProfiling enables profiling via web interface host:port/debug/pprof/
	EnableProfiling *bool `json:"enableProfiling,omitempty" flag:"profiling"`
	// EnableContentionProfiling enables block profiling, if profiling is enabled
	EnableContentionProfiling *bool `json:"enableContentionProfiling,omitempty" flag:"contention-profiling"`
	// TLSCertFile is the file containing the TLS server certificate.
	TLSCertFile *string `json:"tlsCertFile,omitempty" flag:"tls-cert-file"`
	// TLSPrivateKeyFile is the file containing the private key for the TLS server certificate.
	TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty" flag:"tls-private-key-file"`

	// CPURequest, cpu request compute resource for scheduler. Defaults to "100m"
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// CPULimit, cpu limit compute resource for scheduler e.g. "500m"
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
	// MemoryRequest, memory request compute resource for scheduler e.g. "30Mi"
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// MemoryLimit, memory limit compute resource for scheduler e.g. "30Mi"
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
}

KubeSchedulerConfig is the configuration for the kube-scheduler

func (*KubeSchedulerConfig) DeepCopy

func (in *KubeSchedulerConfig) DeepCopy() *KubeSchedulerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfig.

func (*KubeSchedulerConfig) DeepCopyInto

func (in *KubeSchedulerConfig) DeepCopyInto(out *KubeSchedulerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeletConfigSpec

type KubeletConfigSpec struct {
	// APIServers is not used for clusters version 1.6 and later - flag removed
	APIServers string `json:"apiServers,omitempty" flag:"api-servers"`
	// AnonymousAuth permits you to control auth to the kubelet api
	AnonymousAuth *bool `json:"anonymousAuth,omitempty" flag:"anonymous-auth"`
	// AuthorizationMode is the authorization mode the kubelet is running in
	AuthorizationMode string `json:"authorizationMode,omitempty" flag:"authorization-mode"`
	// BootstrapKubeconfig is the path to a kubeconfig file that will be used to get client certificate for kubelet
	BootstrapKubeconfig string `json:"bootstrapKubeconfig,omitempty" flag:"bootstrap-kubeconfig"`
	// ClientCAFile is the path to a CA certificate
	ClientCAFile string `json:"clientCAFile,omitempty" flag:"client-ca-file"`
	// TODO: Remove unused TLSCertFile
	TLSCertFile string `json:"tlsCertFile,omitempty" flag:"tls-cert-file"`
	// TODO: Remove unused TLSPrivateKeyFile
	TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty" flag:"tls-private-key-file"`
	// TLSCipherSuites indicates the allowed TLS cipher suite
	TLSCipherSuites []string `json:"tlsCipherSuites,omitempty" flag:"tls-cipher-suites"`
	// TLSMinVersion indicates the minimum TLS version allowed
	TLSMinVersion string `json:"tlsMinVersion,omitempty" flag:"tls-min-version"`
	// KubeconfigPath is the path of kubeconfig for the kubelet
	KubeconfigPath string `json:"kubeconfigPath,omitempty" flag:"kubeconfig"`
	// RequireKubeconfig indicates a kubeconfig is required
	RequireKubeconfig *bool `json:"requireKubeconfig,omitempty" flag:"require-kubeconfig"`
	// LogFormat is the logging format of the kubelet.
	// Supported values: text, json.
	// Default: text
	LogFormat string `json:"logFormat,omitempty" flag:"logging-format" flag-empty:"text"`
	// LogLevel is the logging level of the kubelet
	LogLevel *int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// config is the path to the config file or directory of files
	PodManifestPath string `json:"podManifestPath,omitempty" flag:"pod-manifest-path"`
	// HostnameOverride is the hostname used to identify the kubelet instead of the actual hostname.
	HostnameOverride string `json:"hostnameOverride,omitempty" flag:"hostname-override"`
	// PodInfraContainerImage is the image whose network/ipc containers in each pod will use.
	PodInfraContainerImage string `json:"podInfraContainerImage,omitempty" flag:"pod-infra-container-image"`
	// SeccompDefault enables the use of `RuntimeDefault` as the default seccomp profile for all workloads.
	SeccompDefault *bool `json:"seccompDefault,omitempty" flag:"seccomp-default"`
	// SeccompProfileRoot is the directory path for seccomp profiles.
	SeccompProfileRoot *string `json:"seccompProfileRoot,omitempty" flag:"seccomp-profile-root"`
	// AllowPrivileged enables containers to request privileged mode (defaults to false)
	AllowPrivileged *bool `json:"allowPrivileged,omitempty" flag:"allow-privileged"`
	// EnableDebuggingHandlers enables server endpoints for log collection and local running of containers and commands
	EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers,omitempty" flag:"enable-debugging-handlers"`
	// RegisterNode enables automatic registration with the apiserver.
	RegisterNode *bool `json:"registerNode,omitempty" flag:"register-node"`
	// NodeStatusUpdateFrequency Specifies how often kubelet posts node status to master (default 10s)
	// must work with nodeMonitorGracePeriod in KubeControllerManagerConfig.
	NodeStatusUpdateFrequency *metav1.Duration `json:"nodeStatusUpdateFrequency,omitempty" flag:"node-status-update-frequency"`
	// ClusterDomain is the DNS domain for this cluster
	ClusterDomain string `json:"clusterDomain,omitempty" flag:"cluster-domain"`
	// ClusterDNS is the IP address for a cluster DNS server
	ClusterDNS string `json:"clusterDNS,omitempty" flag:"cluster-dns"`
	// NetworkPluginName is the name of the network plugin to be invoked for various events in kubelet/pod lifecycle
	NetworkPluginName *string `json:"networkPluginName,omitempty" flag:"network-plugin"`
	// CloudProvider is the provider for cloud services.
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// KubeletCgroups is the absolute name of cgroups to isolate the kubelet in.
	KubeletCgroups string `json:"kubeletCgroups,omitempty" flag:"kubelet-cgroups"`
	// Cgroups that container runtime is expected to be isolated in.
	RuntimeCgroups string `json:"runtimeCgroups,omitempty" flag:"runtime-cgroups"`
	// ReadOnlyPort is the port used by the kubelet api for read-only access (default 10255)
	ReadOnlyPort *int32 `json:"readOnlyPort,omitempty" flag:"read-only-port"`
	// SystemCgroups is absolute name of cgroups in which to place
	// all non-kernel processes that are not already in a container. Empty
	// for no container. Rolling back the flag requires a reboot.
	SystemCgroups string `json:"systemCgroups,omitempty" flag:"system-cgroups"`
	// cgroupRoot is the root cgroup to use for pods. This is handled by the container runtime on a best effort basis.
	CgroupRoot string `json:"cgroupRoot,omitempty" flag:"cgroup-root"`
	// configureCBR0 enables the kubelet to configure cbr0 based on Node.Spec.PodCIDR.
	ConfigureCBR0 *bool `json:"configureCbr0,omitempty" flag:"configure-cbr0"`
	// How should the kubelet configure the container bridge for hairpin packets.
	// Setting this flag allows endpoints in a Service to loadbalance back to
	// themselves if they should try to access their own Service. Values:
	//   "promiscuous-bridge": make the container bridge promiscuous.
	//   "hairpin-veth":       set the hairpin flag on container veth interfaces.
	//   "none":               do nothing.
	// Setting --configure-cbr0 to false implies that to achieve hairpin NAT
	// one must set --hairpin-mode=veth-flag, because bridge assumes the
	// existence of a container bridge named cbr0.
	HairpinMode string `json:"hairpinMode,omitempty" flag:"hairpin-mode"`
	// The node has babysitter process monitoring docker and kubelet. Removed as of 1.7
	BabysitDaemons *bool `json:"babysitDaemons,omitempty" flag:"babysit-daemons"`
	// MaxPods is the number of pods that can run on this Kubelet.
	MaxPods *int32 `json:"maxPods,omitempty" flag:"max-pods"`
	// NvidiaGPUs is the number of NVIDIA GPU devices on this node.
	NvidiaGPUs int32 `json:"nvidiaGPUs,omitempty" flag:"experimental-nvidia-gpus" flag-empty:"0"`
	// PodCIDR is the CIDR to use for pod IP addresses, only used in standalone mode.
	// In cluster mode, this is obtained from the master.
	PodCIDR string `json:"podCIDR,omitempty" flag:"pod-cidr"`
	// ResolverConfig is the resolver configuration file used as the basis for the container DNS resolution configuration."), []
	ResolverConfig *string `json:"resolvConf,omitempty" flag:"resolv-conf" flag-include-empty:"true"`
	// ReconcileCIDR is Reconcile node CIDR with the CIDR specified by the
	// API server. No-op if register-node or configure-cbr0 is false.
	ReconcileCIDR *bool `json:"reconcileCIDR,omitempty" flag:"reconcile-cidr"`
	// registerSchedulable tells the kubelet to register the node as schedulable. No-op if register-node is false.
	RegisterSchedulable *bool `json:"registerSchedulable,omitempty" flag:"register-schedulable"`
	// SerializeImagePulls when enabled, tells the Kubelet to pull images one at a time.
	SerializeImagePulls *bool `json:"serializeImagePulls,omitempty" flag:"serialize-image-pulls"`
	// NodeLabels to add when registering the node in the cluster.
	NodeLabels map[string]string `json:"nodeLabels,omitempty" flag:"node-labels"`
	// NonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade.
	NonMasqueradeCIDR *string `json:"nonMasqueradeCIDR,omitempty" flag:"non-masquerade-cidr"`
	// Enable gathering custom metrics.
	EnableCustomMetrics *bool `json:"enableCustomMetrics,omitempty" flag:"enable-custom-metrics"`
	// NetworkPluginMTU is the MTU to be passed to the network plugin,
	// and overrides the default MTU for cases where it cannot be automatically
	// computed (such as IPSEC).
	NetworkPluginMTU *int32 `json:"networkPluginMTU,omitempty" flag:"network-plugin-mtu"`
	// imageMinimumGCAge is the minimum age for an unused image before it is garbage collected. Default: "2m"
	ImageMinimumGCAge *string `json:"imageMinimumGCAge,omitempty" flag:"image-minimum-gc-age"`
	// imageMaximumGCAge is the maximum age an image can be unused before it is garbage collected.
	// The default of this field is "0s", which disables this field--meaning images won't be garbage
	// collected based on being unused for too long. Default: "0s" (disabled)
	ImageMaximumGCAge *string `json:"imageMaximumGCAge,omitempty" flag:"image-maximum-gc-age"`
	// ImageGCHighThresholdPercent is the percent of disk usage after which
	// image garbage collection is always run.
	ImageGCHighThresholdPercent *int32 `json:"imageGCHighThresholdPercent,omitempty" flag:"image-gc-high-threshold"`
	// ImageGCLowThresholdPercent is the percent of disk usage before which
	// image garbage collection is never run. Lowest disk usage to garbage
	// collect to.
	ImageGCLowThresholdPercent *int32 `json:"imageGCLowThresholdPercent,omitempty" flag:"image-gc-low-threshold"`
	// ImagePullProgressDeadline is the timeout for image pulls
	// If no pulling progress is made before this deadline, the image pulling will be cancelled. (default 1m0s)
	ImagePullProgressDeadline *metav1.Duration `json:"imagePullProgressDeadline,omitempty" flag:"image-pull-progress-deadline"`
	// Comma-delimited list of hard eviction expressions.  For example, 'memory.available<300Mi'.
	EvictionHard *string `json:"evictionHard,omitempty" flag:"eviction-hard"`
	// Comma-delimited list of soft eviction expressions.  For example, 'memory.available<300Mi'.
	EvictionSoft string `json:"evictionSoft,omitempty" flag:"eviction-soft"`
	// Comma-delimited list of grace periods for each soft eviction signal.  For example, 'memory.available=30s'.
	EvictionSoftGracePeriod string `json:"evictionSoftGracePeriod,omitempty" flag:"eviction-soft-grace-period"`
	// Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.
	EvictionPressureTransitionPeriod *metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty" flag:"eviction-pressure-transition-period" flag-empty:"0s"`
	// Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.
	EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod,omitempty" flag:"eviction-max-pod-grace-period" flag-empty:"0"`
	// Comma-delimited list of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure.
	EvictionMinimumReclaim string `json:"evictionMinimumReclaim,omitempty" flag:"eviction-minimum-reclaim"`
	// The full path of the directory in which to search for additional third party volume plugins (this path must be writeable, dependent on your choice of OS)
	VolumePluginDirectory string `json:"volumePluginDirectory,omitempty" flag:"volume-plugin-dir"`
	// Taints to add when registering a node in the cluster
	Taints []string `json:"taints,omitempty" flag:"register-with-taints"`
	// FeatureGates is set of key=value pairs that describe feature gates for alpha/experimental features.
	FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
	// Integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling.
	KernelMemcgNotification *bool `json:"kernelMemcgNotification,omitempty" flag:"kernel-memcg-notification"`
	// Resource reservation for kubernetes system daemons like the kubelet, container runtime, node problem detector, etc.
	KubeReserved map[string]string `json:"kubeReserved,omitempty" flag:"kube-reserved"`
	// Control group for kube daemons.
	KubeReservedCgroup string `json:"kubeReservedCgroup,omitempty" flag:"kube-reserved-cgroup"`
	// Capture resource reservation for OS system daemons like sshd, udev, etc.
	SystemReserved map[string]string `json:"systemReserved,omitempty" flag:"system-reserved"`
	// Parent control group for OS system daemons.
	SystemReservedCgroup string `json:"systemReservedCgroup,omitempty" flag:"system-reserved-cgroup"`
	// Enforce Allocatable across pods whenever the overall usage across all pods exceeds Allocatable.
	EnforceNodeAllocatable string `json:"enforceNodeAllocatable,omitempty" flag:"enforce-node-allocatable"`
	// RuntimeRequestTimeout is timeout for runtime requests on - pull, logs, exec and attach
	RuntimeRequestTimeout *metav1.Duration `json:"runtimeRequestTimeout,omitempty" flag:"runtime-request-timeout"`
	// VolumeStatsAggPeriod is the interval for kubelet to calculate and cache the volume disk usage for all pods and volumes
	VolumeStatsAggPeriod *metav1.Duration `json:"volumeStatsAggPeriod,omitempty" flag:"volume-stats-agg-period"`
	// Tells the Kubelet to fail to start if swap is enabled on the node.
	FailSwapOn *bool `json:"failSwapOn,omitempty" flag:"fail-swap-on"`
	// ExperimentalAllowedUnsafeSysctls are passed to the kubelet config to whitelist allowable sysctls
	// Was promoted to beta and renamed. https://github.com/kubernetes/kubernetes/pull/63717
	ExperimentalAllowedUnsafeSysctls []string `json:"experimentalAllowedUnsafeSysctls,omitempty" flag:"experimental-allowed-unsafe-sysctls"`
	// AllowedUnsafeSysctls are passed to the kubelet config to whitelist allowable sysctls
	AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty" flag:"allowed-unsafe-sysctls"`
	// StreamingConnectionIdleTimeout is the maximum time a streaming connection can be idle before the connection is automatically closed
	StreamingConnectionIdleTimeout *metav1.Duration `json:"streamingConnectionIdleTimeout,omitempty" flag:"streaming-connection-idle-timeout"`
	// DockerDisableSharedPID was removed.
	DockerDisableSharedPID *bool `json:"-"`
	// RootDir is the directory path for managing kubelet files (volume mounts,etc)
	RootDir string `json:"rootDir,omitempty" flag:"root-dir"`
	// AuthenticationTokenWebhook uses the TokenReview API to determine authentication for bearer tokens.
	AuthenticationTokenWebhook *bool `json:"authenticationTokenWebhook,omitempty" flag:"authentication-token-webhook"`
	// AuthenticationTokenWebhook sets the duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s)
	AuthenticationTokenWebhookCacheTTL *metav1.Duration `json:"authenticationTokenWebhookCacheTTL,omitempty" flag:"authentication-token-webhook-cache-ttl"`
	// CPUCFSQuota enables CPU CFS quota enforcement for containers that specify CPU limits
	CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty" flag:"cpu-cfs-quota"`
	// CPUCFSQuotaPeriod sets CPU CFS quota period value, cpu.cfs_period_us, defaults to Linux Kernel default
	CPUCFSQuotaPeriod *metav1.Duration `json:"cpuCFSQuotaPeriod,omitempty" flag:"cpu-cfs-quota-period"`
	// CpuManagerPolicy allows for changing the default policy of None to static
	CpuManagerPolicy string `json:"cpuManagerPolicy,omitempty" flag:"cpu-manager-policy"`
	// RegistryPullQPS if > 0, limit registry pull QPS to this value.  If 0, unlimited. (default 5)
	RegistryPullQPS *int32 `json:"registryPullQPS,omitempty" flag:"registry-qps"`
	// RegistryBurst Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0 (default 10)
	RegistryBurst *int32 `json:"registryBurst,omitempty" flag:"registry-burst"`
	// TopologyManagerPolicy determines the allocation policy for the topology manager.
	TopologyManagerPolicy string `json:"topologyManagerPolicy,omitempty" flag:"topology-manager-policy"`
	// rotateCertificates enables client certificate rotation.
	RotateCertificates *bool `json:"rotateCertificates,omitempty" flag:"rotate-certificates"`
	// Default kubelet behaviour for kernel tuning. If set, kubelet errors if any of kernel tunables is different than kubelet defaults.
	// (DEPRECATED: This parameter should be set via the config file specified by the Kubelet's --config flag.
	ProtectKernelDefaults *bool `json:"protectKernelDefaults,omitempty" flag:"protect-kernel-defaults"`
	// CgroupDriver allows the explicit setting of the kubelet cgroup driver. If omitted, defaults to cgroupfs.
	CgroupDriver string `json:"cgroupDriver,omitempty" flag:"cgroup-driver"`
	// HousekeepingInterval allows to specify interval between container housekeepings.
	HousekeepingInterval *metav1.Duration `json:"housekeepingInterval,omitempty" flag:"housekeeping-interval"`
	// EventQPS if > 0, limit event creations per second to this value.  If 0, unlimited.
	EventQPS *int32 `json:"eventQPS,omitempty" flag:"event-qps" flag-empty:"0"`
	// EventBurst temporarily allows event records to burst to this number, while still not exceeding EventQPS. Only used if EventQPS > 0.
	EventBurst *int32 `json:"eventBurst,omitempty" flag:"event-burst"`
	// ContainerLogMaxSize is the maximum size (e.g. 10Mi) of container log file before it is rotated.
	ContainerLogMaxSize string `json:"containerLogMaxSize,omitempty" flag:"container-log-max-size"`
	// ContainerLogMaxFiles is the maximum number of container log files that can be present for a container. The number must be >= 2.
	ContainerLogMaxFiles *int32 `json:"containerLogMaxFiles,omitempty" flag:"container-log-max-files"`
	// EnableCadvisorJsonEndpoints enables cAdvisor json `/spec` and `/stats/*` endpoints. Defaults to False.
	EnableCadvisorJsonEndpoints *bool `json:"enableCadvisorJsonEndpoints,omitempty" flag:"enable-cadvisor-json-endpoints"`
	// PodPidsLimit is the maximum number of pids in any pod.
	PodPidsLimit *int64 `json:"podPidsLimit,omitempty" flag:"pod-max-pids"`
	// ExperimentalAllocatableIgnoreEviction enables ignoring Hard Eviction Thresholds while calculating Node Allocatable
	ExperimentalAllocatableIgnoreEviction *bool `json:"experimentalAllocatableIgnoreEviction,omitempty" flag:"experimental-allocatable-ignore-eviction"`

	// ShutdownGracePeriod specifies the total duration that the node should delay the shutdown by.
	// Default: 30s
	ShutdownGracePeriod *metav1.Duration `json:"shutdownGracePeriod,omitempty"`
	// ShutdownGracePeriodCriticalPods specifies the duration used to terminate critical pods during a node shutdown.
	// Default: 10s
	ShutdownGracePeriodCriticalPods *metav1.Duration `json:"shutdownGracePeriodCriticalPods,omitempty"`
	// MemorySwapBehavior defines how swap is used by container workloads.
	// Supported values: LimitedSwap, "UnlimitedSwap.
	MemorySwapBehavior string `json:"memorySwapBehavior,omitempty"`
}

KubeletConfigSpec defines the kubelet configuration

func (*KubeletConfigSpec) DeepCopy

func (in *KubeletConfigSpec) DeepCopy() *KubeletConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigSpec.

func (*KubeletConfigSpec) DeepCopyInto

func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubenetNetworkingSpec

type KubenetNetworkingSpec struct{}

KubenetNetworkingSpec is the specification for kubenet networking, largely integrated but intended to replace classic

func (*KubenetNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubenetNetworkingSpec.

func (*KubenetNetworkingSpec) DeepCopyInto

func (in *KubenetNetworkingSpec) DeepCopyInto(out *KubenetNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesVersionSpec

type KubernetesVersionSpec struct {
	Range string `json:"range,omitempty"`

	RecommendedVersion string `json:"recommendedVersion,omitempty"`
	RequiredVersion    string `json:"requiredVersion,omitempty"`
}

func FindKubernetesVersionSpec

func FindKubernetesVersionSpec(versions []KubernetesVersionSpec, version semver.Version) *KubernetesVersionSpec

FindKubernetesVersionSpec returns a KubernetesVersionSpec for the current version

func (*KubernetesVersionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesVersionSpec.

func (*KubernetesVersionSpec) DeepCopyInto

func (in *KubernetesVersionSpec) DeepCopyInto(out *KubernetesVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubernetesVersionSpec) FindRecommendedUpgrade

func (v *KubernetesVersionSpec) FindRecommendedUpgrade(version semver.Version) (*semver.Version, error)

FindRecommendedUpgrade returns a string with a new version, if the current version is out of date

func (*KubernetesVersionSpec) IsUpgradeRequired

func (v *KubernetesVersionSpec) IsUpgradeRequired(version semver.Version) (bool, error)

IsUpgradeRequired returns true if the current version is not acceptable

type KuberouterNetworkingSpec

type KuberouterNetworkingSpec struct{}

KuberouterNetworkingSpec declares that we want Kube-router networking

func (*KuberouterNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KuberouterNetworkingSpec.

func (*KuberouterNetworkingSpec) DeepCopyInto

func (in *KuberouterNetworkingSpec) DeepCopyInto(out *KuberouterNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LeaderElectionConfiguration

type LeaderElectionConfiguration struct {
	// leaderElect enables a leader election client to gain leadership
	// before executing the main loop. Enable this when running replicated
	// components for high availability.
	LeaderElect *bool `json:"leaderElect,omitempty" flag:"leader-elect"`
	// leaderElectLeaseDuration is the length in time non-leader candidates
	// will wait after observing a leadership renewal until attempting to acquire
	// leadership of a led but unrenewed leader slot. This is effectively the
	// maximum duration that a leader can be stopped before it is replaced by another candidate
	LeaderElectLeaseDuration *metav1.Duration `json:"leaderElectLeaseDuration,omitempty" flag:"leader-elect-lease-duration"`
	// LeaderElectRenewDeadlineDuration is the interval between attempts by the acting master to
	// renew a leadership slot before it stops leading. This must be less than or equal to the lease duration.
	LeaderElectRenewDeadlineDuration *metav1.Duration `json:"leaderElectRenewDeadlineDuration,omitempty" flag:"leader-elect-renew-deadline"`
	// LeaderElectResourceLock is the type of resource object that is used for locking during
	// leader election. Supported options are endpoints (default) and `configmaps`.
	LeaderElectResourceLock *string `json:"leaderElectResourceLock,omitempty" flag:"leader-elect-resource-lock"`
	// LeaderElectResourceName is the name of resource object that is used for locking during leader election.
	LeaderElectResourceName *string `json:"leaderElectResourceName,omitempty" flag:"leader-elect-resource-name"`
	// LeaderElectResourceNamespace is the namespace of resource object that is used for locking during leader election.
	LeaderElectResourceNamespace *string `json:"leaderElectResourceNamespace,omitempty" flag:"leader-elect-resource-namespace"`
	// LeaderElectRetryPeriod is The duration the clients should wait between attempting acquisition
	// and renewal of a leadership. This is only applicable if leader election is enabled.
	LeaderElectRetryPeriod *metav1.Duration `json:"leaderElectRetryPeriod,omitempty" flag:"leader-elect-retry-period"`
}

LeaderElectionConfiguration defines the configuration of leader election clients for components that can run with leader election enabled.

func (*LeaderElectionConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration.

func (*LeaderElectionConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerAccessSpec

type LoadBalancerAccessSpec struct {
	// LoadBalancerClass specifies the class of load balancer to create: Classic, Network.
	Class LoadBalancerClass `json:"class,omitempty"`
	// Type of load balancer to create may Public or Internal.
	Type LoadBalancerType `json:"type,omitempty"`
	// IdleTimeoutSeconds sets the timeout of the api loadbalancer.
	IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
	// SecurityGroupOverride overrides the default Kops created SG for the load balancer.
	SecurityGroupOverride *string `json:"securityGroupOverride,omitempty"`
	// AdditionalSecurityGroups attaches additional security groups (e.g. sg-123456).
	AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`
	// UseForInternalAPI indicates whether the LB should be used by the kubelet
	UseForInternalAPI bool `json:"useForInternalAPI,omitempty"`
	// SSLCertificate allows you to specify the ACM cert to be used the LB
	SSLCertificate string `json:"sslCertificate,omitempty"`
	// SSLPolicy allows you to overwrite the LB listener's Security Policy
	SSLPolicy *string `json:"sslPolicy,omitempty"`
	// CrossZoneLoadBalancing allows you to enable the cross zone load balancing
	CrossZoneLoadBalancing *bool `json:"crossZoneLoadBalancing,omitempty"`
	// Subnets allows you to specify the subnets that must be used for the load balancer
	Subnets []LoadBalancerSubnetSpec `json:"subnets,omitempty"`
	// AccessLog is the configuration of access logs.
	AccessLog *AccessLogSpec `json:"accessLog,omitempty"`
}

LoadBalancerAccessSpec provides configuration details related to API LoadBalancer and its access

func (*LoadBalancerAccessSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerAccessSpec.

func (*LoadBalancerAccessSpec) DeepCopyInto

func (in *LoadBalancerAccessSpec) DeepCopyInto(out *LoadBalancerAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerClass added in v1.19.0

type LoadBalancerClass string

LoadBalancerClass string describes LoadBalancer classes (classic, network)

const (
	LoadBalancerClassClassic LoadBalancerClass = "Classic"
	LoadBalancerClassNetwork LoadBalancerClass = "Network"
)

type LoadBalancerControllerSpec added in v1.26.0

type LoadBalancerControllerSpec struct {
	// Enabled enables the loadbalancer controller.
	// Default: false
	Enabled *bool `json:"enabled,omitempty"`
	// Version is the container image tag used.
	Version *string `json:"version,omitempty"`
	// EnableWAF specifies whether the controller can use WAFs (Classic Regional).
	// Default: false
	EnableWAF bool `json:"enableWAF,omitempty"`
	// EnableWAFv2 specifies whether the controller can use WAFs (V2).
	// Default: false
	EnableWAFv2 bool `json:"enableWAFv2,omitempty"`
	// EnableShield specifies whether the controller can enable Shield Advanced.
	// Default: false
	EnableShield bool `json:"enableShield,omitempty"`
}

LoadBalancerControllerSpec determines the AWS LB controller configuration.

func (*LoadBalancerControllerSpec) DeepCopy added in v1.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerControllerSpec.

func (*LoadBalancerControllerSpec) DeepCopyInto added in v1.26.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerSpec added in v1.26.0

type LoadBalancerSpec struct {
	// LoadBalancerName to associate with this instance group (AWS ELB)
	LoadBalancerName *string `json:"loadBalancerName,omitempty"`
	// TargetGroupARN to associate with this instance group (AWS ALB/NLB)
	TargetGroupARN *string `json:"targetGroupARN,omitempty"`
}

LoadBalancer defines a load balancer

func (*LoadBalancerSpec) DeepCopy added in v1.26.0

func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSpec.

func (*LoadBalancerSpec) DeepCopyInto added in v1.26.0

func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerSubnetSpec added in v1.20.0

type LoadBalancerSubnetSpec struct {
	// Name specifies the name of the cluster subnet
	Name string `json:"name,omitempty"`
	// PrivateIPv4Address specifies the private IPv4 address to use for a NLB
	PrivateIPv4Address *string `json:"privateIPv4Address,omitempty"`
	// AllocationID specifies the Elastic IP Allocation ID for use by a NLB
	AllocationID *string `json:"allocationID,omitempty"`
}

LoadBalancerSubnetSpec provides configuration for subnets used for a load balancer

func (*LoadBalancerSubnetSpec) DeepCopy added in v1.20.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSubnetSpec.

func (*LoadBalancerSubnetSpec) DeepCopyInto added in v1.20.0

func (in *LoadBalancerSubnetSpec) DeepCopyInto(out *LoadBalancerSubnetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerType

type LoadBalancerType string

LoadBalancerType string describes LoadBalancer types (public, internal)

const (
	LoadBalancerTypePublic   LoadBalancerType = "Public"
	LoadBalancerTypeInternal LoadBalancerType = "Internal"
)

type LyftVPCNetworkingSpec added in v1.11.0

type LyftVPCNetworkingSpec struct {
	SubnetTags map[string]string `json:"subnetTags,omitempty"`
}

LyftVPCNetworkingSpec declares that we want to use the cni-ipvlan-vpc-k8s CNI networking. Lyft VPC is deprecated as of kOps 1.22 and removed as of kOps 1.23.

func (*LyftVPCNetworkingSpec) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LyftVPCNetworkingSpec.

func (*LyftVPCNetworkingSpec) DeepCopyInto added in v1.11.0

func (in *LyftVPCNetworkingSpec) DeepCopyInto(out *LyftVPCNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsServerConfig added in v1.19.0

type MetricsServerConfig struct {
	// Enabled enables the metrics server.
	// Default: false
	Enabled *bool `json:"enabled,omitempty"`
	// Image is the container image used.
	// Default: the latest supported image for the specified kubernetes version.
	Image *string `json:"image,omitempty"`
	// Insecure determines if API server will validate metrics server TLS cert.
	// Default: true
	Insecure *bool `json:"insecure,omitempty"`
}

MetricsServerConfig determines the metrics server configuration.

func (*MetricsServerConfig) DeepCopy added in v1.19.0

func (in *MetricsServerConfig) DeepCopy() *MetricsServerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsServerConfig.

func (*MetricsServerConfig) DeepCopyInto added in v1.19.0

func (in *MetricsServerConfig) DeepCopyInto(out *MetricsServerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MinMaxSpec added in v1.24.0

type MinMaxSpec struct {
	Max *resource.Quantity `json:"max,omitempty"`
	Min *resource.Quantity `json:"min,omitempty"`
}

func (*MinMaxSpec) DeepCopy added in v1.24.0

func (in *MinMaxSpec) DeepCopy() *MinMaxSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MinMaxSpec.

func (*MinMaxSpec) DeepCopyInto added in v1.24.0

func (in *MinMaxSpec) DeepCopyInto(out *MinMaxSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MixedInstancesPolicySpec added in v1.15.1

type MixedInstancesPolicySpec struct {
	// Instances is a list of instance types which we are willing to run in the EC2 fleet
	Instances []string `json:"instances,omitempty"`
	// InstanceRequirements is a list of requirements for any instance type we are willing to run in the EC2 fleet.
	InstanceRequirements *InstanceRequirementsSpec `json:"instanceRequirements,omitempty"`
	// OnDemandAllocationStrategy indicates how to allocate instance types to fulfill On-Demand capacity
	OnDemandAllocationStrategy *string `json:"onDemandAllocationStrategy,omitempty"`
	// OnDemandBase is the minimum amount of the Auto Scaling group's capacity that must be
	// fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales.
	OnDemandBase *int64 `json:"onDemandBase,omitempty"`
	// OnDemandAboveBase controls the percentages of On-Demand Instances and Spot Instances for your
	// additional capacity beyond OnDemandBase. The range is 0–100. The default value is 100. If you
	// leave this parameter set to 100, the percentages are 100% for On-Demand Instances and 0% for
	// Spot Instances.
	OnDemandAboveBase *int64 `json:"onDemandAboveBase,omitempty"`
	// SpotAllocationStrategy diversifies your Spot capacity across multiple instance types to
	// find the best pricing. Higher Spot availability may result from a larger number of
	// instance types to choose from.
	SpotAllocationStrategy *string `json:"spotAllocationStrategy,omitempty"`
	// SpotInstancePools is the number of Spot pools to use to allocate your Spot capacity (defaults to 2)
	// pools are determined from the different instance types in the Overrides array of LaunchTemplate
	SpotInstancePools *int64 `json:"spotInstancePools,omitempty"`
}

MixedInstancesPolicySpec defines the specification for an autoscaling group backed by a ec2 fleet

func (*MixedInstancesPolicySpec) DeepCopy added in v1.15.1

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MixedInstancesPolicySpec.

func (*MixedInstancesPolicySpec) DeepCopyInto added in v1.15.1

func (in *MixedInstancesPolicySpec) DeepCopyInto(out *MixedInstancesPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NRIConfig added in v1.29.0

type NRIConfig struct {
	// Enable NRI support in containerd
	Enabled *bool `json:"enabled,omitempty"`
	// PluginRegistrationTimeout is the timeout for plugin registration
	PluginRegistrationTimeout *metav1.Duration `json:"pluginRegistrationTimeout,omitempty"`
	// PluginRequestTimeout is the timeout for a plugin to handle a request
	PluginRequestTimeout *metav1.Duration `json:"pluginRequestTimeout,omitempty"`
}

func (*NRIConfig) DeepCopy added in v1.29.0

func (in *NRIConfig) DeepCopy() *NRIConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NRIConfig.

func (*NRIConfig) DeepCopyInto added in v1.29.0

func (in *NRIConfig) DeepCopyInto(out *NRIConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NTPConfig added in v1.20.0

type NTPConfig struct {
	// Managed controls if the NTP configuration is managed by kOps.
	// The NTP configuration task is skipped if this is set to false.
	Managed *bool `json:"managed,omitempty"`
}

NTPConfig is the configuration for NTP.

func (*NTPConfig) DeepCopy added in v1.20.0

func (in *NTPConfig) DeepCopy() *NTPConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NTPConfig.

func (*NTPConfig) DeepCopyInto added in v1.20.0

func (in *NTPConfig) DeepCopyInto(out *NTPConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkingSpec

type NetworkingSpec struct {
	// NetworkID is the cloud provider's identifier of the existing network (for example, AWS VPC) the cluster should use.
	// If not specified, kOps will create a new network.
	NetworkID string `json:"networkID,omitempty"`
	// NetworkCIDR is the primary IPv4 CIDR used for the cloud provider's network.
	// It is not required on GCE.
	// On DO, it maps to the VPC CIDR.
	NetworkCIDR string `json:"networkCIDR,omitempty"`
	// AdditionalNetworkCIDRs is a list of additional CIDR used for the AWS VPC
	// or otherwise allocated to k8s. This is a real CIDR, not the internal k8s network
	// On AWS, it maps to any additional CIDRs added to a VPC.
	AdditionalNetworkCIDRs []string `json:"additionalNetworkCIDRs,omitempty"`

	// Subnets are the subnets that the cluster can use.
	Subnets []ClusterSubnetSpec `json:"subnets,omitempty"`
	// TagSubnets controls if tags are added to subnets to enable use by load balancers (AWS only). Default: true.
	TagSubnets *bool `json:"tagSubnets,omitempty"`

	// Topology defines the type of network topology to use on the cluster - default public
	// This is heavily weighted towards AWS for the time being, but should also be agnostic enough
	// to port out to GCE later if needed
	Topology *TopologySpec `json:"topology,omitempty"`
	// HTTPProxy defines connection information to support use of a private cluster behind an forward HTTP Proxy
	EgressProxy *EgressProxySpec `json:"egressProxy,omitempty"`

	// NonMasqueradeCIDR is the CIDR for the internal k8s network (for pod IPs)
	// It cannot overlap ServiceClusterIPRange
	NonMasqueradeCIDR string `json:"nonMasqueradeCIDR,omitempty"`
	// PodCIDR is the CIDR from which we allocate IPs for pods
	PodCIDR string `json:"podCIDR,omitempty"`
	// ServiceClusterIPRange is the CIDR, from the internal network, where we allocate IPs for services
	ServiceClusterIPRange string `json:"serviceClusterIPRange,omitempty"`
	// IsolateControlPlane determines whether we should lock down masters so that they are not on the pod network.
	// true is the kube-up behaviour, but it is very surprising: it means that daemonsets only work on the master
	// if they have hostNetwork=true.
	// false is now the default, and it will:
	//  * give the master a normal PodCIDR
	//  * run kube-proxy on the master
	//  * enable debugging handlers on the master, so kubectl logs works
	IsolateControlPlane *bool `json:"isolateControlPlane,omitempty"`

	Classic    *ClassicNetworkingSpec    `json:"classic,omitempty"`
	Kubenet    *KubenetNetworkingSpec    `json:"kubenet,omitempty"`
	External   *ExternalNetworkingSpec   `json:"external,omitempty"`
	CNI        *CNINetworkingSpec        `json:"cni,omitempty"`
	Kopeio     *KopeioNetworkingSpec     `json:"kopeio,omitempty"`
	Weave      *WeaveNetworkingSpec      `json:"weave,omitempty"`
	Flannel    *FlannelNetworkingSpec    `json:"flannel,omitempty"`
	Calico     *CalicoNetworkingSpec     `json:"calico,omitempty"`
	Canal      *CanalNetworkingSpec      `json:"canal,omitempty"`
	KubeRouter *KuberouterNetworkingSpec `json:"kubeRouter,omitempty"`
	Romana     *RomanaNetworkingSpec     `json:"romana,omitempty"`
	AmazonVPC  *AmazonVPCNetworkingSpec  `json:"amazonVPC,omitempty"`
	Cilium     *CiliumNetworkingSpec     `json:"cilium,omitempty"`
	LyftVPC    *LyftVPCNetworkingSpec    `json:"lyftvpc,omitempty"`
	GCP        *GCPNetworkingSpec        `json:"gcp,omitempty"`
}

NetworkingSpec configures networking.

func (*NetworkingSpec) DeepCopy

func (in *NetworkingSpec) DeepCopy() *NetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkingSpec.

func (*NetworkingSpec) DeepCopyInto

func (in *NetworkingSpec) DeepCopyInto(out *NetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkingSpec) UsesKubenet added in v1.27.0

func (n *NetworkingSpec) UsesKubenet() bool

UsesKubenet returns true if our networking is derived from kubenet

type NodeAuthorizationSpec

type NodeAuthorizationSpec struct {
	// NodeAuthorizer defined the configuration for the node authorizer
	NodeAuthorizer *NodeAuthorizerSpec `json:"nodeAuthorizer,omitempty"`
}

NodeAuthorizationSpec is used to node authorization

func (*NodeAuthorizationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAuthorizationSpec.

func (*NodeAuthorizationSpec) DeepCopyInto

func (in *NodeAuthorizationSpec) DeepCopyInto(out *NodeAuthorizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeAuthorizerSpec

type NodeAuthorizerSpec struct {
	// Authorizer is the authorizer to use
	Authorizer string `json:"authorizer,omitempty"`
	// Features is a series of authorizer features to enable or disable
	Features []string `json:"features,omitempty"`
	// Image is the location of container
	Image string `json:"image,omitempty"`
	// NodeURL is the node authorization service url
	NodeURL string `json:"nodeURL,omitempty"`
	// Port is the port the service is running on the master
	Port int `json:"port,omitempty"`
	// Interval the time between retires for authorization request
	Interval *metav1.Duration `json:"interval,omitempty"`
	// Timeout the max time for authorization request
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// TokenTTL is the max ttl for an issued token
	TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"`
}

NodeAuthorizerSpec defines the configuration for a node authorizer

func (*NodeAuthorizerSpec) DeepCopy

func (in *NodeAuthorizerSpec) DeepCopy() *NodeAuthorizerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAuthorizerSpec.

func (*NodeAuthorizerSpec) DeepCopyInto

func (in *NodeAuthorizerSpec) DeepCopyInto(out *NodeAuthorizerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeLocalDNSConfig added in v1.18.0

type NodeLocalDNSConfig struct {
	// Enabled activates the node-local-dns addon.
	Enabled *bool `json:"enabled,omitempty"`
	// ExternalCoreFile is used to provide a complete NodeLocalDNS CoreFile by the user - ignores other provided flags which modify the CoreFile.
	ExternalCoreFile string `json:"externalCoreFile,omitempty"`
	// AdditionalConfig is used to provide additional config for node local dns by the user - it will include the original CoreFile made by kOps.
	AdditionalConfig string `json:"additionalConfig,omitempty"`
	// Image overrides the default container image used for node-local-dns addon.
	Image *string `json:"image,omitempty"`
	// Local listen IP address. It can be any IP in the 169.254.20.0/16 space or any other IP address that can be guaranteed to not collide with any existing IP.
	LocalIP string `json:"localIP,omitempty"`
	// If enabled, nodelocal dns will use kubedns as a default upstream
	ForwardToKubeDNS *bool `json:"forwardToKubeDNS,omitempty"`
	// MemoryRequest specifies the memory requests of each node-local-dns container in the daemonset. Default 5Mi.
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest specifies the cpu requests of each node-local-dns container in the daemonset. Default 25m.
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// PodAnnotations makes possible to add additional annotations to node-local-dns.
	// Default: none
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
}

NodeLocalDNSConfig are options of the node-local-dns

func (*NodeLocalDNSConfig) DeepCopy added in v1.18.0

func (in *NodeLocalDNSConfig) DeepCopy() *NodeLocalDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLocalDNSConfig.

func (*NodeLocalDNSConfig) DeepCopyInto added in v1.18.0

func (in *NodeLocalDNSConfig) DeepCopyInto(out *NodeLocalDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeProblemDetectorConfig added in v1.21.3

type NodeProblemDetectorConfig struct {
	// Enabled enables the NodeProblemDetector.
	// Default: false
	Enabled *bool `json:"enabled,omitempty"`
	// Image is the NodeProblemDetector container image used.
	Image *string `json:"image,omitempty"`

	// MemoryRequest of NodeProblemDetector container.
	// Default: 80Mi
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest of NodeProblemDetector container.
	// Default: 10m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// MemoryLimit of NodeProblemDetector container.
	// Default: 80Mi
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
	// CPULimit of NodeProblemDetector container.
	// Default: 10m
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
}

NodeProblemDetector determines the node problem detector configuration.

func (*NodeProblemDetectorConfig) DeepCopy added in v1.21.3

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeProblemDetectorConfig.

func (*NodeProblemDetectorConfig) DeepCopyInto added in v1.21.3

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeTerminationHandlerSpec added in v1.26.0

type NodeTerminationHandlerSpec struct {
	// DeleteSQSMsgIfNodeNotFound makes node termination handler delete the SQS Message from the SQS Queue if the targeted node is not found.
	// Only used in Queue Processor mode.
	// Default: false
	DeleteSQSMsgIfNodeNotFound *bool `json:"deleteSQSMsgIfNodeNotFound,omitempty"`
	// Enabled enables the node termination handler.
	// Default: true
	Enabled *bool `json:"enabled,omitempty"`
	// EnableSpotInterruptionDraining makes node termination handler drain nodes when spot interruption termination notice is received.
	// Cannot be disabled in queue-processor mode.
	// Default: true
	EnableSpotInterruptionDraining *bool `json:"enableSpotInterruptionDraining,omitempty"`
	// EnableScheduledEventDraining makes node termination handler drain nodes before the maintenance window starts for an EC2 instance scheduled event.
	// Cannot be disabled in queue-processor mode.
	// Default: true
	EnableScheduledEventDraining *bool `json:"enableScheduledEventDraining,omitempty"`
	// EnableRebalanceMonitoring makes node termination handler cordon nodes when the rebalance recommendation notice is received.
	// In queue-processor mode, cannot be enabled without rebalance draining.
	// Default: false
	EnableRebalanceMonitoring *bool `json:"enableRebalanceMonitoring,omitempty"`
	// EnableRebalanceDraining makes node termination handler drain nodes when the rebalance recommendation notice is received.
	// Default: false
	EnableRebalanceDraining *bool `json:"enableRebalanceDraining,omitempty"`

	// EnablePrometheusMetrics enables the "/metrics" endpoint.
	// Default: false
	EnablePrometheusMetrics *bool `json:"prometheusEnable,omitempty"`

	// EnableSQSTerminationDraining enables queue-processor mode which drains nodes when an SQS termination event is received.
	// Default: true
	EnableSQSTerminationDraining *bool `json:"enableSQSTerminationDraining,omitempty"`

	// ExcludeFromLoadBalancers makes node termination handler will mark for exclusion from load balancers before node are cordoned.
	// Default: true
	ExcludeFromLoadBalancers *bool `json:"excludeFromLoadBalancers,omitempty"`

	// ManagedASGTag is the tag used to determine which nodes NTH can take action on
	// This field has kept its name even though it now maps to the --managed-tag flag due to keeping the API stable.
	// Node termination handler does no longer check the ASG for this tag, but the actual EC2 instances.
	ManagedASGTag *string `json:"managedASGTag,omitempty"`

	// PodTerminationGracePeriod is the time in seconds given to each pod to terminate gracefully.
	// If negative, the default value specified in the pod will be used, which defaults to 30 seconds if not specified for the pod.
	// Default: -1
	PodTerminationGracePeriod *int32 `json:"podTerminationGracePeriod,omitempty"`

	// TaintNode makes node termination handler taint nodes when an interruption event occurs.
	// Default: false
	TaintNode *bool `json:"taintNode,omitempty"`

	// MemoryLimit of NodeTerminationHandler container.
	// Default: none
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
	// MemoryRequest of NodeTerminationHandler container.
	// Default: 64Mi
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest of NodeTerminationHandler container.
	// Default: 50m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// Version is the container image tag used.
	Version *string `json:"version,omitempty"`

	// Replaces the default webhook message template.
	WebhookTemplate *string `json:"webhookTemplate,omitempty"`
	// If specified, posts event data to URL upon instance interruption action.
	WebhookURL *string `json:"webhookURL,omitempty"`
}

NodeTerminationHandlerSpec determines the node termination handler configuration.

func (*NodeTerminationHandlerSpec) DeepCopy added in v1.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeTerminationHandlerSpec.

func (*NodeTerminationHandlerSpec) DeepCopyInto added in v1.26.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeTerminationHandlerSpec) IsQueueMode added in v1.26.0

func (n *NodeTerminationHandlerSpec) IsQueueMode() bool

type NvidiaGPUConfig added in v1.21.3

type NvidiaGPUConfig struct {
	// Package is the name of the nvidia driver package that will be installed.
	// Default is "nvidia-headless-510-server".
	DriverPackage string `json:"package,omitempty"`
	// Enabled determines if kOps will install the Nvidia GPU runtime and drivers.
	// They will only be installed on intances that has an Nvidia GPU.
	Enabled *bool `json:"enabled,omitempty"`
	// DCGMExporterConfig configures the DCGM exporter
	DCGMExporter *DCGMExporterConfig `json:"dcgmExporter,omitempty"`
}

func (*NvidiaGPUConfig) DeepCopy added in v1.21.3

func (in *NvidiaGPUConfig) DeepCopy() *NvidiaGPUConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NvidiaGPUConfig.

func (*NvidiaGPUConfig) DeepCopyInto added in v1.21.3

func (in *NvidiaGPUConfig) DeepCopyInto(out *NvidiaGPUConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OIDCAuthenticationSpec added in v1.27.0

type OIDCAuthenticationSpec struct {
	// UsernameClaim is the OpenID claim to use as the username.
	// Note that claims other than the default ('sub') are not guaranteed to be
	// unique and immutable.
	UsernameClaim *string `json:"usernameClaim,omitempty"`
	// UsernamePrefix is the prefix prepended to username claims to prevent
	// clashes with existing names (such as 'system:' users).
	UsernamePrefix *string `json:"usernamePrefix,omitempty"`
	// GroupsClaims are the names of the custom OpenID Connect claims for
	// specifying user groups (optional).
	GroupsClaims []string `json:"groupsClaims,omitempty"`
	// GroupsPrefix is the prefix prepended to group claims to prevent
	// clashes with existing names (such as 'system:' groups).
	GroupsPrefix *string `json:"groupsPrefix,omitempty"`
	// IssuerURL is the URL of the OpenID issuer. Only the HTTPS scheme will
	// be accepted.
	// If set, will be used to verify the OIDC JSON Web Token (JWT).
	IssuerURL *string `json:"issuerURL,omitempty"`
	// ClientID is the client ID for the OpenID Connect client. Must be set
	// if issuerURL is set.
	ClientID *string `json:"clientID,omitempty"`
	// RequiredClaims are key/value pairs that describe required claims in the ID Token.
	// If set, the claims are verified to be present in the ID Token with corresponding values.
	RequiredClaims map[string]string `json:"requiredClaims,omitempty"`
}

func (*OIDCAuthenticationSpec) DeepCopy added in v1.27.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCAuthenticationSpec.

func (*OIDCAuthenticationSpec) DeepCopyInto added in v1.27.0

func (in *OIDCAuthenticationSpec) DeepCopyInto(out *OIDCAuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackBlockStorageConfig added in v1.15.1

type OpenstackBlockStorageConfig struct {
	Version                  *string `json:"bs-version,omitempty"`
	IgnoreAZ                 *bool   `json:"ignore-volume-az,omitempty"`
	OverrideAZ               *string `json:"override-volume-az,omitempty"`
	IgnoreVolumeMicroVersion *bool   `json:"ignore-volume-microversion,omitempty"`
	MetricsEnabled           *bool   `json:"metricsEnabled,omitempty"`
	// CreateStorageClass provisions a default class for the Cinder plugin
	CreateStorageClass *bool  `json:"createStorageClass,omitempty"`
	CSIPluginImage     string `json:"csiPluginImage,omitempty"`
	CSITopologySupport *bool  `json:"csiTopologySupport,omitempty"`
	// ClusterName sets the --cluster flag for the cinder-csi-plugin to the provided name
	ClusterName string `json:"clusterName,omitempty"`
}

func (*OpenstackBlockStorageConfig) DeepCopy added in v1.15.1

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackBlockStorageConfig.

func (*OpenstackBlockStorageConfig) DeepCopyInto added in v1.15.1

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackLoadbalancerConfig added in v1.15.1

type OpenstackLoadbalancerConfig struct {
	Method                *string `json:"method,omitempty"`
	Provider              *string `json:"provider,omitempty"`
	UseOctavia            *bool   `json:"useOctavia,omitempty"`
	FloatingNetwork       *string `json:"floatingNetwork,omitempty"`
	FloatingNetworkID     *string `json:"floatingNetworkID,omitempty"`
	FloatingSubnet        *string `json:"floatingSubnet,omitempty"`
	SubnetID              *string `json:"subnetID,omitempty"`
	ManageSecGroups       *bool   `json:"manageSecurityGroups,omitempty"`
	EnableIngressHostname *bool   `json:"enableIngressHostname,omitempty"`
	IngressHostnameSuffix *string `json:"ingressHostnameSuffix,omitempty"`
	FlavorID              *string `json:"flavorID,omitempty"`
}

OpenstackLoadbalancerConfig defines the config for a neutron loadbalancer

func (*OpenstackLoadbalancerConfig) DeepCopy added in v1.15.1

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackLoadbalancerConfig.

func (*OpenstackLoadbalancerConfig) DeepCopyInto added in v1.15.1

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackMetadata added in v1.21.3

type OpenstackMetadata struct {
	// ConfigDrive specifies to use config drive for retrieving user data instead of the metadata service when launching instances
	ConfigDrive *bool `json:"configDrive,omitempty"`
}

OpenstackMetadata defines config for metadata service related settings

func (*OpenstackMetadata) DeepCopy added in v1.21.3

func (in *OpenstackMetadata) DeepCopy() *OpenstackMetadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackMetadata.

func (*OpenstackMetadata) DeepCopyInto added in v1.21.3

func (in *OpenstackMetadata) DeepCopyInto(out *OpenstackMetadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackMonitor added in v1.15.1

type OpenstackMonitor struct {
	Delay      *string `json:"delay,omitempty"`
	Timeout    *string `json:"timeout,omitempty"`
	MaxRetries *int    `json:"maxRetries,omitempty"`
}

OpenstackMonitor defines the config for a health monitor

func (*OpenstackMonitor) DeepCopy added in v1.15.1

func (in *OpenstackMonitor) DeepCopy() *OpenstackMonitor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackMonitor.

func (*OpenstackMonitor) DeepCopyInto added in v1.15.1

func (in *OpenstackMonitor) DeepCopyInto(out *OpenstackMonitor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackNetwork added in v1.20.0

type OpenstackNetwork struct {
	AvailabilityZoneHints []*string `json:"availabilityZoneHints,omitempty"`
	IPv6SupportDisabled   *bool     `json:"ipv6SupportDisabled,omitempty"`
	PublicNetworkNames    []*string `json:"publicNetworkNames,omitempty"`
	InternalNetworkNames  []*string `json:"internalNetworkNames,omitempty"`
	AddressSortOrder      *string   `json:"addressSortOrder,omitempty"`
}

OpenstackNetwork defines the config for a network

func (*OpenstackNetwork) DeepCopy added in v1.20.0

func (in *OpenstackNetwork) DeepCopy() *OpenstackNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackNetwork.

func (*OpenstackNetwork) DeepCopyInto added in v1.20.0

func (in *OpenstackNetwork) DeepCopyInto(out *OpenstackNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackRouter added in v1.15.1

type OpenstackRouter struct {
	ExternalNetwork       *string   `json:"externalNetwork,omitempty"`
	DNSServers            *string   `json:"dnsServers,omitempty"`
	ExternalSubnet        *string   `json:"externalSubnet,omitempty"`
	AvailabilityZoneHints []*string `json:"availabilityZoneHints,omitempty"`
}

OpenstackRouter defines the config for a router

func (*OpenstackRouter) DeepCopy added in v1.15.1

func (in *OpenstackRouter) DeepCopy() *OpenstackRouter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackRouter.

func (*OpenstackRouter) DeepCopyInto added in v1.15.1

func (in *OpenstackRouter) DeepCopyInto(out *OpenstackRouter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenstackSpec added in v1.24.0

type OpenstackSpec struct {
	Loadbalancer       *OpenstackLoadbalancerConfig `json:"loadbalancer,omitempty"`
	Monitor            *OpenstackMonitor            `json:"monitor,omitempty"`
	Router             *OpenstackRouter             `json:"router,omitempty"`
	BlockStorage       *OpenstackBlockStorageConfig `json:"blockStorage,omitempty"`
	InsecureSkipVerify *bool                        `json:"insecureSkipVerify,omitempty"`
	Network            *OpenstackNetwork            `json:"network,omitempty"`
	Metadata           *OpenstackMetadata           `json:"metadata,omitempty"`
}

OpenstackSpec defines cloud config elements for the openstack cloud provider

func (*OpenstackSpec) DeepCopy added in v1.24.0

func (in *OpenstackSpec) DeepCopy() *OpenstackSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenstackSpec.

func (*OpenstackSpec) DeepCopyInto added in v1.24.0

func (in *OpenstackSpec) DeepCopyInto(out *OpenstackSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PDCSIDriver added in v1.26.0

type PDCSIDriver struct {
	// Enabled enables the GCP PD CSI driver
	Enabled *bool `json:"enabled,omitempty"`
}

PDCSIDriver is the config for the GCP PD CSI driver

func (*PDCSIDriver) DeepCopy added in v1.26.0

func (in *PDCSIDriver) DeepCopy() *PDCSIDriver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PDCSIDriver.

func (*PDCSIDriver) DeepCopyInto added in v1.26.0

func (in *PDCSIDriver) DeepCopyInto(out *PDCSIDriver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PackageVersionSpec added in v1.24.0

type PackageVersionSpec struct {
	// Name is the name of the package.
	Name string `json:"name"`

	// Version is the version of the package.
	Version string `json:"version"`

	// KubernetesVersion specifies that this package only applies to a semver range of kubernetes version
	KubernetesVersion string `json:"kubernetesVersion,omitempty"`

	// KopsVersion specifies that this package only applies to a semver range of kOps version
	KopsVersion string `json:"kopsVersion,omitempty"`
}

PackageVersionSpec specifies the version of a package

func (*PackageVersionSpec) DeepCopy added in v1.24.0

func (in *PackageVersionSpec) DeepCopy() *PackageVersionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PackageVersionSpec.

func (*PackageVersionSpec) DeepCopyInto added in v1.24.0

func (in *PackageVersionSpec) DeepCopyInto(out *PackageVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PackagesConfig added in v1.19.0

type PackagesConfig struct {
	// HashAmd64 overrides the hash for the AMD64 package.
	HashAmd64 *string `json:"hashAmd64,omitempty"`
	// HashArm64 overrides the hash for the ARM64 package.
	HashArm64 *string `json:"hashArm64,omitempty"`
	// UrlAmd64 overrides the URL for the AMD64 package.
	UrlAmd64 *string `json:"urlAmd64,omitempty"`
	// UrlArm64 overrides the URL for the ARM64 package.
	UrlArm64 *string `json:"urlArm64,omitempty"`
}

func (*PackagesConfig) DeepCopy added in v1.19.0

func (in *PackagesConfig) DeepCopy() *PackagesConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PackagesConfig.

func (*PackagesConfig) DeepCopyInto added in v1.19.0

func (in *PackagesConfig) DeepCopyInto(out *PackagesConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodIdentityWebhookSpec added in v1.26.0

type PodIdentityWebhookSpec struct {
	Enabled  bool `json:"enabled,omitempty"`
	Replicas int  `json:"replicas,omitempty"`
}

PodIdentityWebhookSpec configures an EKS Pod Identity Webhook.

func (*PodIdentityWebhookSpec) DeepCopy added in v1.26.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodIdentityWebhookSpec.

func (*PodIdentityWebhookSpec) DeepCopyInto added in v1.26.0

func (in *PodIdentityWebhookSpec) DeepCopyInto(out *PodIdentityWebhookSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RBACAuthorizationSpec

type RBACAuthorizationSpec struct{}

func (*RBACAuthorizationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBACAuthorizationSpec.

func (*RBACAuthorizationSpec) DeepCopyInto

func (in *RBACAuthorizationSpec) DeepCopyInto(out *RBACAuthorizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RollingUpdate added in v1.18.0

type RollingUpdate struct {
	// DrainAndTerminate enables draining and terminating nodes during rolling updates.
	// Defaults to true.
	DrainAndTerminate *bool `json:"drainAndTerminate,omitempty"`
	// MaxUnavailable is the maximum number of nodes that can be unavailable during the update.
	// The value can be an absolute number (for example 5) or a percentage of desired
	// nodes (for example 10%).
	// The absolute number is calculated from a percentage by rounding down.
	// Defaults to 1 if MaxSurge is 0, otherwise defaults to 0.
	// Example: when this is set to 30%, the InstanceGroup can be scaled
	// down to 70% of desired nodes immediately when the rolling update
	// starts. Once new nodes are ready, more old nodes can be drained,
	// ensuring that the total number of nodes available at all times
	// during the update is at least 70% of desired nodes.
	// +optional
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
	// MaxSurge is the maximum number of extra nodes that can be created
	// during the update.
	// The value can be an absolute number (for example 5) or a percentage of
	// desired machines (for example 10%).
	// The absolute number is calculated from a percentage by rounding up.
	// Has no effect on instance groups with role "Master".
	// Defaults to 1 on AWS, 0 otherwise.
	// Example: when this is set to 30%, the InstanceGroup can be scaled
	// up immediately when the rolling update starts, such that the total
	// number of old and new nodes do not exceed 130% of desired
	// nodes.
	// +optional
	MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"`
}

func (*RollingUpdate) DeepCopy added in v1.18.0

func (in *RollingUpdate) DeepCopy() *RollingUpdate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdate.

func (*RollingUpdate) DeepCopyInto added in v1.18.0

func (in *RollingUpdate) DeepCopyInto(out *RollingUpdate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RomanaNetworkingSpec

type RomanaNetworkingSpec struct {
	// DaemonServiceIP is the Kubernetes Service IP for the romana-daemon pod
	DaemonServiceIP string `json:"daemonServiceIP,omitempty"`
	// EtcdServiceIP is the Kubernetes Service IP for the etcd backend used by Romana
	EtcdServiceIP string `json:"etcdServiceIP,omitempty"`
}

RomanaNetworkingSpec declares that we want Romana networking Romana is deprecated as of kOps 1.18 and removed as of kOps 1.19.

func (*RomanaNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RomanaNetworkingSpec.

func (*RomanaNetworkingSpec) DeepCopyInto

func (in *RomanaNetworkingSpec) DeepCopyInto(out *RomanaNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteSpec added in v1.24.0

type RouteSpec struct {
	// CIDR destination of the route
	CIDR string `json:"cidr,omitempty"`
	// Target of the route
	Target string `json:"target,omitempty"`
}

func (*RouteSpec) DeepCopy added in v1.24.0

func (in *RouteSpec) DeepCopy() *RouteSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec.

func (*RouteSpec) DeepCopyInto added in v1.24.0

func (in *RouteSpec) DeepCopyInto(out *RouteSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Runc added in v1.24.2

type Runc struct {
	// Version used to pick the runc package.
	Version *string `json:"version,omitempty"`
	// Packages overrides the URL and hash for the packages.
	Packages *PackagesConfig `json:"packages,omitempty"`
}

func (*Runc) DeepCopy added in v1.24.2

func (in *Runc) DeepCopy() *Runc

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Runc.

func (*Runc) DeepCopyInto added in v1.24.2

func (in *Runc) DeepCopyInto(out *Runc)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSHCredential

type SSHCredential struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec SSHCredentialSpec `json:"spec,omitempty"`
}

SSHCredential represents a set of kops secrets

func (*SSHCredential) DeepCopy

func (in *SSHCredential) DeepCopy() *SSHCredential

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHCredential.

func (*SSHCredential) DeepCopyInto

func (in *SSHCredential) DeepCopyInto(out *SSHCredential)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SSHCredential) DeepCopyObject

func (in *SSHCredential) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SSHCredential) GetObjectKind

func (obj *SSHCredential) GetObjectKind() schema.ObjectKind

type SSHCredentialList

type SSHCredentialList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []SSHCredential `json:"items"`
}

func (*SSHCredentialList) DeepCopy

func (in *SSHCredentialList) DeepCopy() *SSHCredentialList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHCredentialList.

func (*SSHCredentialList) DeepCopyInto

func (in *SSHCredentialList) DeepCopyInto(out *SSHCredentialList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SSHCredentialList) DeepCopyObject

func (in *SSHCredentialList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SSHCredentialSpec

type SSHCredentialSpec struct {
	PublicKey string `json:"publicKey,omitempty"`
}

func (*SSHCredentialSpec) DeepCopy

func (in *SSHCredentialSpec) DeepCopy() *SSHCredentialSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHCredentialSpec.

func (*SSHCredentialSpec) DeepCopyInto

func (in *SSHCredentialSpec) DeepCopyInto(out *SSHCredentialSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ScalewaySpec added in v1.26.0

type ScalewaySpec struct {
}

ScalewaySpec configures the Scaleway cloud provider

func (*ScalewaySpec) DeepCopy added in v1.26.0

func (in *ScalewaySpec) DeepCopy() *ScalewaySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalewaySpec.

func (*ScalewaySpec) DeepCopyInto added in v1.26.0

func (in *ScalewaySpec) DeepCopyInto(out *ScalewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAccountExternalPermission added in v1.21.0

type ServiceAccountExternalPermission struct {
	// Name is the name of the Kubernetes ServiceAccount.
	Name string `json:"name"`
	// Namespace is the namespace of the Kubernetes ServiceAccount.
	Namespace string `json:"namespace"`
	// AWS grants permissions to AWS resources.
	AWS *AWSPermission `json:"aws,omitempty"`
}

ServiceAccountExternalPermissions grants a ServiceAccount permissions to external resources.

func (*ServiceAccountExternalPermission) DeepCopy added in v1.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountExternalPermission.

func (*ServiceAccountExternalPermission) DeepCopyInto added in v1.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceAccountIssuerDiscoveryConfig added in v1.21.0

type ServiceAccountIssuerDiscoveryConfig struct {
	// DiscoveryStore is the VFS path to where OIDC Issuer Discovery metadata is stored.
	DiscoveryStore string `json:"discoveryStore,omitempty"`
	// EnableAWSOIDCProvider will provision an AWS OIDC provider that trusts the ServiceAccount Issuer
	EnableAWSOIDCProvider bool `json:"enableAWSOIDCProvider,omitempty"`
	// AdditionalAudiences adds user defined audiences to the provisioned AWS OIDC provider
	AdditionalAudiences []string `json:"additionalAudiences,omitempty"`
}

ServiceAccountIssuerDiscoveryConfig configures an OIDC Issuer.

func (*ServiceAccountIssuerDiscoveryConfig) DeepCopy added in v1.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountIssuerDiscoveryConfig.

func (*ServiceAccountIssuerDiscoveryConfig) DeepCopyInto added in v1.21.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SnapshotControllerConfig added in v1.21.0

type SnapshotControllerConfig struct {
	// Enabled enables the CSI Snapshot Controller
	Enabled *bool `json:"enabled,omitempty"`
	// InstallDefaultClass will install the default VolumeSnapshotClass
	InstallDefaultClass bool `json:"installDefaultClass,omitempty"`
}

SnapshotControllerConfig is the config for the CSI Snapshot Controller

func (*SnapshotControllerConfig) DeepCopy added in v1.21.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapshotControllerConfig.

func (*SnapshotControllerConfig) DeepCopyInto added in v1.21.0

func (in *SnapshotControllerConfig) DeepCopyInto(out *SnapshotControllerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubnetType

type SubnetType string

SubnetType string describes subnet types (public, private, utility)

const (
	// SubnetTypePublic means the subnet has external addresses.
	// In IPv6 clusters it is typically dual-stack.
	SubnetTypePublic SubnetType = "Public"
	// SubnetTypePrivate means the subnet has no public addresses.
	// In IPv6 clusters it is typically IPv6-only.
	SubnetTypePrivate SubnetType = "Private"
	// SubnetTypeDualStack means the subnet has no public addresses but is dual-stack.
	SubnetTypeDualStack SubnetType = "DualStack"
	// SubnetTypeUtility mean the subnet has external addresses but is not used for nodes.
	// It is used for utility services, such as the bastion or load balancers.
	// In IPv6 clusters it is typically dual-stack.
	SubnetTypeUtility SubnetType = "Utility"
)

type TargetSpec

type TargetSpec struct {
	Terraform *TerraformSpec `json:"terraform,omitempty"`
}

TargetSpec allows for specifying target config in an extensible way

func (*TargetSpec) DeepCopy

func (in *TargetSpec) DeepCopy() *TargetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetSpec.

func (*TargetSpec) DeepCopyInto

func (in *TargetSpec) DeepCopyInto(out *TargetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TargetSpec) IsEmpty

func (t *TargetSpec) IsEmpty() bool

type TerraformSpec

type TerraformSpec struct {
	// ProviderExtraConfig contains key/value pairs to add to the main terraform provider block
	ProviderExtraConfig map[string]string `json:"providerExtraConfig,omitempty"`
	// FilesProviderExtraConfig contains key/value pairs to add to the terraform provider block used for managed files
	FilesProviderExtraConfig map[string]string `json:"filesProviderExtraConfig,omitempty"`
}

TerraformSpec allows us to specify terraform config in an extensible way

func (*TerraformSpec) DeepCopy

func (in *TerraformSpec) DeepCopy() *TerraformSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TerraformSpec.

func (*TerraformSpec) DeepCopyInto

func (in *TerraformSpec) DeepCopyInto(out *TerraformSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TerraformSpec) IsEmpty

func (t *TerraformSpec) IsEmpty() bool

type TopologySpec

type TopologySpec struct {
	// Bastion provide an external facing point of entry into a network
	// containing private network instances. This host can provide a single
	// point of fortification or audit and can be started and stopped to enable
	// or disable inbound SSH communication from the Internet. Some call the bastion
	// the "jump server".
	Bastion *BastionSpec `json:"bastion,omitempty"`

	// DNS specifies the environment for hosted DNS zones. (Public, Private, None)
	DNS DNSType `json:"dns,omitempty"`
}

func (*TopologySpec) DeepCopy

func (in *TopologySpec) DeepCopy() *TopologySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySpec.

func (*TopologySpec) DeepCopyInto

func (in *TopologySpec) DeepCopyInto(out *TopologySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserData

type UserData struct {
	// Name is the name of the user-data
	Name string `json:"name,omitempty"`
	// Type is the type of user-data
	Type string `json:"type,omitempty"`
	// Content is the user-data content
	Content string `json:"content,omitempty"`
}

UserData defines a user-data section

func (*UserData) DeepCopy

func (in *UserData) DeepCopy() *UserData

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserData.

func (*UserData) DeepCopyInto

func (in *UserData) DeepCopyInto(out *UserData)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VolumeMountSpec added in v1.15.1

type VolumeMountSpec struct {
	// Device is the device name to provision and mount
	Device string `json:"device,omitempty"`
	// Filesystem is the filesystem to mount
	Filesystem string `json:"filesystem,omitempty"`
	// FormatOptions is a collection of options passed when formatting the device
	FormatOptions []string `json:"formatOptions,omitempty"`
	// MountOptions is a collection of mount options - @TODO need to be added
	MountOptions []string `json:"mountOptions,omitempty"`
	// Path is the location to mount the device
	Path string `json:"path,omitempty"`
}

VolumeMountSpec defines the specification for mounting a device

func (*VolumeMountSpec) DeepCopy added in v1.15.1

func (in *VolumeMountSpec) DeepCopy() *VolumeMountSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMountSpec.

func (*VolumeMountSpec) DeepCopyInto added in v1.15.1

func (in *VolumeMountSpec) DeepCopyInto(out *VolumeMountSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VolumeSpec added in v1.15.1

type VolumeSpec struct {
	// DeleteOnTermination configures volume retention policy upon instance termination.
	// The volume is deleted by default. Cluster deletion does not remove retained volumes.
	DeleteOnTermination *bool `json:"deleteOnTermination,omitempty"`
	// Device is an optional device name of the block device
	Device string `json:"device,omitempty"`
	// Encrypted indicates you want to encrypt the volume
	Encrypted *bool `json:"encrypted,omitempty"`
	// IOPS is the provisioned IOPS for the volume when the volume type is io1, io2 or gp3 (AWS only).
	IOPS *int64 `json:"iops,omitempty"`
	// Throughput is the volume throughput in MBps when the volume type is gp3 (AWS only).
	Throughput *int64 `json:"throughput,omitempty"`
	// Key is the encryption key identifier for the volume
	Key *string `json:"key,omitempty"`
	// Size is the size of the volume in GB
	Size int64 `json:"size,omitempty"`
	// Type is the type of volume to create and is cloud specific
	Type string `json:"type,omitempty"`
}

VolumeSpec defined the spec for an additional volume attached to the instance group

func (*VolumeSpec) DeepCopy added in v1.15.1

func (in *VolumeSpec) DeepCopy() *VolumeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSpec.

func (*VolumeSpec) DeepCopyInto added in v1.15.1

func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WarmPoolSpec added in v1.21.0

type WarmPoolSpec struct {
	// MinSize is the minimum size of the warm pool.
	MinSize int64 `json:"minSize,omitempty"`
	// MaxSize is the maximum size of the warm pool. The desired size of the instance group
	// is subtracted from this number to determine the desired size of the warm pool
	// (unless the resulting number is smaller than MinSize).
	// The default is the instance group's MaxSize.
	MaxSize *int64 `json:"maxSize,omitempty"`
	// EnableLifecyleHook determines if an ASG lifecycle hook will be added ensuring that nodeup runs to completion.
	// Note that the metadata API must be protected from arbitrary Pods when this is enabled.
	EnableLifecycleHook bool `json:"enableLifecycleHook,omitempty"`
}

func (*WarmPoolSpec) DeepCopy added in v1.21.0

func (in *WarmPoolSpec) DeepCopy() *WarmPoolSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WarmPoolSpec.

func (*WarmPoolSpec) DeepCopyInto added in v1.21.0

func (in *WarmPoolSpec) DeepCopyInto(out *WarmPoolSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WarmPoolSpec) IsEnabled added in v1.21.0

func (in *WarmPoolSpec) IsEnabled() bool

func (*WarmPoolSpec) ResolveDefaults added in v1.21.0

func (in *WarmPoolSpec) ResolveDefaults(ig *InstanceGroup) *WarmPoolSpec

type WeaveNetworkingSpec

type WeaveNetworkingSpec struct {
	MTU         *int32 `json:"mtu,omitempty"`
	ConnLimit   *int32 `json:"connLimit,omitempty"`
	NoMasqLocal *int32 `json:"noMasqLocal,omitempty"`

	// MemoryRequest memory request of weave container. Default 200Mi
	MemoryRequest *resource.Quantity `json:"memoryRequest,omitempty"`
	// CPURequest CPU request of weave container. Default 50m
	CPURequest *resource.Quantity `json:"cpuRequest,omitempty"`
	// MemoryLimit memory limit of weave container. Default 200Mi
	MemoryLimit *resource.Quantity `json:"memoryLimit,omitempty"`
	// CPULimit CPU limit of weave container.
	CPULimit *resource.Quantity `json:"cpuLimit,omitempty"`
	// NetExtraArgs are extra arguments that are passed to weave-kube.
	NetExtraArgs string `json:"netExtraArgs,omitempty"`

	// NPCMemoryRequest memory request of weave npc container. Default 200Mi
	NPCMemoryRequest *resource.Quantity `json:"npcMemoryRequest,omitempty"`
	// NPCCPURequest CPU request of weave npc container. Default 50m
	NPCCPURequest *resource.Quantity `json:"npcCPURequest,omitempty"`
	// NPCMemoryLimit memory limit of weave npc container. Default 200Mi
	NPCMemoryLimit *resource.Quantity `json:"npcMemoryLimit,omitempty"`
	// NPCCPULimit CPU limit of weave npc container
	NPCCPULimit *resource.Quantity `json:"npcCPULimit,omitempty"`
	// NPCExtraArgs are extra arguments that are passed to weave-npc.
	NPCExtraArgs string `json:"npcExtraArgs,omitempty"`

	// Version specifies the Weave container image tag. The default depends on the kOps version.
	Version string `json:"version,omitempty"`
}

WeaveNetworkingSpec declares that we want Weave networking

func (*WeaveNetworkingSpec) DeepCopy

func (in *WeaveNetworkingSpec) DeepCopy() *WeaveNetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeaveNetworkingSpec.

func (*WeaveNetworkingSpec) DeepCopyInto

func (in *WeaveNetworkingSpec) DeepCopyInto(out *WeaveNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis
Package install installs the kops API group, making it available as an option to all of the API encoding/decoding machinery.
Package install installs the kops API group, making it available as an option to all of the API encoding/decoding machinery.
+groupName=kops.k8s.io +versionName=v1alpha2
+groupName=kops.k8s.io +versionName=v1alpha2
+groupName=kops.k8s.io +versionName=v1alpha3
+groupName=kops.k8s.io +versionName=v1alpha3

Jump to

Keyboard shortcuts

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