karmada/operator/config/crds/operator.karmada.io_karmada...

1929 lines
115 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
name: karmadas.operator.karmada.io
spec:
group: operator.karmada.io
names:
categories:
- karmada-io
kind: Karmada
listKind: KarmadaList
plural: karmadas
singular: karmada
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: READY
type: string
- jsonPath: .metadata.creationTimestamp
name: AGE
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: Karmada enables declarative installation of karmada.
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: Spec defines the desired behavior of the Karmada.
properties:
components:
description: |-
Components define all of karmada components.
not all of these components need to be installed.
properties:
etcd:
description: Etcd holds configuration for etcd.
properties:
external:
description: |-
External describes how to connect to an external etcd cluster
Local and External are mutually exclusive
properties:
caData:
description: |-
CAData is an SSL Certificate Authority file used to secure etcd communication.
Required if using a TLS connection.
format: byte
type: string
certData:
description: |-
CertData is an SSL certification file used to secure etcd communication.
Required if using a TLS connection.
format: byte
type: string
endpoints:
description: Endpoints of etcd members. Required for ExternalEtcd.
items:
type: string
type: array
keyData:
description: |-
KeyData is an SSL key file used to secure etcd communication.
Required if using a TLS connection.
format: byte
type: string
required:
- caData
- certData
- endpoints
- keyData
type: object
local:
description: |-
Local provides configuration knobs for configuring the built-in etcd instance
Local and External are mutually exclusive
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
peerCertSANs:
description: PeerCertSANs sets extra Subject Alternative
Names for the etcd peer signing cert.
items:
type: string
type: array
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry
in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
serverCertSANs:
description: ServerCertSANs sets extra Subject Alternative
Names for the etcd server signing cert.
items:
type: string
type: array
volumeData:
description: |-
VolumeData describes the settings of etcd data store.
We will support 3 modes: emptyDir, hostPath, PVC. default by hostPath.
properties:
emptyDir:
description: |-
EmptyDir represents a temporary directory that shares a pod's lifetime.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
properties:
medium:
description: |-
medium represents what type of storage medium should back this directory.
The default is "" which means to use the node's default medium.
Must be an empty string (default) or Memory.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
type: string
sizeLimit:
anyOf:
- type: integer
- type: string
description: |-
sizeLimit is the total amount of local storage required for this EmptyDir volume.
The size limit is also applicable for memory medium.
The maximum usage on memory medium EmptyDir would be the minimum value between
the SizeLimit specified here and the sum of memory limits of all containers in a pod.
The default is nil which means that the limit is undefined.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
hostPath:
description: |-
HostPath represents a pre-existing file or directory on the host
machine that is directly exposed to the container. This is generally
used for system agents or other privileged things that are allowed
to see the host machine. Most containers will NOT need this.
More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
---
TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
mount host directories as read/write.
properties:
path:
description: |-
path of the directory on the host.
If the path is a symlink, it will follow the link to the real path.
More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
type: string
type:
description: |-
type for HostPath Volume
Defaults to ""
More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
type: string
required:
- path
type: object
volumeClaim:
description: |-
The specification for the PersistentVolumeClaim. The entire content is
copied unchanged into the PVC that gets created from this
template. The same fields as in a PersistentVolumeClaim
are also valid here.
properties:
metadata:
description: |-
May contain labels and annotations that will be copied into the PVC
when creating it. No other fields are allowed and will be rejected during
validation.
properties:
annotations:
additionalProperties:
type: string
type: object
finalizers:
items:
type: string
type: array
labels:
additionalProperties:
type: string
type: object
name:
type: string
namespace:
type: string
type: object
spec:
description: |-
The specification for the PersistentVolumeClaim. The entire content is
copied unchanged into the PVC that gets created from this
template. The same fields as in a PersistentVolumeClaim
are also valid here.
properties:
accessModes:
description: |-
accessModes contains the desired access modes the volume should have.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
items:
type: string
type: array
dataSource:
description: |-
dataSource field can be used to specify either:
* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
* An existing PVC (PersistentVolumeClaim)
If the provisioner or an external controller can support the specified data source,
it will create a new volume based on the contents of the specified data source.
When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
If the namespace is specified, then dataSourceRef will not be copied to dataSource.
properties:
apiGroup:
description: |-
APIGroup is the group for the resource being referenced.
If APIGroup is not specified, the specified Kind must be in the core API group.
For any other third-party types, APIGroup is required.
type: string
kind:
description: Kind is the type of resource
being referenced
type: string
name:
description: Name is the name of resource
being referenced
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
dataSourceRef:
description: |-
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
volume is desired. This may be any object from a non-empty API group (non
core object) or a PersistentVolumeClaim object.
When this field is specified, volume binding will only succeed if the type of
the specified object matches some installed volume populator or dynamic
provisioner.
This field will replace the functionality of the dataSource field and as such
if both fields are non-empty, they must have the same value. For backwards
compatibility, when namespace isn't specified in dataSourceRef,
both fields (dataSource and dataSourceRef) will be set to the same
value automatically if one of them is empty and the other is non-empty.
When namespace is specified in dataSourceRef,
dataSource isn't set to the same value and must be empty.
There are three important differences between dataSource and dataSourceRef:
* While dataSource only allows two specific types of objects, dataSourceRef
allows any non-core object, as well as PersistentVolumeClaim objects.
* While dataSource ignores disallowed values (dropping them), dataSourceRef
preserves all values, and generates an error if a disallowed value is
specified.
* While dataSource only allows local objects, dataSourceRef allows objects
in any namespaces.
(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
properties:
apiGroup:
description: |-
APIGroup is the group for the resource being referenced.
If APIGroup is not specified, the specified Kind must be in the core API group.
For any other third-party types, APIGroup is required.
type: string
kind:
description: Kind is the type of resource
being referenced
type: string
name:
description: Name is the name of resource
being referenced
type: string
namespace:
description: |-
Namespace is the namespace of resource being referenced
Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
(Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
type: string
required:
- kind
- name
type: object
resources:
description: |-
resources represents the minimum resources the volume should have.
If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
that are lower than previous value but must still be higher than capacity recorded in the
status field of the claim.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
selector:
description: selector is a label query over
volumes to consider for binding.
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
storageClassName:
description: |-
storageClassName is the name of the StorageClass required by the claim.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
type: string
volumeAttributesClassName:
description: |-
volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
If specified, the CSI driver will create or update the volume with the attributes defined
in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
will be set by the persistentvolume controller if it exists.
If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
exists.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass
(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
type: string
volumeMode:
description: |-
volumeMode defines what type of volume is required by the claim.
Value of Filesystem is implied when not included in claim spec.
type: string
volumeName:
description: volumeName is the binding reference
to the PersistentVolume backing this claim.
type: string
type: object
required:
- spec
type: object
type: object
type: object
type: object
karmadaAPIServer:
description: |-
KarmadaAPIServer holds settings to kube-apiserver component. Currently, kube-apiserver
is used as the apiserver of karmada. we had the same experience as k8s apiserver.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
certSANs:
description: CertSANs sets extra Subject Alternative Names
for the API Server signing cert.
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the kube-apiserver component or
override. A key in this map is the flag name as it appears on the command line except
without leading dash(es).
Note: This is a temporary solution to allow for the configuration of the
kube-apiserver component. In the future, we will provide a more structured way
to configure the component. Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
for details.
type: object
featureGates:
additionalProperties:
type: boolean
description: |-
FeatureGates enabled by the user.
More info: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
serviceAnnotations:
additionalProperties:
type: string
description: |-
ServiceAnnotations is an extra set of annotations for service of karmada apiserver.
more info: https://github.com/karmada-io/karmada/issues/4634
type: object
serviceSubnet:
description: ServiceSubnet is the subnet used by k8s services.
Defaults to "10.96.0.0/12".
type: string
serviceType:
description: |-
ServiceType represents the service type of karmada apiserver.
it is ClusterIP by default.
type: string
type: object
karmadaAggregatedAPIServer:
description: KarmadaAggregatedAPIServer holds settings to karmada-aggregated-apiserver
component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
certSANs:
description: CertSANs sets extra Subject Alternative Names
for the API Server signing cert.
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-aggregated-apiserver component or
override. A key in this map is the flag name as it appears on the command line except
without leading dash(es).
Note: This is a temporary solution to allow for the configuration of the
karmada-aggregated-apiserver component. In the future, we will provide a more structured way
to configure the component. Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-aggregated-apiserver
for details.
type: object
featureGates:
additionalProperties:
type: boolean
description: |-
FeatureGates enabled by the user.
- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
karmadaControllerManager:
description: KarmadaControllerManager holds settings to karmada-controller-manager
component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
controllers:
description: |-
A list of controllers to enable. '*' enables all on-by-default controllers,
'foo' enables the controller named 'foo', '-foo' disables the controller named
'foo'.
All controllers: binding, cluster, clusterStatus, endpointSlice, execution,
federatedResourceQuotaStatus, federatedResourceQuotaSync, hpa, namespace,
serviceExport, serviceImport, unifiedAuth, workStatus.
Disabled-by-default controllers: hpa (default [*])
Actual Supported controllers depend on the version of Karmada. See
https://karmada.io/docs/administrator/configuration/configure-controllers#configure-karmada-controllers
for details.
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-controller-manager component or
override. A key in this map is the flag name as it appears on the command line except
without leading dash(es).
Note: This is a temporary solution to allow for the configuration of the
karmada-controller-manager component. In the future, we will provide a more structured way
to configure the component. Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-controller-manager
for details.
type: object
featureGates:
additionalProperties:
type: boolean
description: |-
FeatureGates enabled by the user.
- Failover: https://karmada.io/docs/userguide/failover/#failover
- GracefulEviction: https://karmada.io/docs/userguide/failover/#graceful-eviction-feature
- PropagateDeps: https://karmada.io/docs/userguide/scheduling/propagate-dependencies
- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
karmadaDescheduler:
description: KarmadaDescheduler holds settings to karmada-descheduler
component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-descheduler component or override.
A key in this map is the flag name as it appears on the command line except without
leading dash(es).
Note: This is a temporary solution to allow for the configuration of the karmada-descheduler
component. In the future, we will provide a more structured way to configure the component.
Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-descheduler
for details.
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
karmadaMetricsAdapter:
description: KarmadaMetricsAdapter holds settings to karmada metrics
adapter component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-metrics-adapter component or override.
A key in this map is the flag name as it appears on the command line except without
leading dash(es).
Note: This is a temporary solution to allow for the configuration of the karmada-metrics-adapter
component. In the future, we will provide a more structured way to configure the component.
Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-metrics-adapter
for details.
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
karmadaScheduler:
description: KarmadaScheduler holds settings to karmada-scheduler
component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-scheduler component or override.
A key in this map is the flag name as it appears on the command line except without
leading dash(es).
Note: This is a temporary solution to allow for the configuration of the karmada-scheduler
component. In the future, we will provide a more structured way to configure the component.
Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-scheduler
for details.
type: object
featureGates:
additionalProperties:
type: boolean
description: |-
FeatureGates enabled by the user.
- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
karmadaSearch:
description: KarmadaSearch holds settings to karmada search component
of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-search component or override.
A key in this map is the flag name as it appears on the command line except without
leading dash(es).
Note: This is a temporary solution to allow for the configuration of the karmada-search
component. In the future, we will provide a more structured way to configure the component.
Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-search
for details.
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
karmadaWebhook:
description: KarmadaWebhook holds settings to karmada-webhook
component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the karmada-webhook component or
override. A key in this map is the flag name as it appears on the command line except
without leading dash(es).
Note: This is a temporary solution to allow for the configuration of the
karmada-webhook component. In the future, we will provide a more structured way
to configure the component. Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://karmada.io/docs/reference/components/karmada-webhook
for details.
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
kubeControllerManager:
description: KubeControllerManager holds settings to kube-controller-manager
component of the karmada.
properties:
annotations:
additionalProperties:
type: string
description: |-
Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: http://kubernetes.io/docs/user-guide/annotations
type: object
controllers:
description: |-
A list of controllers to enable. '*' enables all on-by-default controllers,
'foo' enables the controller named 'foo', '-foo' disables the controller named
'foo'.
All controllers: attachdetach, bootstrapsigner, cloud-node-lifecycle,
clusterrole-aggregation, cronjob, csrapproving, csrcleaner, csrsigning,
daemonset, deployment, disruption, endpoint, endpointslice,
endpointslicemirroring, ephemeral-volume, garbagecollector,
horizontalpodautoscaling, job, namespace, nodeipam, nodelifecycle,
persistentvolume-binder, persistentvolume-expander, podgc, pv-protection,
pvc-protection, replicaset, replicationcontroller, resourcequota,
root-ca-cert-publisher, route, service, serviceaccount, serviceaccount-token,
statefulset, tokencleaner, ttl, ttl-after-finished
Disabled-by-default controllers: bootstrapsigner, tokencleaner (default [*])
Actual Supported controllers depend on the version of Kubernetes. See
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/
for details.
However, Karmada uses Kubernetes Native API definitions for federated resource template,
so it doesn't need enable some resource related controllers like daemonset, deployment etc.
On the other hand, Karmada leverages the capabilities of the Kubernetes controller to
manage the lifecycle of the federated resource, so it needs to enable some controllers.
For example, the `namespace` controller is used to manage the lifecycle of the namespace
and the `garbagecollector` controller handles automatic clean-up of redundant items in
your karmada.
According to the user feedback and karmada requirements, the following controllers are
enabled by default: namespace, garbagecollector, serviceaccount-token, ttl-after-finished,
bootstrapsigner,csrapproving,csrcleaner,csrsigning. See
https://karmada.io/docs/administrator/configuration/configure-controllers#kubernetes-controllers
Others are disabled by default. If you want to enable or disable other controllers, you
have to explicitly specify all the controllers that kube-controller-manager should enable
at startup phase.
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: |-
ExtraArgs is an extra set of flags to pass to the kube-controller-manager component or
override. A key in this map is the flag name as it appears on the command line except
without leading dash(es).
Note: This is a temporary solution to allow for the configuration of the
kube-controller-manager component. In the future, we will provide a more structured way
to configure the component. Once that is done, this field will be discouraged to be used.
Incorrect settings on this field maybe lead to the corresponding component in an unhealthy
state. Before you do it, please confirm that you understand the risks of this configuration.
For supported flags, please see
https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/
for details.
type: object
featureGates:
additionalProperties:
type: boolean
description: |-
FeatureGates enabled by the user.
More info: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/
type: object
imagePullPolicy:
description: |-
ImagePullPolicy defines the policy for pulling the container image.
If not specified, it defaults to IfNotPresent.
type: string
imageRepository:
description: |-
ImageRepository sets the container registry to pull images from.
if not set, the ImageRepository defined in KarmadaSpec will be used instead.
type: string
imageTag:
description: |-
ImageTag allows to specify a tag for the image.
In case this value is set, operator does not change automatically the version
of the above components during upgrades.
type: string
labels:
additionalProperties:
type: string
description: |-
Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: http://kubernetes.io/docs/user-guide/labels
type: object
replicas:
description: |-
Number of desired pods. This is a pointer to distinguish between explicit
zero and not specified. Defaults to 1.
format: int32
type: integer
resources:
description: |-
Compute Resources required by this component.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
properties:
claims:
description: |-
Claims lists the names of resources, defined in spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: |-
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource available
inside a container.
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
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. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
type: object
type: object
crdTarball:
description: |-
CRDTarball specifies the source from which the Karmada CRD tarball should be downloaded, along with the download policy to use.
If not set, the operator will download the tarball from a GitHub release.
By default, it will download the tarball of the same version as the operator itself.
For instance, if the operator's version is v1.10.0, the tarball will be downloaded from the following location:
https://github.com/karmada-io/karmada/releases/download/v1.10.0/crds.tar.gz
By default, the operator will only attempt to download the tarball if it's not yet present in the local cache.
properties:
crdDownloadPolicy:
default: IfNotPresent
description: |-
CRDDownloadPolicy specifies a policy that should be used to download the CRD tarball.
Valid values are "Always" and "IfNotPresent".
Defaults to "IfNotPresent".
enum:
- Always
- IfNotPresent
type: string
httpSource:
description: HTTPSource specifies how to download the CRD tarball
via either HTTP or HTTPS protocol.
properties:
url:
description: URL specifies the URL of the CRD tarball resource.
type: string
type: object
type: object
featureGates:
additionalProperties:
type: boolean
description: |-
FeatureGates enabled by the user.
- Failover: https://karmada.io/docs/userguide/failover/#failover
- GracefulEviction: https://karmada.io/docs/userguide/failover/#graceful-eviction-feature
- PropagateDeps: https://karmada.io/docs/userguide/scheduling/propagate-dependencies
- CustomizedClusterResourceModeling: https://karmada.io/docs/userguide/scheduling/cluster-resources#start-to-use-cluster-resource-models
More info: https://github.com/karmada-io/karmada/blob/master/pkg/features/features.go
type: object
hostCluster:
description: |-
HostCluster represents the cluster where to install the Karmada control plane.
If not set, the control plane will be installed on the cluster where
running the operator.
properties:
apiEndpoint:
description: |-
APIEndpoint is the API endpoint of the cluster where deploy Karmada
control plane on.
This can be a hostname, hostname:port, IP or IP:port.
type: string
networking:
description: Networking holds configuration for the networking
topology of the cluster.
properties:
dnsDomain:
description: DNSDomain is the dns domain used by k8s services.
Defaults to "cluster.local".
type: string
type: object
secretRef:
description: |-
SecretRef represents the secret contains mandatory credentials to
access the cluster.
The secret should hold credentials as follows:
- secret.data.token
- secret.data.caBundle
properties:
name:
description: Name is the name of resource being referenced.
type: string
namespace:
description: Namespace is the namespace for the resource being
referenced.
type: string
type: object
type: object
privateRegistry:
description: |-
PrivateRegistry is the global image registry.
If set, the operator will pull all required images from it, no matter
the image is maintained by Karmada or Kubernetes.
It will be useful for offline installation to specify an accessible registry.
properties:
registry:
description: |-
Registry is the image registry hostname, like:
- docker.io
- fictional.registry.example
type: string
required:
- registry
type: object
type: object
status:
description: Most recently observed status of the Karmada.
properties:
conditions:
description: Conditions represents the latest available observations
of a karmada's current state.
items:
description: "Condition contains details for one aspect of the current
state of this API Resource.\n---\nThis struct is intended for
direct use as an array at the field path .status.conditions. For
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
observations of a foo's current state.\n\t // Known .status.conditions.type
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
\ // other fields\n\t}"
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: |-
type of condition in CamelCase or in foo.example.com/CamelCase.
---
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
useful (see .node.status.conditions), the ability to deconflict is important.
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
karmadaVersion:
description: KarmadaVersion represent the karmada version.
type: string
kubernetesVersion:
description: KubernetesVersion represent the karmada-apiserver version.
type: string
observedGeneration:
description: ObservedGeneration is the last observed generation.
format: int64
type: integer
secretRef:
description: after the karmada installed, restore the kubeconfig to
secret.
properties:
name:
description: Name is the name of resource being referenced.
type: string
namespace:
description: Namespace is the namespace for the resource being
referenced.
type: string
type: object
type: object
type: object
served: true
storage: true
subresources:
status: {}