kops/k8s/crds/kops.k8s.io_clusters.yaml

6430 lines
348 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.0
name: clusters.kops.k8s.io
spec:
group: kops.k8s.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Namespaced
versions:
- name: v1alpha2
schema:
openAPIV3Schema:
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ClusterSpec defines the configuration for a cluster
properties:
DisableSubnetTags:
description: DisableSubnetTags controls if subnets are tagged in AWS
type: boolean
additionalNetworkCIDRs:
description: |-
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.
items:
type: string
type: array
additionalPolicies:
additionalProperties:
type: string
description: Additional policies to add for roles
type: object
additionalSans:
description: AdditionalSANs adds additional Subject Alternate Names
to apiserver cert that kops generates
items:
type: string
type: array
addons:
description: Additional addons that should be installed on the cluster
items:
description: AddonSpec defines an addon that we want to install
in the cluster
properties:
manifest:
description: Manifest is a path to the manifest that defines
the addon
type: string
type: object
type: array
api:
description: API field controls how the API is exposed outside the
cluster
properties:
dns:
description: DNS will be used to provide config on kube-apiserver
ELB DNS
type: object
loadBalancer:
description: LoadBalancer is the configuration for the kube-apiserver
ELB
properties:
accessLog:
description: AccessLog is the configuration of access logs
properties:
bucket:
description: Bucket is S3 bucket name to store the logs
in
type: string
bucketPrefix:
description: BucketPrefix is S3 bucket prefix. Logs are
stored in the root if not configured.
type: string
interval:
description: Interval is publishing interval in minutes.
This parameter is only used with classic load balancer.
type: integer
type: object
additionalSecurityGroups:
description: AdditionalSecurityGroups attaches additional
security groups (e.g. sg-123456).
items:
type: string
type: array
class:
description: 'LoadBalancerClass specifies the class of load
balancer to create: Classic, Network'
type: string
crossZoneLoadBalancing:
description: CrossZoneLoadBalancing allows you to enable the
cross zone load balancing
type: boolean
idleTimeoutSeconds:
description: IdleTimeoutSeconds sets the timeout of the api
loadbalancer.
format: int64
type: integer
securityGroupOverride:
description: SecurityGroupOverride overrides the default Kops
created SG for the load balancer.
type: string
sslCertificate:
description: SSLCertificate allows you to specify the ACM
cert to be used the LB
type: string
sslPolicy:
description: SSLPolicy allows you to overwrite the LB listener's
Security Policy
type: string
subnets:
description: Subnets allows you to specify the subnets that
must be used for the load balancer
items:
description: LoadBalancerSubnetSpec provides configuration
for subnets used for a load balancer
properties:
allocationId:
description: AllocationID specifies the Elastic IP Allocation
ID for use by a NLB
type: string
name:
description: Name specifies the name of the cluster
subnet
type: string
privateIPv4Address:
description: PrivateIPv4Address specifies the private
IPv4 address to use for a NLB
type: string
type: object
type: array
type:
description: Type of load balancer to create may Public or
Internal.
type: string
useForInternalApi:
description: UseForInternalAPI indicates whether the LB should
be used by the kubelet
type: boolean
type: object
type: object
assets:
description: Alternative locations for files and containers
properties:
containerProxy:
description: ContainerProxy is a url for a pull-through proxy
of a docker registry
type: string
containerRegistry:
description: ContainerRegistry is a url for to a docker registry
type: string
fileRepository:
description: FileRepository is the url for a private file serving
repository
type: string
type: object
authentication:
description: Authentication field controls how the cluster is configured
for authentication
properties:
aws:
properties:
backendMode:
description: BackendMode is the AWS IAM Authenticator backend
to use. Default MountedFile
type: string
clusterID:
description: ClusterID identifies the cluster performing authentication
to prevent certain replay attacks. Default master public
DNS name
type: string
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit CPU limit of AWS IAM Authenticator container.
Default 10m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest CPU request of AWS IAM Authenticator
container. Default 10m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
identityMappings:
description: IdentityMappings maps IAM Identities to Kubernetes
users/groups
items:
properties:
arn:
description: Arn of the IAM User or IAM Role to be allowed
to authenticate
type: string
groups:
description: Groups to be attached to your users/roles
items:
type: string
type: array
username:
description: Username that Kubernetes will see the user
as
type: string
type: object
type: array
image:
description: Image is the AWS IAM Authenticator container
image to use.
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit memory limit of AWS IAM Authenticator
container. Default 20Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest memory request of AWS IAM Authenticator
container. Default 20Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
kopeio:
type: object
type: object
authorization:
description: Authorization field controls how the cluster is configured
for authorization
properties:
alwaysAllow:
type: object
rbac:
type: object
type: object
awsLoadBalancerController:
description: AWSLoadbalancerControllerConfig determines the AWS LB
controller configuration.
properties:
enableShield:
description: |-
EnableShield specifies whether the controller can enable Shield Advanced.
Default: false
type: boolean
enableWAF:
description: |-
EnableWAF specifies whether the controller can use WAFs (Classic Regional).
Default: false
type: boolean
enableWAFv2:
description: |-
EnableWAFv2 specifies whether the controller can use WAFs (V2).
Default: false
type: boolean
enabled:
description: |-
Enabled enables the loadbalancer controller.
Default: false
type: boolean
version:
description: Version is the container image tag used.
type: string
type: object
certManager:
description: CertManager determines the metrics server configuration.
properties:
defaultIssuer:
description: |-
defaultIssuer sets a default clusterIssuer
Default: none
type: string
enabled:
description: |-
Enabled enables the cert manager.
Default: false
type: boolean
featureGates:
additionalProperties:
type: boolean
description: FeatureGates is a list of experimental features that
can be enabled or disabled.
type: object
hostedZoneIDs:
description: HostedZoneIDs is a list of route53 hostedzone IDs
that cert-manager will be allowed to do dns-01 validation for
items:
type: string
type: array
image:
description: |-
Image is the container image used.
Default: the latest supported image for the specified kubernetes version.
type: string
managed:
description: |-
Managed controls if cert-manager is manged and deployed by kOps.
The deployment of cert-manager is skipped if this is set to false.
type: boolean
nameservers:
description: |-
nameservers is a list of nameserver IP addresses to use instead of the pod defaults.
Default: none
items:
type: string
type: array
type: object
channel:
description: The Channel we are following
type: string
cloudConfig:
description: CloudConfiguration defines the cloud provider configuration
properties:
awsEBSCSIDriver:
description: AWSEBSCSIDriver is the config for the AWS EBS CSI
driver
properties:
enabled:
description: |-
Enabled enables the AWS EBS CSI driver. Can only be set to true.
Default: true
type: boolean
hostNetwork:
description: |-
HostNetwork can be used for large clusters for faster access to node info via instance metadata.
Default: false
type: boolean
kubeAPIBurst:
description: KubeAPIBurst Burst to use while talking with
Kubernetes API server. (default 100)
format: int32
type: integer
kubeAPIQPS:
anyOf:
- type: integer
- type: string
description: KubeAPIQPS QPS to use while talking with Kubernetes
API server. (default 20)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
managed:
description: |-
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.
type: boolean
podAnnotations:
additionalProperties:
type: string
description: |-
PodAnnotations are the annotations added to AWS EBS CSI node and controller Pods.
Default: none
type: object
version:
description: |-
Version is the container image tag used.
Default: The latest stable release which is compatible with your Kubernetes version
type: string
volumeAttachLimit:
description: |-
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: -
type: integer
type: object
azure:
description: Azure cloud-config options
properties:
adminUser:
description: AdminUser specifies the admin user of VMs.
type: string
resourceGroupName:
description: |-
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.
type: string
routeTableName:
description: RouteTableName is the name of the route table
attached to the subnet that the cluster is deployed in.
type: string
storageAccountID:
description: StorageAccountID specifies the storage account
used for the cluster installation.
type: string
subscriptionId:
description: SubscriptionID specifies the subscription used
for the cluster installation.
type: string
tenantId:
description: TenantID is the ID of the tenant that the cluster
is deployed in.
type: string
required:
- tenantId
type: object
disableSecurityGroupIngress:
description: |-
DisableSecurityGroupIngress disables the Cloud Controller Manager's creation
of an AWS Security Group for each load balancer provisioned for a Service (AWS only).
type: boolean
elbSecurityGroup:
description: |-
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 (AWS only).
type: string
gceServiceAccount:
description: GCEServiceAccount specifies the service account with
which the GCE VM runs
type: string
gceUseStartupScript:
description: GCEUseStartupScript specifies enables using startup-script
instead of user-data metadata.
type: boolean
gcpPDCSIDriver:
description: GCPPDCSIDriver is the config for the GCP PD CSI driver
properties:
enabled:
description: Enabled enables the GCP PD CSI driver
type: boolean
type: object
manageStorageClasses:
description: |-
ManageStorageClasses specifies whether kOps should create and maintain a set of
StorageClasses, one of which it nominates as the default class for the cluster.
type: boolean
multizone:
description: GCE cloud-config options
type: boolean
nodeIPFamilies:
description: NodeIPFamilies controls the IP families reported
for each node (AWS only).
items:
type: string
type: array
nodeInstancePrefix:
type: string
nodeTags:
type: string
openstack:
description: Openstack cloud-config options
properties:
blockStorage:
properties:
bs-version:
type: string
clusterName:
description: ClusterName sets the --cluster flag for the
cinder-csi-plugin to the provided name
type: string
createStorageClass:
description: CreateStorageClass provisions a default class
for the Cinder plugin
type: boolean
csiPluginImage:
type: string
csiTopologySupport:
type: boolean
ignore-volume-az:
type: boolean
ignore-volume-microversion:
type: boolean
metricsEnabled:
type: boolean
override-volume-az:
type: string
type: object
insecureSkipVerify:
type: boolean
loadbalancer:
description: OpenstackLoadbalancerConfig defines the config
for a neutron loadbalancer
properties:
enableIngressHostname:
type: boolean
flavorID:
type: string
floatingNetwork:
type: string
floatingNetworkID:
type: string
floatingSubnet:
type: string
ingressHostnameSuffix:
type: string
manageSecurityGroups:
type: boolean
method:
type: string
provider:
type: string
subnetID:
type: string
useOctavia:
type: boolean
type: object
metadata:
description: OpenstackMetadata defines config for metadata
service related settings
properties:
configDrive:
description: ConfigDrive specifies to use config drive
for retrieving user data instead of the metadata service
when launching instances
type: boolean
type: object
monitor:
description: OpenstackMonitor defines the config for a health
monitor
properties:
delay:
type: string
maxRetries:
type: integer
timeout:
type: string
type: object
network:
description: OpenstackNetwork defines the config for a network
properties:
addressSortOrder:
type: string
availabilityZoneHints:
items:
type: string
type: array
internalNetworkNames:
items:
type: string
type: array
ipv6SupportDisabled:
type: boolean
publicNetworkNames:
items:
type: string
type: array
type: object
router:
description: OpenstackRouter defines the config for a router
properties:
availabilityZoneHints:
items:
type: string
type: array
dnsServers:
type: string
externalNetwork:
type: string
externalSubnet:
type: string
type: object
type: object
spotinstOrientation:
type: string
spotinstProduct:
description: Spotinst cloud-config specs
type: string
vSphereCoreDNSServer:
description: VSphereCoreDNSServer is unused.
type: string
vSphereDatacenter:
description: VShpereDatacenter is unused.
type: string
vSphereDatastore:
description: VSphereDatastore is unused.
type: string
vSpherePassword:
description: VSpherePassword is unused.
type: string
vSphereResourcePool:
description: VSphereResourcePool is unused.
type: string
vSphereServer:
description: VSphereServer is unused.
type: string
vSphereUsername:
description: VSphereUsername is unused.
type: string
type: object
cloudControllerManager:
description: CloudControllerManagerConfig is the configuration of
the cloud controller
properties:
allocateNodeCIDRs:
description: |-
AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
ConfigureCloudRoutes is true, to be set on the cloud provider.
type: boolean
allowUntaggedCloud:
description: Allow the cluster to run without the cluster-id on
cloud instances
type: boolean
cidrAllocatorType:
description: CIDRAllocatorType specifies the type of CIDR allocator
to use.
type: string
cloudProvider:
description: CloudProvider is the provider for cloud services.
type: string
clusterCIDR:
description: ClusterCIDR is CIDR Range for Pods in cluster.
type: string
clusterName:
description: ClusterName is the instance prefix for the cluster.
type: string
concurrentNodeSyncs:
description: 'ConcurrentNodeSyncs is the number of workers concurrently
synchronizing nodes. (default: 1)'
format: int32
type: integer
configureCloudRoutes:
description: ConfigureCloudRoutes enables CIDRs allocated with
to be configured on the cloud provider.
type: boolean
controllers:
description: Controllers is a list of controllers to enable on
the controller-manager
items:
type: string
type: array
cpuRequest:
anyOf:
- type: integer
- type: string
description: |-
CPURequest of CloudControllerManager container.
Default: 200m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enableLeaderMigration:
description: EnableLeaderMigration enables controller leader migration.
type: boolean
image:
description: Image is the OCI image of the cloud controller manager.
type: string
leaderElection:
description: LeaderElection defines the configuration of leader
election client.
properties:
leaderElect:
description: |-
leaderElect enables a leader election client to gain leadership
before executing the main loop. Enable this when running replicated
components for high availability.
type: boolean
leaderElectLeaseDuration:
description: |-
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
type: string
leaderElectRenewDeadlineDuration:
description: |-
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.
type: string
leaderElectResourceLock:
description: |-
LeaderElectResourceLock is the type of resource object that is used for locking during
leader election. Supported options are endpoints (default) and `configmaps`.
type: string
leaderElectResourceName:
description: LeaderElectResourceName is the name of resource
object that is used for locking during leader election.
type: string
leaderElectResourceNamespace:
description: LeaderElectResourceNamespace is the namespace
of resource object that is used for locking during leader
election.
type: string
leaderElectRetryPeriod:
description: |-
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.
type: string
type: object
logLevel:
description: LogLevel is the verbosity of the logs.
format: int32
type: integer
master:
description: Master is the url for the kube api master.
type: string
nodeStatusUpdateFrequency:
description: 'NodeStatusUpdateFrequency is the duration between
node status updates. (default: 5m)'
type: string
useServiceAccountCredentials:
description: UseServiceAccountCredentials controls whether we
use individual service account credentials for each controller.
type: boolean
type: object
cloudLabels:
additionalProperties:
type: string
description: CloudLabels defines additional tags or labels on cloud
provider resources
type: object
cloudProvider:
description: The CloudProvider to use (aws or gce)
type: string
clusterAutoscaler:
description: ClusterAutoscaler defines the cluster autoscaler configuration.
properties:
awsUseStaticInstanceList:
description: |-
AWSUseStaticInstanceList makes the cluster autoscaler to use statically defined set of AWS EC2 Instance List.
Default: false
type: boolean
balanceSimilarNodeGroups:
description: |-
BalanceSimilarNodeGroups makes the cluster autoscaler treat similar node groups as one.
Default: false
type: boolean
cordonNodeBeforeTerminating:
description: |-
CordonNodeBeforeTerminating should CA cordon nodes before terminating during downscale process
Default: false
type: boolean
cpuRequest:
anyOf:
- type: integer
- type: string
description: |-
CPURequest of cluster autoscaler container.
Default: 100m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
createPriorityExpanderConfig:
description: |-
CreatePriorityExpenderConfig makes kOps create the priority-expander ConfigMap
Default: true
type: boolean
customPriorityExpanderConfig:
additionalProperties:
items:
type: string
type: array
description: |-
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
type: object
emitPerNodegroupMetrics:
description: |-
EmitPerNodegroupMetrics If true, publishes the node groups min and max metrics count set on the cluster autoscaler.
Default: false
type: boolean
enabled:
description: |-
Enabled enables the cluster autoscaler.
Default: false
type: boolean
expander:
description: |-
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
type: string
ignoreDaemonSetsUtilization:
description: |-
IgnoreDaemonSetsUtilization causes the cluster autoscaler to ignore DaemonSet-managed pods when calculating resource utilization for scaling down.
Default: false
type: boolean
image:
description: |-
Image is the container image used.
Default: the latest supported image for the specified kubernetes version.
type: string
maxNodeProvisionTime:
description: MaxNodeProvisionTime determines how long CAS will
wait for a node to join the cluster.
type: string
memoryRequest:
anyOf:
- type: integer
- type: string
description: |-
MemoryRequest of cluster autoscaler container.
Default: 300Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
newPodScaleUpDelay:
description: |-
NewPodScaleUpDelay causes the cluster autoscaler to ignore unschedulable pods until they are a certain "age", regardless of the scan-interval
Default: 0s
type: string
podAnnotations:
additionalProperties:
type: string
description: |-
PodAnnotations are the annotations added to cluster autoscaler pods when they are created.
Default: none
type: object
scaleDownDelayAfterAdd:
description: |-
ScaleDownDelayAfterAdd determines the time after scale up that scale down evaluation resumes
Default: 10m0s
type: string
scaleDownUnneededTime:
description: |-
scaleDownUnneededTime determines the time a node should be unneeded before it is eligible for scale down
Default: 10m0s
type: string
scaleDownUnreadyTime:
description: |-
ScaleDownUnreadyTime determines the time an unready node should be unneeded before it is eligible for scale down
Default: 20m0s
type: string
scaleDownUtilizationThreshold:
description: |-
ScaleDownUtilizationThreshold determines the utilization threshold for node scale-down.
Default: 0.5
type: string
skipNodesWithCustomControllerPods:
description: |-
SkipNodesWithCustomControllerPods makes the cluster autoscaler skip scale-down of nodes with pods owned by custom controllers.
Default: true
type: boolean
skipNodesWithLocalStorage:
description: |-
SkipNodesWithLocalStorage makes the cluster autoscaler skip scale-down of nodes with local storage.
Default: true
type: boolean
skipNodesWithSystemPods:
description: |-
SkipNodesWithSystemPods makes the cluster autoscaler skip scale-down of nodes with non-DaemonSet pods in the kube-system namespace.
Default: true
type: boolean
type: object
clusterDNSDomain:
description: ClusterDNSDomain is the suffix we use for internal DNS
names (normally cluster.local)
type: string
configBase:
description: |-
ConfigBase is the path where we store configuration for the cluster
This might be different that the location when 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)
type: string
configStore:
description: ConfigStore is unused.
type: string
containerRuntime:
description: ContainerRuntime was removed.
type: string
containerd:
description: Component configurations
properties:
address:
description: Address of containerd's GRPC server (default "/run/containerd/containerd.sock").
type: string
configAdditions:
additionalProperties:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
description: ConfigAdditions adds additional config entries to
the generated config file.
type: object
configOverride:
description: ConfigOverride is the complete containerd config
file provided by the user.
type: string
logLevel:
description: LogLevel controls the logging details [trace, debug,
info, warn, error, fatal, panic] (default "info").
type: string
nri:
description: NRI configures the Node Resource Interface.
properties:
enabled:
description: Enable NRI support in containerd
type: boolean
pluginRegistrationTimeout:
description: PluginRegistrationTimeout is the timeout for
plugin registration
type: string
pluginRequestTimeout:
description: PluginRequestTimeout is the timeout for a plugin
to handle a request
type: string
type: object
nvidiaGPU:
description: NvidiaGPU configures the Nvidia GPU runtime.
properties:
dcgmExporter:
description: DCGMExporterConfig configures the DCGM exporter
properties:
enabled:
description: Enabled determines if kOps will install the
DCGM exporter
type: boolean
type: object
enabled:
description: |-
Enabled determines if kOps will install the Nvidia GPU runtime and drivers.
They will only be installed on intances that has an Nvidia GPU.
type: boolean
package:
description: |-
Package is the name of the nvidia driver package that will be installed.
Default is "nvidia-headless-460-server".
type: string
type: object
packages:
description: Packages overrides the URL and hash for the packages.
properties:
hashAmd64:
description: HashAmd64 overrides the hash for the AMD64 package.
type: string
hashArm64:
description: HashArm64 overrides the hash for the ARM64 package.
type: string
urlAmd64:
description: UrlAmd64 overrides the URL for the AMD64 package.
type: string
urlArm64:
description: UrlArm64 overrides the URL for the ARM64 package.
type: string
type: object
registryMirrors:
additionalProperties:
items:
type: string
type: array
description: RegistryMirrors is list of image registries
type: object
root:
description: Root directory for persistent data (default "/var/lib/containerd").
type: string
runc:
description: Runc configures the runc runtime.
properties:
packages:
description: Packages overrides the URL and hash for the packages.
properties:
hashAmd64:
description: HashAmd64 overrides the hash for the AMD64
package.
type: string
hashArm64:
description: HashArm64 overrides the hash for the ARM64
package.
type: string
urlAmd64:
description: UrlAmd64 overrides the URL for the AMD64
package.
type: string
urlArm64:
description: UrlArm64 overrides the URL for the ARM64
package.
type: string
type: object
version:
description: Version used to pick the runc package.
type: string
type: object
selinuxEnabled:
description: SelinuxEnabled enables SELinux support
type: boolean
skipInstall:
description: SkipInstall prevents kOps from installing and modifying
containerd in any way (default "false").
type: boolean
state:
description: State directory for execution state files (default
"/run/containerd").
type: string
version:
description: Version used to pick the containerd package.
type: string
type: object
dnsControllerGossipConfig:
description: DNSControllerGossipConfig for the cluster assuming the
use of gossip DNS
properties:
listen:
type: string
protocol:
type: string
secondary:
properties:
listen:
type: string
protocol:
type: string
secret:
type: string
seed:
type: string
type: object
secret:
type: string
seed:
type: string
type: object
dnsZone:
description: |-
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.
type: string
docker:
description: Docker was removed.
properties:
authorizationPlugins:
description: AuthorizationPlugins is a list of authorization plugins
items:
type: string
type: array
bridge:
description: Bridge is the network interface containers should
bind onto
type: string
bridgeIP:
description: BridgeIP is a specific IP address and netmask for
the docker0 bridge, using standard CIDR notation
type: string
dataRoot:
description: DataRoot is the root directory of persistent docker
state (default "/var/lib/docker")
type: string
defaultRuntime:
description: DefaultRuntime is the default OCI runtime for containers
(default "runc")
type: string
defaultUlimit:
description: DefaultUlimit is the ulimits for containers
items:
type: string
type: array
dns:
description: DNS is the IP address of the DNS server
items:
type: string
type: array
execOpt:
description: ExecOpt is a series of options passed to the runtime
items:
type: string
type: array
execRoot:
description: ExecRoot is the root directory for execution state
files (default "/var/run/docker")
type: string
experimental:
description: Experimental features permits enabling new features
such as dockerd metrics
type: boolean
healthCheck:
description: HealthCheck enables the periodic health-check service
type: boolean
hosts:
description: 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
items:
type: string
type: array
insecureRegistries:
description: InsecureRegistries enables multiple insecure docker
registry communications
items:
type: string
type: array
insecureRegistry:
description: InsecureRegistry enable insecure registry communication
@question according to dockers this a list??
type: string
ipMasq:
description: IPMasq enables ip masquerading for containers
type: boolean
ipTables:
description: IPtables enables addition of iptables rules
type: boolean
liveRestore:
description: LiveRestore enables live restore of docker when containers
are still running
type: boolean
logDriver:
description: LogDriver is the default driver for container logs
(default "json-file")
type: string
logLevel:
description: LogLevel is the logging level ("debug", "info", "warn",
"error", "fatal") (default "info")
type: string
logOpt:
description: Logopt is a series of options given to the log driver
options for containers
items:
type: string
type: array
maxConcurrentDownloads:
description: MaxConcurrentDownloads sets the max concurrent downloads
for each pull
format: int32
type: integer
maxConcurrentUploads:
description: MaxConcurrentUploads sets the max concurrent uploads
for each push
format: int32
type: integer
maxDownloadAttempts:
description: MaxDownloadAttempts sets the max download attempts
for each pull
format: int32
type: integer
metricsAddress:
description: Metrics address is the endpoint to serve with Prometheus
format metrics
type: string
mtu:
description: MTU is the containers network MTU
format: int32
type: integer
packages:
description: Packages overrides the URL and hash for the packages.
properties:
hashAmd64:
description: HashAmd64 overrides the hash for the AMD64 package.
type: string
hashArm64:
description: HashArm64 overrides the hash for the ARM64 package.
type: string
urlAmd64:
description: UrlAmd64 overrides the URL for the AMD64 package.
type: string
urlArm64:
description: UrlArm64 overrides the URL for the ARM64 package.
type: string
type: object
registryMirrors:
description: RegistryMirrors is a referred list of docker registry
mirror
items:
type: string
type: array
runtimes:
description: Runtimes registers an additional OCI compatible runtime
(default [])
items:
type: string
type: array
selinuxEnabled:
description: SelinuxEnabled enables SELinux support
type: boolean
skipInstall:
description: SkipInstall when set to true will prevent kops from
installing and modifying Docker in any way
type: boolean
storage:
description: Storage is the docker storage driver to use
type: string
storageOpts:
description: StorageOpts is a series of options passed to the
storage driver
items:
type: string
type: array
userNamespaceRemap:
description: UserNamespaceRemap sets the user namespace remapping
option for the docker daemon
type: string
version:
description: Version is consumed by the nodeup and used to pick
the docker version
type: string
type: object
egressProxy:
description: HTTPProxy defines connection information to support use
of a private cluster behind an forward HTTP Proxy
properties:
excludes:
type: string
httpProxy:
properties:
host:
type: string
port:
type: integer
type: object
type: object
encryptionConfig:
description: EncryptionConfig holds the encryption config
type: boolean
etcdClusters:
description: EtcdClusters stores the configuration for each cluster
items:
description: EtcdClusterSpec is the etcd cluster specification
properties:
backups:
description: Backups describes how we do backups of etcd
properties:
backupStore:
description: BackupStore is the VFS path where we will read/write
backup data
type: string
image:
description: Image is the etcd backup manager image to use. Setting
this will create a sidecar container in the etcd pod with
the specified image.
type: string
type: object
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest specifies the cpu requests of each etcd
container in the cluster.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enableEtcdTLS:
description: EnableEtcdTLS is unused.
type: boolean
enableTLSAuth:
description: EnableTLSAuth is unused.
type: boolean
etcdMembers:
description: Members stores the configurations for each member
of the cluster (including the data volume)
items:
description: EtcdMemberSpec is a specification for a etcd
member
properties:
encryptedVolume:
description: EncryptedVolume indicates you want to encrypt
the volume
type: boolean
instanceGroup:
description: InstanceGroup is the instanceGroup this volume
is associated
type: string
kmsKeyId:
description: KmsKeyID is a AWS KMS ID used to encrypt
the volume
type: string
name:
description: Name is the name of the member within the
etcd cluster
type: string
volumeIops:
description: If volume type is io1, then we need to specify
the number of IOPS.
format: int32
type: integer
volumeSize:
description: VolumeSize is the underlying cloud volume
size
format: int32
type: integer
volumeThroughput:
description: Parameter for disks that support provisioned
throughput
format: int32
type: integer
volumeType:
description: VolumeType is the underlying cloud storage
class
type: string
type: object
type: array
heartbeatInterval:
description: HeartbeatInterval is the time (in milliseconds)
for an etcd heartbeat interval
type: string
image:
description: Image is the etcd docker image to use. Setting
this will ignore the Version specified.
type: string
leaderElectionTimeout:
description: LeaderElectionTimeout is the time (in milliseconds)
for an etcd leader election timeout
type: string
manager:
description: Manager describes the manager configuration
properties:
backupInterval:
description: BackupInterval which is used for backups. The
default is 15 minutes.
type: string
backupRetentionDays:
description: BackupRetentionDays which is used for backups.
The default is 90 days.
format: int32
type: integer
discoveryPollInterval:
description: DiscoveryPollInterval which is used for discovering
other cluster members. The default is 60 seconds.
type: string
env:
description: |-
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 configured/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
items:
description: EnvVar represents an environment variable
present in a Container.
properties:
name:
description: Name of the environment variable. Must
be a C_IDENTIFIER.
type: string
value:
description: |-
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 "".
type: string
required:
- name
type: object
type: array
image:
description: Image is the etcd manager image to use.
type: string
listenMetricsURLs:
description: ListenMetricsURLs is the list of URLs to listen
on that will respond to both the /metrics and /health
endpoints
items:
type: string
type: array
logLevel:
description: |-
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
format: int32
type: integer
type: object
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest specifies the memory requests of
each etcd container in the cluster.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
name:
description: Name is the name of the etcd cluster (main, events
etc)
type: string
provider:
description: |-
Provider is the provider used to run etcd: Manager, Legacy.
Defaults to Manager.
type: string
version:
description: Version is the version of etcd to run.
type: string
type: object
type: array
externalDns:
description: ExternalDNSConfig are options of the dns-controller
properties:
disable:
description: Disable indicates we do not wish to run the dns-controller
addon
type: boolean
provider:
description: |-
Provider determines which implementation of ExternalDNS to use.
'dns-controller' will use kOps DNS Controller.
'external-dns' will use kubernetes-sigs/external-dns.
type: string
watchIngress:
description: |-
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.
type: boolean
watchNamespace:
description: WatchNamespace is namespace to watch, defaults to
all (use to control whom can creates dns entries)
type: string
type: object
externalPolicies:
additionalProperties:
items:
type: string
type: array
description: ExternalPolicies allows the insertion of pre-existing
managed policies on IG Roles
type: object
fileAssets:
description: A collection of files assets for deployed cluster wide
items:
description: FileAssetSpec defines the structure for a file asset
properties:
content:
description: Content is the contents of the file
type: string
isBase64:
description: IsBase64 indicates the contents is base64 encoded
type: boolean
mode:
description: Mode is this file's mode and permission bits
type: string
name:
description: Name is a shortened reference to the asset
type: string
path:
description: Path is the location this file should reside
type: string
roles:
description: Roles is a list of roles the file asset should
be applied, defaults to all
items:
description: InstanceGroupRole string describes the roles
of the nodes in this InstanceGroup (master or nodes)
type: string
type: array
type: object
type: array
gossipConfig:
description: GossipConfig for the cluster assuming the use of gossip
DNS
properties:
listen:
type: string
protocol:
type: string
secondary:
properties:
listen:
type: string
protocol:
type: string
secret:
type: string
type: object
secret:
type: string
type: object
hooks:
description: Hooks for custom actions e.g. on first installation
items:
description: HookSpec is a definition hook
properties:
before:
description: Before is a series of systemd units which this
hook must run before
items:
type: string
type: array
disabled:
description: Disabled indicates if you want the unit switched
off
type: boolean
execContainer:
description: ExecContainer is the image itself
properties:
command:
description: Command is the command supplied to the above
image
items:
type: string
type: array
environment:
additionalProperties:
type: string
description: Environment is a map of environment variables
added to the hook
type: object
image:
description: Image is the docker image
type: string
type: object
manifest:
description: Manifest is a raw systemd unit file
type: string
name:
description: Name is an optional name for the hook, otherwise
the name is kops-hook-<index>
type: string
requires:
description: Requires is a series of systemd units the action
requires
items:
type: string
type: array
roles:
description: Roles is an optional list of roles the hook should
be rolled out to, defaults to all
items:
description: InstanceGroupRole string describes the roles
of the nodes in this InstanceGroup (master or nodes)
type: string
type: array
useRawManifest:
description: |-
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)
type: boolean
type: object
type: array
iam:
description: IAM field adds control over the IAM security policies
applied to resources
properties:
allowContainerRegistry:
type: boolean
legacy:
type: boolean
permissionsBoundary:
type: string
serviceAccountExternalPermissions:
description: ServiceAccountExternalPermissions defines the relationship
between Kubernetes ServiceAccounts and permissions with external
resources.
items:
description: ServiceAccountExternalPermissions grants a ServiceAccount
permissions to external resources.
properties:
aws:
description: AWS grants permissions to AWS resources.
properties:
inlinePolicy:
description: InlinePolicy is an IAM Policy that will
be attached inline to the IAM Role.
type: string
policyARNs:
description: PolicyARNs is a list of existing IAM Policies.
items:
type: string
type: array
type: object
name:
description: Name is the name of the Kubernetes ServiceAccount.
type: string
namespace:
description: Namespace is the namespace of the Kubernetes
ServiceAccount.
type: string
required:
- name
- namespace
type: object
type: array
useServiceAccountExternalPermissions:
description: |-
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.
type: boolean
required:
- legacy
type: object
isolateMasters:
description: |-
IsolateMasters 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
type: boolean
karpenter:
description: Karpenter defines the Karpenter configuration.
properties:
cpuRequest:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enabled:
type: boolean
image:
type: string
logEncoding:
type: string
logLevel:
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
keyStore:
description: KeyStore is the VFS path to where SSL keys and certificates
are stored
type: string
kubeAPIServer:
description: KubeAPIServerConfig defines the configuration for the
kube api
properties:
additionalServiceAccountIssuers:
description: AdditionalServiceAccountIssuers can contain additional
service account token issuers.
items:
type: string
type: array
address:
description: 'Address is the binding address for the kube api:
Deprecated - use insecure-bind-address and bind-address'
type: string
admissionControl:
description: 'AdmissionControl is a list of admission controllers
to use: Deprecated - use enable-admission-plugins instead'
items:
type: string
type: array
admissionControlConfigFile:
description: AdmissionControlConfigFile is the location of the
admission-control-config-file
type: string
advertiseAddress:
description: AdvertiseAddress is the IP address on which to advertise
the apiserver to members of the cluster.
type: string
allowPrivileged:
description: AllowPrivileged indicates if we can run privileged
containers
type: boolean
anonymousAuth:
description: AnonymousAuth indicates if anonymous authentication
is permitted
type: boolean
apiAudiences:
description: |-
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.
items:
type: string
type: array
apiServerCount:
description: APIServerCount is the number of api servers
format: int32
type: integer
appendAdmissionPlugins:
description: AppendAdmissionPlugins appends list of enabled admission
plugins
items:
type: string
type: array
auditDynamicConfiguration:
description: AuditDynamicConfiguration enables dynamic audit configuration
via AuditSinks
type: boolean
auditLogFormat:
description: AuditLogFormat flag specifies the format type for
audit log files.
type: string
auditLogMaxAge:
description: The maximum number of days to retain old audit log
files based on the timestamp encoded in their filename.
format: int32
type: integer
auditLogMaxBackups:
description: The maximum number of old audit log files to retain.
format: int32
type: integer
auditLogMaxSize:
description: The maximum size in megabytes of the audit log file
before it gets rotated. Defaults to 100MB.
format: int32
type: integer
auditLogPath:
description: If set, all requests coming to the apiserver will
be logged to this file.
type: string
auditPolicyFile:
description: AuditPolicyFile is the full path to a advanced audit
configuration file e.g. /srv/kubernetes/audit.conf
type: string
auditWebhookBatchBufferSize:
description: AuditWebhookBatchBufferSize is The size of the buffer
to store events before batching and writing. Only used in batch
mode. (default 10000)
format: int32
type: integer
auditWebhookBatchMaxSize:
description: AuditWebhookBatchMaxSize is The maximum size of a
batch. Only used in batch mode. (default 400)
format: int32
type: integer
auditWebhookBatchMaxWait:
description: 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)
type: string
auditWebhookBatchThrottleBurst:
description: AuditWebhookBatchThrottleBurst is Maximum number
of requests sent at the same moment if ThrottleQPS was not utilized
before. Only used in batch mode. (default 15)
format: int32
type: integer
auditWebhookBatchThrottleEnable:
description: AuditWebhookBatchThrottleEnable is Whether batching
throttling is enabled. Only used in batch mode. (default true)
type: boolean
auditWebhookBatchThrottleQps:
anyOf:
- type: integer
- type: string
description: AuditWebhookBatchThrottleQps is Maximum average number
of batches per second. Only used in batch mode. (default 10)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
auditWebhookConfigFile:
description: AuditWebhookConfigFile is Path to a kubeconfig formatted
file that defines the audit webhook configuration. Requires
the 'AdvancedAuditing' feature gate.
type: string
auditWebhookInitialBackoff:
description: AuditWebhookInitialBackoff is The amount of time
to wait before retrying the first failed request. (default 10s)
type: string
auditWebhookMode:
description: 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")
type: string
authenticationConfigFile:
description: |-
AuthenticationConfigFile is the location of the authentication-config
this option is mutually exclusive with all OIDC options
type: string
authenticationTokenWebhookCacheTtl:
description: The duration to cache responses from the webhook
token authenticator. Default is 2m. (default 2m0s)
type: string
authenticationTokenWebhookConfigFile:
description: File with webhook configuration for token authentication
in kubeconfig format. The API server will query the remote service
to determine authentication for bearer tokens.
type: string
authorizationMode:
description: AuthorizationMode is the authorization mode the kubeapi
is running in
type: string
authorizationRbacSuperUser:
description: AuthorizationRBACSuperUser is the name of the superuser
for default rbac
type: string
authorizationWebhookCacheAuthorizedTtl:
description: The duration to cache authorized responses from the
webhook token authorizer. Default is 5m. (default 5m0s)
type: string
authorizationWebhookCacheUnauthorizedTtl:
description: The duration to cache authorized responses from the
webhook token authorizer. Default is 30s. (default 30s)
type: string
authorizationWebhookConfigFile:
description: File with webhook configuration for authorization
in kubeconfig format. The API server will query the remote service
to determine whether to authorize the request.
type: string
basicAuthFile:
type: string
bindAddress:
description: BindAddress is the binding address for the secure
kubernetes API
type: string
clientCAFile:
description: ClientCAFile is the file used by apisever that contains
the client CA
type: string
cloudProvider:
description: CloudProvider is the name of the cloudProvider we
are using, aws, gce etcd
type: string
corsAllowedOrigins:
description: |-
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.
items:
type: string
type: array
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit, cpu limit compute resource for api server
e.g. "500m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest, cpu request compute resource for api
server. Defaults to "150m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
defaultNotReadyTolerationSeconds:
description: DefaultNotReadyTolerationSeconds
format: int64
type: integer
defaultUnreachableTolerationSeconds:
description: DefaultUnreachableTolerationSeconds
format: int64
type: integer
disableAdmissionPlugins:
description: DisableAdmissionPlugins is a list of disabled admission
plugins
items:
type: string
type: array
disableBasicAuth:
description: DisableBasicAuth removes the --basic-auth-file flag
type: boolean
enableAdmissionPlugins:
description: EnableAdmissionPlugins is a list of enabled admission
plugins
items:
type: string
type: array
enableAggregatorRouting:
description: EnableAggregatorRouting enables aggregator routing
requests to endpoints IP rather than cluster IP
type: boolean
enableBootstrapTokenAuth:
description: EnableBootstrapAuthToken enables 'bootstrap.kubernetes.io/token'
in the 'kube-system' namespace to be used for TLS bootstrapping
authentication
type: boolean
enableContentionProfiling:
description: EnableContentionProfiling enables block profiling,
if profiling is enabled
type: boolean
enableProfiling:
description: EnableProfiling enables profiling via web interface
host:port/debug/pprof/
type: boolean
encryptionProviderConfig:
description: EncryptionProviderConfig enables encryption at rest
for secrets.
type: string
env:
description: |-
Env allows users to pass in env variables to the apiserver container.
This can be useful to control some environment runtime settings, such as GOMEMLIMIT and GOCG to tweak the memory settings of the apiserver
This also allows the flexibility for adding any other variables for future use cases
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must be a
C_IDENTIFIER.
type: string
value:
description: |-
Variable references $(VAR_NAME) are expanded
using the previously 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. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
Escaped references will never be expanded, regardless of whether the variable
exists or not.
Defaults to "".
type: string
valueFrom:
description: Source for the environment variable's value.
Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: |-
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
properties:
apiVersion:
description: Version of the schema the FieldPath
is written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in the
specified API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: |-
Selects a resource of the container: only resources limits and requests
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of the
exposed resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's
namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
type: array
etcdCaFile:
description: EtcdCAFile is the path to a ca certificate
type: string
etcdCertFile:
description: EtcdCertFile is the path to a certificate
type: string
etcdKeyFile:
description: EtcdKeyFile is the path to a private key
type: string
etcdQuorumRead:
description: EtcdQuorumRead configures the etcd-quorum-read flag,
which forces consistent reads from etcd
type: boolean
etcdServers:
description: EtcdServers is a list of the etcd service to connect
items:
type: string
type: array
etcdServersOverrides:
description: 'EtcdServersOverrides is per-resource etcd servers
overrides, comma separated. The individual override format:
group/resource#servers, where servers are http://ip:port, semicolon
separated'
items:
type: string
type: array
eventTTL:
description: Amount of time to retain Kubernetes events
type: string
experimentalEncryptionProviderConfig:
description: ExperimentalEncryptionProviderConfig enables encryption
at rest for secrets.
type: string
featureGates:
additionalProperties:
type: string
description: FeatureGates is set of key=value pairs that describe
feature gates for alpha/experimental features.
type: object
http2MaxStreamsPerConnection:
description: 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.
format: int32
type: integer
image:
description: Image is the container image used.
type: string
insecureBindAddress:
description: InsecureBindAddress is the binding address for the
InsecurePort for the insecure kubernetes API
type: string
insecurePort:
description: InsecurePort is the port the insecure api runs
format: int32
type: integer
kubeletCertificateAuthority:
description: KubeletCertificateAuthority is the path of a certificate
authority for secure communication between api and kubelet.
type: string
kubeletClientCertificate:
description: KubeletClientCertificate is the path of a certificate
for secure communication between api and kubelet
type: string
kubeletClientKey:
description: KubeletClientKey is the path of a private to secure
communication between api and kubelet
type: string
kubeletPreferredAddressTypes:
description: KubeletPreferredAddressTypes is a list of the preferred
NodeAddressTypes to use for kubelet connections
items:
type: string
type: array
logFormat:
description: |-
LogFormat is the logging format of the api.
Supported values: text, json.
Default: text
type: string
logLevel:
description: LogLevel is the logging level of the api
format: int32
type: integer
maxMutatingRequestsInflight:
description: MaxMutatingRequestsInflight The maximum number of
mutating requests in flight at a given time. Defaults to 200
format: int32
type: integer
maxRequestsInflight:
description: MaxRequestsInflight The maximum number of non-mutating
requests in flight at a given time.
format: int32
type: integer
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit, memory limit compute resource for api
server e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest, memory request compute resource for
api server e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
minRequestTimeout:
description: |-
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
format: int32
type: integer
oidcCAFile:
description: |-
OIDCCAFile if set, the OpenID server's certificate will be verified by one
of the authorities in the oidc-ca-file
type: string
oidcClientID:
description: |-
OIDCClientID is the client ID for the OpenID Connect client, must be set
if oidc-issuer-url is set.
type: string
oidcGroupsClaim:
description: |-
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.
type: string
oidcGroupsPrefix:
description: |-
OIDCGroupsPrefix is the prefix prepended to group claims to prevent
clashes with existing names (such as 'system:' groups)
type: string
oidcIssuerURL:
description: |-
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).
type: string
oidcRequiredClaim:
description: |-
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.
items:
type: string
type: array
oidcUsernameClaim:
description: |-
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.
type: string
oidcUsernamePrefix:
description: |-
OIDCUsernamePrefix is the prefix prepended to username claims to prevent
clashes with existing names (such as 'system:' users).
type: string
proxyClientCertFile:
description: The apiserver's client certificate used for outbound
requests.
type: string
proxyClientKeyFile:
description: The apiserver's client key used for outbound requests.
type: string
requestTimeout:
description: RequestTimeout configures the duration a handler
must keep a request open before timing it out. (default 1m0s)
type: string
requestheaderAllowedNames:
description: 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.
items:
type: string
type: array
requestheaderClientCAFile:
description: Root certificate bundle to use to verify client certificates
on incoming requests before trusting usernames in headers specified
by --requestheader-username-headers
type: string
requestheaderExtraHeaderPrefixes:
description: List of request header prefixes to inspect. X-Remote-Extra-
is suggested.
items:
type: string
type: array
requestheaderGroupHeaders:
description: List of request headers to inspect for groups. X-Remote-Group
is suggested.
items:
type: string
type: array
requestheaderUsernameHeaders:
description: List of request headers to inspect for usernames.
X-Remote-User is common.
items:
type: string
type: array
runtimeConfig:
additionalProperties:
type: string
description: RuntimeConfig is a series of keys/values are parsed
into the `--runtime-config` parameters
type: object
securePort:
description: SecurePort is the port the kube runs on
format: int32
type: integer
serviceAccountIssuer:
description: |-
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.
type: string
serviceAccountJWKSURI:
description: ServiceAccountJWKSURI overrides the path for the
jwks document; this is useful when we are republishing the service
account discovery information elsewhere.
type: string
serviceAccountKeyFile:
description: |-
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.
items:
type: string
type: array
serviceAccountSigningKeyFile:
description: |-
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.)
type: string
serviceClusterIPRange:
description: ServiceClusterIPRange is the service address range
type: string
serviceNodePortRange:
description: Passed as --service-node-port-range to kube-apiserver.
Expects 'startPort-endPort' format e.g. 30000-33000
type: string
storageBackend:
description: StorageBackend is the backend storage
type: string
tlsCertFile:
type: string
tlsCipherSuites:
description: TLSCipherSuites indicates the allowed TLS cipher
suite
items:
type: string
type: array
tlsMinVersion:
description: TLSMinVersion indicates the minimum TLS version allowed
type: string
tlsPrivateKeyFile:
type: string
tokenAuthFile:
type: string
watchCache:
description: Used to disable watch caching in the apiserver, defaults
to enabling caching by omission
type: boolean
watchCacheSizes:
description: |-
Set the watch-cache-sizes parameter for the apiserver
The only meaningful value is setting to 0, which disable caches for specific object types.
Setting any values other than 0 for a resource will yield no effect since the caches are dynamic
items:
type: string
type: array
type: object
kubeControllerManager:
description: KubeControllerManagerConfig is the configuration for
the controller
properties:
ClusterSigningDuration:
description: ClusterSigningDuration is the max length of duration
that the signed certificates will be given. (default 365*24h)
type: string
allocateNodeCIDRs:
description: AllocateNodeCIDRs enables CIDRs for Pods to be allocated
and, if ConfigureCloudRoutes is true, to be set on the cloud
provider.
type: boolean
attachDetachReconcileSyncPeriod:
description: |-
ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
wait between successive executions. Is set to 1 min by kops by default
type: string
authenticationKubeconfig:
description: AuthenticationKubeconfig is the path to an Authentication
Kubeconfig
type: string
authorizationAlwaysAllowPaths:
description: AuthorizationAlwaysAllowPaths is the list of HTTP
paths to skip during authorization
items:
type: string
type: array
authorizationKubeconfig:
description: AuthorizationKubeconfig is the path to an Authorization
Kubeconfig
type: string
cidrAllocatorType:
description: CIDRAllocatorType specifies the type of CIDR allocator
to use.
type: string
cloudProvider:
description: CloudProvider is the provider for cloud services.
type: string
clusterCIDR:
description: ClusterCIDR is CIDR Range for Pods in cluster.
type: string
clusterName:
description: ClusterName is the instance prefix for the cluster.
type: string
concurrentDeploymentSyncs:
description: The number of deployment objects that are allowed
to sync concurrently.
format: int32
type: integer
concurrentEndpointSyncs:
description: The number of endpoint objects that are allowed to
sync concurrently.
format: int32
type: integer
concurrentHorizontalPodAustoscalerSyncs:
description: The number of horizontal pod autoscaler objects that
are allowed to sync concurrently (default 5).
format: int32
type: integer
concurrentJobSyncs:
description: The number of job objects that are allowed to sync
concurrently (default 5).
format: int32
type: integer
concurrentNamespaceSyncs:
description: The number of namespace objects that are allowed
to sync concurrently.
format: int32
type: integer
concurrentRcSyncs:
description: |-
The number of replicationcontroller objects that are allowed to sync concurrently.
This only works on kubernetes >= 1.14
format: int32
type: integer
concurrentReplicasetSyncs:
description: The number of replicaset objects that are allowed
to sync concurrently.
format: int32
type: integer
concurrentResourceQuotaSyncs:
description: The number of resourcequota objects that are allowed
to sync concurrently.
format: int32
type: integer
concurrentServiceSyncs:
description: The number of service objects that are allowed to
sync concurrently.
format: int32
type: integer
concurrentServiceaccountTokenSyncs:
description: The number of serviceaccount objects that are allowed
to sync concurrently to create tokens.
format: int32
type: integer
configureCloudRoutes:
description: ConfigureCloudRoutes enables CIDRs allocated with
to be configured on the cloud provider.
type: boolean
controllers:
description: Controllers is a list of controllers to enable on
the controller-manager
items:
type: string
type: array
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit, cpu limit compute resource for kube-controler-manager
e.g. "500m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest, cpu request compute resource for kube-controler-manager.
Defaults to "100m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
disableAttachDetachReconcileSync:
description: |-
DisableAttachDetachReconcileSync disables the reconcile sync loop in the attach-detach controller.
This can cause volumes to become mismatched with pods
type: boolean
enableContentionProfiling:
description: EnableContentionProfiling enables block profiling,
if profiling is enabled
type: boolean
enableLeaderMigration:
description: EnableLeaderMigration enables controller leader migration.
type: boolean
enableProfiling:
description: EnableProfiling enables profiling via web interface
host:port/debug/pprof/
type: boolean
endpointSliceUpdatesBatchPeriod:
description: |-
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.
type: string
endpointUpdatesBatchPeriod:
description: |-
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
type: string
experimentalClusterSigningDuration:
description: |-
ExperimentalClusterSigningDuration is the max length of duration that the signed certificates will be given. (default 365*24h)
Deprecated - use cluster-signing-duration instead
type: string
externalCloudVolumePlugin:
description: 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".
type: string
featureGates:
additionalProperties:
type: string
description: FeatureGates is set of key=value pairs that describe
feature gates for alpha/experimental features.
type: object
horizontalPodAutoscalerCpuInitializationPeriod:
description: |-
HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start
when CPU samples might be skipped. (default 5m)
type: string
horizontalPodAutoscalerDownscaleDelay:
description: |-
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.
type: string
horizontalPodAutoscalerDownscaleStabilization:
description: |-
HorizontalPodAutoscalerDownscaleStabilization is the period for which
autoscaler will look backwards and not scale down below any
recommendation it made during that period.
type: string
horizontalPodAutoscalerInitialReadinessDelay:
description: |-
HorizontalPodAutoscalerInitialReadinessDelay is the period after pod start
during which readiness changes will be treated as initial readiness. (default 30s)
type: string
horizontalPodAutoscalerSyncPeriod:
description: |-
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.
type: string
horizontalPodAutoscalerTolerance:
anyOf:
- type: integer
- type: string
description: |-
HorizontalPodAutoscalerTolerance is the minimum change (from 1.0) in the
desired-to-actual metrics ratio for the horizontal pod autoscaler to
consider scaling.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
horizontalPodAutoscalerUpscaleDelay:
description: |-
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.
type: string
horizontalPodAutoscalerUseRestClients:
description: |-
HorizontalPodAutoscalerUseRestClients determines if the new-style clients
should be used if support for custom metrics is enabled.
type: boolean
image:
description: Image is the container image to use.
type: string
kubeAPIBurst:
description: KubeAPIBurst Burst to use while talking with kubernetes
apiserver. (default 30)
format: int32
type: integer
kubeAPIQPS:
anyOf:
- type: integer
- type: string
description: KubeAPIQPS QPS to use while talking with kubernetes
apiserver. (default 20)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
leaderElection:
description: LeaderElection defines the configuration of leader
election client.
properties:
leaderElect:
description: |-
leaderElect enables a leader election client to gain leadership
before executing the main loop. Enable this when running replicated
components for high availability.
type: boolean
leaderElectLeaseDuration:
description: |-
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
type: string
leaderElectRenewDeadlineDuration:
description: |-
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.
type: string
leaderElectResourceLock:
description: |-
LeaderElectResourceLock is the type of resource object that is used for locking during
leader election. Supported options are endpoints (default) and `configmaps`.
type: string
leaderElectResourceName:
description: LeaderElectResourceName is the name of resource
object that is used for locking during leader election.
type: string
leaderElectResourceNamespace:
description: LeaderElectResourceNamespace is the namespace
of resource object that is used for locking during leader
election.
type: string
leaderElectRetryPeriod:
description: |-
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.
type: string
type: object
logFormat:
description: |-
LogFormat is the logging format of the controler manager.
Supported values: text, json.
Default: text
type: string
logLevel:
description: LogLevel is the defined logLevel
format: int32
type: integer
master:
description: Master is the url for the kube api master
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit, memory limit compute resource for kube-controler-manager
e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest, memory request compute resource for
kube-controler-manager e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
minResyncPeriod:
description: |-
MinResyncPeriod indicates the resync period in reflectors.
The resync period will be random between MinResyncPeriod and 2*MinResyncPeriod. (default 12h0m0s)
type: string
nodeCIDRMaskSize:
description: NodeCIDRMaskSize set the size for the mask of the
nodes.
format: int32
type: integer
nodeMonitorGracePeriod:
description: |-
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.
type: string
nodeMonitorPeriod:
description: NodeMonitorPeriod is the period for syncing NodeStatus
in NodeController. (default 5s)
type: string
podEvictionTimeout:
description: PodEvictionTimeout is the grace period for deleting
pods on failed nodes. (default 5m0s)
type: string
rootCAFile:
description: rootCAFile is the root certificate authority will
be included in service account's token secret. This must be
a valid PEM-encoded CA bundle.
type: string
serviceAccountPrivateKeyFile:
description: ServiceAccountPrivateKeyFile is the location of the
private key for service account token signing.
type: string
terminatedPodGCThreshold:
description: |-
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.
format: int32
type: integer
tlsCertFile:
description: TLSCertFile is the file containing the TLS server
certificate.
type: string
tlsCipherSuites:
description: TLSCipherSuites indicates the allowed TLS cipher
suite
items:
type: string
type: array
tlsMinVersion:
description: TLSMinVersion indicates the minimum TLS version allowed
type: string
tlsPrivateKeyFile:
description: TLSPrivateKeyFile is the file containing the private
key for the TLS server certificate.
type: string
useServiceAccountCredentials:
description: UseServiceAccountCredentials controls whether we
use individual service account credentials for each controller.
type: boolean
type: object
kubeDNS:
description: KubeDNSConfig defines the kube dns configuration
properties:
affinity:
description: Affinity is the kube-dns affinity, uses the same
syntax as kubectl's affinity
properties:
nodeAffinity:
description: Describes node affinity scheduling rules for
the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
the affinity expressions specified by this field, but it may choose
a node that violates one or more of the expressions. The node that is
most preferred is the one with the greatest sum of weights, i.e.
for each node that meets all of the scheduling requirements (resource
request, requiredDuringScheduling affinity expressions, etc.),
compute a sum by iterating through the elements of this field and adding
"weight" to the sum if the node matches the corresponding matchExpressions; the
node(s) with the highest sum are the most preferred.
items:
description: |-
An empty preferred scheduling term matches all objects with implicit weight 0
(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
properties:
preference:
description: A node selector term, associated with
the corresponding weight.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: |-
A node selector requirement is a selector that contains values, a key, and an operator
that relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: |-
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: |-
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: |-
A node selector requirement is a selector that contains values, a key, and an operator
that relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: |-
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: |-
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
weight:
description: Weight associated with matching the
corresponding nodeSelectorTerm, in the range 1-100.
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: |-
If the affinity requirements specified by this field are not met at
scheduling time, the pod will not be scheduled onto the node.
If the affinity requirements specified by this field cease to be met
at some point during pod execution (e.g. due to an update), the system
may or may not try to eventually evict the pod from its node.
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms.
The terms are ORed.
items:
description: |-
A null or empty node selector term matches no objects. The requirements of
them are ANDed.
The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: |-
A node selector requirement is a selector that contains values, a key, and an operator
that relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: |-
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: |-
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: |-
A node selector requirement is a selector that contains values, a key, and an operator
that relates the key and values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: |-
Represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
type: string
values:
description: |-
An array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. If the operator is Gt or Lt, the values
array must have a single element, which will be interpreted as an integer.
This array is replaced during a strategic merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
type: array
x-kubernetes-list-type: atomic
required:
- nodeSelectorTerms
type: object
x-kubernetes-map-type: atomic
type: object
podAffinity:
description: Describes pod affinity scheduling rules (e.g.
co-locate this pod in the same node, zone, etc. as some
other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
the affinity expressions specified by this field, but it may choose
a node that violates one or more of the expressions. The node that is
most preferred is the one with the greatest sum of weights, i.e.
for each node that meets all of the scheduling requirements (resource
request, requiredDuringScheduling affinity expressions, etc.),
compute a sum by iterating through the elements of this field and adding
"weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
node(s) with the highest sum are the most preferred.
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: |-
A label query over a set of resources, in this case pods.
If it's null, this PodAffinityTerm matches with no Pods.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: |-
MatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: |-
MismatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: |-
A label query over the set of namespaces that the term applies to.
The term is applied to the union of the namespaces selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list means "this pod's namespace".
An empty selector ({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: |-
namespaces specifies a static list of namespace names that the term applies to.
The term is applied to the union of the namespaces listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector means "this pod's namespace".
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
the labelSelector in the specified namespaces, where co-located is defined as running on a node
whose value of the label with key topologyKey matches that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
description: |-
weight associated with matching the corresponding podAffinityTerm,
in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: |-
If the affinity requirements specified by this field are not met at
scheduling time, the pod will not be scheduled onto the node.
If the affinity requirements specified by this field cease to be met
at some point during pod execution (e.g. due to a pod label update), the
system may or may not try to eventually evict the pod from its node.
When there are multiple elements, the lists of nodes corresponding to each
podAffinityTerm are intersected, i.e. all terms must be satisfied.
items:
description: |-
Defines a set of pods (namely those matching the labelSelector
relative to the given namespace(s)) that this pod should be
co-located (affinity) or not co-located (anti-affinity) with,
where co-located is defined as running on a node whose value of
the label with key <topologyKey> matches that of any node on which
a pod of the set of pods is running
properties:
labelSelector:
description: |-
A label query over a set of resources, in this case pods.
If it's null, this PodAffinityTerm matches with no Pods.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: |-
MatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: |-
MismatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: |-
A label query over the set of namespaces that the term applies to.
The term is applied to the union of the namespaces selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list means "this pod's namespace".
An empty selector ({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: |-
namespaces specifies a static list of namespace names that the term applies to.
The term is applied to the union of the namespaces listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector means "this pod's namespace".
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
the labelSelector in the specified namespaces, where co-located is defined as running on a node
whose value of the label with key topologyKey matches that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
podAntiAffinity:
description: Describes pod anti-affinity scheduling rules
(e.g. avoid putting this pod in the same node, zone, etc.
as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
the anti-affinity expressions specified by this field, but it may choose
a node that violates one or more of the expressions. The node that is
most preferred is the one with the greatest sum of weights, i.e.
for each node that meets all of the scheduling requirements (resource
request, requiredDuringScheduling anti-affinity expressions, etc.),
compute a sum by iterating through the elements of this field and adding
"weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
node(s) with the highest sum are the most preferred.
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: |-
A label query over a set of resources, in this case pods.
If it's null, this PodAffinityTerm matches with no Pods.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: |-
MatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: |-
MismatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: |-
A label query over the set of namespaces that the term applies to.
The term is applied to the union of the namespaces selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list means "this pod's namespace".
An empty selector ({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: |-
namespaces specifies a static list of namespace names that the term applies to.
The term is applied to the union of the namespaces listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector means "this pod's namespace".
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
the labelSelector in the specified namespaces, where co-located is defined as running on a node
whose value of the label with key topologyKey matches that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
description: |-
weight associated with matching the corresponding podAffinityTerm,
in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: |-
If the anti-affinity requirements specified by this field are not met at
scheduling time, the pod will not be scheduled onto the node.
If the anti-affinity requirements specified by this field cease to be met
at some point during pod execution (e.g. due to a pod label update), the
system may or may not try to eventually evict the pod from its node.
When there are multiple elements, the lists of nodes corresponding to each
podAffinityTerm are intersected, i.e. all terms must be satisfied.
items:
description: |-
Defines a set of pods (namely those matching the labelSelector
relative to the given namespace(s)) that this pod should be
co-located (affinity) or not co-located (anti-affinity) with,
where co-located is defined as running on a node whose value of
the label with key <topologyKey> matches that of any node on which
a pod of the set of pods is running
properties:
labelSelector:
description: |-
A label query over a set of resources, in this case pods.
If it's null, this PodAffinityTerm matches with no Pods.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: |-
MatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both matchLabelKeys and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: |-
MismatchLabelKeys is a set of pod label keys to select which pods will
be taken into consideration. The keys are used to lookup values from the
incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
to select the group of existing pods which pods will be taken into consideration
for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
pod labels will be ignored. The default value is empty.
The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: |-
A label query over the set of namespaces that the term applies to.
The term is applied to the union of the namespaces selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list means "this pod's namespace".
An empty selector ({}) matches all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: |-
namespaces specifies a static list of namespace names that the term applies to.
The term is applied to the union of the namespaces listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector means "this pod's namespace".
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
the labelSelector in the specified namespaces, where co-located is defined as running on a node
whose value of the label with key topologyKey matches that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: object
cacheMaxConcurrent:
description: CacheMaxConcurrent is the maximum number of concurrent
queries for dnsmasq
type: integer
cacheMaxSize:
description: CacheMaxSize is the maximum entries to keep in dnsmasq
type: integer
coreDNSImage:
description: CoreDNSImage is used to override the default image
used for CoreDNS
type: string
cpaImage:
description: CPAImage is used to override the default image used
for Cluster Proportional Autoscaler
type: string
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest specifies the cpu requests of each dns
container in the cluster. Default 100m.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
domain:
description: Domain is the dns domain
type: string
externalCoreFile:
description: ExternalCoreFile is used to provide a complete CoreDNS
CoreFile by the user - ignores other provided flags which modify
the CoreFile.
type: string
image:
description: Image is unused.
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit specifies the memory limit of each dns
container in the cluster. Default 170m.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest specifies the memory requests of each
dns container in the cluster. Default 70m.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
nodeLocalDNS:
description: NodeLocalDNS specifies the configuration for the
node-local-dns addon
properties:
additionalConfig:
description: AdditionalConfig is used to provide additional
config for node local dns by the user - it will include
the original CoreFile made by kOps.
type: string
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest specifies the cpu requests of each
node-local-dns container in the daemonset. Default 25m.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enabled:
description: Enabled activates the node-local-dns addon.
type: boolean
externalCoreFile:
description: ExternalCoreFile is used to provide a complete
NodeLocalDNS CoreFile by the user - ignores other provided
flags which modify the CoreFile.
type: string
forwardToKubeDNS:
description: If enabled, nodelocal dns will use kubedns as
a default upstream
type: boolean
image:
description: Image overrides the default docker image used
for node-local-dns addon.
type: string
localIP:
description: 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.
type: string
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest specifies the memory requests of
each node-local-dns container in the daemonset. Default
5Mi.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podAnnotations:
additionalProperties:
type: string
description: |-
PodAnnotations makes possible to add additional annotations to node-local-dns.
Default: none
type: object
type: object
provider:
description: Provider indicates whether CoreDNS or kube-dns will
be the default service discovery.
type: string
replicas:
description: Replicas is unused.
type: integer
serverIP:
description: ServerIP is the server ip
type: string
stubDomains:
additionalProperties:
items:
type: string
type: array
description: StubDomains redirects a domains to another DNS service
type: object
tolerations:
description: "Tolerations\tare tolerations to apply to the kube-dns
deployment"
items:
description: |-
The pod this Toleration is attached to tolerates any taint that matches
the triple <key,value,effect> using the matching operator <operator>.
properties:
effect:
description: |-
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: |-
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
type: string
operator:
description: |-
Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
type: string
tolerationSeconds:
description: |-
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
description: |-
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
type: string
type: object
type: array
upstreamNameservers:
description: UpstreamNameservers sets the upstream nameservers
for queries not on the cluster domain
items:
type: string
type: array
type: object
kubeProxy:
description: KubeProxyConfig defines the configuration for a proxy
properties:
bindAddress:
description: BindAddress is IP address for the proxy server to
serve on
type: string
clusterCIDR:
description: ClusterCIDR is the CIDR range of the pods in the
cluster
type: string
conntrackMaxPerCore:
description: 'Maximum number of NAT connections to track per CPU
core (default: 131072)'
format: int32
type: integer
conntrackMin:
description: Minimum number of conntrack entries to allocate,
regardless of conntrack-max-per-core
format: int32
type: integer
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit, cpu limit compute resource for kube proxy
e.g. "30m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest, cpu request compute resource for kube
proxy e.g. "20m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enabled:
description: Enabled allows enabling or disabling kube-proxy
type: boolean
featureGates:
additionalProperties:
type: string
description: FeatureGates is a series of key pairs used to switch
on features for the proxy
type: object
hostnameOverride:
description: HostnameOverride, if non-empty, will be used as the
identity instead of the actual hostname.
type: string
image:
type: string
ipvsExcludeCidrs:
description: IPVSExcludeCIDRs is comma-separated list of CIDR's
which the ipvs proxier should not touch when cleaning up IPVS
rules
items:
type: string
type: array
ipvsMinSyncPeriod:
description: IPVSMinSyncPeriod is the minimum interval of how
often the ipvs rules can be refreshed as endpoints and services
change (e.g. '5s', '1m', '2h22m')
type: string
ipvsScheduler:
description: IPVSScheduler is the ipvs scheduler type when proxy
mode is ipvs
type: string
ipvsSyncPeriod:
description: IPVSSyncPeriod duration is the maximum interval of
how often ipvs rules are refreshed
type: string
logLevel:
description: LogLevel is the logging level of the proxy
format: int32
type: integer
master:
description: Master is the address of the Kubernetes API server
(overrides any value in kubeconfig)
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit, memory limit compute resource for kube
proxy e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest, memory request compute resource for
kube proxy e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
metricsBindAddress:
description: MetricsBindAddress is the IP address for the metrics
server to serve on
type: string
proxyMode:
description: 'Which proxy mode to use: (userspace, iptables, ipvs)'
type: string
type: object
kubeScheduler:
description: KubeSchedulerConfig is the configuration for the kube-scheduler
properties:
authenticationKubeconfig:
description: AuthenticationKubeconfig is the path to an Authentication
Kubeconfig
type: string
authorizationAlwaysAllowPaths:
description: AuthorizationAlwaysAllowPaths is the list of HTTP
paths to skip during authorization
items:
type: string
type: array
authorizationKubeconfig:
description: AuthorizationKubeconfig is the path to an Authorization
Kubeconfig
type: string
burst:
description: Burst sets the maximum qps to send to apiserver after
the burst quota is exhausted
format: int32
type: integer
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit, cpu limit compute resource for scheduler
e.g. "500m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest, cpu request compute resource for scheduler.
Defaults to "100m"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enableContentionProfiling:
description: EnableContentionProfiling enables block profiling,
if profiling is enabled
type: boolean
enableProfiling:
description: EnableProfiling enables profiling via web interface
host:port/debug/pprof/
type: boolean
featureGates:
additionalProperties:
type: string
description: FeatureGates is set of key=value pairs that describe
feature gates for alpha/experimental features.
type: object
image:
description: Image is the container image to use.
type: string
kubeAPIBurst:
description: KubeAPIBurst Burst to use while talking with kubernetes
apiserver. (default 30)
format: int32
type: integer
kubeAPIQPS:
anyOf:
- type: integer
- type: string
description: KubeAPIQPS QPS to use while talking with kubernetes
apiserver. (default 20)
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
leaderElection:
description: LeaderElection defines the configuration of leader
election client.
properties:
leaderElect:
description: |-
leaderElect enables a leader election client to gain leadership
before executing the main loop. Enable this when running replicated
components for high availability.
type: boolean
leaderElectLeaseDuration:
description: |-
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
type: string
leaderElectRenewDeadlineDuration:
description: |-
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.
type: string
leaderElectResourceLock:
description: |-
LeaderElectResourceLock is the type of resource object that is used for locking during
leader election. Supported options are endpoints (default) and `configmaps`.
type: string
leaderElectResourceName:
description: LeaderElectResourceName is the name of resource
object that is used for locking during leader election.
type: string
leaderElectResourceNamespace:
description: LeaderElectResourceNamespace is the namespace
of resource object that is used for locking during leader
election.
type: string
leaderElectRetryPeriod:
description: |-
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.
type: string
type: object
logFormat:
description: |-
LogFormat is the logging format of the scheduler.
Supported values: text, json.
Default: text
type: string
logLevel:
description: LogLevel is the logging level
format: int32
type: integer
master:
description: Master is a url to the kube master
type: string
maxPersistentVolumes:
description: |-
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/
format: int32
type: integer
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit, memory limit compute resource for scheduler
e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest, memory request compute resource for
scheduler e.g. "30Mi"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
qps:
anyOf:
- type: integer
- type: string
description: Qps sets the maximum qps to send to apiserver after
the burst quota is exhausted
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
tlsCertFile:
description: TLSCertFile is the file containing the TLS server
certificate.
type: string
tlsPrivateKeyFile:
description: TLSPrivateKeyFile is the file containing the private
key for the TLS server certificate.
type: string
usePolicyConfigMap:
description: |-
UsePolicyConfigMap enable setting the scheduler policy from a configmap
Deprecated - use KubeSchedulerConfiguration instead
type: boolean
type: object
kubelet:
description: |-
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.
properties:
allowPrivileged:
description: AllowPrivileged enables containers to request privileged
mode (defaults to false)
type: boolean
allowedUnsafeSysctls:
description: AllowedUnsafeSysctls are passed to the kubelet config
to whitelist allowable sysctls
items:
type: string
type: array
anonymousAuth:
description: AnonymousAuth permits you to control auth to the
kubelet api
type: boolean
apiServers:
description: APIServers is not used for clusters version 1.6 and
later - flag removed
type: string
authenticationTokenWebhook:
description: AuthenticationTokenWebhook uses the TokenReview API
to determine authentication for bearer tokens.
type: boolean
authenticationTokenWebhookCacheTtl:
description: AuthenticationTokenWebhook sets the duration to cache
responses from the webhook token authenticator. Default is 2m.
(default 2m0s)
type: string
authorizationMode:
description: AuthorizationMode is the authorization mode the kubelet
is running in
type: string
babysitDaemons:
description: The node has babysitter process monitoring docker
and kubelet. Removed as of 1.7
type: boolean
bootstrapKubeconfig:
description: BootstrapKubeconfig is the path to a kubeconfig file
that will be used to get client certificate for kubelet
type: string
cgroupDriver:
description: CgroupDriver allows the explicit setting of the kubelet
cgroup driver. If omitted, defaults to cgroupfs.
type: string
cgroupRoot:
description: cgroupRoot is the root cgroup to use for pods. This
is handled by the container runtime on a best effort basis.
type: string
clientCaFile:
description: ClientCAFile is the path to a CA certificate
type: string
cloudProvider:
description: CloudProvider is the provider for cloud services.
type: string
clusterDNS:
description: ClusterDNS is the IP address for a cluster DNS server
type: string
clusterDomain:
description: ClusterDomain is the DNS domain for this cluster
type: string
configureCbr0:
description: configureCBR0 enables the kubelet to configure cbr0
based on Node.Spec.PodCIDR.
type: boolean
containerLogMaxFiles:
description: ContainerLogMaxFiles is the maximum number of container
log files that can be present for a container. The number must
be >= 2.
format: int32
type: integer
containerLogMaxSize:
description: ContainerLogMaxSize is the maximum size (e.g. 10Mi)
of container log file before it is rotated.
type: string
cpuCFSQuota:
description: CPUCFSQuota enables CPU CFS quota enforcement for
containers that specify CPU limits
type: boolean
cpuCFSQuotaPeriod:
description: CPUCFSQuotaPeriod sets CPU CFS quota period value,
cpu.cfs_period_us, defaults to Linux Kernel default
type: string
cpuManagerPolicy:
description: CpuManagerPolicy allows for changing the default
policy of None to static
type: string
dockerDisableSharedPID:
description: DockerDisableSharedPID was removed.
type: boolean
enableCadvisorJsonEndpoints:
description: EnableCadvisorJsonEndpoints enables cAdvisor json
`/spec` and `/stats/*` endpoints. Defaults to False.
type: boolean
enableCustomMetrics:
description: Enable gathering custom metrics.
type: boolean
enableDebuggingHandlers:
description: EnableDebuggingHandlers enables server endpoints
for log collection and local running of containers and commands
type: boolean
enforceNodeAllocatable:
description: Enforce Allocatable across pods whenever the overall
usage across all pods exceeds Allocatable.
type: string
eventBurst:
description: EventBurst temporarily allows event records to burst
to this number, while still not exceeding EventQPS. Only used
if EventQPS > 0.
format: int32
type: integer
eventQPS:
description: EventQPS if > 0, limit event creations per second
to this value. If 0, unlimited.
format: int32
type: integer
evictionHard:
description: Comma-delimited list of hard eviction expressions. For
example, 'memory.available<300Mi'.
type: string
evictionMaxPodGracePeriod:
description: Maximum allowed grace period (in seconds) to use
when terminating pods in response to a soft eviction threshold
being met.
format: int32
type: integer
evictionMinimumReclaim:
description: 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.
type: string
evictionPressureTransitionPeriod:
description: Duration for which the kubelet has to wait before
transitioning out of an eviction pressure condition.
type: string
evictionSoft:
description: Comma-delimited list of soft eviction expressions. For
example, 'memory.available<300Mi'.
type: string
evictionSoftGracePeriod:
description: Comma-delimited list of grace periods for each soft
eviction signal. For example, 'memory.available=30s'.
type: string
experimentalAllocatableIgnoreEviction:
description: ExperimentalAllocatableIgnoreEviction enables ignoring
Hard Eviction Thresholds while calculating Node Allocatable
type: boolean
experimentalAllowedUnsafeSysctls:
description: |-
ExperimentalAllowedUnsafeSysctls are passed to the kubelet config to whitelist allowable sysctls
Was promoted to beta and renamed. https://github.com/kubernetes/kubernetes/pull/63717
items:
type: string
type: array
failSwapOn:
description: Tells the Kubelet to fail to start if swap is enabled
on the node.
type: boolean
featureGates:
additionalProperties:
type: string
description: FeatureGates is set of key=value pairs that describe
feature gates for alpha/experimental features.
type: object
hairpinMode:
description: |-
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.
type: string
hostnameOverride:
description: HostnameOverride is the hostname used to identify
the kubelet instead of the actual hostname.
type: string
housekeepingInterval:
description: HousekeepingInterval allows to specify interval between
container housekeepings.
type: string
imageGCHighThresholdPercent:
description: |-
ImageGCHighThresholdPercent is the percent of disk usage after which
image garbage collection is always run.
format: int32
type: integer
imageGCLowThresholdPercent:
description: |-
ImageGCLowThresholdPercent is the percent of disk usage before which
image garbage collection is never run. Lowest disk usage to garbage
collect to.
format: int32
type: integer
imageMaximumGCAge:
description: |-
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)
type: string
imageMinimumGCAge:
description: 'imageMinimumGCAge is the minimum age for an unused
image before it is garbage collected. Default: "2m"'
type: string
imagePullProgressDeadline:
description: |-
ImagePullProgressDeadline is the timeout for image pulls
If no pulling progress is made before this deadline, the image pulling will be cancelled. (default 1m0s)
type: string
kernelMemcgNotification:
description: Integrate with the kernel memcg notification to determine
if memory eviction thresholds are crossed rather than polling.
type: boolean
kubeReserved:
additionalProperties:
type: string
description: Resource reservation for kubernetes system daemons
like the kubelet, container runtime, node problem detector,
etc.
type: object
kubeReservedCgroup:
description: Control group for kube daemons.
type: string
kubeconfigPath:
description: KubeconfigPath is the path of kubeconfig for the
kubelet
type: string
kubeletCgroups:
description: KubeletCgroups is the absolute name of cgroups to
isolate the kubelet in.
type: string
logFormat:
description: |-
LogFormat is the logging format of the kubelet.
Supported values: text, json.
Default: text
type: string
logLevel:
description: LogLevel is the logging level of the kubelet
format: int32
type: integer
maxPods:
description: MaxPods is the number of pods that can run on this
Kubelet.
format: int32
type: integer
memorySwapBehavior:
description: |-
MemorySwapBehavior defines how swap is used by container workloads.
Supported values: LimitedSwap, "UnlimitedSwap.
type: string
networkPluginMTU:
description: |-
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).
format: int32
type: integer
networkPluginName:
description: NetworkPluginName is the name of the network plugin
to be invoked for various events in kubelet/pod lifecycle
type: string
nodeLabels:
additionalProperties:
type: string
description: NodeLabels to add when registering the node in the
cluster.
type: object
nodeStatusUpdateFrequency:
description: |-
NodeStatusUpdateFrequency Specifies how often kubelet posts node status to master (default 10s)
must work with nodeMonitorGracePeriod in KubeControllerManagerConfig.
type: string
nonMasqueradeCIDR:
description: 'NonMasqueradeCIDR configures masquerading: traffic
to IPs outside this range will use IP masquerade.'
type: string
nvidiaGPUs:
description: NvidiaGPUs is the number of NVIDIA GPU devices on
this node.
format: int32
type: integer
podCIDR:
description: |-
PodCIDR is the CIDR to use for pod IP addresses, only used in standalone mode.
In cluster mode, this is obtained from the master.
type: string
podInfraContainerImage:
description: PodInfraContainerImage is the image whose network/ipc
containers in each pod will use.
type: string
podManifestPath:
description: config is the path to the config file or directory
of files
type: string
podPidsLimit:
description: PodPidsLimit is the maximum number of pids in any
pod.
format: int64
type: integer
protectKernelDefaults:
description: |-
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.
type: boolean
readOnlyPort:
description: ReadOnlyPort is the port used by the kubelet api
for read-only access (default 10255)
format: int32
type: integer
reconcileCIDR:
description: |-
ReconcileCIDR is Reconcile node CIDR with the CIDR specified by the
API server. No-op if register-node or configure-cbr0 is false.
type: boolean
registerNode:
description: RegisterNode enables automatic registration with
the apiserver.
type: boolean
registerSchedulable:
description: registerSchedulable tells the kubelet to register
the node as schedulable. No-op if register-node is false.
type: boolean
registryBurst:
description: 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)
format: int32
type: integer
registryPullQPS:
description: RegistryPullQPS if > 0, limit registry pull QPS to
this value. If 0, unlimited. (default 5)
format: int32
type: integer
requireKubeconfig:
description: RequireKubeconfig indicates a kubeconfig is required
type: boolean
resolvConf:
description: ResolverConfig is the resolver configuration file
used as the basis for the container DNS resolution configuration."),
[]
type: string
rootDir:
description: RootDir is the directory path for managing kubelet
files (volume mounts,etc)
type: string
rotateCertificates:
description: rotateCertificates enables client certificate rotation.
type: boolean
runtimeCgroups:
description: Cgroups that container runtime is expected to be
isolated in.
type: string
runtimeRequestTimeout:
description: RuntimeRequestTimeout is timeout for runtime requests
on - pull, logs, exec and attach
type: string
seccompDefault:
description: SeccompDefault enables the use of `RuntimeDefault`
as the default seccomp profile for all workloads.
type: boolean
seccompProfileRoot:
description: SeccompProfileRoot is the directory path for seccomp
profiles.
type: string
serializeImagePulls:
description: SerializeImagePulls when enabled, tells the Kubelet
to pull images one at a time.
type: boolean
shutdownGracePeriod:
description: |-
ShutdownGracePeriod specifies the total duration that the node should delay the shutdown by.
Default: 30s
type: string
shutdownGracePeriodCriticalPods:
description: |-
ShutdownGracePeriodCriticalPods specifies the duration used to terminate critical pods during a node shutdown.
Default: 10s
type: string
streamingConnectionIdleTimeout:
description: StreamingConnectionIdleTimeout is the maximum time
a streaming connection can be idle before the connection is
automatically closed
type: string
systemCgroups:
description: |-
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.
type: string
systemReserved:
additionalProperties:
type: string
description: Capture resource reservation for OS system daemons
like sshd, udev, etc.
type: object
systemReservedCgroup:
description: Parent control group for OS system daemons.
type: string
taints:
description: Taints to add when registering a node in the cluster
items:
type: string
type: array
tlsCertFile:
type: string
tlsCipherSuites:
description: TLSCipherSuites indicates the allowed TLS cipher
suite
items:
type: string
type: array
tlsMinVersion:
description: TLSMinVersion indicates the minimum TLS version allowed
type: string
tlsPrivateKeyFile:
type: string
topologyManagerPolicy:
description: TopologyManagerPolicy determines the allocation policy
for the topology manager.
type: string
volumePluginDirectory:
description: 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)
type: string
volumeStatsAggPeriod:
description: VolumeStatsAggPeriod is the interval for kubelet
to calculate and cache the volume disk usage for all pods and
volumes
type: string
type: object
kubernetesApiAccess:
description: |-
KubernetesAPIAccess determines the permitted access to the API endpoints (master HTTPS)
Currently only a single CIDR is supported (though a richer grammar could be added in future)
items:
type: string
type: array
kubernetesVersion:
description: The version of kubernetes to install (optional, and can
be a "spec" like stable)
type: string
masterInternalName:
description: MasterInternalName is unused.
type: string
masterKubelet:
description: |-
MasterKubelet is the kubelet configuration for nodes belonging to the control plane
It can be overridden by the kubelet configuration specified in the instance group.
properties:
allowPrivileged:
description: AllowPrivileged enables containers to request privileged
mode (defaults to false)
type: boolean
allowedUnsafeSysctls:
description: AllowedUnsafeSysctls are passed to the kubelet config
to whitelist allowable sysctls
items:
type: string
type: array
anonymousAuth:
description: AnonymousAuth permits you to control auth to the
kubelet api
type: boolean
apiServers:
description: APIServers is not used for clusters version 1.6 and
later - flag removed
type: string
authenticationTokenWebhook:
description: AuthenticationTokenWebhook uses the TokenReview API
to determine authentication for bearer tokens.
type: boolean
authenticationTokenWebhookCacheTtl:
description: AuthenticationTokenWebhook sets the duration to cache
responses from the webhook token authenticator. Default is 2m.
(default 2m0s)
type: string
authorizationMode:
description: AuthorizationMode is the authorization mode the kubelet
is running in
type: string
babysitDaemons:
description: The node has babysitter process monitoring docker
and kubelet. Removed as of 1.7
type: boolean
bootstrapKubeconfig:
description: BootstrapKubeconfig is the path to a kubeconfig file
that will be used to get client certificate for kubelet
type: string
cgroupDriver:
description: CgroupDriver allows the explicit setting of the kubelet
cgroup driver. If omitted, defaults to cgroupfs.
type: string
cgroupRoot:
description: cgroupRoot is the root cgroup to use for pods. This
is handled by the container runtime on a best effort basis.
type: string
clientCaFile:
description: ClientCAFile is the path to a CA certificate
type: string
cloudProvider:
description: CloudProvider is the provider for cloud services.
type: string
clusterDNS:
description: ClusterDNS is the IP address for a cluster DNS server
type: string
clusterDomain:
description: ClusterDomain is the DNS domain for this cluster
type: string
configureCbr0:
description: configureCBR0 enables the kubelet to configure cbr0
based on Node.Spec.PodCIDR.
type: boolean
containerLogMaxFiles:
description: ContainerLogMaxFiles is the maximum number of container
log files that can be present for a container. The number must
be >= 2.
format: int32
type: integer
containerLogMaxSize:
description: ContainerLogMaxSize is the maximum size (e.g. 10Mi)
of container log file before it is rotated.
type: string
cpuCFSQuota:
description: CPUCFSQuota enables CPU CFS quota enforcement for
containers that specify CPU limits
type: boolean
cpuCFSQuotaPeriod:
description: CPUCFSQuotaPeriod sets CPU CFS quota period value,
cpu.cfs_period_us, defaults to Linux Kernel default
type: string
cpuManagerPolicy:
description: CpuManagerPolicy allows for changing the default
policy of None to static
type: string
dockerDisableSharedPID:
description: DockerDisableSharedPID was removed.
type: boolean
enableCadvisorJsonEndpoints:
description: EnableCadvisorJsonEndpoints enables cAdvisor json
`/spec` and `/stats/*` endpoints. Defaults to False.
type: boolean
enableCustomMetrics:
description: Enable gathering custom metrics.
type: boolean
enableDebuggingHandlers:
description: EnableDebuggingHandlers enables server endpoints
for log collection and local running of containers and commands
type: boolean
enforceNodeAllocatable:
description: Enforce Allocatable across pods whenever the overall
usage across all pods exceeds Allocatable.
type: string
eventBurst:
description: EventBurst temporarily allows event records to burst
to this number, while still not exceeding EventQPS. Only used
if EventQPS > 0.
format: int32
type: integer
eventQPS:
description: EventQPS if > 0, limit event creations per second
to this value. If 0, unlimited.
format: int32
type: integer
evictionHard:
description: Comma-delimited list of hard eviction expressions. For
example, 'memory.available<300Mi'.
type: string
evictionMaxPodGracePeriod:
description: Maximum allowed grace period (in seconds) to use
when terminating pods in response to a soft eviction threshold
being met.
format: int32
type: integer
evictionMinimumReclaim:
description: 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.
type: string
evictionPressureTransitionPeriod:
description: Duration for which the kubelet has to wait before
transitioning out of an eviction pressure condition.
type: string
evictionSoft:
description: Comma-delimited list of soft eviction expressions. For
example, 'memory.available<300Mi'.
type: string
evictionSoftGracePeriod:
description: Comma-delimited list of grace periods for each soft
eviction signal. For example, 'memory.available=30s'.
type: string
experimentalAllocatableIgnoreEviction:
description: ExperimentalAllocatableIgnoreEviction enables ignoring
Hard Eviction Thresholds while calculating Node Allocatable
type: boolean
experimentalAllowedUnsafeSysctls:
description: |-
ExperimentalAllowedUnsafeSysctls are passed to the kubelet config to whitelist allowable sysctls
Was promoted to beta and renamed. https://github.com/kubernetes/kubernetes/pull/63717
items:
type: string
type: array
failSwapOn:
description: Tells the Kubelet to fail to start if swap is enabled
on the node.
type: boolean
featureGates:
additionalProperties:
type: string
description: FeatureGates is set of key=value pairs that describe
feature gates for alpha/experimental features.
type: object
hairpinMode:
description: |-
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.
type: string
hostnameOverride:
description: HostnameOverride is the hostname used to identify
the kubelet instead of the actual hostname.
type: string
housekeepingInterval:
description: HousekeepingInterval allows to specify interval between
container housekeepings.
type: string
imageGCHighThresholdPercent:
description: |-
ImageGCHighThresholdPercent is the percent of disk usage after which
image garbage collection is always run.
format: int32
type: integer
imageGCLowThresholdPercent:
description: |-
ImageGCLowThresholdPercent is the percent of disk usage before which
image garbage collection is never run. Lowest disk usage to garbage
collect to.
format: int32
type: integer
imageMaximumGCAge:
description: |-
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)
type: string
imageMinimumGCAge:
description: 'imageMinimumGCAge is the minimum age for an unused
image before it is garbage collected. Default: "2m"'
type: string
imagePullProgressDeadline:
description: |-
ImagePullProgressDeadline is the timeout for image pulls
If no pulling progress is made before this deadline, the image pulling will be cancelled. (default 1m0s)
type: string
kernelMemcgNotification:
description: Integrate with the kernel memcg notification to determine
if memory eviction thresholds are crossed rather than polling.
type: boolean
kubeReserved:
additionalProperties:
type: string
description: Resource reservation for kubernetes system daemons
like the kubelet, container runtime, node problem detector,
etc.
type: object
kubeReservedCgroup:
description: Control group for kube daemons.
type: string
kubeconfigPath:
description: KubeconfigPath is the path of kubeconfig for the
kubelet
type: string
kubeletCgroups:
description: KubeletCgroups is the absolute name of cgroups to
isolate the kubelet in.
type: string
logFormat:
description: |-
LogFormat is the logging format of the kubelet.
Supported values: text, json.
Default: text
type: string
logLevel:
description: LogLevel is the logging level of the kubelet
format: int32
type: integer
maxPods:
description: MaxPods is the number of pods that can run on this
Kubelet.
format: int32
type: integer
memorySwapBehavior:
description: |-
MemorySwapBehavior defines how swap is used by container workloads.
Supported values: LimitedSwap, "UnlimitedSwap.
type: string
networkPluginMTU:
description: |-
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).
format: int32
type: integer
networkPluginName:
description: NetworkPluginName is the name of the network plugin
to be invoked for various events in kubelet/pod lifecycle
type: string
nodeLabels:
additionalProperties:
type: string
description: NodeLabels to add when registering the node in the
cluster.
type: object
nodeStatusUpdateFrequency:
description: |-
NodeStatusUpdateFrequency Specifies how often kubelet posts node status to master (default 10s)
must work with nodeMonitorGracePeriod in KubeControllerManagerConfig.
type: string
nonMasqueradeCIDR:
description: 'NonMasqueradeCIDR configures masquerading: traffic
to IPs outside this range will use IP masquerade.'
type: string
nvidiaGPUs:
description: NvidiaGPUs is the number of NVIDIA GPU devices on
this node.
format: int32
type: integer
podCIDR:
description: |-
PodCIDR is the CIDR to use for pod IP addresses, only used in standalone mode.
In cluster mode, this is obtained from the master.
type: string
podInfraContainerImage:
description: PodInfraContainerImage is the image whose network/ipc
containers in each pod will use.
type: string
podManifestPath:
description: config is the path to the config file or directory
of files
type: string
podPidsLimit:
description: PodPidsLimit is the maximum number of pids in any
pod.
format: int64
type: integer
protectKernelDefaults:
description: |-
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.
type: boolean
readOnlyPort:
description: ReadOnlyPort is the port used by the kubelet api
for read-only access (default 10255)
format: int32
type: integer
reconcileCIDR:
description: |-
ReconcileCIDR is Reconcile node CIDR with the CIDR specified by the
API server. No-op if register-node or configure-cbr0 is false.
type: boolean
registerNode:
description: RegisterNode enables automatic registration with
the apiserver.
type: boolean
registerSchedulable:
description: registerSchedulable tells the kubelet to register
the node as schedulable. No-op if register-node is false.
type: boolean
registryBurst:
description: 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)
format: int32
type: integer
registryPullQPS:
description: RegistryPullQPS if > 0, limit registry pull QPS to
this value. If 0, unlimited. (default 5)
format: int32
type: integer
requireKubeconfig:
description: RequireKubeconfig indicates a kubeconfig is required
type: boolean
resolvConf:
description: ResolverConfig is the resolver configuration file
used as the basis for the container DNS resolution configuration."),
[]
type: string
rootDir:
description: RootDir is the directory path for managing kubelet
files (volume mounts,etc)
type: string
rotateCertificates:
description: rotateCertificates enables client certificate rotation.
type: boolean
runtimeCgroups:
description: Cgroups that container runtime is expected to be
isolated in.
type: string
runtimeRequestTimeout:
description: RuntimeRequestTimeout is timeout for runtime requests
on - pull, logs, exec and attach
type: string
seccompDefault:
description: SeccompDefault enables the use of `RuntimeDefault`
as the default seccomp profile for all workloads.
type: boolean
seccompProfileRoot:
description: SeccompProfileRoot is the directory path for seccomp
profiles.
type: string
serializeImagePulls:
description: SerializeImagePulls when enabled, tells the Kubelet
to pull images one at a time.
type: boolean
shutdownGracePeriod:
description: |-
ShutdownGracePeriod specifies the total duration that the node should delay the shutdown by.
Default: 30s
type: string
shutdownGracePeriodCriticalPods:
description: |-
ShutdownGracePeriodCriticalPods specifies the duration used to terminate critical pods during a node shutdown.
Default: 10s
type: string
streamingConnectionIdleTimeout:
description: StreamingConnectionIdleTimeout is the maximum time
a streaming connection can be idle before the connection is
automatically closed
type: string
systemCgroups:
description: |-
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.
type: string
systemReserved:
additionalProperties:
type: string
description: Capture resource reservation for OS system daemons
like sshd, udev, etc.
type: object
systemReservedCgroup:
description: Parent control group for OS system daemons.
type: string
taints:
description: Taints to add when registering a node in the cluster
items:
type: string
type: array
tlsCertFile:
type: string
tlsCipherSuites:
description: TLSCipherSuites indicates the allowed TLS cipher
suite
items:
type: string
type: array
tlsMinVersion:
description: TLSMinVersion indicates the minimum TLS version allowed
type: string
tlsPrivateKeyFile:
type: string
topologyManagerPolicy:
description: TopologyManagerPolicy determines the allocation policy
for the topology manager.
type: string
volumePluginDirectory:
description: 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)
type: string
volumeStatsAggPeriod:
description: VolumeStatsAggPeriod is the interval for kubelet
to calculate and cache the volume disk usage for all pods and
volumes
type: string
type: object
masterPublicName:
description: MasterPublicName is the external DNS name for the master
nodes
type: string
metricsServer:
description: MetricsServer determines the metrics server configuration.
properties:
enabled:
description: |-
Enabled enables the metrics server.
Default: false
type: boolean
image:
description: |-
Image is the container image used.
Default: the latest supported image for the specified kubernetes version.
type: string
insecure:
description: |-
Insecure determines if API server will validate metrics server TLS cert.
Default: true
type: boolean
type: object
networkCIDR:
description: |-
NetworkCIDR is the CIDR used for the AWS VPC / GCE Network, or otherwise allocated to k8s
This is a real CIDR, not the internal k8s network
On AWS, it maps to the VPC CIDR. It is not required on GCE.
type: string
networkID:
description: NetworkID is an identifier of a network, if we want to
reuse/share an existing network (e.g. an AWS VPC)
type: string
networking:
description: Networking configuration
properties:
amazonvpc:
description: AmazonVPCNetworkingSpec declares that we want Amazon
VPC CNI networking
properties:
env:
description: Env is a list of environment variables to set
in the container.
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must
be a C_IDENTIFIER.
type: string
value:
description: |-
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 "".
type: string
required:
- name
type: object
type: array
imageName:
description: ImageName is the container image name to use.
type: string
initImageName:
description: InitImageName is the init container image name
to use.
type: string
networkPolicyAgentImage:
description: NetworkPolicyAgentImage is the container image
to use for the network policy agent
type: string
type: object
calico:
description: CalicoNetworkingSpec declares that we want Calico
networking
properties:
allowIPForwarding:
description: |-
AllowIPForwarding enable ip_forwarding setting within the container namespace.
(default: false)
type: boolean
awsSrcDstCheck:
description: |-
AWSSrcDstCheck enables/disables ENI source/destination checks (AWS IPv4 only)
Options: Disable (default for IPv4), Enable, or DoNothing
type: string
bpfEnabled:
description: BPFEnabled enables the eBPF dataplane mode.
type: boolean
bpfExternalServiceMode:
description: |-
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)
type: string
bpfKubeProxyIptablesCleanupEnabled:
description: |-
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.
type: boolean
bpfLogLevel:
description: |-
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)
type: string
chainInsertMode:
description: |-
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')
type: string
cpuRequest:
anyOf:
- type: integer
- type: string
description: 'CPURequest CPU request of Calico container.
Default: 100m'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
crossSubnet:
description: CrossSubnet is deprecated as of kOps 1.22 and
has no effect
type: boolean
encapsulationMode:
description: |-
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
type: string
ipipMode:
description: |-
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.
type: string
iptablesBackend:
description: |-
IptablesBackend controls which variant of iptables binary Felix uses
Default: Auto (other options: Legacy, NFT)
type: string
ipv4AutoDetectionMethod:
description: |-
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"
type: string
ipv6AutoDetectionMethod:
description: |-
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"
type: string
logSeverityScreen:
description: 'LogSeverityScreen lets us set the desired log
level. (Default: info)'
type: string
majorVersion:
description: MajorVersion is unused.
type: string
mtu:
description: MTU to be set in the cni-network-config for calico.
format: int32
type: integer
prometheusGoMetricsEnabled:
description: PrometheusGoMetricsEnabled enables Prometheus
Go runtime metrics collection
type: boolean
prometheusMetricsEnabled:
description: |-
PrometheusMetricsEnabled can be set to enable the experimental Prometheus
metrics server (default: false)
type: boolean
prometheusMetricsPort:
description: |-
PrometheusMetricsPort is the TCP port that the experimental Prometheus
metrics server should bind to (default: 9091)
format: int32
type: integer
prometheusProcessMetricsEnabled:
description: PrometheusProcessMetricsEnabled enables Prometheus
process metrics collection
type: boolean
registry:
description: Registry overrides the Calico container image
registry.
type: string
typhaPrometheusMetricsEnabled:
description: |-
TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha
(default: false)
type: boolean
typhaPrometheusMetricsPort:
description: |-
TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server
should bind to (default: 9093)
format: int32
type: integer
typhaReplicas:
description: TyphaReplicas is the number of replicas of Typha
to deploy
format: int32
type: integer
version:
description: Version overrides the Calico container image
tag.
type: string
vxlanMode:
description: |-
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.
type: string
wireguardEnabled:
description: |-
WireguardEnabled enables WireGuard encryption for all on-the-wire pod-to-pod traffic
(default: false)
type: boolean
type: object
canal:
description: CanalNetworkingSpec declares that we want Canal networking
properties:
chainInsertMode:
description: |-
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')
type: string
cpuRequest:
anyOf:
- type: integer
- type: string
description: 'CPURequest CPU request of Canal container. Default:
100m'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
defaultEndpointToHostAction:
description: |-
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)
type: string
disableFlannelForwardRules:
description: |-
DisableFlannelForwardRules configures Flannel to NOT add the
default ACCEPT traffic rules to the iptables FORWARD chain
type: boolean
disableTxChecksumOffloading:
description: DisableTxChecksumOffloading is unused.
type: boolean
iptablesBackend:
description: |-
IptablesBackend controls which variant of iptables binary Felix uses
Default: Auto (other options: Legacy, NFT)
type: string
logSeveritySys:
description: |-
LogSeveritySys the severity to set for logs which are sent to syslog
Default: INFO (other options: DEBUG, WARNING, ERROR, CRITICAL, NONE)
type: string
mtu:
description: 'MTU to be set in the cni-network-config (default:
1500)'
format: int32
type: integer
prometheusGoMetricsEnabled:
description: PrometheusGoMetricsEnabled enables Prometheus
Go runtime metrics collection
type: boolean
prometheusMetricsEnabled:
description: |-
PrometheusMetricsEnabled can be set to enable the experimental Prometheus
metrics server (default: false)
type: boolean
prometheusMetricsPort:
description: |-
PrometheusMetricsPort is the TCP port that the experimental Prometheus
metrics server should bind to (default: 9091)
format: int32
type: integer
prometheusProcessMetricsEnabled:
description: PrometheusProcessMetricsEnabled enables Prometheus
process metrics collection
type: boolean
typhaPrometheusMetricsEnabled:
description: |-
TyphaPrometheusMetricsEnabled enables Prometheus metrics collection from Typha
(default: false)
type: boolean
typhaPrometheusMetricsPort:
description: |-
TyphaPrometheusMetricsPort is the TCP port the typha Prometheus metrics server
should bind to (default: 9093)
format: int32
type: integer
typhaReplicas:
description: TyphaReplicas is the number of replicas of Typha
to deploy
format: int32
type: integer
type: object
cilium:
description: CiliumNetworkingSpec declares that we want Cilium
networking
properties:
IPTablesRulesNoinstall:
description: |-
IPTablesRulesNoinstall disables installing the base IPTables rules used for masquerading and kube-proxy.
Default: false
type: boolean
accessLog:
description: AccessLog is unused.
type: string
agentLabels:
description: AgentLabels is unused.
items:
type: string
type: array
agentPodAnnotations:
additionalProperties:
type: string
description: |-
AgentPodAnnotations makes possible to add additional annotations to the cilium agent.
Default: none
type: object
agentPrometheusPort:
description: |-
AgentPrometheusPort is the port to listen to for Prometheus metrics.
Defaults to 9090.
type: integer
allowLocalhost:
description: AllowLocalhost is unused.
type: string
autoDirectNodeRoutes:
description: |-
AutoDirectNodeRoutes adds automatic L2 routing between nodes.
Default: false
type: boolean
autoIpv6NodeRoutes:
description: AutoIpv6NodeRoutes is unused.
type: boolean
bpfCTGlobalAnyMax:
description: |-
BPFCTGlobalAnyMax is the maximum number of entries in the non-TCP CT table.
Default: 262144
type: integer
bpfCTGlobalTCPMax:
description: |-
BPFCTGlobalTCPMax is the maximum number of entries in the TCP CT table.
Default: 524288
type: integer
bpfLBAlgorithm:
description: |-
BPFLBAlgorithm is the load balancing algorithm ("random", "maglev").
Default: random
type: string
bpfLBMaglevTableSize:
description: |-
BPFLBMaglevTableSize is the per service backend table size when going with Maglev (parameter M).
Default: 16381
type: string
bpfLBMapMax:
description: |-
BPFLBMapMax is the maximum number of entries in bpf lb service, backend and affinity maps.
Default: 65536
type: integer
bpfLBSockHostNSOnly:
description: |-
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
type: boolean
bpfNATGlobalMax:
description: |-
BPFNATGlobalMax is the the maximum number of entries in the BPF NAT table.
Default: 524288
type: integer
bpfNeighGlobalMax:
description: |-
BPFNeighGlobalMax is the the maximum number of entries in the BPF Neighbor table.
Default: 524288
type: integer
bpfPolicyMapMax:
description: |-
BPFPolicyMapMax is the maximum number of entries in endpoint policy map.
Default: 16384
type: integer
bpfRoot:
description: BPFRoot is unused.
type: string
chainingMode:
description: |-
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
type: string
clusterID:
description: |-
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.
type: integer
clusterName:
description: ClusterName is the name of the cluster. It is
only relevant when building a mesh of clusters.
type: string
cniBinPath:
description: CniBinPath is unused.
type: string
containerRuntime:
description: ContainerRuntime is unused.
items:
type: string
type: array
containerRuntimeEndpoint:
additionalProperties:
type: string
description: ContainerRuntimeEndpoint is unused.
type: object
containerRuntimeLabels:
description: ContainerRuntimeLabels is unused.
type: string
cpuRequest:
anyOf:
- type: integer
- type: string
description: 'CPURequest CPU request of Cilium agent + operator
container. (default: 25m)'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
debug:
description: Debug runs Cilium in debug mode.
type: boolean
debugVerbose:
description: DebugVerbose is unused.
items:
type: string
type: array
device:
description: Device is unused.
type: string
disableCNPStatusUpdates:
description: DisableCNPStatusUpdates determines if CNP NodeStatus
updates will be sent to the Kubernetes api-server.
type: boolean
disableConntrack:
description: DisableConntrack is unused.
type: boolean
disableEndpointCRD:
description: |-
DisableEndpointCRD disables usage of CiliumEndpoint CRD.
Default: false
type: boolean
disableIpv4:
description: DisableIpv4 is unused.
type: boolean
disableK8sServices:
description: DisableK8sServices is unused.
type: boolean
disableMasquerade:
description: DisableMasquerade disables masquerading traffic
to external destinations behind the node IP.
type: boolean
enableBPFMasquerade:
description: |-
EnableBPFMasquerade enables masquerading packets from endpoints leaving the host with BPF instead of iptables.
Default: false
type: boolean
enableEncryption:
description: |-
EnableEncryption enables Cilium Encryption.
Default: false
type: boolean
enableEndpointHealthChecking:
description: |-
EnableEndpointHealthChecking enables connectivity health checking between virtual endpoints.
Default: true
type: boolean
enableHostReachableServices:
description: |-
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
type: boolean
enableL7Proxy:
description: |-
EnableL7Proxy enables L7 proxy for L7 policy enforcement.
Default: true
type: boolean
enableLocalRedirectPolicy:
description: |-
EnableLocalRedirectPolicy that enables pod traffic destined to an IP address and port/protocol
tuple or Kubernetes service to be redirected locally to backend pod(s) within a node, using eBPF.
https://docs.cilium.io/en/stable/network/kubernetes/local-redirect-policy/
Default: false
type: boolean
enableNodePort:
description: |-
EnableNodePort replaces kube-proxy with Cilium's BPF implementation.
Requires spec.kubeProxy.enabled be set to false.
Default: false
type: boolean
enablePolicy:
description: |-
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.
type: string
enablePrometheusMetrics:
description: EnablePrometheusMetrics enables the Cilium "/metrics"
endpoint for both the agent and the operator.
type: boolean
enableRemoteNodeIdentity:
description: |-
EnableRemoteNodeIdentity enables the remote-node-identity.
Default: true
type: boolean
enableServiceTopology:
description: EnableServiceTopology determine if cilium should
use topology aware hints.
type: boolean
enableTracing:
description: EnableTracing is unused.
type: boolean
enableUnreachableRoutes:
description: |-
EnableUnreachableRoutes enables unreachable routes on pod deletion.
Default: false
type: boolean
enableipv4:
description: EnableIpv4 is unused.
type: boolean
enableipv6:
description: EnableIpv6 is unused.
type: boolean
encryptionType:
description: |-
EncryptionType specifies Cilium Encryption method ("ipsec", "wireguard").
Default: ipsec
type: string
envoyLog:
description: EnvoyLog is unused.
type: string
etcdManaged:
description: |-
EtcdManagd installs an additional etcd cluster that is used for Cilium state change.
The cluster is operated by cilium-etcd-operator.
Default: false
type: boolean
hubble:
description: Hubble configures the Hubble service on the Cilium
agent.
properties:
enabled:
description: Enabled decides if Hubble is enabled on the
agent or not
type: boolean
metrics:
description: |-
Metrics is a list of metrics to collect. If empty or null, metrics are disabled.
See https://docs.cilium.io/en/stable/observability/metrics/#hubble-exported-metrics
items:
type: string
type: array
type: object
identityAllocationMode:
description: |-
IdentityAllocationMode specifies in which backend identities are stored ("crd", "kvstore").
Default: crd
type: string
identityChangeGracePeriod:
description: |-
IdentityChangeGracePeriod specifies the duration to wait before using a changed identity.
Default: 5s
type: string
ingress:
description: Ingress specifies the configuration for Cilium
Ingress settings.
properties:
defaultLoadBalancerMode:
description: |-
DefaultLoadBalancerMode specifies the default load balancer mode.
Possible values: 'shared' or 'dedicated'
Default: dedicated
type: string
enableSecretsSync:
description: |-
EnableSecretsSync specifies whether synchronization of secrets is enabled.
Default: true
type: boolean
enabled:
description: Enabled specifies whether Cilium Ingress
is enabled.
type: boolean
enforceHttps:
description: |-
EnforceHttps specifies whether HTTPS enforcement is enabled for Ingress traffic.
Default: true
type: boolean
loadBalancerAnnotationPrefixes:
description: |-
LoadBalancerAnnotationPrefixes specifies annotation prefixes for Load Balancer configuration.
Default: "service.beta.kubernetes.io service.kubernetes.io cloud.google.com"
type: string
sharedLoadBalancerServiceName:
description: |-
SharedLoadBalancerServiceName specifies the name of the shared load balancer service.
Default: cilium-ingress
type: string
type: object
ipam:
description: |-
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".
type: string
ipv4ClusterCidrMaskSize:
description: Ipv4ClusterCIDRMaskSize is unused.
type: integer
ipv4Node:
description: Ipv4Node is unused.
type: string
ipv4Range:
description: Ipv4Range is unused.
type: string
ipv4ServiceRange:
description: Ipv4ServiceRange is unused.
type: string
ipv6ClusterAllocCidr:
description: Ipv6ClusterAllocCidr is unused.
type: string
ipv6Node:
description: Ipv6Node is unused.
type: string
ipv6Range:
description: Ipv6Range is unused.
type: string
ipv6ServiceRange:
description: Ipv6ServiceRange is unused.
type: string
k8sApiServer:
description: K8sAPIServer is unused.
type: string
k8sKubeconfigPath:
description: K8sKubeconfigPath is unused.
type: string
keepBpfTemplates:
description: KeepBPFTemplates is unused.
type: boolean
keepConfig:
description: KeepConfig is unused.
type: boolean
labelPrefixFile:
description: LabelPrefixFile is unused.
type: string
labels:
description: Labels is unused.
items:
type: string
type: array
lb:
description: LB is unused.
type: string
libDir:
description: LibDir is unused.
type: string
logDriver:
description: LogDrivers is unused.
items:
type: string
type: array
logOpt:
additionalProperties:
type: string
description: LogOpt is unused.
type: object
logstash:
description: Logstash is unused.
type: boolean
logstashAgent:
description: LogstashAgent is unused.
type: string
logstashProbeTimer:
description: LogstashProbeTimer is unused.
format: int32
type: integer
memoryRequest:
anyOf:
- type: integer
- type: string
description: 'MemoryRequest memory request of Cilium agent
+ operator container. (default: 128Mi)'
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
metrics:
description: Metrics is a list of metrics to add or remove
from the default list of metrics the agent exposes.
items:
type: string
type: array
monitorAggregation:
description: |-
MonitorAggregation sets the level of packet monitoring. Possible values are "low", "medium", or "maximum".
Default: medium
type: string
nat46Range:
description: Nat46Range is unused.
type: string
nodeEncryption:
description: |-
NodeEncryption enables encryption for pure node to node traffic.
Default: false
type: boolean
nodeInitBootstrapFile:
description: NodeInitBootstrapFile is unused.
type: string
operatorPodAnnotations:
additionalProperties:
type: string
description: |-
OperatorPodAnnotations makes possible to add additional annotations to cilium operator.
Default: none
type: object
pprof:
description: Pprof is unused.
type: boolean
preallocateBPFMaps:
description: |-
PreallocateBPFMaps reduces the per-packet latency at the expense of up-front memory allocation.
Default: true
type: boolean
prefilterDevice:
description: PrefilterDevice is unused.
type: string
prometheusServeAddr:
description: PrometheusServeAddr is unused.
type: string
reconfigureKubelet:
description: ReconfigureKubelet is unused.
type: boolean
registry:
description: Registry overrides the default Cilium container
registry (quay.io)
type: string
removeCbrBridge:
description: RemoveCbrBridge is unused.
type: boolean
restartPods:
description: RestartPods is unused.
type: boolean
restore:
description: Restore is unused.
type: boolean
sidecarIstioProxyImage:
description: |-
SidecarIstioProxyImage is the regular expression matching compatible Istio sidecar istio-proxy
container image names.
Default: cilium/istio_proxy
type: string
singleClusterRoute:
description: SingleClusterRoute is unused.
type: boolean
socketPath:
description: SocketPath is unused.
type: string
stateDir:
description: StateDir is unused.
type: string
toFqdnsDnsRejectResponseCode:
description: |-
ToFQDNsDNSRejectResponseCode sets the DNS response code for rejecting DNS requests.
Possible values are "nameError" or "refused".
Default: refused
type: string
toFqdnsEnablePoller:
description: |-
ToFQDNsEnablePoller replaces the DNS proxy-based implementation of FQDN policies
with the less powerful legacy implementation.
Default: false
type: boolean
tracePayloadlen:
description: TracePayloadLen is unused.
type: integer
tunnel:
description: |-
Tunnel specifies the Cilium tunnelling mode. Possible values are "vxlan", "geneve", or "disabled".
Default: vxlan
type: string
version:
description: Version is the version of the Cilium agent and
the Cilium Operator.
type: string
type: object
classic:
description: |-
ClassicNetworkingSpec is the specification of classic networking mode, integrated into kubernetes.
Support been removed since Kubernetes 1.4.
type: object
cni:
description: CNINetworkingSpec is the specification for networking
that is implemented by a user-provided Daemonset, which uses
the CNI kubelet networking plugin.
properties:
usesSecondaryIP:
type: boolean
type: object
external:
description: ExternalNetworkingSpec is the specification for networking
that is implemented by a user-provided Daemonset that uses the
Kubenet kubelet networking plugin.
type: object
flannel:
description: FlannelNetworkingSpec declares that we want Flannel
networking
properties:
backend:
description: Backend is the backend overlay type we want to
use (vxlan or udp)
type: string
disableTxChecksumOffloading:
description: DisableTxChecksumOffloading is unused.
type: boolean
iptablesResyncSeconds:
description: IptablesResyncSeconds sets resync period for
iptables rules, in seconds
format: int32
type: integer
type: object
gce:
description: GCPNetworkingSpec is the specification of GCP's native
networking mode, using IP aliases.
type: object
kindnet:
description: KindnetNetworkingSpec configures Kindnet settings.
properties:
adminNetworkPolicies:
type: boolean
baselineAdminNetworkPolicies:
type: boolean
dnsCaching:
type: boolean
fastPathThreshold:
format: int32
type: integer
logLevel:
format: int32
type: integer
masquerade:
description: KindnetMasqueradeSpec configures Kindnet masquerading
settings.
properties:
enabled:
type: boolean
nonMasqueradeCIDRs:
items:
type: string
type: array
type: object
nat64:
type: boolean
networkPolicies:
type: boolean
version:
type: string
type: object
kopeio:
description: KopeioNetworkingSpec declares that we want Kopeio
networking
type: object
kubenet:
description: KubenetNetworkingSpec is the specification for kubenet
networking, largely integrated but intended to replace classic
type: object
kuberouter:
description: KuberouterNetworkingSpec declares that we want Kube-router
networking
type: object
lyftvpc:
description: |-
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.
properties:
subnetTags:
additionalProperties:
type: string
type: object
type: object
romana:
description: |-
RomanaNetworkingSpec declares that we want Romana networking
Romana is deprecated as of kOps 1.18 and removed as of kOps 1.19.
properties:
daemonServiceIP:
description: DaemonServiceIP is the Kubernetes Service IP
for the romana-daemon pod
type: string
etcdServiceIP:
description: EtcdServiceIP is the Kubernetes Service IP for
the etcd backend used by Romana
type: string
type: object
weave:
description: WeaveNetworkingSpec declares that we want Weave networking
properties:
connLimit:
format: int32
type: integer
cpuLimit:
anyOf:
- type: integer
- type: string
description: CPULimit CPU limit of weave container.
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: CPURequest CPU request of weave container. Default
50m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryLimit:
anyOf:
- type: integer
- type: string
description: MemoryLimit memory limit of weave container.
Default 200Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: MemoryRequest memory request of weave container.
Default 200Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
mtu:
format: int32
type: integer
netExtraArgs:
description: NetExtraArgs are extra arguments that are passed
to weave-kube.
type: string
noMasqLocal:
format: int32
type: integer
npcCPULimit:
anyOf:
- type: integer
- type: string
description: NPCCPULimit CPU limit of weave npc container
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
npcCPURequest:
anyOf:
- type: integer
- type: string
description: NPCCPURequest CPU request of weave npc container.
Default 50m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
npcExtraArgs:
description: NPCExtraArgs are extra arguments that are passed
to weave-npc.
type: string
npcMemoryLimit:
anyOf:
- type: integer
- type: string
description: NPCMemoryLimit memory limit of weave npc container.
Default 200Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
npcMemoryRequest:
anyOf:
- type: integer
- type: string
description: NPCMemoryRequest memory request of weave npc
container. Default 200Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
version:
description: Version specifies the Weave container image tag.
The default depends on the kOps version.
type: string
type: object
type: object
nodeAuthorization:
description: NodeAuthorization defined the custom node authorization
configuration
properties:
nodeAuthorizer:
description: NodeAuthorizer defined the configuration for the
node authorizer
properties:
authorizer:
description: Authorizer is the authorizer to use
type: string
features:
description: Features is a series of authorizer features to
enable or disable
items:
type: string
type: array
image:
description: Image is the location of container
type: string
interval:
description: Interval the time between retires for authorization
request
type: string
nodeURL:
description: NodeURL is the node authorization service url
type: string
port:
description: Port is the port the service is running on the
master
type: integer
timeout:
description: Timeout the max time for authorization request
type: string
tokenTTL:
description: TokenTTL is the max ttl for an issued token
type: string
type: object
type: object
nodePortAccess:
description: NodePortAccess is a list of the CIDRs that can access
the node ports range (30000-32767).
items:
type: string
type: array
nodeProblemDetector:
description: NodeProblemDetector determines the node problem detector
configuration.
properties:
cpuLimit:
anyOf:
- type: integer
- type: string
description: |-
CPULimit of NodeProblemDetector container.
Default: 10m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
cpuRequest:
anyOf:
- type: integer
- type: string
description: |-
CPURequest of NodeProblemDetector container.
Default: 10m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
enabled:
description: |-
Enabled enables the NodeProblemDetector.
Default: false
type: boolean
image:
description: Image is the NodeProblemDetector container image
used.
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: |-
MemoryLimit of NodeProblemDetector container.
Default: 80Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: |-
MemoryRequest of NodeProblemDetector container.
Default: 80Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
nodeTerminationHandler:
description: NodeTerminationHandler determines the cluster autoscaler
configuration.
properties:
cpuRequest:
anyOf:
- type: integer
- type: string
description: |-
CPURequest of NodeTerminationHandler container.
Default: 50m
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
deleteSQSMsgIfNodeNotFound:
description: |-
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
type: boolean
enableRebalanceDraining:
description: |-
EnableRebalanceDraining makes node termination handler drain nodes when the rebalance recommendation notice is received.
Default: false
type: boolean
enableRebalanceMonitoring:
description: |-
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
type: boolean
enableSQSTerminationDraining:
description: |-
EnableSQSTerminationDraining enables queue-processor mode which drains nodes when an SQS termination event is received.
Default: true
type: boolean
enableScheduledEventDraining:
description: |-
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
type: boolean
enableSpotInterruptionDraining:
description: |-
EnableSpotInterruptionDraining makes node termination handler drain nodes when spot interruption termination notice is received.
Cannot be disabled in queue-processor mode.
Default: true
type: boolean
enabled:
description: |-
Enabled enables the node termination handler.
Default: true
type: boolean
excludeFromLoadBalancers:
description: |-
ExcludeFromLoadBalancers makes node termination handler will mark for exclusion from load balancers before node are cordoned.
Default: true
type: boolean
managedASGTag:
description: |-
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.
type: string
memoryLimit:
anyOf:
- type: integer
- type: string
description: |-
MemoryLimit of NodeTerminationHandler container.
Default: none
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
memoryRequest:
anyOf:
- type: integer
- type: string
description: |-
MemoryRequest of NodeTerminationHandler container.
Default: 64Mi
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
podTerminationGracePeriod:
description: |-
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
format: int32
type: integer
prometheusEnable:
description: |-
EnablePrometheusMetrics enables the "/metrics" endpoint.
Default: false
type: boolean
taintNode:
description: |-
TaintNode makes node termination handler taint nodes when an interruption event occurs.
Default: false
type: boolean
version:
description: Version is the container image tag used.
type: string
webhookTemplate:
description: Replaces the default webhook message template.
type: string
webhookURL:
description: If specified, posts event data to URL upon instance
interruption action.
type: string
type: object
nonMasqueradeCIDR:
description: |-
MasterIPRange string `json:",omitempty"`
NonMasqueradeCIDR is the CIDR for the internal k8s network (for pod IPs)
It cannot overlap ServiceClusterIPRange
type: string
ntp:
description: NTPConfig is the configuration for NTP.
properties:
managed:
description: |-
Managed controls if the NTP configuration is managed by kOps.
The NTP configuration task is skipped if this is set to false.
type: boolean
type: object
packages:
description: Packages specifies additional packages to be installed.
items:
type: string
type: array
podCIDR:
description: PodCIDR is the CIDR from which we allocate IPs for pods
type: string
podIdentityWebhook:
description: PodIdentityWebhook determines the EKS Pod Identity Webhook
configuration.
properties:
enabled:
type: boolean
replicas:
type: integer
type: object
project:
description: Project is the cloud project we should use, required
on GCE
type: string
rollingUpdate:
description: RollingUpdate defines the default rolling-update settings
for instance groups
properties:
drainAndTerminate:
description: |-
DrainAndTerminate enables draining and terminating nodes during rolling updates.
Defaults to true.
type: boolean
maxSurge:
anyOf:
- type: integer
- type: string
description: |-
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.
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
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.
x-kubernetes-int-or-string: true
type: object
secretStore:
description: SecretStore is the VFS path to where secrets are stored
type: string
serviceAccountIssuerDiscovery:
description: ServiceAccountIssuerDiscovery configures the OIDC Issuer
for ServiceAccounts.
properties:
additionalAudiences:
description: AdditionalAudiences adds user defined audiences to
the provisioned AWS OIDC provider
items:
type: string
type: array
discoveryStore:
description: DiscoveryStore is the VFS path to where OIDC Issuer
Discovery metadata is stored.
type: string
enableAWSOIDCProvider:
description: EnableAWSOIDCProvider will provision an AWS OIDC
provider that trusts the ServiceAccount Issuer
type: boolean
type: object
serviceClusterIPRange:
description: ServiceClusterIPRange is the CIDR, from the internal
network, where we allocate IPs for services
type: string
snapshotController:
description: SnapshotController defines the CSI Snapshot Controller
configuration.
properties:
enabled:
description: Enabled enables the CSI Snapshot Controller
type: boolean
installDefaultClass:
description: InstallDefaultClass will install the default VolumeSnapshotClass
type: boolean
type: object
sshAccess:
description: |-
SSHAccess determines the permitted access to SSH
Currently only a single CIDR is supported (though a richer grammar could be added in future)
items:
type: string
type: array
sshKeyName:
description: SSHKeyName specifies a preexisting SSH key to use
type: string
subnets:
description: Configuration of subnets we are targeting
items:
properties:
additionalRoutes:
description: AdditionalRoutes to attach to the subnet's route
table
items:
properties:
cidr:
description: CIDR destination of the route
type: string
target:
description: Target of the route
type: string
type: object
type: array
cidr:
description: CIDR is the IPv4 CIDR block assigned to the subnet.
type: string
egress:
description: Egress defines the method of traffic egress for
this subnet
type: string
id:
description: ID is the cloud provider ID for the objects associated
with the zone (the subnet on AWS).
type: string
ipv6CIDR:
description: IPv6CIDR is the IPv6 CIDR block assigned to the
subnet.
type: string
name:
type: string
publicIP:
description: PublicIP to attach to NatGateway
type: string
region:
description: Region is the region the subnet is in, set for
subnets that are regionally scoped
type: string
type:
description: SubnetType string describes subnet types (public,
private, utility)
type: string
zone:
description: Zone is the zone the subnet is in, set for subnets
that are zonally scoped
type: string
type: object
type: array
sysctlParameters:
description: |-
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.
items:
type: string
type: array
target:
description: Target allows for us to nest extra config for targets
such as terraform
properties:
terraform:
description: TerraformSpec allows us to specify terraform config
in an extensible way
properties:
filesProviderExtraConfig:
additionalProperties:
type: string
description: FilesProviderExtraConfig contains key/value pairs
to add to the terraform provider block used for managed
files
type: object
providerExtraConfig:
additionalProperties:
type: string
description: ProviderExtraConfig contains key/value pairs
to add to the main terraform provider block
type: object
type: object
type: object
topology:
description: |-
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
properties:
bastion:
description: |-
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 bastion
as the "jump server".
properties:
bastionPublicName:
type: string
idleTimeoutSeconds:
description: IdleTimeoutSeconds is unused
format: int64
type: integer
loadBalancer:
properties:
additionalSecurityGroups:
description: AdditionalSecurityGroups is unused
items:
type: string
type: array
type:
description: Type of load balancer to create, it can be
Public or Internal.
type: string
type: object
type: object
dns:
description: DNS configures options relating to DNS, in particular
whether we use a public or a private hosted zone
properties:
type:
type: string
type: object
masters:
description: Masters is not used.
type: string
nodes:
description: Nodes is not used.
type: string
type: object
updatePolicy:
description: |-
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
type: string
useHostCertificates:
description: |-
UseHostCertificates will mount /etc/ssl/certs to inside needed containers.
This is needed if some APIs do have self-signed certs
type: boolean
warmPool:
description: WarmPool defines the default warm pool settings for instance
groups (AWS only).
properties:
enableLifecycleHook:
description: |-
EnableLifecycleHook 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.
type: boolean
maxSize:
description: |-
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.
format: int64
type: integer
minSize:
description: MinSize is the minimum size of the pool
format: int64
type: integer
type: object
type: object
type: object
served: true
storage: true