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

1748 lines
111 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.13.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
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. \n This is an alpha field and requires
enabling the DynamicResourceAllocation feature gate.
\n 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:
claims:
description: "Claims lists the names of
resources, defined in spec.resourceClaims,
that are used by this container. \n
This is an alpha field and requires
enabling the DynamicResourceAllocation
feature gate. \n 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
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
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). \n 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. \n 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
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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). \n 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. \n 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
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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'.
\n 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). \n 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. \n 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
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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). \n 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. \n
For supported flags, please see https://karmada.io/docs/reference/components/karmada-descheduler
for details."
type: object
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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). \n 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. \n For supported flags, please see https://karmada.io/docs/reference/components/karmada-metrics-adapter
for details."
type: object
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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). \n 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. \n
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
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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). \n 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. \n For supported flags,
please see https://karmada.io/docs/reference/components/karmada-search
for details."
type: object
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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). \n 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. \n For supported flags,
please see https://karmada.io/docs/reference/components/karmada-webhook
for details."
type: object
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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'.
\n 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. \n 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. \n 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
\n 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). \n 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. \n 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
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.
\n This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate. \n 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
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. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
\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: 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: {}