780 lines
46 KiB
YAML
780 lines
46 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.13.0
|
|
name: propagationpolicies.policy.karmada.io
|
|
spec:
|
|
group: policy.karmada.io
|
|
names:
|
|
categories:
|
|
- karmada-io
|
|
kind: PropagationPolicy
|
|
listKind: PropagationPolicyList
|
|
plural: propagationpolicies
|
|
shortNames:
|
|
- pp
|
|
singular: propagationpolicy
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: PropagationPolicy represents the policy that propagates a group
|
|
of resources to one or more clusters.
|
|
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 represents the desired behavior of PropagationPolicy.
|
|
properties:
|
|
activationPreference:
|
|
description: "ActivationPreference indicates how the referencing resource
|
|
template will be propagated, in case of policy changes. \n If empty,
|
|
the resource template will respond to policy changes immediately,
|
|
in other words, any policy changes will drive the resource template
|
|
to be propagated immediately as per the current propagation rules.
|
|
\n If the value is 'Lazy' means the policy changes will not take
|
|
effect for now but defer to the resource template changes, in other
|
|
words, the resource template will not be propagated as per the current
|
|
propagation rules until there is an update on it. This is an experimental
|
|
feature that might help in a scenario where a policy manages huge
|
|
amount of resource templates, changes to a policy typically affect
|
|
numerous applications simultaneously. A minor misconfiguration could
|
|
lead to widespread failures. With this feature, the change can be
|
|
gradually rolled out through iterative modifications of resource
|
|
templates."
|
|
enum:
|
|
- Lazy
|
|
type: string
|
|
association:
|
|
description: 'Association tells if relevant resources should be selected
|
|
automatically. e.g. a ConfigMap referred by a Deployment. default
|
|
false. Deprecated: in favor of PropagateDeps.'
|
|
type: boolean
|
|
conflictResolution:
|
|
default: Abort
|
|
description: "ConflictResolution declares how potential conflict should
|
|
be handled when a resource that is being propagated already exists
|
|
in the target cluster. \n It defaults to \"Abort\" which means stop
|
|
propagating to avoid unexpected overwrites. The \"Overwrite\" might
|
|
be useful when migrating legacy cluster resources to Karmada, in
|
|
which case conflict is predictable and can be instructed to Karmada
|
|
take over the resource by overwriting."
|
|
enum:
|
|
- Abort
|
|
- Overwrite
|
|
type: string
|
|
dependentOverrides:
|
|
description: "DependentOverrides represents the list of overrides(OverridePolicy)
|
|
which must present before the current PropagationPolicy takes effect.
|
|
\n It used to explicitly specify overrides which current PropagationPolicy
|
|
rely on. A typical scenario is the users create OverridePolicy(ies)
|
|
and resources at the same time, they want to ensure the new-created
|
|
policies would be adopted. \n Note: For the overrides, OverridePolicy(ies)
|
|
in current namespace and ClusterOverridePolicy(ies), which not present
|
|
in this list will still be applied if they matches the resources."
|
|
items:
|
|
type: string
|
|
type: array
|
|
failover:
|
|
description: Failover indicates how Karmada migrates applications
|
|
in case of failures. If this value is nil, failover is disabled.
|
|
properties:
|
|
application:
|
|
description: Application indicates failover behaviors in case
|
|
of application failure. If this value is nil, failover is disabled.
|
|
If set, the PropagateDeps should be true so that the dependencies
|
|
could be migrated along with the application.
|
|
properties:
|
|
decisionConditions:
|
|
description: 'DecisionConditions indicates the decision conditions
|
|
of performing the failover process. Only when all conditions
|
|
are met can the failover process be performed. Currently,
|
|
DecisionConditions includes several conditions: - TolerationSeconds
|
|
(optional)'
|
|
properties:
|
|
tolerationSeconds:
|
|
default: 300
|
|
description: TolerationSeconds represents the period of
|
|
time Karmada should wait after reaching the desired
|
|
state before performing failover process. If not specified,
|
|
Karmada will immediately perform failover process. Defaults
|
|
to 300s.
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
gracePeriodSeconds:
|
|
description: GracePeriodSeconds is the maximum waiting duration
|
|
in seconds before application on the migrated cluster should
|
|
be deleted. Required only when PurgeMode is "Graciously"
|
|
and defaults to 600s. If the application on the new cluster
|
|
cannot reach a Healthy state, Karmada will delete the application
|
|
after GracePeriodSeconds is reached. Value must be positive
|
|
integer.
|
|
format: int32
|
|
type: integer
|
|
purgeMode:
|
|
default: Graciously
|
|
description: PurgeMode represents how to deal with the legacy
|
|
applications on the cluster from which the application is
|
|
migrated. Valid options are "Immediately", "Graciously"
|
|
and "Never". Defaults to "Graciously".
|
|
type: string
|
|
required:
|
|
- decisionConditions
|
|
type: object
|
|
type: object
|
|
placement:
|
|
description: Placement represents the rule for select clusters to
|
|
propagate resources.
|
|
properties:
|
|
clusterAffinities:
|
|
description: "ClusterAffinities represents scheduling restrictions
|
|
to multiple cluster groups that indicated by ClusterAffinityTerm.
|
|
\n The scheduler will evaluate these groups one by one in the
|
|
order they appear in the spec, the group that does not satisfy
|
|
scheduling restrictions will be ignored which means all clusters
|
|
in this group will not be selected unless it also belongs to
|
|
the next group(a cluster could belong to multiple groups). \n
|
|
If none of the groups satisfy the scheduling restrictions, then
|
|
scheduling fails, which means no cluster will be selected. \n
|
|
Note: 1. ClusterAffinities can not co-exist with ClusterAffinity.
|
|
2. If both ClusterAffinity and ClusterAffinities are not set,
|
|
any cluster can be scheduling candidates. \n Potential use case
|
|
1: The private clusters in the local data center could be the
|
|
main group, and the managed clusters provided by cluster providers
|
|
could be the secondary group. So that the Karmada scheduler
|
|
would prefer to schedule workloads to the main group and the
|
|
second group will only be considered in case of the main group
|
|
does not satisfy restrictions(like, lack of resources). \n Potential
|
|
use case 2: For the disaster recovery scenario, the clusters
|
|
could be organized to primary and backup groups, the workloads
|
|
would be scheduled to primary clusters firstly, and when primary
|
|
cluster fails(like data center power off), Karmada scheduler
|
|
could migrate workloads to the backup clusters."
|
|
items:
|
|
description: ClusterAffinityTerm selects a set of cluster.
|
|
properties:
|
|
affinityName:
|
|
description: AffinityName is the name of the cluster group.
|
|
maxLength: 32
|
|
minLength: 1
|
|
type: string
|
|
clusterNames:
|
|
description: ClusterNames is the list of clusters to be
|
|
selected.
|
|
items:
|
|
type: string
|
|
type: array
|
|
exclude:
|
|
description: ExcludedClusters is the list of clusters to
|
|
be ignored.
|
|
items:
|
|
type: string
|
|
type: array
|
|
fieldSelector:
|
|
description: FieldSelector is a filter to select member
|
|
clusters by fields. The key(field) of the match expression
|
|
should be 'provider', 'region', or 'zone', and the operator
|
|
of the match expression should be 'In' or 'NotIn'. If
|
|
non-nil and non-empty, only the clusters match this filter
|
|
will be selected.
|
|
properties:
|
|
matchExpressions:
|
|
description: A list of field selector requirements.
|
|
items:
|
|
description: A node selector requirement is a selector
|
|
that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: The label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: Represents a key's relationship to
|
|
a set of values. Valid operators are In, NotIn,
|
|
Exists, DoesNotExist. Gt, and Lt.
|
|
type: string
|
|
values:
|
|
description: An array of string values. If the
|
|
operator is In or NotIn, the values array must
|
|
be non-empty. If the operator is Exists or DoesNotExist,
|
|
the values array must be empty. If the operator
|
|
is Gt or Lt, the values array must have a single
|
|
element, which will be interpreted as an integer.
|
|
This array is replaced during a strategic merge
|
|
patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
type: object
|
|
labelSelector:
|
|
description: LabelSelector is a filter to select member
|
|
clusters by labels. If non-nil and non-empty, only the
|
|
clusters match this filter will be selected.
|
|
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
|
|
required:
|
|
- affinityName
|
|
type: object
|
|
type: array
|
|
clusterAffinity:
|
|
description: 'ClusterAffinity represents scheduling restrictions
|
|
to a certain set of clusters. Note: 1. ClusterAffinity can not
|
|
co-exist with ClusterAffinities. 2. If both ClusterAffinity
|
|
and ClusterAffinities are not set, any cluster can be scheduling
|
|
candidates.'
|
|
properties:
|
|
clusterNames:
|
|
description: ClusterNames is the list of clusters to be selected.
|
|
items:
|
|
type: string
|
|
type: array
|
|
exclude:
|
|
description: ExcludedClusters is the list of clusters to be
|
|
ignored.
|
|
items:
|
|
type: string
|
|
type: array
|
|
fieldSelector:
|
|
description: FieldSelector is a filter to select member clusters
|
|
by fields. The key(field) of the match expression should
|
|
be 'provider', 'region', or 'zone', and the operator of
|
|
the match expression should be 'In' or 'NotIn'. If non-nil
|
|
and non-empty, only the clusters match this filter will
|
|
be selected.
|
|
properties:
|
|
matchExpressions:
|
|
description: A list of field selector requirements.
|
|
items:
|
|
description: A node selector requirement is a selector
|
|
that contains values, a key, and an operator that
|
|
relates the key and values.
|
|
properties:
|
|
key:
|
|
description: The label key that the selector applies
|
|
to.
|
|
type: string
|
|
operator:
|
|
description: Represents a key's relationship to
|
|
a set of values. Valid operators are In, NotIn,
|
|
Exists, DoesNotExist. Gt, and Lt.
|
|
type: string
|
|
values:
|
|
description: An array of string values. If the operator
|
|
is In or NotIn, the values array must be non-empty.
|
|
If the operator is Exists or DoesNotExist, the
|
|
values array must be empty. If the operator is
|
|
Gt or Lt, the values array must have a single
|
|
element, which will be interpreted as an integer.
|
|
This array is replaced during a strategic merge
|
|
patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
type: object
|
|
labelSelector:
|
|
description: LabelSelector is a filter to select member clusters
|
|
by labels. If non-nil and non-empty, only the clusters match
|
|
this filter will be selected.
|
|
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
|
|
type: object
|
|
clusterTolerations:
|
|
description: ClusterTolerations represents the tolerations.
|
|
items:
|
|
description: The pod this Toleration is attached to tolerates
|
|
any taint that matches the triple <key,value,effect> using
|
|
the matching operator <operator>.
|
|
properties:
|
|
effect:
|
|
description: Effect indicates the taint effect to match.
|
|
Empty means match all taint effects. When specified, allowed
|
|
values are NoSchedule, PreferNoSchedule and NoExecute.
|
|
type: string
|
|
key:
|
|
description: Key is the taint key that the toleration applies
|
|
to. Empty means match all taint keys. If the key is empty,
|
|
operator must be Exists; this combination means to match
|
|
all values and all keys.
|
|
type: string
|
|
operator:
|
|
description: Operator represents a key's relationship to
|
|
the value. Valid operators are Exists and Equal. Defaults
|
|
to Equal. Exists is equivalent to wildcard for value,
|
|
so that a pod can tolerate all taints of a particular
|
|
category.
|
|
type: string
|
|
tolerationSeconds:
|
|
description: TolerationSeconds represents the period of
|
|
time the toleration (which must be of effect NoExecute,
|
|
otherwise this field is ignored) tolerates the taint.
|
|
By default, it is not set, which means tolerate the taint
|
|
forever (do not evict). Zero and negative values will
|
|
be treated as 0 (evict immediately) by the system.
|
|
format: int64
|
|
type: integer
|
|
value:
|
|
description: Value is the taint value the toleration matches
|
|
to. If the operator is Exists, the value should be empty,
|
|
otherwise just a regular string.
|
|
type: string
|
|
type: object
|
|
type: array
|
|
replicaScheduling:
|
|
description: ReplicaScheduling represents the scheduling policy
|
|
on dealing with the number of replicas when propagating resources
|
|
that have replicas in spec (e.g. deployments, statefulsets)
|
|
to member clusters.
|
|
properties:
|
|
replicaDivisionPreference:
|
|
description: ReplicaDivisionPreference determines how the
|
|
replicas is divided when ReplicaSchedulingType is "Divided".
|
|
Valid options are Aggregated and Weighted. "Aggregated"
|
|
divides replicas into clusters as few as possible, while
|
|
respecting clusters' resource availabilities during the
|
|
division. "Weighted" divides replicas by weight according
|
|
to WeightPreference.
|
|
enum:
|
|
- Aggregated
|
|
- Weighted
|
|
type: string
|
|
replicaSchedulingType:
|
|
default: Divided
|
|
description: ReplicaSchedulingType determines how the replicas
|
|
is scheduled when karmada propagating a resource. Valid
|
|
options are Duplicated and Divided. "Duplicated" duplicates
|
|
the same replicas to each candidate member cluster from
|
|
resource. "Divided" divides replicas into parts according
|
|
to number of valid candidate member clusters, and exact
|
|
replicas for each cluster are determined by ReplicaDivisionPreference.
|
|
enum:
|
|
- Duplicated
|
|
- Divided
|
|
type: string
|
|
weightPreference:
|
|
description: WeightPreference describes weight for each cluster
|
|
or for each group of cluster If ReplicaDivisionPreference
|
|
is set to "Weighted", and WeightPreference is not set, scheduler
|
|
will weight all clusters the same.
|
|
properties:
|
|
dynamicWeight:
|
|
description: DynamicWeight specifies the factor to generates
|
|
dynamic weight list. If specified, StaticWeightList
|
|
will be ignored.
|
|
enum:
|
|
- AvailableReplicas
|
|
type: string
|
|
staticWeightList:
|
|
description: StaticWeightList defines the static cluster
|
|
weight.
|
|
items:
|
|
description: StaticClusterWeight defines the static
|
|
cluster weight.
|
|
properties:
|
|
targetCluster:
|
|
description: TargetCluster describes the filter
|
|
to select clusters.
|
|
properties:
|
|
clusterNames:
|
|
description: ClusterNames is the list of clusters
|
|
to be selected.
|
|
items:
|
|
type: string
|
|
type: array
|
|
exclude:
|
|
description: ExcludedClusters is the list of
|
|
clusters to be ignored.
|
|
items:
|
|
type: string
|
|
type: array
|
|
fieldSelector:
|
|
description: FieldSelector is a filter to select
|
|
member clusters by fields. The key(field)
|
|
of the match expression should be 'provider',
|
|
'region', or 'zone', and the operator of the
|
|
match expression should be 'In' or 'NotIn'.
|
|
If non-nil and non-empty, only the clusters
|
|
match this filter will be selected.
|
|
properties:
|
|
matchExpressions:
|
|
description: A list of field selector requirements.
|
|
items:
|
|
description: A node selector requirement
|
|
is a selector that contains values,
|
|
a key, and an operator that relates
|
|
the key and values.
|
|
properties:
|
|
key:
|
|
description: The label key that the
|
|
selector applies to.
|
|
type: string
|
|
operator:
|
|
description: Represents a key's relationship
|
|
to a set of values. Valid operators
|
|
are In, NotIn, Exists, DoesNotExist.
|
|
Gt, and Lt.
|
|
type: string
|
|
values:
|
|
description: An array of string values.
|
|
If the operator is In or NotIn,
|
|
the values array must be non-empty.
|
|
If the operator is Exists or DoesNotExist,
|
|
the values array must be empty.
|
|
If the operator is Gt or Lt, the
|
|
values array must have a single
|
|
element, which will be interpreted
|
|
as an integer. This array is replaced
|
|
during a strategic merge patch.
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- key
|
|
- operator
|
|
type: object
|
|
type: array
|
|
type: object
|
|
labelSelector:
|
|
description: LabelSelector is a filter to select
|
|
member clusters by labels. If non-nil and
|
|
non-empty, only the clusters match this filter
|
|
will be selected.
|
|
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
|
|
type: object
|
|
weight:
|
|
description: Weight expressing the preference to
|
|
the cluster(s) specified by 'TargetCluster'.
|
|
format: int64
|
|
minimum: 1
|
|
type: integer
|
|
required:
|
|
- targetCluster
|
|
- weight
|
|
type: object
|
|
type: array
|
|
type: object
|
|
type: object
|
|
spreadConstraints:
|
|
description: SpreadConstraints represents a list of the scheduling
|
|
constraints.
|
|
items:
|
|
description: SpreadConstraint represents the spread constraints
|
|
on resources.
|
|
properties:
|
|
maxGroups:
|
|
description: MaxGroups restricts the maximum number of cluster
|
|
groups to be selected.
|
|
type: integer
|
|
minGroups:
|
|
description: MinGroups restricts the minimum number of cluster
|
|
groups to be selected. Defaults to 1.
|
|
type: integer
|
|
spreadByField:
|
|
description: 'SpreadByField represents the fields on Karmada
|
|
cluster API used for dynamically grouping member clusters
|
|
into different groups. Resources will be spread among
|
|
different cluster groups. Available fields for spreading
|
|
are: cluster, region, zone, and provider. SpreadByField
|
|
should not co-exist with SpreadByLabel. If both SpreadByField
|
|
and SpreadByLabel are empty, SpreadByField will be set
|
|
to "cluster" by system.'
|
|
enum:
|
|
- cluster
|
|
- region
|
|
- zone
|
|
- provider
|
|
type: string
|
|
spreadByLabel:
|
|
description: SpreadByLabel represents the label key used
|
|
for grouping member clusters into different groups. Resources
|
|
will be spread among different cluster groups. SpreadByLabel
|
|
should not co-exist with SpreadByField.
|
|
type: string
|
|
type: object
|
|
type: array
|
|
type: object
|
|
preemption:
|
|
default: Never
|
|
description: Preemption declares the behaviors for preempting. Valid
|
|
options are "Always" and "Never".
|
|
enum:
|
|
- Always
|
|
- Never
|
|
type: string
|
|
priority:
|
|
default: 0
|
|
description: "Priority indicates the importance of a policy(PropagationPolicy
|
|
or ClusterPropagationPolicy). A policy will be applied for the matched
|
|
resource templates if there is no other policies with higher priority
|
|
at the point of the resource template be processed. Once a resource
|
|
template has been claimed by a policy, by default it will not be
|
|
preempted by following policies even with a higher priority. See
|
|
Preemption for more details. \n In case of two policies have the
|
|
same priority, the one with a more precise matching rules in ResourceSelectors
|
|
wins: - matching by name(resourceSelector.name) has higher priority
|
|
than by selector(resourceSelector.labelSelector) - matching by selector(resourceSelector.labelSelector)
|
|
has higher priority than by APIVersion(resourceSelector.apiVersion)
|
|
and Kind(resourceSelector.kind). If there is still no winner at
|
|
this point, the one with the lower alphabetic order wins, e.g. policy
|
|
'bar' has higher priority than 'foo'. \n The higher the value, the
|
|
higher the priority. Defaults to zero."
|
|
format: int32
|
|
type: integer
|
|
propagateDeps:
|
|
description: "PropagateDeps tells if relevant resources should be
|
|
propagated automatically. Take 'Deployment' which referencing 'ConfigMap'
|
|
and 'Secret' as an example, when 'propagateDeps' is 'true', the
|
|
referencing resources could be omitted(for saving config effort)
|
|
from 'resourceSelectors' as they will be propagated along with the
|
|
Deployment. In addition to the propagating process, the referencing
|
|
resources will be migrated along with the Deployment in the fail-over
|
|
scenario. \n Defaults to false."
|
|
type: boolean
|
|
resourceSelectors:
|
|
description: ResourceSelectors used to select resources. Nil or empty
|
|
selector is not allowed and doesn't mean match all kinds of resources
|
|
for security concerns that sensitive resources(like Secret) might
|
|
be accidentally propagated.
|
|
items:
|
|
description: ResourceSelector the resources will be selected.
|
|
properties:
|
|
apiVersion:
|
|
description: APIVersion represents the API version of the target
|
|
resources.
|
|
type: string
|
|
kind:
|
|
description: Kind represents the Kind of the target resources.
|
|
type: string
|
|
labelSelector:
|
|
description: A label query over a set of resources. If name
|
|
is not empty, labelSelector will be ignored.
|
|
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
|
|
name:
|
|
description: Name of the target resource. Default is empty,
|
|
which means selecting all resources.
|
|
type: string
|
|
namespace:
|
|
description: Namespace of the target resource. Default is empty,
|
|
which means inherit from the parent object scope.
|
|
type: string
|
|
required:
|
|
- apiVersion
|
|
- kind
|
|
type: object
|
|
minItems: 1
|
|
type: array
|
|
schedulerName:
|
|
default: default-scheduler
|
|
description: SchedulerName represents which scheduler to proceed the
|
|
scheduling. If specified, the policy will be dispatched by specified
|
|
scheduler. If not specified, the policy will be dispatched by default
|
|
scheduler.
|
|
type: string
|
|
required:
|
|
- resourceSelectors
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|