commit 29ae39d1bd88c32c6614b9f99ebdf057bfb6a842
parent cde893d4f48df4ae2f04738772f6bfb0dfb559b5
Author: MTRNord <mtrnord1@gmail.com>
Date: Wed, 21 Jun 2023 09:15:14 +0200
Update calico
Diffstat:
1 file changed, 5275 insertions(+), 1617 deletions(-)
diff --git a/infrastructure/controllers/calico.yaml b/infrastructure/controllers/calico.yaml
@@ -218,6 +218,142 @@ status:
storedVersions: []
---
+# Source: crds/calico/crd.projectcalico.org_bgpfilters.yaml
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: (devel)
+ creationTimestamp: null
+ name: bgpfilters.crd.projectcalico.org
+spec:
+ group: crd.projectcalico.org
+ names:
+ kind: BGPFilter
+ listKind: BGPFilterList
+ plural: bgpfilters
+ singular: bgpfilter
+ scope: Cluster
+ versions:
+ - name: v1
+ 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:
+ BGPFilterSpec contains the IPv4 and IPv6 filter rules of
+ the BGP Filter.
+ properties:
+ exportV4:
+ description:
+ The ordered set of IPv4 BGPFilter rules acting on exporting
+ routes to a peer.
+ items:
+ description:
+ BGPFilterRuleV4 defines a BGP filter rule consisting
+ a single IPv4 CIDR block and a filter action for this CIDR.
+ properties:
+ action:
+ type: string
+ cidr:
+ type: string
+ matchOperator:
+ type: string
+ required:
+ - action
+ - cidr
+ - matchOperator
+ type: object
+ type: array
+ exportV6:
+ description:
+ The ordered set of IPv6 BGPFilter rules acting on exporting
+ routes to a peer.
+ items:
+ description:
+ BGPFilterRuleV6 defines a BGP filter rule consisting
+ a single IPv6 CIDR block and a filter action for this CIDR.
+ properties:
+ action:
+ type: string
+ cidr:
+ type: string
+ matchOperator:
+ type: string
+ required:
+ - action
+ - cidr
+ - matchOperator
+ type: object
+ type: array
+ importV4:
+ description:
+ The ordered set of IPv4 BGPFilter rules acting on importing
+ routes from a peer.
+ items:
+ description:
+ BGPFilterRuleV4 defines a BGP filter rule consisting
+ a single IPv4 CIDR block and a filter action for this CIDR.
+ properties:
+ action:
+ type: string
+ cidr:
+ type: string
+ matchOperator:
+ type: string
+ required:
+ - action
+ - cidr
+ - matchOperator
+ type: object
+ type: array
+ importV6:
+ description:
+ The ordered set of IPv6 BGPFilter rules acting on importing
+ routes from a peer.
+ items:
+ description:
+ BGPFilterRuleV6 defines a BGP filter rule consisting
+ a single IPv6 CIDR block and a filter action for this CIDR.
+ properties:
+ action:
+ type: string
+ cidr:
+ type: string
+ matchOperator:
+ type: string
+ required:
+ - action
+ - cidr
+ - matchOperator
+ type: object
+ type: array
+ type: object
+ type: object
+ served: true
+ storage: true
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: []
+ storedVersions: []
+
+---
# Source: crds/calico/crd.projectcalico.org_bgppeers.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
@@ -258,6 +394,11 @@ spec:
description: The AS Number of the peer.
format: int32
type: integer
+ filters:
+ description: The ordered set of BGPFilters applied on this BGP peer.
+ items:
+ type: string
+ type: array
keepOriginalNextHop:
description:
Option to keep the original nexthop field when routes
@@ -866,6 +1007,14 @@ spec:
connections. The only reason to disable it is for debugging purposes. [Default:
true]"
type: boolean
+ bpfDSROptoutCIDRs:
+ description:
+ BPFDSROptoutCIDRs is a list of CIDRs which are excluded
+ from DSR. That is, clients in those CIDRs will accesses nodeports
+ as if BPFExternalServiceMode was set to Tunnel.
+ items:
+ type: string
+ type: array
bpfDataIfacePattern:
description:
BPFDataIfacePattern is a regular expression that controls
@@ -893,7 +1042,7 @@ spec:
"BPFEnforceRPF enforce strict RPF on all host interfaces
with BPF programs regardless of what is the per-interfaces or global
setting. Possible values are Disabled, Strict or Loose. [Default:
- Strict]"
+ Loose]"
type: string
bpfExtToServiceConnmark:
description:
@@ -1191,7 +1340,7 @@ spec:
healthTimeoutOverrides:
description:
HealthTimeoutOverrides allows the internal watchdog timeouts
- of individual subcomponents to be overriden. This is useful for
+ of individual subcomponents to be overridden. This is useful for
working around "false positive" liveness timeouts that can occur
in particularly stressful workloads or if CPU is constrained. For
a list of active subcomponents, see Felix's logs.
@@ -1258,6 +1407,13 @@ spec:
type: string
iptablesFilterAllowAction:
type: string
+ iptablesFilterDenyAction:
+ description:
+ IptablesFilterDenyAction controls what happens to traffic
+ that is denied by network policy. By default Calico blocks traffic
+ with an iptables "DROP" action. If you want to use "REJECT" action
+ instead you can configure it in here.
+ type: string
iptablesLockFilePath:
description:
"IptablesLockFilePath is the location of the iptables
@@ -6119,7 +6275,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.3.0
+ controller-gen.kubebuilder.io/version: v0.11.3
name: installations.operator.tigera.io
spec:
group: operator.tigera.io
@@ -6386,6 +6542,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -6519,10 +6676,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -6631,6 +6790,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -6643,9 +6803,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -6713,6 +6870,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -6723,7 +6881,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -6849,6 +7007,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -6859,10 +7018,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -6926,6 +7082,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -6935,7 +7092,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -7064,6 +7221,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -7076,9 +7234,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -7146,6 +7301,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -7156,7 +7312,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -7282,6 +7438,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -7292,10 +7449,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -7359,6 +7513,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -7368,7 +7523,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -7963,6 +8118,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -8096,10 +8252,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -8208,6 +8366,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -8220,9 +8379,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -8290,6 +8446,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -8300,7 +8457,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -8426,6 +8583,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -8436,10 +8594,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -8503,6 +8658,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -8512,7 +8668,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -8641,6 +8797,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -8653,9 +8810,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -8723,6 +8877,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -8733,7 +8888,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -8859,6 +9014,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -8869,10 +9025,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -8936,6 +9089,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -8945,7 +9099,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -9403,6 +9557,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -9536,10 +9691,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -9648,6 +9805,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -9660,9 +9818,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -9730,6 +9885,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -9740,7 +9896,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -9866,6 +10022,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -9876,10 +10033,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -9943,6 +10097,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -9952,7 +10107,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -10081,6 +10236,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -10093,9 +10249,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -10163,6 +10316,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -10173,7 +10327,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -10299,6 +10453,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -10309,10 +10464,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -10376,6 +10528,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -10385,7 +10538,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -10771,472 +10924,59 @@ spec:
type: string
type: object
type: array
- fipsMode:
- description:
- "FIPSMode uses images and features only that are using
- FIPS 140-2 validated cryptographic modules and standards. Default:
- Disabled"
- enum:
- - Enabled
- - Disabled
- type: string
- flexVolumePath:
- description:
- FlexVolumePath optionally specifies a custom path for
- FlexVolume. If not specified, FlexVolume will be enabled by default.
- If set to 'None', FlexVolume will be disabled. The default is based
- on the kubernetesProvider.
- type: string
- imagePath:
- description:
- "ImagePath allows for the path part of an image to be
- specified. If specified then the specified value will be used as
- the image path for each image. If not specified or empty, the default
- for each image will be used. A special case value, UseDefault, is
- supported to explicitly specify the default image path will be used
- for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
- \n This option allows configuring the `<imagePath>` portion of the
- above format."
- type: string
- imagePrefix:
- description:
- "ImagePrefix allows for the prefix part of an image to
- be specified. If specified then the given value will be used as
- a prefix on each image. If not specified or empty, no prefix will
- be used. A special case value, UseDefault, is supported to explicitly
- specify the default image prefix will be used for each image. \n
- Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
- \n This option allows configuring the `<imagePrefix>` portion of
- the above format."
- type: string
- imagePullSecrets:
- description:
- ImagePullSecrets is an array of references to container
- registry pull secrets to use. These are applied to all images to
- be pulled.
- items:
- description:
- LocalObjectReference contains enough information to
- let you locate the referenced object inside the same namespace.
- properties:
- name:
- description:
- "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- TODO: Add other useful fields. apiVersion, kind, uid?"
- type: string
- type: object
- type: array
- kubeletVolumePluginPath:
- description:
- "KubeletVolumePluginPath optionally specifies enablement
- of Calico CSI plugin. If not specified, CSI will be enabled by default.
- If set to 'None', CSI will be disabled. Default: /var/lib/kubelet"
- type: string
- kubernetesProvider:
- description:
- KubernetesProvider specifies a particular provider of
- the Kubernetes platform and enables provider-specific configuration.
- If the specified value is empty, the Operator will attempt to automatically
- determine the current provider. If the specified value is not empty,
- the Operator will still attempt auto-detection, but will additionally
- compare the auto-detected value to the specified value to confirm
- they match.
- enum:
- - ""
- - EKS
- - GKE
- - AKS
- - OpenShift
- - DockerEnterprise
- - RKE2
- type: string
- nodeMetricsPort:
- description:
- NodeMetricsPort specifies which port calico/node serves
- prometheus metrics on. By default, metrics are not enabled. If specified,
- this overrides any FelixConfiguration resources which may exist.
- If omitted, then prometheus metrics may still be configured through
- FelixConfiguration.
- format: int32
- type: integer
- nodeUpdateStrategy:
+ csiNodeDriverDaemonSet:
description:
- NodeUpdateStrategy can be used to customize the desired
- update strategy, such as the MaxUnavailable field.
+ CSINodeDriverDaemonSet configures the csi-node-driver
+ DaemonSet.
properties:
- rollingUpdate:
+ metadata:
description:
- 'Rolling update config params. Present only if type
- = "RollingUpdate". --- TODO: Update this to follow our convention
- for oneOf, whatever we decide it to be. Same as Deployment `strategy.rollingUpdate`.
- See https://github.com/kubernetes/kubernetes/issues/35345'
+ Metadata is a subset of a Kubernetes object's metadata
+ that is added to the DaemonSet.
properties:
- maxSurge:
- anyOf:
- - type: integer
- - type: string
+ annotations:
+ additionalProperties:
+ type: string
description:
- "The maximum number of nodes with an existing
- available DaemonSet pod that can have an updated DaemonSet
- pod during during an update. Value can be an absolute number
- (ex: 5) or a percentage of desired pods (ex: 10%). This
- can not be 0 if MaxUnavailable is 0. Absolute number is
- calculated from percentage by rounding up to a minimum of
- 1. Default value is 0. Example: when this is set to 30%,
- at most 30% of the total number of nodes that should be
- running the daemon pod (i.e. status.desiredNumberScheduled)
- can have their a new pod created before the old pod is marked
- as deleted. The update starts by launching new pods on 30%
- of nodes. Once an updated pod is available (Ready for at
- least minReadySeconds) the old DaemonSet pod on that node
- is marked deleted. If the old pod becomes unavailable for
- any reason (Ready transitions to false, is evicted, or is
- drained) an updated pod is immediatedly created on that
- node without considering surge limits. Allowing surge implies
- the possibility that the resources consumed by the daemonset
- on any given node can double if the readiness check fails,
- and so resource intensive daemonsets should take into account
- that they may cause evictions during disruption. This is
- beta field and enabled/disabled by DaemonSetUpdateSurge
- feature gate."
- x-kubernetes-int-or-string: true
- maxUnavailable:
- anyOf:
- - type: integer
- - type: string
+ Annotations is a map of arbitrary non-identifying
+ metadata. Each of these key/value pairs are added to the
+ object's annotations provided the key does not already exist
+ in the object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
description:
- "The maximum number of DaemonSet pods that can
- be unavailable during the update. Value can be an absolute
- number (ex: 5) or a percentage of total number of DaemonSet
- pods at the start of the update (ex: 10%). Absolute number
- is calculated from percentage by rounding up. This cannot
- be 0 if MaxSurge is 0 Default value is 1. Example: when
- this is set to 30%, at most 30% of the total number of nodes
- that should be running the daemon pod (i.e. status.desiredNumberScheduled)
- can have their pods stopped for an update at any given time.
- The update starts by stopping at most 30% of those DaemonSet
- pods and then brings up new DaemonSet pods in their place.
- Once the new pods are available, it then proceeds onto other
- DaemonSet pods, thus ensuring that at least 70% of original
- number of DaemonSet pods are available at all times during
- the update."
- x-kubernetes-int-or-string: true
+ Labels is a map of string keys and values that
+ may match replicaset and service selectors. Each of these
+ key/value pairs are added to the object's labels provided
+ the key does not already exist in the object's labels.
+ type: object
type: object
- type:
- description:
- Type of daemon set update. Can be "RollingUpdate"
- or "OnDelete". Default is RollingUpdate.
- type: string
- type: object
- nonPrivileged:
- description:
- NonPrivileged configures Calico to be run in non-privileged
- containers as non-root users where possible.
- type: string
- registry:
- description:
- "Registry is the default Docker registry used for component
- Docker images. If specified then the given value must end with a
- slash character (`/`) and all images will be pulled from this registry.
- If not specified then the default registries will be used. A special
- case value, UseDefault, is supported to explicitly specify the default
- registries will be used. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
- \n This option allows configuring the `<registry>` portion of the
- above format."
- type: string
- typhaAffinity:
- description:
- Deprecated. Please use Installation.Spec.TyphaDeployment
- instead. TyphaAffinity allows configuration of node affinity characteristics
- for Typha pods.
- properties:
- nodeAffinity:
+ spec:
description:
- NodeAffinity describes node affinity scheduling rules
- for typha.
+ Spec is the specification of the csi-node-driver
+ DaemonSet.
properties:
- preferredDuringSchedulingIgnoredDuringExecution:
+ minReadySeconds:
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.
- 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
- required:
- - key
- - operator
- type: object
- type: array
- 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
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- 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
- requiredDuringSchedulingIgnoredDuringExecution:
+ MinReadySeconds is the minimum number of seconds
+ for which a newly created DaemonSet pod should be ready
+ without any of its container crashing, for it to be considered
+ available. If specified, this overrides any minReadySeconds
+ value that may be set on the csi-node-driver DaemonSet.
+ If omitted, the csi-node-driver DaemonSet will use its default
+ value for minReadySeconds.
+ format: int32
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ template:
description:
- "WARNING: Please note that if the affinity requirements
- specified by this field are not met at scheduling time,
- the pod will NOT be scheduled onto the node. There is no
- fallback to another affinity rules with this setting. This
- may cause networking disruption or even catastrophic failure!
- PreferredDuringSchedulingIgnoredDuringExecution should be
- used for affinity unless there is a specific well understood
- reason to use RequiredDuringSchedulingIgnoredDuringExecution
- and you can guarantee that the RequiredDuringSchedulingIgnoredDuringExecution
- will always have sufficient nodes to satisfy the requirement.
- NOTE: RequiredDuringSchedulingIgnoredDuringExecution is
- set by default for AKS nodes, to avoid scheduling Typhas
- on virtual-nodes. 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."
+ Template describes the csi-node-driver DaemonSet
+ pod that will be created.
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
- required:
- - key
- - operator
- type: object
- type: array
- 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
- required:
- - key
- - operator
- type: object
- type: array
- type: object
- type: array
- required:
- - nodeSelectorTerms
- type: object
- type: object
- type: object
- typhaDeployment:
- description:
- TyphaDeployment configures the typha Deployment. If used
- in conjunction with the deprecated ComponentResources or TyphaAffinity,
- then these overrides take precedence.
- properties:
- metadata:
- description:
- Metadata is a subset of a Kubernetes object's metadata
- that is added to the Deployment.
- properties:
- annotations:
- additionalProperties:
- type: string
- description:
- Annotations is a map of arbitrary non-identifying
- metadata. Each of these key/value pairs are added to the
- object's annotations provided the key does not already exist
- in the object's annotations.
- type: object
- labels:
- additionalProperties:
- type: string
- description:
- Labels is a map of string keys and values that
- may match replicaset and service selectors. Each of these
- key/value pairs are added to the object's labels provided
- the key does not already exist in the object's labels.
- type: object
- type: object
- spec:
- description: Spec is the specification of the typha Deployment.
- properties:
- minReadySeconds:
- description:
- MinReadySeconds is the minimum number of seconds
- for which a newly created Deployment pod should be ready
- without any of its container crashing, for it to be considered
- available. If specified, this overrides any minReadySeconds
- value that may be set on the typha Deployment. If omitted,
- the typha Deployment will use its default value for minReadySeconds.
- format: int32
- maximum: 2147483647
- minimum: 0
- type: integer
- template:
- description:
- Template describes the typha Deployment pod that
- will be created.
- properties:
- metadata:
+ metadata:
description:
Metadata is a subset of a Kubernetes object's
metadata that is added to the pod's metadata.
@@ -11262,19 +11002,17 @@ spec:
type: object
type: object
spec:
- description: Spec is the typha Deployment's PodSpec.
+ description: Spec is the csi-node-driver DaemonSet's PodSpec.
properties:
affinity:
description:
"Affinity is a group of affinity scheduling
- rules for the typha pods. If specified, this overrides
- any affinity that may be set on the typha Deployment.
- If omitted, the typha Deployment will use its default
- value for affinity. If used in conjunction with
- the deprecated TyphaAffinity, then this value takes
- precedence. WARNING: Please note that this field
- will override the default calico-typha Deployment
- affinity."
+ rules for the csi-node-driver pods. If specified,
+ this overrides any affinity that may be set on the
+ csi-node-driver DaemonSet. If omitted, the csi-node-driver
+ DaemonSet will use its default value for affinity.
+ WARNING: Please note that this field will override
+ the default csi-node-driver DaemonSet affinity."
properties:
nodeAffinity:
description:
@@ -11410,6 +11148,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -11543,10 +11282,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -11655,6 +11396,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -11667,9 +11409,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -11737,6 +11476,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -11747,7 +11487,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -11873,6 +11613,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -11883,10 +11624,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -11950,6 +11688,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -11959,7 +11698,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -12088,6 +11827,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -12100,9 +11840,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -12170,6 +11907,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -12180,7 +11918,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -12306,6 +12044,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over the
@@ -12316,10 +12055,7 @@ spec:
field. null selector and null or empty
namespaces list means "this pod's
namespace". An empty selector ({})
- matches all namespaces. This field
- is beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ matches all namespaces.
properties:
matchExpressions:
description:
@@ -12383,6 +12119,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies a
@@ -12392,7 +12129,7 @@ spec:
in this field and the ones selected
by namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -12417,96 +12154,33 @@ spec:
type: object
containers:
description:
- Containers is a list of typha containers.
- If specified, this overrides the specified typha
- Deployment containers. If omitted, the typha Deployment
- will use its default values for its containers.
- items:
- description:
- TyphaDeploymentContainer is a typha
- Deployment container.
- properties:
- name:
- description:
- Name is an enum which identifies
- the typha Deployment container by name.
- enum:
- - calico-typha
- type: string
- resources:
- description:
- Resources allows customization
- of limits and requests for compute resources
- such as cpu and memory. If specified, this
- overrides the named typha Deployment container's
- resources. If omitted, the typha Deployment
- will use its default value for this container's
- resources. If used in conjunction with the
- deprecated ComponentResources, then this value
- takes precedence.
- properties:
- limits:
- additionalProperties:
- 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
- description:
- "Limits describes the maximum
- amount of compute resources allowed. More
- info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
- type: object
- requests:
- additionalProperties:
- 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
- description:
- "Requests describes the minimum
- amount of compute resources required.
- If Requests is omitted for a container,
- it defaults to Limits if that is explicitly
- specified, otherwise to an implementation-defined
- value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
- type: object
- type: object
- required:
- - name
- type: object
- type: array
- initContainers:
- description:
- InitContainers is a list of typha init
+ Containers is a list of csi-node-driver
containers. If specified, this overrides the specified
- typha Deployment init containers. If omitted, the
- typha Deployment will use its default values for
- its init containers.
+ csi-node-driver DaemonSet containers. If omitted,
+ the csi-node-driver DaemonSet will use its default
+ values for its containers.
items:
description:
- TyphaDeploymentInitContainer is a typha
- Deployment init container.
+ CSINodeDriverDaemonSetContainer is
+ a csi-node-driver DaemonSet container.
properties:
name:
description:
Name is an enum which identifies
- the typha Deployment init container by name.
+ the csi-node-driver DaemonSet container by
+ name.
enum:
- - typha-certs-key-cert-provisioner
+ - csi-node-driver
type: string
resources:
description:
Resources allows customization
of limits and requests for compute resources
such as cpu and memory. If specified, this
- overrides the named typha Deployment init
- container's resources. If omitted, the typha
- Deployment will use its default value for
- this init container's resources. If used in
- conjunction with the deprecated ComponentResources,
- then this value takes precedence.
+ overrides the named csi-node-driver DaemonSet
+ container's resources. If omitted, the csi-node-driver
+ DaemonSet will use its default value for this
+ container's resources.
properties:
limits:
additionalProperties:
@@ -12544,25 +12218,26 @@ spec:
additionalProperties:
type: string
description:
- "NodeSelector is the calico-typha pod's
- scheduling constraints. If specified, each of the
- key/value pairs are added to the calico-typha Deployment
- nodeSelector provided the key does not already exist
- in the object's nodeSelector. If omitted, the calico-typha
- Deployment will use its default value for nodeSelector.
- WARNING: Please note that this field will modify
- the default calico-typha Deployment nodeSelector."
+ "NodeSelector is the csi-node-driver
+ pod's scheduling constraints. If specified, each
+ of the key/value pairs are added to the csi-node-driver
+ DaemonSet nodeSelector provided the key does not
+ already exist in the object's nodeSelector. If
+ omitted, the csi-node-driver DaemonSet will use
+ its default value for nodeSelector. WARNING: Please
+ note that this field will modify the default csi-node-driver
+ DaemonSet nodeSelector."
type: object
tolerations:
description:
- "Tolerations is the typha pod's tolerations.
- If specified, this overrides any tolerations that
- may be set on the typha Deployment. If omitted,
- the typha Deployment will use its default value
- for tolerations. WARNING: Please note that this
- field will override the default calico-typha Deployment
- tolerations."
- items:
+ "Tolerations is the csi-node-driver pod's
+ tolerations. If specified, this overrides any tolerations
+ that may be set on the csi-node-driver DaemonSet.
+ If omitted, the csi-node-driver DaemonSet will use
+ its default value for tolerations. WARNING: Please
+ note that this field will override the default csi-node-driver
+ DaemonSet tolerations."
+ items:
description:
The pod this Toleration is attached
to tolerates any taint that matches the triple
@@ -12617,135 +12292,3994 @@ spec:
type: object
type: object
type: object
- typhaMetricsPort:
+ fipsMode:
description:
- TyphaMetricsPort specifies which port calico/typha serves
- prometheus metrics on. By default, metrics are not enabled.
- format: int32
- type: integer
- variant:
+ "FIPSMode uses images and features only that are using
+ FIPS 140-2 validated cryptographic modules and standards. Default:
+ Disabled"
+ enum:
+ - Enabled
+ - Disabled
+ type: string
+ flexVolumePath:
description:
- "Variant is the product to install - one of Calico or
- TigeraSecureEnterprise Default: Calico"
+ FlexVolumePath optionally specifies a custom path for
+ FlexVolume. If not specified, FlexVolume will be enabled by default.
+ If set to 'None', FlexVolume will be disabled. The default is based
+ on the kubernetesProvider.
+ type: string
+ imagePath:
+ description:
+ "ImagePath allows for the path part of an image to be
+ specified. If specified then the specified value will be used as
+ the image path for each image. If not specified or empty, the default
+ for each image will be used. A special case value, UseDefault, is
+ supported to explicitly specify the default image path will be used
+ for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
+ \n This option allows configuring the `<imagePath>` portion of the
+ above format."
+ type: string
+ imagePrefix:
+ description:
+ "ImagePrefix allows for the prefix part of an image to
+ be specified. If specified then the given value will be used as
+ a prefix on each image. If not specified or empty, no prefix will
+ be used. A special case value, UseDefault, is supported to explicitly
+ specify the default image prefix will be used for each image. \n
+ Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
+ \n This option allows configuring the `<imagePrefix>` portion of
+ the above format."
+ type: string
+ imagePullSecrets:
+ description:
+ ImagePullSecrets is an array of references to container
+ registry pull secrets to use. These are applied to all images to
+ be pulled.
+ items:
+ description:
+ LocalObjectReference contains enough information to
+ let you locate the referenced object inside the same namespace.
+ properties:
+ name:
+ description:
+ "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?"
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ kubeletVolumePluginPath:
+ description:
+ "KubeletVolumePluginPath optionally specifies enablement
+ of Calico CSI plugin. If not specified, CSI will be enabled by default.
+ If set to 'None', CSI will be disabled. Default: /var/lib/kubelet"
+ type: string
+ kubernetesProvider:
+ description:
+ KubernetesProvider specifies a particular provider of
+ the Kubernetes platform and enables provider-specific configuration.
+ If the specified value is empty, the Operator will attempt to automatically
+ determine the current provider. If the specified value is not empty,
+ the Operator will still attempt auto-detection, but will additionally
+ compare the auto-detected value to the specified value to confirm
+ they match.
enum:
- - Calico
- - TigeraSecureEnterprise
+ - ""
+ - EKS
+ - GKE
+ - AKS
+ - OpenShift
+ - DockerEnterprise
+ - RKE2
type: string
- type: object
- status:
- description:
- Most recently observed state for the Calico or Calico Enterprise
- installation.
- properties:
- computed:
+ logging:
+ description: Logging Configuration for Components
+ properties:
+ cni:
+ description: Customized logging specification for calico-cni plugin
+ properties:
+ logFileMaxAgeDays:
+ description: "Default: 30 (days)"
+ format: int32
+ type: integer
+ logFileMaxCount:
+ description: "Default: 10"
+ format: int32
+ type: integer
+ logFileMaxSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: "Default: 100Mi"
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ logSeverity:
+ description: "Default: Info"
+ enum:
+ - Error
+ - Warning
+ - Debug
+ - Info
+ type: string
+ type: object
+ type: object
+ nodeMetricsPort:
description:
- Computed is the final installation including overlaid
- resources.
+ NodeMetricsPort specifies which port calico/node serves
+ prometheus metrics on. By default, metrics are not enabled. If specified,
+ this overrides any FelixConfiguration resources which may exist.
+ If omitted, then prometheus metrics may still be configured through
+ FelixConfiguration.
+ format: int32
+ type: integer
+ nodeUpdateStrategy:
+ description:
+ NodeUpdateStrategy can be used to customize the desired
+ update strategy, such as the MaxUnavailable field.
properties:
- calicoKubeControllersDeployment:
+ rollingUpdate:
description:
- CalicoKubeControllersDeployment configures the calico-kube-controllers
- Deployment. If used in conjunction with the deprecated ComponentResources,
- then these overrides take precedence.
+ 'Rolling update config params. Present only if type
+ = "RollingUpdate". --- TODO: Update this to follow our convention
+ for oneOf, whatever we decide it to be. Same as Deployment `strategy.rollingUpdate`.
+ See https://github.com/kubernetes/kubernetes/issues/35345'
properties:
- metadata:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
description:
- Metadata is a subset of a Kubernetes object's
- metadata that is added to the Deployment.
- properties:
- annotations:
- additionalProperties:
- type: string
- description:
- Annotations is a map of arbitrary non-identifying
- metadata. Each of these key/value pairs are added to
- the object's annotations provided the key does not already
- exist in the object's annotations.
- type: object
- labels:
- additionalProperties:
- type: string
- description:
- Labels is a map of string keys and values
- that may match replicaset and service selectors. Each
- of these key/value pairs are added to the object's labels
- provided the key does not already exist in the object's
- labels.
- type: object
- type: object
- spec:
+ "The maximum number of nodes with an existing
+ available DaemonSet pod that can have an updated DaemonSet
+ pod during during an update. Value can be an absolute number
+ (ex: 5) or a percentage of desired pods (ex: 10%). This
+ can not be 0 if MaxUnavailable is 0. Absolute number is
+ calculated from percentage by rounding up to a minimum of
+ 1. Default value is 0. Example: when this is set to 30%,
+ at most 30% of the total number of nodes that should be
+ running the daemon pod (i.e. status.desiredNumberScheduled)
+ can have their a new pod created before the old pod is marked
+ as deleted. The update starts by launching new pods on 30%
+ of nodes. Once an updated pod is available (Ready for at
+ least minReadySeconds) the old DaemonSet pod on that node
+ is marked deleted. If the old pod becomes unavailable for
+ any reason (Ready transitions to false, is evicted, or is
+ drained) an updated pod is immediatedly created on that
+ node without considering surge limits. Allowing surge implies
+ the possibility that the resources consumed by the daemonset
+ on any given node can double if the readiness check fails,
+ and so resource intensive daemonsets should take into account
+ that they may cause evictions during disruption."
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
description:
- Spec is the specification of the calico-kube-controllers
- Deployment.
- properties:
- minReadySeconds:
- description:
- MinReadySeconds is the minimum number of
- seconds for which a newly created Deployment pod should
- be ready without any of its container crashing, for
- it to be considered available. If specified, this overrides
- any minReadySeconds value that may be set on the calico-kube-controllers
- Deployment. If omitted, the calico-kube-controllers
- Deployment will use its default value for minReadySeconds.
- format: int32
- maximum: 2147483647
- minimum: 0
- type: integer
- template:
- description:
- Template describes the calico-kube-controllers
- Deployment pod that will be created.
- properties:
- metadata:
- description:
- Metadata is a subset of a Kubernetes
- object's metadata that is added to the pod's metadata.
- properties:
- annotations:
- additionalProperties:
- type: string
- description:
- Annotations is a map of arbitrary
- non-identifying metadata. Each of these key/value
- pairs are added to the object's annotations
- provided the key does not already exist in the
- object's annotations.
- type: object
- labels:
- additionalProperties:
- type: string
- description:
- Labels is a map of string keys and
- values that may match replicaset and service
- selectors. Each of these key/value pairs are
- added to the object's labels provided the key
- does not already exist in the object's labels.
- type: object
- type: object
- spec:
- description:
- Spec is the calico-kube-controllers Deployment's
- PodSpec.
- properties:
- affinity:
- description:
- "Affinity is a group of affinity
- scheduling rules for the calico-kube-controllers
- pods. If specified, this overrides any affinity
- that may be set on the calico-kube-controllers
- Deployment. If omitted, the calico-kube-controllers
- Deployment will use its default value for affinity.
- WARNING: Please note that this field will override
- the default calico-kube-controllers Deployment
- affinity."
- properties:
- nodeAffinity:
- description:
- Describes node affinity scheduling
- rules for the pod.
- properties:
- ? preferredDuringSchedulingIgnoredDuringExecution
- : description:
+ "The maximum number of DaemonSet pods that can
+ be unavailable during the update. Value can be an absolute
+ number (ex: 5) or a percentage of total number of DaemonSet
+ pods at the start of the update (ex: 10%). Absolute number
+ is calculated from percentage by rounding up. This cannot
+ be 0 if MaxSurge is 0 Default value is 1. Example: when
+ this is set to 30%, at most 30% of the total number of nodes
+ that should be running the daemon pod (i.e. status.desiredNumberScheduled)
+ can have their pods stopped for an update at any given time.
+ The update starts by stopping at most 30% of those DaemonSet
+ pods and then brings up new DaemonSet pods in their place.
+ Once the new pods are available, it then proceeds onto other
+ DaemonSet pods, thus ensuring that at least 70% of original
+ number of DaemonSet pods are available at all times during
+ the update."
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ description:
+ Type of daemon set update. Can be "RollingUpdate"
+ or "OnDelete". Default is RollingUpdate.
+ type: string
+ type: object
+ nonPrivileged:
+ description:
+ NonPrivileged configures Calico to be run in non-privileged
+ containers as non-root users where possible.
+ type: string
+ registry:
+ description:
+ "Registry is the default Docker registry used for component
+ Docker images. If specified then the given value must end with a
+ slash character (`/`) and all images will be pulled from this registry.
+ If not specified then the default registries will be used. A special
+ case value, UseDefault, is supported to explicitly specify the default
+ registries will be used. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
+ \n This option allows configuring the `<registry>` portion of the
+ above format."
+ type: string
+ typhaAffinity:
+ description:
+ Deprecated. Please use Installation.Spec.TyphaDeployment
+ instead. TyphaAffinity allows configuration of node affinity characteristics
+ for Typha pods.
+ properties:
+ nodeAffinity:
+ description:
+ NodeAffinity describes node affinity scheduling rules
+ for typha.
+ 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ requiredDuringSchedulingIgnoredDuringExecution:
+ description:
+ "WARNING: Please note that if the affinity requirements
+ specified by this field are not met at scheduling time,
+ the pod will NOT be scheduled onto the node. There is no
+ fallback to another affinity rules with this setting. This
+ may cause networking disruption or even catastrophic failure!
+ PreferredDuringSchedulingIgnoredDuringExecution should be
+ used for affinity unless there is a specific well understood
+ reason to use RequiredDuringSchedulingIgnoredDuringExecution
+ and you can guarantee that the RequiredDuringSchedulingIgnoredDuringExecution
+ will always have sufficient nodes to satisfy the requirement.
+ NOTE: RequiredDuringSchedulingIgnoredDuringExecution is
+ set by default for AKS nodes, to avoid scheduling Typhas
+ on virtual-nodes. 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: object
+ typhaDeployment:
+ description:
+ TyphaDeployment configures the typha Deployment. If used
+ in conjunction with the deprecated ComponentResources or TyphaAffinity,
+ then these overrides take precedence.
+ properties:
+ metadata:
+ description:
+ Metadata is a subset of a Kubernetes object's metadata
+ that is added to the Deployment.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description:
+ Annotations is a map of arbitrary non-identifying
+ metadata. Each of these key/value pairs are added to the
+ object's annotations provided the key does not already exist
+ in the object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description:
+ Labels is a map of string keys and values that
+ may match replicaset and service selectors. Each of these
+ key/value pairs are added to the object's labels provided
+ the key does not already exist in the object's labels.
+ type: object
+ type: object
+ spec:
+ description: Spec is the specification of the typha Deployment.
+ properties:
+ minReadySeconds:
+ description:
+ MinReadySeconds is the minimum number of seconds
+ for which a newly created Deployment pod should be ready
+ without any of its container crashing, for it to be considered
+ available. If specified, this overrides any minReadySeconds
+ value that may be set on the typha Deployment. If omitted,
+ the typha Deployment will use its default value for minReadySeconds.
+ format: int32
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ strategy:
+ description:
+ The deployment strategy to use to replace existing
+ pods with new ones.
+ properties:
+ rollingUpdate:
+ description:
+ Rolling update config params. Present only
+ if DeploymentStrategyType = RollingUpdate. to be.
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ description:
+ "The maximum number of pods that can
+ be scheduled above the desired number of pods. Value
+ can be an absolute number (ex: 5) or a percentage
+ of desired pods (ex: 10%). This can not be 0 if
+ MaxUnavailable is 0. Absolute number is calculated
+ from percentage by rounding up. Defaults to 25%.
+ Example: when this is set to 30%, the new ReplicaSet
+ can be scaled up immediately when the rolling update
+ starts, such that the total number of old and new
+ pods do not exceed 130% of desired pods. Once old
+ pods have been killed, new ReplicaSet can be scaled
+ up further, ensuring that total number of pods running
+ at any time during the update is at most 130% of
+ desired pods."
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ description:
+ "The maximum number of pods that can
+ be unavailable during the update. Value can be an
+ absolute number (ex: 5) or a percentage of desired
+ pods (ex: 10%). Absolute number is calculated from
+ percentage by rounding down. This can not be 0 if
+ MaxSurge is 0. Defaults to 25%. Example: when this
+ is set to 30%, the old ReplicaSet can be scaled
+ down to 70% of desired pods immediately when the
+ rolling update starts. Once new pods are ready,
+ old ReplicaSet can be scaled down further, followed
+ by scaling up the new ReplicaSet, ensuring that
+ the total number of pods available at all times
+ during the update is at least 70% of desired pods."
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ template:
+ description:
+ Template describes the typha Deployment pod that
+ will be created.
+ properties:
+ metadata:
+ description:
+ Metadata is a subset of a Kubernetes object's
+ metadata that is added to the pod's metadata.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description:
+ Annotations is a map of arbitrary non-identifying
+ metadata. Each of these key/value pairs are added
+ to the object's annotations provided the key does
+ not already exist in the object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description:
+ Labels is a map of string keys and values
+ that may match replicaset and service selectors.
+ Each of these key/value pairs are added to the object's
+ labels provided the key does not already exist in
+ the object's labels.
+ type: object
+ type: object
+ spec:
+ description: Spec is the typha Deployment's PodSpec.
+ properties:
+ affinity:
+ description:
+ "Affinity is a group of affinity scheduling
+ rules for the typha pods. If specified, this overrides
+ any affinity that may be set on the typha Deployment.
+ If omitted, the typha Deployment will use its default
+ value for affinity. If used in conjunction with
+ the deprecated TyphaAffinity, then this value takes
+ precedence. WARNING: Please note that this field
+ will override the default calico-typha Deployment
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ ? 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ ? 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ ? 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ type: object
+ type: object
+ containers:
+ description:
+ Containers is a list of typha containers.
+ If specified, this overrides the specified typha
+ Deployment containers. If omitted, the typha Deployment
+ will use its default values for its containers.
+ items:
+ description:
+ TyphaDeploymentContainer is a typha
+ Deployment container.
+ properties:
+ name:
+ description:
+ Name is an enum which identifies
+ the typha Deployment container by name.
+ enum:
+ - calico-typha
+ type: string
+ resources:
+ description:
+ Resources allows customization
+ of limits and requests for compute resources
+ such as cpu and memory. If specified, this
+ overrides the named typha Deployment container's
+ resources. If omitted, the typha Deployment
+ will use its default value for this container's
+ resources. If used in conjunction with the
+ deprecated ComponentResources, then this value
+ takes precedence.
+ properties:
+ limits:
+ additionalProperties:
+ 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
+ description:
+ "Limits describes the maximum
+ amount of compute resources allowed. More
+ info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ requests:
+ additionalProperties:
+ 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
+ description:
+ "Requests describes the minimum
+ amount of compute resources required.
+ If Requests is omitted for a container,
+ it defaults to Limits if that is explicitly
+ specified, otherwise to an implementation-defined
+ value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ initContainers:
+ description:
+ InitContainers is a list of typha init
+ containers. If specified, this overrides the specified
+ typha Deployment init containers. If omitted, the
+ typha Deployment will use its default values for
+ its init containers.
+ items:
+ description:
+ TyphaDeploymentInitContainer is a typha
+ Deployment init container.
+ properties:
+ name:
+ description:
+ Name is an enum which identifies
+ the typha Deployment init container by name.
+ enum:
+ - typha-certs-key-cert-provisioner
+ type: string
+ resources:
+ description:
+ Resources allows customization
+ of limits and requests for compute resources
+ such as cpu and memory. If specified, this
+ overrides the named typha Deployment init
+ container's resources. If omitted, the typha
+ Deployment will use its default value for
+ this init container's resources. If used in
+ conjunction with the deprecated ComponentResources,
+ then this value takes precedence.
+ properties:
+ limits:
+ additionalProperties:
+ 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
+ description:
+ "Limits describes the maximum
+ amount of compute resources allowed. More
+ info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ requests:
+ additionalProperties:
+ 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
+ description:
+ "Requests describes the minimum
+ amount of compute resources required.
+ If Requests is omitted for a container,
+ it defaults to Limits if that is explicitly
+ specified, otherwise to an implementation-defined
+ value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description:
+ "NodeSelector is the calico-typha pod's
+ scheduling constraints. If specified, each of the
+ key/value pairs are added to the calico-typha Deployment
+ nodeSelector provided the key does not already exist
+ in the object's nodeSelector. If omitted, the calico-typha
+ Deployment will use its default value for nodeSelector.
+ WARNING: Please note that this field will modify
+ the default calico-typha Deployment nodeSelector."
+ type: object
+ terminationGracePeriodSeconds:
+ description:
+ Optional duration in seconds the pod
+ needs to terminate gracefully. May be decreased
+ in delete request. Value must be non-negative integer.
+ The value zero indicates stop immediately via the
+ kill signal (no opportunity to shut down). If this
+ value is nil, the default grace period will be used
+ instead. The grace period is the duration in seconds
+ after the processes running in the pod are sent
+ a termination signal and the time when the processes
+ are forcibly halted with a kill signal. Set this
+ value longer than the expected cleanup time for
+ your process. Defaults to 30 seconds.
+ format: int64
+ type: integer
+ tolerations:
+ description:
+ "Tolerations is the typha pod's tolerations.
+ If specified, this overrides any tolerations that
+ may be set on the typha Deployment. If omitted,
+ the typha Deployment will use its default value
+ for tolerations. WARNING: Please note that this
+ field will override the default calico-typha Deployment
+ tolerations."
+ 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
+ topologySpreadConstraints:
+ description:
+ TopologySpreadConstraints describes how
+ a group of pods ought to spread across topology
+ domains. Scheduler will schedule pods in a way which
+ abides by the constraints. All topologySpreadConstraints
+ are ANDed.
+ items:
+ description:
+ TopologySpreadConstraint specifies
+ how to spread matching pods among the given topology.
+ properties:
+ labelSelector:
+ description:
+ LabelSelector is used to find matching
+ pods. Pods that match this label selector
+ are counted to determine the number of pods
+ in their corresponding topology domain.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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 the pods over which spreading
+ will be calculated. The keys are used to lookup
+ values from the incoming pod labels, those
+ key-value labels are ANDed with labelSelector
+ to select the group of existing pods over
+ which spreading will be calculated for the
+ incoming pod. Keys that don't exist in the
+ incoming pod labels will be ignored. A null
+ or empty list means only match against labelSelector.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ description:
+ "MaxSkew describes the degree to
+ which pods may be unevenly distributed. When
+ `whenUnsatisfiable=DoNotSchedule`, it is the
+ maximum permitted difference between the number
+ of matching pods in the target topology and
+ the global minimum. The global minimum is
+ the minimum number of matching pods in an
+ eligible domain or zero if the number of eligible
+ domains is less than MinDomains. For example,
+ in a 3-zone cluster, MaxSkew is set to 1,
+ and pods with the same labelSelector spread
+ as 2/2/1: In this case, the global minimum
+ is 1. | zone1 | zone2 | zone3 | | P P | P
+ P | P | - if MaxSkew is 1, incoming pod
+ can only be scheduled to zone3 to become 2/2/2;
+ scheduling it onto zone1(zone2) would make
+ the ActualSkew(3-1) on zone1(zone2) violate
+ MaxSkew(1). - if MaxSkew is 2, incoming pod
+ can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
+ it is used to give higher precedence to topologies
+ that satisfy it. It's a required field. Default
+ value is 1 and 0 is not allowed."
+ format: int32
+ type: integer
+ minDomains:
+ description:
+ "MinDomains indicates a minimum
+ number of eligible domains. When the number
+ of eligible domains with matching topology
+ keys is less than minDomains, Pod Topology
+ Spread treats \"global minimum\" as 0, and
+ then the calculation of Skew is performed.
+ And when the number of eligible domains with
+ matching topology keys equals or greater than
+ minDomains, this value has no effect on scheduling.
+ As a result, when the number of eligible domains
+ is less than minDomains, scheduler won't schedule
+ more than maxSkew Pods to those domains. If
+ value is nil, the constraint behaves as if
+ MinDomains is equal to 1. Valid values are
+ integers greater than 0. When value is not
+ nil, WhenUnsatisfiable must be DoNotSchedule.
+ \n For example, in a 3-zone cluster, MaxSkew
+ is set to 2, MinDomains is set to 5 and pods
+ with the same labelSelector spread as 2/2/2:
+ | zone1 | zone2 | zone3 | | P P | P P |
+ \ P P | The number of domains is less than
+ 5(MinDomains), so \"global minimum\" is treated
+ as 0. In this situation, new pod with the
+ same labelSelector cannot be scheduled, because
+ computed skew will be 3(3 - 0) if new Pod
+ is scheduled to any of the three zones, it
+ will violate MaxSkew. \n This is a beta field
+ and requires the MinDomainsInPodTopologySpread
+ feature gate to be enabled (enabled by default)."
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ description:
+ "NodeAffinityPolicy indicates how
+ we will treat Pod's nodeAffinity/nodeSelector
+ when calculating pod topology spread skew.
+ Options are: - Honor: only nodes matching
+ nodeAffinity/nodeSelector are included in
+ the calculations. - Ignore: nodeAffinity/nodeSelector
+ are ignored. All nodes are included in the
+ calculations. \n If this value is nil, the
+ behavior is equivalent to the Honor policy.
+ This is a alpha-level feature enabled by the
+ NodeInclusionPolicyInPodTopologySpread feature
+ flag."
+ type: string
+ nodeTaintsPolicy:
+ description:
+ "NodeTaintsPolicy indicates how
+ we will treat node taints when calculating
+ pod topology spread skew. Options are: - Honor:
+ nodes without taints, along with tainted nodes
+ for which the incoming pod has a toleration,
+ are included. - Ignore: node taints are ignored.
+ All nodes are included. \n If this value is
+ nil, the behavior is equivalent to the Ignore
+ policy. This is a alpha-level feature enabled
+ by the NodeInclusionPolicyInPodTopologySpread
+ feature flag."
+ type: string
+ topologyKey:
+ description:
+ TopologyKey is the key of node
+ labels. Nodes that have a label with this
+ key and identical values are considered to
+ be in the same topology. We consider each
+ <key, value> as a "bucket", and try to put
+ balanced number of pods into each bucket.
+ We define a domain as a particular instance
+ of a topology. Also, we define an eligible
+ domain as a domain whose nodes meet the requirements
+ of nodeAffinityPolicy and nodeTaintsPolicy.
+ e.g. If TopologyKey is "kubernetes.io/hostname",
+ each Node is a domain of that topology. And,
+ if TopologyKey is "topology.kubernetes.io/zone",
+ each zone is a domain of that topology. It's
+ a required field.
+ type: string
+ whenUnsatisfiable:
+ description:
+ 'WhenUnsatisfiable indicates how
+ to deal with a pod if it doesn''t satisfy
+ the spread constraint. - DoNotSchedule (default)
+ tells the scheduler not to schedule it. -
+ ScheduleAnyway tells the scheduler to schedule
+ the pod in any location, but giving higher
+ precedence to topologies that would help reduce
+ the skew. A constraint is considered "Unsatisfiable"
+ for an incoming pod if and only if every possible
+ node assignment for that pod would violate
+ "MaxSkew" on some topology. For example, in
+ a 3-zone cluster, MaxSkew is set to 1, and
+ pods with the same labelSelector spread as
+ 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P |
+ If WhenUnsatisfiable is set to DoNotSchedule,
+ incoming pod can only be scheduled to zone2(zone3)
+ to become 3/2/1(3/1/2) as ActualSkew(2-1)
+ on zone2(zone3) satisfies MaxSkew(1). In other
+ words, the cluster can still be imbalanced,
+ but scheduler won''t make it *more* imbalanced.
+ It''s a required field.'
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ typhaMetricsPort:
+ description:
+ TyphaMetricsPort specifies which port calico/typha serves
+ prometheus metrics on. By default, metrics are not enabled.
+ format: int32
+ type: integer
+ variant:
+ description:
+ "Variant is the product to install - one of Calico or
+ TigeraSecureEnterprise Default: Calico"
+ enum:
+ - Calico
+ - TigeraSecureEnterprise
+ type: string
+ type: object
+ status:
+ description:
+ Most recently observed state for the Calico or Calico Enterprise
+ installation.
+ properties:
+ calicoVersion:
+ description:
+ CalicoVersion shows the current running version of calico.
+ CalicoVersion along with Variant is needed to know the exact version
+ deployed.
+ type: string
+ computed:
+ description:
+ Computed is the final installation including overlaid
+ resources.
+ properties:
+ calicoKubeControllersDeployment:
+ description:
+ CalicoKubeControllersDeployment configures the calico-kube-controllers
+ Deployment. If used in conjunction with the deprecated ComponentResources,
+ then these overrides take precedence.
+ properties:
+ metadata:
+ description:
+ Metadata is a subset of a Kubernetes object's
+ metadata that is added to the Deployment.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description:
+ Annotations is a map of arbitrary non-identifying
+ metadata. Each of these key/value pairs are added to
+ the object's annotations provided the key does not already
+ exist in the object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description:
+ Labels is a map of string keys and values
+ that may match replicaset and service selectors. Each
+ of these key/value pairs are added to the object's labels
+ provided the key does not already exist in the object's
+ labels.
+ type: object
+ type: object
+ spec:
+ description:
+ Spec is the specification of the calico-kube-controllers
+ Deployment.
+ properties:
+ minReadySeconds:
+ description:
+ MinReadySeconds is the minimum number of
+ seconds for which a newly created Deployment pod should
+ be ready without any of its container crashing, for
+ it to be considered available. If specified, this overrides
+ any minReadySeconds value that may be set on the calico-kube-controllers
+ Deployment. If omitted, the calico-kube-controllers
+ Deployment will use its default value for minReadySeconds.
+ format: int32
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ template:
+ description:
+ Template describes the calico-kube-controllers
+ Deployment pod that will be created.
+ properties:
+ metadata:
+ description:
+ Metadata is a subset of a Kubernetes
+ object's metadata that is added to the pod's metadata.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description:
+ Annotations is a map of arbitrary
+ non-identifying metadata. Each of these key/value
+ pairs are added to the object's annotations
+ provided the key does not already exist in the
+ object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description:
+ Labels is a map of string keys and
+ values that may match replicaset and service
+ selectors. Each of these key/value pairs are
+ added to the object's labels provided the key
+ does not already exist in the object's labels.
+ type: object
+ type: object
+ spec:
+ description:
+ Spec is the calico-kube-controllers Deployment's
+ PodSpec.
+ properties:
+ affinity:
+ description:
+ "Affinity is a group of affinity
+ scheduling rules for the calico-kube-controllers
+ pods. If specified, this overrides any affinity
+ that may be set on the calico-kube-controllers
+ Deployment. If omitted, the calico-kube-controllers
+ Deployment will use its default value for affinity.
+ WARNING: Please note that this field will override
+ the default calico-kube-controllers Deployment
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ ? 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ ? 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ ? 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.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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
+ 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
+ type: object
+ type: object
+ containers:
+ description:
+ Containers is a list of calico-kube-controllers
+ containers. If specified, this overrides the
+ specified calico-kube-controllers Deployment
+ containers. If omitted, the calico-kube-controllers
+ Deployment will use its default values for its
+ containers.
+ items:
+ description:
+ CalicoKubeControllersDeploymentContainer
+ is a calico-kube-controllers Deployment container.
+ properties:
+ name:
+ description:
+ Name is an enum which identifies
+ the calico-kube-controllers Deployment
+ container by name.
+ enum:
+ - calico-kube-controllers
+ type: string
+ resources:
+ description:
+ Resources allows customization
+ of limits and requests for compute resources
+ such as cpu and memory. If specified,
+ this overrides the named calico-kube-controllers
+ Deployment container's resources. If omitted,
+ the calico-kube-controllers Deployment
+ will use its default value for this container's
+ resources. If used in conjunction with
+ the deprecated ComponentResources, then
+ this value takes precedence.
+ properties:
+ limits:
+ additionalProperties:
+ 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
+ description:
+ "Limits describes the maximum
+ amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ requests:
+ additionalProperties:
+ 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
+ description:
+ "Requests describes the
+ minimum amount of compute resources
+ required. If Requests is omitted for
+ a container, it defaults to Limits
+ if that is explicitly specified, otherwise
+ to an implementation-defined value.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description:
+ "NodeSelector is the calico-kube-controllers
+ pod's scheduling constraints. If specified,
+ each of the key/value pairs are added to the
+ calico-kube-controllers Deployment nodeSelector
+ provided the key does not already exist in the
+ object's nodeSelector. If used in conjunction
+ with ControlPlaneNodeSelector, that nodeSelector
+ is set on the calico-kube-controllers Deployment
+ and each of this field's key/value pairs are
+ added to the calico-kube-controllers Deployment
+ nodeSelector provided the key does not already
+ exist in the object's nodeSelector. If omitted,
+ the calico-kube-controllers Deployment will
+ use its default value for nodeSelector. WARNING:
+ Please note that this field will modify the
+ default calico-kube-controllers Deployment nodeSelector."
+ type: object
+ tolerations:
+ description:
+ "Tolerations is the calico-kube-controllers
+ pod's tolerations. If specified, this overrides
+ any tolerations that may be set on the calico-kube-controllers
+ Deployment. If omitted, the calico-kube-controllers
+ Deployment will use its default value for tolerations.
+ WARNING: Please note that this field will override
+ the default calico-kube-controllers Deployment
+ tolerations."
+ 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
+ type: object
+ type: object
+ type: object
+ type: object
+ calicoNetwork:
+ description:
+ CalicoNetwork specifies networking configuration
+ options for Calico.
+ properties:
+ bgp:
+ description:
+ BGP configures whether or not to enable Calico's
+ BGP capabilities.
+ enum:
+ - Enabled
+ - Disabled
+ type: string
+ containerIPForwarding:
+ description:
+ "ContainerIPForwarding configures whether ip
+ forwarding will be enabled for containers in the CNI configuration.
+ Default: Disabled"
+ enum:
+ - Enabled
+ - Disabled
+ type: string
+ hostPorts:
+ description:
+ "HostPorts configures whether or not Calico will
+ support Kubernetes HostPorts. Valid only when using the
+ Calico CNI plugin. Default: Enabled"
+ enum:
+ - Enabled
+ - Disabled
+ type: string
+ ipPools:
+ description:
+ IPPools contains a list of IP pools to create
+ if none exist. At most one IP pool of each address family
+ may be specified. If omitted, a single pool will be configured
+ if needed.
+ items:
+ properties:
+ blockSize:
+ description:
+ "BlockSize specifies the CIDR prefex length
+ to use when allocating per-node IP blocks from the
+ main IP pool CIDR. Default: 26 (IPv4), 122 (IPv6)"
+ format: int32
+ type: integer
+ cidr:
+ description:
+ CIDR contains the address range for the
+ IP Pool in classless inter-domain routing format.
+ type: string
+ disableBGPExport:
+ default: false
+ description:
+ "DisableBGPExport specifies whether routes
+ from this IP pool's CIDR are exported over BGP. Default:
+ false"
+ type: boolean
+ encapsulation:
+ description:
+ "Encapsulation specifies the encapsulation
+ type that will be used with the IP Pool. Default:
+ IPIP"
+ enum:
+ - IPIPCrossSubnet
+ - IPIP
+ - VXLAN
+ - VXLANCrossSubnet
+ - None
+ type: string
+ natOutgoing:
+ description:
+ "NATOutgoing specifies if NAT will be enabled
+ or disabled for outgoing traffic. Default: Enabled"
+ enum:
+ - Enabled
+ - Disabled
+ type: string
+ nodeSelector:
+ description:
+ "NodeSelector specifies the node selector
+ that will be set for the IP Pool. Default: 'all()'"
+ type: string
+ required:
+ - cidr
+ type: object
+ type: array
+ linuxDataplane:
+ description:
+ "LinuxDataplane is used to select the dataplane
+ used for Linux nodes. In particular, it causes the operator
+ to add required mounts and environment variables for the
+ particular dataplane. If not specified, iptables mode is
+ used. Default: Iptables"
+ enum:
+ - Iptables
+ - BPF
+ - VPP
+ type: string
+ mtu:
+ description:
+ MTU specifies the maximum transmission unit to
+ use on the pod network. If not specified, Calico will perform
+ MTU auto-detection based on the cluster network.
+ format: int32
+ type: integer
+ multiInterfaceMode:
+ description:
+ "MultiInterfaceMode configures what will configure
+ multiple interface per pod. Only valid for Calico Enterprise
+ installations using the Calico CNI plugin. Default: None"
+ enum:
+ - None
+ - Multus
+ type: string
+ nodeAddressAutodetectionV4:
+ description:
+ NodeAddressAutodetectionV4 specifies an approach
+ to automatically detect node IPv4 addresses. If not specified,
+ will use default auto-detection settings to acquire an IPv4
+ address for each node.
+ properties:
+ canReach:
+ description:
+ CanReach enables IP auto-detection based
+ on which source address on the node is used to reach
+ the specified IP or domain.
+ type: string
+ cidrs:
+ description:
+ CIDRS enables IP auto-detection based on
+ which addresses on the nodes are within one of the provided
+ CIDRs.
+ items:
+ type: string
+ type: array
+ firstFound:
+ description:
+ FirstFound uses default interface matching
+ parameters to select an interface, performing best-effort
+ filtering based on well-known interface names.
+ type: boolean
+ interface:
+ description:
+ Interface enables IP auto-detection based
+ on interfaces that match the given regex.
+ type: string
+ kubernetes:
+ description:
+ Kubernetes configures Calico to detect node
+ addresses based on the Kubernetes API.
+ enum:
+ - NodeInternalIP
+ type: string
+ skipInterface:
+ description:
+ SkipInterface enables IP auto-detection based
+ on interfaces that do not match the given regex.
+ type: string
+ type: object
+ nodeAddressAutodetectionV6:
+ description:
+ NodeAddressAutodetectionV6 specifies an approach
+ to automatically detect node IPv6 addresses. If not specified,
+ IPv6 addresses will not be auto-detected.
+ properties:
+ canReach:
+ description:
+ CanReach enables IP auto-detection based
+ on which source address on the node is used to reach
+ the specified IP or domain.
+ type: string
+ cidrs:
+ description:
+ CIDRS enables IP auto-detection based on
+ which addresses on the nodes are within one of the provided
+ CIDRs.
+ items:
+ type: string
+ type: array
+ firstFound:
+ description:
+ FirstFound uses default interface matching
+ parameters to select an interface, performing best-effort
+ filtering based on well-known interface names.
+ type: boolean
+ interface:
+ description:
+ Interface enables IP auto-detection based
+ on interfaces that match the given regex.
+ type: string
+ kubernetes:
+ description:
+ Kubernetes configures Calico to detect node
+ addresses based on the Kubernetes API.
+ enum:
+ - NodeInternalIP
+ type: string
+ skipInterface:
+ description:
+ SkipInterface enables IP auto-detection based
+ on interfaces that do not match the given regex.
+ type: string
+ type: object
+ type: object
+ calicoNodeDaemonSet:
+ description:
+ CalicoNodeDaemonSet configures the calico-node DaemonSet.
+ If used in conjunction with the deprecated ComponentResources,
+ then these overrides take precedence.
+ properties:
+ metadata:
+ description:
+ Metadata is a subset of a Kubernetes object's
+ metadata that is added to the DaemonSet.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description:
+ Annotations is a map of arbitrary non-identifying
+ metadata. Each of these key/value pairs are added to
+ the object's annotations provided the key does not already
+ exist in the object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description:
+ Labels is a map of string keys and values
+ that may match replicaset and service selectors. Each
+ of these key/value pairs are added to the object's labels
+ provided the key does not already exist in the object's
+ labels.
+ type: object
+ type: object
+ spec:
+ description:
+ Spec is the specification of the calico-node
+ DaemonSet.
+ properties:
+ minReadySeconds:
+ description:
+ MinReadySeconds is the minimum number of
+ seconds for which a newly created DaemonSet pod should
+ be ready without any of its container crashing, for
+ it to be considered available. If specified, this overrides
+ any minReadySeconds value that may be set on the calico-node
+ DaemonSet. If omitted, the calico-node DaemonSet will
+ use its default value for minReadySeconds.
+ format: int32
+ maximum: 2147483647
+ minimum: 0
+ type: integer
+ template:
+ description:
+ Template describes the calico-node DaemonSet
+ pod that will be created.
+ properties:
+ metadata:
+ description:
+ Metadata is a subset of a Kubernetes
+ object's metadata that is added to the pod's metadata.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description:
+ Annotations is a map of arbitrary
+ non-identifying metadata. Each of these key/value
+ pairs are added to the object's annotations
+ provided the key does not already exist in the
+ object's annotations.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description:
+ Labels is a map of string keys and
+ values that may match replicaset and service
+ selectors. Each of these key/value pairs are
+ added to the object's labels provided the key
+ does not already exist in the object's labels.
+ type: object
+ type: object
+ spec:
+ description: Spec is the calico-node DaemonSet's PodSpec.
+ properties:
+ affinity:
+ description:
+ "Affinity is a group of affinity
+ scheduling rules for the calico-node pods. If
+ specified, this overrides any affinity that
+ may be set on the calico-node DaemonSet. If
+ omitted, the calico-node DaemonSet will use
+ its default value for affinity. WARNING: Please
+ note that this field will override the default
+ calico-node DaemonSet 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
@@ -12885,6 +16419,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -13030,10 +16565,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -13150,6 +16687,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -13163,10 +16701,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -13240,6 +16775,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -13251,7 +16787,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -13386,6 +16922,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -13398,9 +16935,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -13468,6 +17002,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -13478,7 +17013,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -13616,6 +17151,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -13629,10 +17165,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -13706,6 +17239,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -13717,7 +17251,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -13852,6 +17386,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -13864,9 +17399,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -13934,6 +17466,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -13944,7 +17477,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -13970,37 +17503,36 @@ spec:
type: object
containers:
description:
- Containers is a list of calico-kube-controllers
+ Containers is a list of calico-node
containers. If specified, this overrides the
- specified calico-kube-controllers Deployment
- containers. If omitted, the calico-kube-controllers
- Deployment will use its default values for its
- containers.
+ specified calico-node DaemonSet containers.
+ If omitted, the calico-node DaemonSet will use
+ its default values for its containers.
items:
description:
- CalicoKubeControllersDeploymentContainer
- is a calico-kube-controllers Deployment container.
+ CalicoNodeDaemonSetContainer is
+ a calico-node DaemonSet container.
properties:
name:
description:
Name is an enum which identifies
- the calico-kube-controllers Deployment
- container by name.
+ the calico-node DaemonSet container by
+ name.
enum:
- - calico-kube-controllers
+ - calico-node
type: string
resources:
description:
Resources allows customization
of limits and requests for compute resources
such as cpu and memory. If specified,
- this overrides the named calico-kube-controllers
- Deployment container's resources. If omitted,
- the calico-kube-controllers Deployment
- will use its default value for this container's
- resources. If used in conjunction with
- the deprecated ComponentResources, then
- this value takes precedence.
+ this overrides the named calico-node DaemonSet
+ container's resources. If omitted, the
+ calico-node DaemonSet will use its default
+ value for this container's resources.
+ If used in conjunction with the deprecated
+ ComponentResources, then this value takes
+ precedence.
properties:
limits:
additionalProperties:
@@ -14035,309 +17567,166 @@ spec:
- name
type: object
type: array
- nodeSelector:
- additionalProperties:
- type: string
- description:
- "NodeSelector is the calico-kube-controllers
- pod's scheduling constraints. If specified,
- each of the key/value pairs are added to the
- calico-kube-controllers Deployment nodeSelector
- provided the key does not already exist in the
- object's nodeSelector. If used in conjunction
- with ControlPlaneNodeSelector, that nodeSelector
- is set on the calico-kube-controllers Deployment
- and each of this field's key/value pairs are
- added to the calico-kube-controllers Deployment
- nodeSelector provided the key does not already
- exist in the object's nodeSelector. If omitted,
- the calico-kube-controllers Deployment will
- use its default value for nodeSelector. WARNING:
- Please note that this field will modify the
- default calico-kube-controllers Deployment nodeSelector."
- type: object
- tolerations:
- description:
- "Tolerations is the calico-kube-controllers
- pod's tolerations. If specified, this overrides
- any tolerations that may be set on the calico-kube-controllers
- Deployment. If omitted, the calico-kube-controllers
- Deployment will use its default value for tolerations.
- WARNING: Please note that this field will override
- the default calico-kube-controllers Deployment
- tolerations."
- 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
- type: object
- type: object
- type: object
- type: object
- calicoNetwork:
- description:
- CalicoNetwork specifies networking configuration
- options for Calico.
- properties:
- bgp:
- description:
- BGP configures whether or not to enable Calico's
- BGP capabilities.
- enum:
- - Enabled
- - Disabled
- type: string
- containerIPForwarding:
- description:
- "ContainerIPForwarding configures whether ip
- forwarding will be enabled for containers in the CNI configuration.
- Default: Disabled"
- enum:
- - Enabled
- - Disabled
- type: string
- hostPorts:
- description:
- "HostPorts configures whether or not Calico will
- support Kubernetes HostPorts. Valid only when using the
- Calico CNI plugin. Default: Enabled"
- enum:
- - Enabled
- - Disabled
- type: string
- ipPools:
- description:
- IPPools contains a list of IP pools to create
- if none exist. At most one IP pool of each address family
- may be specified. If omitted, a single pool will be configured
- if needed.
- items:
- properties:
- blockSize:
- description:
- "BlockSize specifies the CIDR prefex length
- to use when allocating per-node IP blocks from the
- main IP pool CIDR. Default: 26 (IPv4), 122 (IPv6)"
- format: int32
- type: integer
- cidr:
- description:
- CIDR contains the address range for the
- IP Pool in classless inter-domain routing format.
- type: string
- disableBGPExport:
- default: false
- description:
- "DisableBGPExport specifies whether routes
- from this IP pool's CIDR are exported over BGP. Default:
- false"
- type: boolean
- encapsulation:
- description:
- "Encapsulation specifies the encapsulation
- type that will be used with the IP Pool. Default:
- IPIP"
- enum:
- - IPIPCrossSubnet
- - IPIP
- - VXLAN
- - VXLANCrossSubnet
- - None
- type: string
- natOutgoing:
- description:
- "NATOutgoing specifies if NAT will be enabled
- or disabled for outgoing traffic. Default: Enabled"
- enum:
- - Enabled
- - Disabled
- type: string
- nodeSelector:
- description:
- "NodeSelector specifies the node selector
- that will be set for the IP Pool. Default: 'all()'"
- type: string
- required:
- - cidr
- type: object
- type: array
- linuxDataplane:
- description:
- "LinuxDataplane is used to select the dataplane
- used for Linux nodes. In particular, it causes the operator
- to add required mounts and environment variables for the
- particular dataplane. If not specified, iptables mode is
- used. Default: Iptables"
- enum:
- - Iptables
- - BPF
- - VPP
- type: string
- mtu:
- description:
- MTU specifies the maximum transmission unit to
- use on the pod network. If not specified, Calico will perform
- MTU auto-detection based on the cluster network.
- format: int32
- type: integer
- multiInterfaceMode:
- description:
- "MultiInterfaceMode configures what will configure
- multiple interface per pod. Only valid for Calico Enterprise
- installations using the Calico CNI plugin. Default: None"
- enum:
- - None
- - Multus
- type: string
- nodeAddressAutodetectionV4:
- description:
- NodeAddressAutodetectionV4 specifies an approach
- to automatically detect node IPv4 addresses. If not specified,
- will use default auto-detection settings to acquire an IPv4
- address for each node.
- properties:
- canReach:
- description:
- CanReach enables IP auto-detection based
- on which source address on the node is used to reach
- the specified IP or domain.
- type: string
- cidrs:
- description:
- CIDRS enables IP auto-detection based on
- which addresses on the nodes are within one of the provided
- CIDRs.
- items:
- type: string
- type: array
- firstFound:
- description:
- FirstFound uses default interface matching
- parameters to select an interface, performing best-effort
- filtering based on well-known interface names.
- type: boolean
- interface:
- description:
- Interface enables IP auto-detection based
- on interfaces that match the given regex.
- type: string
- kubernetes:
- description:
- Kubernetes configures Calico to detect node
- addresses based on the Kubernetes API.
- enum:
- - NodeInternalIP
- type: string
- skipInterface:
- description:
- SkipInterface enables IP auto-detection based
- on interfaces that do not match the given regex.
- type: string
- type: object
- nodeAddressAutodetectionV6:
- description:
- NodeAddressAutodetectionV6 specifies an approach
- to automatically detect node IPv6 addresses. If not specified,
- IPv6 addresses will not be auto-detected.
- properties:
- canReach:
- description:
- CanReach enables IP auto-detection based
- on which source address on the node is used to reach
- the specified IP or domain.
- type: string
- cidrs:
- description:
- CIDRS enables IP auto-detection based on
- which addresses on the nodes are within one of the provided
- CIDRs.
- items:
- type: string
- type: array
- firstFound:
- description:
- FirstFound uses default interface matching
- parameters to select an interface, performing best-effort
- filtering based on well-known interface names.
- type: boolean
- interface:
- description:
- Interface enables IP auto-detection based
- on interfaces that match the given regex.
- type: string
- kubernetes:
- description:
- Kubernetes configures Calico to detect node
- addresses based on the Kubernetes API.
- enum:
- - NodeInternalIP
- type: string
- skipInterface:
- description:
- SkipInterface enables IP auto-detection based
- on interfaces that do not match the given regex.
- type: string
+ initContainers:
+ description:
+ InitContainers is a list of calico-node
+ init containers. If specified, this overrides
+ the specified calico-node DaemonSet init containers.
+ If omitted, the calico-node DaemonSet will use
+ its default values for its init containers.
+ items:
+ description:
+ CalicoNodeDaemonSetInitContainer
+ is a calico-node DaemonSet init container.
+ properties:
+ name:
+ description:
+ Name is an enum which identifies
+ the calico-node DaemonSet init container
+ by name.
+ enum:
+ - install-cni
+ - hostpath-init
+ - flexvol-driver
+ - mount-bpffs
+ - node-certs-key-cert-provisioner
+ - calico-node-prometheus-server-tls-key-cert-provisioner
+ type: string
+ resources:
+ description:
+ Resources allows customization
+ of limits and requests for compute resources
+ such as cpu and memory. If specified,
+ this overrides the named calico-node DaemonSet
+ init container's resources. If omitted,
+ the calico-node DaemonSet will use its
+ default value for this container's resources.
+ If used in conjunction with the deprecated
+ ComponentResources, then this value takes
+ precedence.
+ properties:
+ limits:
+ additionalProperties:
+ 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
+ description:
+ "Limits describes the maximum
+ amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ requests:
+ additionalProperties:
+ 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
+ description:
+ "Requests describes the
+ minimum amount of compute resources
+ required. If Requests is omitted for
+ a container, it defaults to Limits
+ if that is explicitly specified, otherwise
+ to an implementation-defined value.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description:
+ "NodeSelector is the calico-node
+ pod's scheduling constraints. If specified,
+ each of the key/value pairs are added to the
+ calico-node DaemonSet nodeSelector provided
+ the key does not already exist in the object's
+ nodeSelector. If omitted, the calico-node DaemonSet
+ will use its default value for nodeSelector.
+ WARNING: Please note that this field will modify
+ the default calico-node DaemonSet nodeSelector."
+ type: object
+ tolerations:
+ description:
+ "Tolerations is the calico-node pod's
+ tolerations. If specified, this overrides any
+ tolerations that may be set on the calico-node
+ DaemonSet. If omitted, the calico-node DaemonSet
+ will use its default value for tolerations.
+ WARNING: Please note that this field will override
+ the default calico-node DaemonSet tolerations."
+ 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
+ type: object
+ type: object
type: object
type: object
- calicoNodeDaemonSet:
+ calicoWindowsUpgradeDaemonSet:
description:
- CalicoNodeDaemonSet configures the calico-node DaemonSet.
- If used in conjunction with the deprecated ComponentResources,
- then these overrides take precedence.
+ CalicoWindowsUpgradeDaemonSet configures the calico-windows-upgrade
+ DaemonSet.
properties:
metadata:
description:
Metadata is a subset of a Kubernetes object's
- metadata that is added to the DaemonSet.
+ metadata that is added to the Deployment.
properties:
annotations:
additionalProperties:
@@ -14361,26 +17750,26 @@ spec:
type: object
spec:
description:
- Spec is the specification of the calico-node
+ Spec is the specification of the calico-windows-upgrade
DaemonSet.
properties:
minReadySeconds:
description:
MinReadySeconds is the minimum number of
- seconds for which a newly created DaemonSet pod should
+ seconds for which a newly created Deployment pod should
be ready without any of its container crashing, for
it to be considered available. If specified, this overrides
- any minReadySeconds value that may be set on the calico-node
- DaemonSet. If omitted, the calico-node DaemonSet will
- use its default value for minReadySeconds.
+ any minReadySeconds value that may be set on the calico-windows-upgrade
+ DaemonSet. If omitted, the calico-windows-upgrade DaemonSet
+ will use its default value for minReadySeconds.
format: int32
maximum: 2147483647
minimum: 0
type: integer
template:
description:
- Template describes the calico-node DaemonSet
- pod that will be created.
+ Template describes the calico-windows-upgrade
+ DaemonSet pod that will be created.
properties:
metadata:
description:
@@ -14409,18 +17798,21 @@ spec:
type: object
type: object
spec:
- description: Spec is the calico-node DaemonSet's PodSpec.
+ description:
+ Spec is the calico-windows-upgrade DaemonSet's
+ PodSpec.
properties:
affinity:
description:
"Affinity is a group of affinity
- scheduling rules for the calico-node pods. If
- specified, this overrides any affinity that
- may be set on the calico-node DaemonSet. If
- omitted, the calico-node DaemonSet will use
- its default value for affinity. WARNING: Please
- note that this field will override the default
- calico-node DaemonSet affinity."
+ scheduling rules for the calico-windows-upgrade
+ pods. If specified, this overrides any affinity
+ that may be set on the calico-windows-upgrade
+ DaemonSet. If omitted, the calico-windows-upgrade
+ DaemonSet will use its default value for affinity.
+ WARNING: Please note that this field will override
+ the default calico-windows-upgrade DaemonSet
+ affinity."
properties:
nodeAffinity:
description:
@@ -14568,6 +17960,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -14713,10 +18106,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -14833,6 +18228,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -14846,10 +18242,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -14923,6 +18316,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -14934,7 +18328,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -15069,6 +18463,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -15081,9 +18476,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -15151,6 +18543,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -15161,7 +18554,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -15299,6 +18692,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -15312,10 +18706,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -15389,6 +18780,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -15400,7 +18792,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -15535,6 +18927,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -15547,9 +18940,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -15604,156 +18994,84 @@ spec:
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
- 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
- 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
- type: object
- type: object
- containers:
- description:
- Containers is a list of calico-node
- containers. If specified, this overrides the
- specified calico-node DaemonSet containers.
- If omitted, the calico-node DaemonSet will use
- its default values for its containers.
- items:
- description:
- CalicoNodeDaemonSetContainer is
- a calico-node DaemonSet container.
- properties:
- name:
- description:
- Name is an enum which identifies
- the calico-node DaemonSet container by
- name.
- enum:
- - calico-node
- type: string
- resources:
- description:
- Resources allows customization
- of limits and requests for compute resources
- such as cpu and memory. If specified,
- this overrides the named calico-node DaemonSet
- container's resources. If omitted, the
- calico-node DaemonSet will use its default
- value for this container's resources.
- If used in conjunction with the deprecated
- ComponentResources, then this value takes
- precedence.
- properties:
- limits:
- additionalProperties:
- 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
- description:
- "Limits describes the maximum
- amount of compute resources allowed.
- More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
- type: object
- requests:
- additionalProperties:
- 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
- description:
- "Requests describes the
- minimum amount of compute resources
- required. If Requests is omitted for
- a container, it defaults to Limits
- if that is explicitly specified, otherwise
- to an implementation-defined value.
- More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ 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
+ 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: object
- required:
- - name
- type: object
- type: array
- initContainers:
+ type: array
+ type: object
+ type: object
+ containers:
description:
- InitContainers is a list of calico-node
- init containers. If specified, this overrides
- the specified calico-node DaemonSet init containers.
- If omitted, the calico-node DaemonSet will use
- its default values for its init containers.
+ Containers is a list of calico-windows-upgrade
+ containers. If specified, this overrides the
+ specified calico-windows-upgrade DaemonSet containers.
+ If omitted, the calico-windows-upgrade DaemonSet
+ will use its default values for its containers.
items:
description:
- CalicoNodeDaemonSetInitContainer
- is a calico-node DaemonSet init container.
+ CalicoWindowsUpgradeDaemonSetContainer
+ is a calico-windows-upgrade DaemonSet container.
properties:
name:
description:
Name is an enum which identifies
- the calico-node DaemonSet init container
+ the calico-windows-upgrade DaemonSet container
by name.
enum:
- - install-cni
- - hostpath-init
- - flexvol-driver
- - mount-bpffs
- - node-certs-key-cert-provisioner
- - calico-node-prometheus-server-tls-key-cert-provisioner
+ - calico-windows-upgrade
type: string
resources:
description:
Resources allows customization
of limits and requests for compute resources
such as cpu and memory. If specified,
- this overrides the named calico-node DaemonSet
- init container's resources. If omitted,
- the calico-node DaemonSet will use its
- default value for this container's resources.
- If used in conjunction with the deprecated
- ComponentResources, then this value takes
- precedence.
+ this overrides the named calico-windows-upgrade
+ DaemonSet container's resources. If omitted,
+ the calico-windows-upgrade DaemonSet will
+ use its default value for this container's
+ resources.
properties:
limits:
additionalProperties:
@@ -15792,25 +19110,27 @@ spec:
additionalProperties:
type: string
description:
- "NodeSelector is the calico-node
+ "NodeSelector is the calico-windows-upgrade
pod's scheduling constraints. If specified,
each of the key/value pairs are added to the
- calico-node DaemonSet nodeSelector provided
- the key does not already exist in the object's
- nodeSelector. If omitted, the calico-node DaemonSet
- will use its default value for nodeSelector.
+ calico-windows-upgrade DaemonSet nodeSelector
+ provided the key does not already exist in the
+ object's nodeSelector. If omitted, the calico-windows-upgrade
+ DaemonSet will use its default value for nodeSelector.
WARNING: Please note that this field will modify
- the default calico-node DaemonSet nodeSelector."
+ the default calico-windows-upgrade DaemonSet
+ nodeSelector."
type: object
tolerations:
description:
- "Tolerations is the calico-node pod's
- tolerations. If specified, this overrides any
- tolerations that may be set on the calico-node
- DaemonSet. If omitted, the calico-node DaemonSet
- will use its default value for tolerations.
+ "Tolerations is the calico-windows-upgrade
+ pod's tolerations. If specified, this overrides
+ any tolerations that may be set on the calico-windows-upgrade
+ DaemonSet. If omitted, the calico-windows-upgrade
+ DaemonSet will use its default value for tolerations.
WARNING: Please note that this field will override
- the default calico-node DaemonSet tolerations."
+ the default calico-windows-upgrade DaemonSet
+ tolerations."
items:
description:
The pod this Toleration is attached
@@ -15868,15 +19188,244 @@ spec:
type: object
type: object
type: object
- calicoWindowsUpgradeDaemonSet:
+ certificateManagement:
+ description:
+ CertificateManagement configures pods to submit a
+ CertificateSigningRequest to the certificates.k8s.io/v1beta1
+ API in order to obtain TLS certificates. This feature requires
+ that you bring your own CSR signing and approval process, otherwise
+ pods will be stuck during initialization.
+ properties:
+ caCert:
+ description:
+ Certificate of the authority that signs the CertificateSigningRequests
+ in PEM format.
+ format: byte
+ type: string
+ keyAlgorithm:
+ description:
+ "Specify the algorithm used by pods to generate
+ a key pair that is associated with the X.509 certificate
+ request. Default: RSAWithSize2048"
+ enum:
+ - ""
+ - RSAWithSize2048
+ - RSAWithSize4096
+ - RSAWithSize8192
+ - ECDSAWithCurve256
+ - ECDSAWithCurve384
+ - ECDSAWithCurve521
+ type: string
+ signatureAlgorithm:
+ description:
+ "Specify the algorithm used for the signature
+ of the X.509 certificate request. Default: SHA256WithRSA"
+ enum:
+ - ""
+ - SHA256WithRSA
+ - SHA384WithRSA
+ - SHA512WithRSA
+ - ECDSAWithSHA256
+ - ECDSAWithSHA384
+ - ECDSAWithSHA512
+ type: string
+ signerName:
+ description:
+ "When a CSR is issued to the certificates.k8s.io
+ API, the signerName is added to the request in order to
+ accommodate for clusters with multiple signers. Must be
+ formatted as: `<my-domain>/<my-signername>`."
+ type: string
+ required:
+ - caCert
+ - signerName
+ type: object
+ cni:
+ description: CNI specifies the CNI that will be used by this installation.
+ properties:
+ ipam:
+ description:
+ IPAM specifies the pod IP address management
+ that will be used in the Calico or Calico Enterprise installation.
+ properties:
+ type:
+ description:
+ "Specifies the IPAM plugin that will be used
+ in the Calico or Calico Enterprise installation. * For
+ CNI Plugin Calico, this field defaults to Calico. *
+ For CNI Plugin GKE, this field defaults to HostLocal.
+ * For CNI Plugin AzureVNET, this field defaults to AzureVNET.
+ * For CNI Plugin AmazonVPC, this field defaults to AmazonVPC.
+ \n The IPAM plugin is installed and configured only
+ if the CNI plugin is set to Calico, for all other values
+ of the CNI plugin the plugin binaries and CNI config
+ is a dependency that is expected to be installed separately.
+ \n Default: Calico"
+ enum:
+ - Calico
+ - HostLocal
+ - AmazonVPC
+ - AzureVNET
+ type: string
+ required:
+ - type
+ type: object
+ type:
+ description:
+ "Specifies the CNI plugin that will be used in
+ the Calico or Calico Enterprise installation. * For KubernetesProvider
+ GKE, this field defaults to GKE. * For KubernetesProvider
+ AKS, this field defaults to AzureVNET. * For KubernetesProvider
+ EKS, this field defaults to AmazonVPC. * If aws-node daemonset
+ exists in kube-system when the Installation resource is
+ created, this field defaults to AmazonVPC. * For all other
+ cases this field defaults to Calico. \n For the value Calico,
+ the CNI plugin binaries and CNI config will be installed
+ as part of deployment, for all other values the CNI plugin
+ binaries and CNI config is a dependency that is expected
+ to be installed separately. \n Default: Calico"
+ enum:
+ - Calico
+ - GKE
+ - AmazonVPC
+ - AzureVNET
+ type: string
+ required:
+ - type
+ type: object
+ componentResources:
+ description:
+ Deprecated. Please use CalicoNodeDaemonSet, TyphaDeployment,
+ and KubeControllersDeployment. ComponentResources can be used
+ to customize the resource requirements for each component. Node,
+ Typha, and KubeControllers are supported for installations.
+ items:
+ description:
+ Deprecated. Please use component resource config
+ fields in Installation.Spec instead. The ComponentResource
+ struct associates a ResourceRequirements with a component
+ by name
+ properties:
+ componentName:
+ description:
+ ComponentName is an enum which identifies the
+ component
+ enum:
+ - Node
+ - Typha
+ - KubeControllers
+ type: string
+ resourceRequirements:
+ description:
+ ResourceRequirements allows customization of
+ limits and requests for compute resources such as cpu
+ and memory.
+ properties:
+ limits:
+ additionalProperties:
+ 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
+ description:
+ "Limits describes the maximum amount of
+ compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ requests:
+ additionalProperties:
+ 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
+ description:
+ "Requests describes the minimum amount
+ of compute resources required. If Requests is omitted
+ for a container, it defaults to Limits if that is
+ explicitly specified, otherwise to an implementation-defined
+ value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
+ type: object
+ type: object
+ required:
+ - componentName
+ - resourceRequirements
+ type: object
+ type: array
+ controlPlaneNodeSelector:
+ additionalProperties:
+ type: string
+ description:
+ ControlPlaneNodeSelector is used to select control
+ plane nodes on which to run Calico components. This is globally
+ applied to all resources created by the operator excluding daemonsets.
+ type: object
+ controlPlaneReplicas:
description:
- CalicoWindowsUpgradeDaemonSet configures the calico-windows-upgrade
+ ControlPlaneReplicas defines how many replicas of
+ the control plane core components will be deployed. This field
+ applies to all control plane components that support High Availability.
+ Defaults to 2.
+ format: int32
+ type: integer
+ controlPlaneTolerations:
+ description:
+ ControlPlaneTolerations specify tolerations which
+ are then globally applied to all resources created by the operator.
+ 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
+ csiNodeDriverDaemonSet:
+ description:
+ CSINodeDriverDaemonSet configures the csi-node-driver
DaemonSet.
properties:
metadata:
description:
Metadata is a subset of a Kubernetes object's
- metadata that is added to the Deployment.
+ metadata that is added to the DaemonSet.
properties:
annotations:
additionalProperties:
@@ -15900,17 +19449,17 @@ spec:
type: object
spec:
description:
- Spec is the specification of the calico-windows-upgrade
+ Spec is the specification of the csi-node-driver
DaemonSet.
properties:
minReadySeconds:
description:
MinReadySeconds is the minimum number of
- seconds for which a newly created Deployment pod should
+ seconds for which a newly created DaemonSet pod should
be ready without any of its container crashing, for
it to be considered available. If specified, this overrides
- any minReadySeconds value that may be set on the calico-windows-upgrade
- DaemonSet. If omitted, the calico-windows-upgrade DaemonSet
+ any minReadySeconds value that may be set on the csi-node-driver
+ DaemonSet. If omitted, the csi-node-driver DaemonSet
will use its default value for minReadySeconds.
format: int32
maximum: 2147483647
@@ -15918,8 +19467,8 @@ spec:
type: integer
template:
description:
- Template describes the calico-windows-upgrade
- DaemonSet pod that will be created.
+ Template describes the csi-node-driver DaemonSet
+ pod that will be created.
properties:
metadata:
description:
@@ -15949,20 +19498,19 @@ spec:
type: object
spec:
description:
- Spec is the calico-windows-upgrade DaemonSet's
+ Spec is the csi-node-driver DaemonSet's
PodSpec.
properties:
affinity:
description:
"Affinity is a group of affinity
- scheduling rules for the calico-windows-upgrade
- pods. If specified, this overrides any affinity
- that may be set on the calico-windows-upgrade
- DaemonSet. If omitted, the calico-windows-upgrade
- DaemonSet will use its default value for affinity.
- WARNING: Please note that this field will override
- the default calico-windows-upgrade DaemonSet
- affinity."
+ scheduling rules for the csi-node-driver pods.
+ If specified, this overrides any affinity that
+ may be set on the csi-node-driver DaemonSet.
+ If omitted, the csi-node-driver DaemonSet will
+ use its default value for affinity. WARNING:
+ Please note that this field will override the
+ default csi-node-driver DaemonSet affinity."
properties:
nodeAffinity:
description:
@@ -16110,6 +19658,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -16255,10 +19804,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -16375,6 +19926,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -16388,10 +19940,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -16465,6 +20014,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -16476,7 +20026,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -16611,6 +20161,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -16623,9 +20174,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -16693,6 +20241,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -16703,7 +20252,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -16841,6 +20390,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -16854,10 +20404,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -16931,6 +20478,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -16942,7 +20490,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -17077,6 +20625,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -17089,9 +20638,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -17159,6 +20705,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -17169,7 +20716,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -17195,33 +20742,33 @@ spec:
type: object
containers:
description:
- Containers is a list of calico-windows-upgrade
+ Containers is a list of csi-node-driver
containers. If specified, this overrides the
- specified calico-windows-upgrade DaemonSet containers.
- If omitted, the calico-windows-upgrade DaemonSet
- will use its default values for its containers.
+ specified csi-node-driver DaemonSet containers.
+ If omitted, the csi-node-driver DaemonSet will
+ use its default values for its containers.
items:
description:
- CalicoWindowsUpgradeDaemonSetContainer
- is a calico-windows-upgrade DaemonSet container.
+ CSINodeDriverDaemonSetContainer
+ is a csi-node-driver DaemonSet container.
properties:
name:
description:
Name is an enum which identifies
- the calico-windows-upgrade DaemonSet container
+ the csi-node-driver DaemonSet container
by name.
enum:
- - calico-windows-upgrade
+ - csi-node-driver
type: string
resources:
description:
Resources allows customization
of limits and requests for compute resources
such as cpu and memory. If specified,
- this overrides the named calico-windows-upgrade
+ this overrides the named csi-node-driver
DaemonSet container's resources. If omitted,
- the calico-windows-upgrade DaemonSet will
- use its default value for this container's
+ the csi-node-driver DaemonSet will use
+ its default value for this container's
resources.
properties:
limits:
@@ -17261,27 +20808,25 @@ spec:
additionalProperties:
type: string
description:
- "NodeSelector is the calico-windows-upgrade
+ "NodeSelector is the csi-node-driver
pod's scheduling constraints. If specified,
each of the key/value pairs are added to the
- calico-windows-upgrade DaemonSet nodeSelector
- provided the key does not already exist in the
- object's nodeSelector. If omitted, the calico-windows-upgrade
+ csi-node-driver DaemonSet nodeSelector provided
+ the key does not already exist in the object's
+ nodeSelector. If omitted, the csi-node-driver
DaemonSet will use its default value for nodeSelector.
WARNING: Please note that this field will modify
- the default calico-windows-upgrade DaemonSet
- nodeSelector."
+ the default csi-node-driver DaemonSet nodeSelector."
type: object
tolerations:
description:
- "Tolerations is the calico-windows-upgrade
+ "Tolerations is the csi-node-driver
pod's tolerations. If specified, this overrides
- any tolerations that may be set on the calico-windows-upgrade
- DaemonSet. If omitted, the calico-windows-upgrade
- DaemonSet will use its default value for tolerations.
+ any tolerations that may be set on the csi-node-driver
+ DaemonSet. If omitted, the csi-node-driver DaemonSet
+ will use its default value for tolerations.
WARNING: Please note that this field will override
- the default calico-windows-upgrade DaemonSet
- tolerations."
+ the default csi-node-driver DaemonSet tolerations."
items:
description:
The pod this Toleration is attached
@@ -17304,270 +20849,41 @@ spec:
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
- type: object
- type: object
- type: object
- type: object
- certificateManagement:
- description:
- CertificateManagement configures pods to submit a
- CertificateSigningRequest to the certificates.k8s.io/v1beta1
- API in order to obtain TLS certificates. This feature requires
- that you bring your own CSR signing and approval process, otherwise
- pods will be stuck during initialization.
- properties:
- caCert:
- description:
- Certificate of the authority that signs the CertificateSigningRequests
- in PEM format.
- format: byte
- type: string
- keyAlgorithm:
- description:
- "Specify the algorithm used by pods to generate
- a key pair that is associated with the X.509 certificate
- request. Default: RSAWithSize2048"
- enum:
- - ""
- - RSAWithSize2048
- - RSAWithSize4096
- - RSAWithSize8192
- - ECDSAWithCurve256
- - ECDSAWithCurve384
- - ECDSAWithCurve521
- type: string
- signatureAlgorithm:
- description:
- "Specify the algorithm used for the signature
- of the X.509 certificate request. Default: SHA256WithRSA"
- enum:
- - ""
- - SHA256WithRSA
- - SHA384WithRSA
- - SHA512WithRSA
- - ECDSAWithSHA256
- - ECDSAWithSHA384
- - ECDSAWithSHA512
- type: string
- signerName:
- description:
- "When a CSR is issued to the certificates.k8s.io
- API, the signerName is added to the request in order to
- accommodate for clusters with multiple signers. Must be
- formatted as: `<my-domain>/<my-signername>`."
- type: string
- required:
- - caCert
- - signerName
- type: object
- cni:
- description: CNI specifies the CNI that will be used by this installation.
- properties:
- ipam:
- description:
- IPAM specifies the pod IP address management
- that will be used in the Calico or Calico Enterprise installation.
- properties:
- type:
- description:
- "Specifies the IPAM plugin that will be used
- in the Calico or Calico Enterprise installation. * For
- CNI Plugin Calico, this field defaults to Calico. *
- For CNI Plugin GKE, this field defaults to HostLocal.
- * For CNI Plugin AzureVNET, this field defaults to AzureVNET.
- * For CNI Plugin AmazonVPC, this field defaults to AmazonVPC.
- \n The IPAM plugin is installed and configured only
- if the CNI plugin is set to Calico, for all other values
- of the CNI plugin the plugin binaries and CNI config
- is a dependency that is expected to be installed separately.
- \n Default: Calico"
- enum:
- - Calico
- - HostLocal
- - AmazonVPC
- - AzureVNET
- type: string
- required:
- - type
+ 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
+ type: object
+ type: object
type: object
- type:
- description:
- "Specifies the CNI plugin that will be used in
- the Calico or Calico Enterprise installation. * For KubernetesProvider
- GKE, this field defaults to GKE. * For KubernetesProvider
- AKS, this field defaults to AzureVNET. * For KubernetesProvider
- EKS, this field defaults to AmazonVPC. * If aws-node daemonset
- exists in kube-system when the Installation resource is
- created, this field defaults to AmazonVPC. * For all other
- cases this field defaults to Calico. \n For the value Calico,
- the CNI plugin binaries and CNI config will be installed
- as part of deployment, for all other values the CNI plugin
- binaries and CNI config is a dependency that is expected
- to be installed separately. \n Default: Calico"
- enum:
- - Calico
- - GKE
- - AmazonVPC
- - AzureVNET
- type: string
- required:
- - type
- type: object
- componentResources:
- description:
- Deprecated. Please use CalicoNodeDaemonSet, TyphaDeployment,
- and KubeControllersDeployment. ComponentResources can be used
- to customize the resource requirements for each component. Node,
- Typha, and KubeControllers are supported for installations.
- items:
- description:
- Deprecated. Please use component resource config
- fields in Installation.Spec instead. The ComponentResource
- struct associates a ResourceRequirements with a component
- by name
- properties:
- componentName:
- description:
- ComponentName is an enum which identifies the
- component
- enum:
- - Node
- - Typha
- - KubeControllers
- type: string
- resourceRequirements:
- description:
- ResourceRequirements allows customization of
- limits and requests for compute resources such as cpu
- and memory.
- properties:
- limits:
- additionalProperties:
- 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
- description:
- "Limits describes the maximum amount of
- compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
- type: object
- requests:
- additionalProperties:
- 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
- description:
- "Requests describes the minimum amount
- of compute resources required. If Requests is omitted
- for a container, it defaults to Limits if that is
- explicitly specified, otherwise to an implementation-defined
- value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
- type: object
- type: object
- required:
- - componentName
- - resourceRequirements
- type: object
- type: array
- controlPlaneNodeSelector:
- additionalProperties:
- type: string
- description:
- ControlPlaneNodeSelector is used to select control
- plane nodes on which to run Calico components. This is globally
- applied to all resources created by the operator excluding daemonsets.
type: object
- controlPlaneReplicas:
- description:
- ControlPlaneReplicas defines how many replicas of
- the control plane core components will be deployed. This field
- applies to all control plane components that support High Availability.
- Defaults to 2.
- format: int32
- type: integer
- controlPlaneTolerations:
- description:
- ControlPlaneTolerations specify tolerations which
- are then globally applied to all resources created by the operator.
- 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
fipsMode:
description:
"FIPSMode uses images and features only that are
@@ -17591,7 +20907,7 @@ spec:
used as the image path for each image. If not specified or empty,
the default for each image will be used. A special case value,
UseDefault, is supported to explicitly specify the default image
- path will be used for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
+ path will be used for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
\n This option allows configuring the `<imagePath>` portion
of the above format."
type: string
@@ -17602,7 +20918,7 @@ spec:
as a prefix on each image. If not specified or empty, no prefix
will be used. A special case value, UseDefault, is supported
to explicitly specify the default image prefix will be used
- for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
+ for each image. \n Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
\n This option allows configuring the `<imagePrefix>` portion
of the above format."
type: string
@@ -17622,6 +20938,7 @@ spec:
TODO: Add other useful fields. apiVersion, kind, uid?"
type: string
type: object
+ x-kubernetes-map-type: atomic
type: array
kubeletVolumePluginPath:
description:
@@ -17648,6 +20965,39 @@ spec:
- DockerEnterprise
- RKE2
type: string
+ logging:
+ description: Logging Configuration for Components
+ properties:
+ cni:
+ description:
+ Customized logging specification for calico-cni
+ plugin
+ properties:
+ logFileMaxAgeDays:
+ description: "Default: 30 (days)"
+ format: int32
+ type: integer
+ logFileMaxCount:
+ description: "Default: 10"
+ format: int32
+ type: integer
+ logFileMaxSize:
+ anyOf:
+ - type: integer
+ - type: string
+ description: "Default: 100Mi"
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ logSeverity:
+ description: "Default: Info"
+ enum:
+ - Error
+ - Warning
+ - Debug
+ - Info
+ type: string
+ type: object
+ type: object
nodeMetricsPort:
description:
NodeMetricsPort specifies which port calico/node
@@ -17696,8 +21046,7 @@ spec:
by the daemonset on any given node can double if the
readiness check fails, and so resource intensive daemonsets
should take into account that they may cause evictions
- during disruption. This is beta field and enabled/disabled
- by DaemonSetUpdateSurge feature gate."
+ during disruption."
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
@@ -17741,7 +21090,7 @@ spec:
from this registry. If not specified then the default registries
will be used. A special case value, UseDefault, is supported
to explicitly specify the default registries will be used. \n
- Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
+ Image format: `<registry><imagePath>/<imagePrefix><imageName>:<image-tag>`
\n This option allows configuring the `<registry>` portion of
the above format."
type: string
@@ -17861,6 +21210,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with matching the
@@ -17990,10 +21340,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
type: object
typhaDeployment:
@@ -18043,6 +21395,60 @@ spec:
maximum: 2147483647
minimum: 0
type: integer
+ strategy:
+ description:
+ The deployment strategy to use to replace
+ existing pods with new ones.
+ properties:
+ rollingUpdate:
+ description:
+ Rolling update config params. Present
+ only if DeploymentStrategyType = RollingUpdate.
+ to be.
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ description:
+ "The maximum number of pods that
+ can be scheduled above the desired number of
+ pods. Value can be an absolute number (ex: 5)
+ or a percentage of desired pods (ex: 10%). This
+ can not be 0 if MaxUnavailable is 0. Absolute
+ number is calculated from percentage by rounding
+ up. Defaults to 25%. Example: when this is set
+ to 30%, the new ReplicaSet can be scaled up
+ immediately when the rolling update starts,
+ such that the total number of old and new pods
+ do not exceed 130% of desired pods. Once old
+ pods have been killed, new ReplicaSet can be
+ scaled up further, ensuring that total number
+ of pods running at any time during the update
+ is at most 130% of desired pods."
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ description:
+ "The maximum number of pods that
+ can be unavailable during the update. Value
+ can be an absolute number (ex: 5) or a percentage
+ of desired pods (ex: 10%). Absolute number is
+ calculated from percentage by rounding down.
+ This can not be 0 if MaxSurge is 0. Defaults
+ to 25%. Example: when this is set to 30%, the
+ old ReplicaSet can be scaled down to 70% of
+ desired pods immediately when the rolling update
+ starts. Once new pods are ready, old ReplicaSet
+ can be scaled down further, followed by scaling
+ up the new ReplicaSet, ensuring that the total
+ number of pods available at all times during
+ the update is at least 70% of desired pods."
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
template:
description:
Template describes the typha Deployment pod
@@ -18235,6 +21641,7 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
weight:
description:
Weight associated with
@@ -18380,10 +21787,12 @@ spec:
type: object
type: array
type: object
+ x-kubernetes-map-type: atomic
type: array
required:
- nodeSelectorTerms
type: object
+ x-kubernetes-map-type: atomic
type: object
podAffinity:
description:
@@ -18500,6 +21909,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -18513,10 +21923,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -18590,6 +21997,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -18601,7 +22009,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -18736,6 +22144,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -18748,9 +22157,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -18818,6 +22224,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -18828,7 +22235,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -18966,6 +22373,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -18979,10 +22387,7 @@ spec:
namespaces list means "this
pod's namespace". An empty
selector ({}) matches all
- namespaces. This field is
- beta-level and is only honored
- when PodAffinityNamespaceSelector
- feature is enabled.
+ namespaces.
properties:
matchExpressions:
description:
@@ -19056,6 +22461,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -19067,7 +22473,7 @@ spec:
ones selected by namespaceSelector.
null or empty namespaces list
and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -19202,6 +22608,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaceSelector:
description:
A label query over
@@ -19214,9 +22621,6 @@ spec:
or empty namespaces list means
"this pod's namespace". An empty
selector ({}) matches all namespaces.
- This field is beta-level and is
- only honored when PodAffinityNamespaceSelector
- feature is enabled.
properties:
matchExpressions:
description:
@@ -19284,6 +22688,7 @@ spec:
are ANDed.
type: object
type: object
+ x-kubernetes-map-type: atomic
namespaces:
description:
namespaces specifies
@@ -19294,7 +22699,7 @@ spec:
field and the ones selected by
namespaceSelector. null or empty
namespaces list and null namespaceSelector
- means "this pod's namespace"
+ means "this pod's namespace".
items:
type: string
type: array
@@ -19463,6 +22868,23 @@ spec:
WARNING: Please note that this field will modify
the default calico-typha Deployment nodeSelector."
type: object
+ terminationGracePeriodSeconds:
+ description:
+ Optional duration in seconds the
+ pod needs to terminate gracefully. May be decreased
+ in delete request. Value must be non-negative
+ integer. The value zero indicates stop immediately
+ via the kill signal (no opportunity to shut
+ down). If this value is nil, the default grace
+ period will be used instead. The grace period
+ is the duration in seconds after the processes
+ running in the pod are sent a termination signal
+ and the time when the processes are forcibly
+ halted with a kill signal. Set this value longer
+ than the expected cleanup time for your process.
+ Defaults to 30 seconds.
+ format: int64
+ type: integer
tolerations:
description:
"Tolerations is the typha pod's
@@ -19525,6 +22947,249 @@ spec:
type: string
type: object
type: array
+ topologySpreadConstraints:
+ description:
+ TopologySpreadConstraints describes
+ how a group of pods ought to spread across topology
+ domains. Scheduler will schedule pods in a way
+ which abides by the constraints. All topologySpreadConstraints
+ are ANDed.
+ items:
+ description:
+ TopologySpreadConstraint specifies
+ how to spread matching pods among the given
+ topology.
+ properties:
+ labelSelector:
+ description:
+ LabelSelector is used to find
+ matching pods. Pods that match this label
+ selector are counted to determine the
+ number of pods in their corresponding
+ topology domain.
+ 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
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ 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 the pods over
+ which spreading will be calculated. The
+ keys are used to lookup values from the
+ incoming pod labels, those key-value labels
+ are ANDed with labelSelector to select
+ the group of existing pods over which
+ spreading will be calculated for the incoming
+ pod. Keys that don't exist in the incoming
+ pod labels will be ignored. A null or
+ empty list means only match against labelSelector.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ description:
+ "MaxSkew describes the degree
+ to which pods may be unevenly distributed.
+ When `whenUnsatisfiable=DoNotSchedule`,
+ it is the maximum permitted difference
+ between the number of matching pods in
+ the target topology and the global minimum.
+ The global minimum is the minimum number
+ of matching pods in an eligible domain
+ or zero if the number of eligible domains
+ is less than MinDomains. For example,
+ in a 3-zone cluster, MaxSkew is set to
+ 1, and pods with the same labelSelector
+ spread as 2/2/1: In this case, the global
+ minimum is 1. | zone1 | zone2 | zone3
+ | | P P | P P | P | - if MaxSkew
+ is 1, incoming pod can only be scheduled
+ to zone3 to become 2/2/2; scheduling it
+ onto zone1(zone2) would make the ActualSkew(3-1)
+ on zone1(zone2) violate MaxSkew(1). -
+ if MaxSkew is 2, incoming pod can be scheduled
+ onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
+ it is used to give higher precedence to
+ topologies that satisfy it. It's a required
+ field. Default value is 1 and 0 is not
+ allowed."
+ format: int32
+ type: integer
+ minDomains:
+ description:
+ "MinDomains indicates a minimum
+ number of eligible domains. When the number
+ of eligible domains with matching topology
+ keys is less than minDomains, Pod Topology
+ Spread treats \"global minimum\" as 0,
+ and then the calculation of Skew is performed.
+ And when the number of eligible domains
+ with matching topology keys equals or
+ greater than minDomains, this value has
+ no effect on scheduling. As a result,
+ when the number of eligible domains is
+ less than minDomains, scheduler won't
+ schedule more than maxSkew Pods to those
+ domains. If value is nil, the constraint
+ behaves as if MinDomains is equal to 1.
+ Valid values are integers greater than
+ 0. When value is not nil, WhenUnsatisfiable
+ must be DoNotSchedule. \n For example,
+ in a 3-zone cluster, MaxSkew is set to
+ 2, MinDomains is set to 5 and pods with
+ the same labelSelector spread as 2/2/2:
+ | zone1 | zone2 | zone3 | | P P | P
+ P | P P | The number of domains is
+ less than 5(MinDomains), so \"global minimum\"
+ is treated as 0. In this situation, new
+ pod with the same labelSelector cannot
+ be scheduled, because computed skew will
+ be 3(3 - 0) if new Pod is scheduled to
+ any of the three zones, it will violate
+ MaxSkew. \n This is a beta field and requires
+ the MinDomainsInPodTopologySpread feature
+ gate to be enabled (enabled by default)."
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ description:
+ "NodeAffinityPolicy indicates
+ how we will treat Pod's nodeAffinity/nodeSelector
+ when calculating pod topology spread skew.
+ Options are: - Honor: only nodes matching
+ nodeAffinity/nodeSelector are included
+ in the calculations. - Ignore: nodeAffinity/nodeSelector
+ are ignored. All nodes are included in
+ the calculations. \n If this value is
+ nil, the behavior is equivalent to the
+ Honor policy. This is a alpha-level feature
+ enabled by the NodeInclusionPolicyInPodTopologySpread
+ feature flag."
+ type: string
+ nodeTaintsPolicy:
+ description:
+ "NodeTaintsPolicy indicates
+ how we will treat node taints when calculating
+ pod topology spread skew. Options are:
+ - Honor: nodes without taints, along with
+ tainted nodes for which the incoming pod
+ has a toleration, are included. - Ignore:
+ node taints are ignored. All nodes are
+ included. \n If this value is nil, the
+ behavior is equivalent to the Ignore policy.
+ This is a alpha-level feature enabled
+ by the NodeInclusionPolicyInPodTopologySpread
+ feature flag."
+ type: string
+ topologyKey:
+ description:
+ TopologyKey is the key of node
+ labels. Nodes that have a label with this
+ key and identical values are considered
+ to be in the same topology. We consider
+ each <key, value> as a "bucket", and try
+ to put balanced number of pods into each
+ bucket. We define a domain as a particular
+ instance of a topology. Also, we define
+ an eligible domain as a domain whose nodes
+ meet the requirements of nodeAffinityPolicy
+ and nodeTaintsPolicy. e.g. If TopologyKey
+ is "kubernetes.io/hostname", each Node
+ is a domain of that topology. And, if
+ TopologyKey is "topology.kubernetes.io/zone",
+ each zone is a domain of that topology.
+ It's a required field.
+ type: string
+ whenUnsatisfiable:
+ description:
+ 'WhenUnsatisfiable indicates
+ how to deal with a pod if it doesn''t
+ satisfy the spread constraint. - DoNotSchedule
+ (default) tells the scheduler not to schedule
+ it. - ScheduleAnyway tells the scheduler
+ to schedule the pod in any location, but
+ giving higher precedence to topologies
+ that would help reduce the skew. A constraint
+ is considered "Unsatisfiable" for an incoming
+ pod if and only if every possible node
+ assignment for that pod would violate
+ "MaxSkew" on some topology. For example,
+ in a 3-zone cluster, MaxSkew is set to
+ 1, and pods with the same labelSelector
+ spread as 3/1/1: | zone1 | zone2 | zone3
+ | | P P P | P | P | If WhenUnsatisfiable
+ is set to DoNotSchedule, incoming pod
+ can only be scheduled to zone2(zone3)
+ to become 3/2/1(3/1/2) as ActualSkew(2-1)
+ on zone2(zone3) satisfies MaxSkew(1).
+ In other words, the cluster can still
+ be imbalanced, but scheduler won''t make
+ it *more* imbalanced. It''s a required
+ field.'
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
type: object
type: object
type: object
@@ -19554,13 +23219,12 @@ spec:
"Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
- type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are:
- \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type
- \ // +patchStrategy=merge // +listType=map // +listMapKey=type
- \ Conditions []metav1.Condition `json:\"conditions,omitempty\"
- patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
- \n // other fields }"
+ \n type FooStatus struct{ // Represents the observations of a
+ foo's current state. // Known .status.conditions.type are: \"Available\",
+ \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+ // +listType=map // +listMapKey=type Conditions []metav1.Condition
+ `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+ protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description:
@@ -19650,12 +23314,6 @@ spec:
storage: true
subresources:
status: {}
-status:
- acceptedNames:
- kind: ""
- plural: ""
- conditions: []
- storedVersions: []
---
# Source: crds/operator.tigera.io_tigerastatuses_crd.yaml
@@ -20060,7 +23718,7 @@ spec:
dnsPolicy: ClusterFirstWithHostNet
containers:
- name: tigera-operator
- image: quay.io/tigera/operator:v1.29.3
+ image: quay.io/tigera/operator:v1.30.4
imagePullPolicy: IfNotPresent
command:
- operator
@@ -20078,7 +23736,7 @@ spec:
- name: OPERATOR_NAME
value: "tigera-operator"
- name: TIGERA_OPERATOR_INIT_IMAGE_VERSION
- value: v1.29.3
+ value: v1.30.4
envFrom:
- configMapRef:
name: kubernetes-services-endpoint