charts/hub-agent/crdbases/fleet.azure.com_clusterresourceplacements.yaml (437 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.0
name: clusterresourceplacements.fleet.azure.com
spec:
group: fleet.azure.com
names:
categories:
- fleet-workload
kind: ClusterResourcePlacement
listKind: ClusterResourcePlacementList
plural: clusterresourceplacements
shortNames:
- crp
singular: clusterresourceplacement
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.generation
name: Gen
type: string
- jsonPath: .status.conditions[?(@.type=="Scheduled")].status
name: Scheduled
type: string
- jsonPath: .status.conditions[?(@.type=="Scheduled")].observedGeneration
name: ScheduledGen
type: string
- jsonPath: .status.conditions[?(@.type=="Applied")].status
name: Applied
type: string
- jsonPath: .status.conditions[?(@.type=="Applied")].observedGeneration
name: AppliedGen
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ClusterResourcePlacement is used to select cluster scoped resources, including built-in resources and custom resources, and placement them onto selected member clusters in a fleet.
If a namespace is selected, ALL the resources under the namespace are placed to the target clusters.
Note that you can't select the following resources:
- reserved namespaces including: default, kube-* (reserved for Kubernetes system namespaces), fleet-* (reserved for fleet system namespaces).
- reserved fleet resource types including: MemberCluster, InternalMemberCluster, ClusterResourcePlacement, MultiClusterService, ServiceImport, etc.
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: The desired state of ClusterResourcePlacement.
properties:
policy:
description: |-
Policy defines how to select member clusters to place the selected resources.
If unspecified, all the joined member clusters are selected.
properties:
affinity:
description: Affinity contains cluster affinity scheduling rules.
Defines which member clusters to place the selected resources.
properties:
clusterAffinity:
description: ClusterAffinity contains cluster affinity scheduling
rules for the selected resources.
properties:
clusterSelectorTerms:
description: ClusterSelectorTerms is a list of cluster
selector terms. The terms are `ORed`.
items:
description: ClusterSelectorTerm contains the requirements
to select clusters.
properties:
labelSelector:
description: LabelSelector is a label query over
all the joined member clusters. Clusters matching
the query are 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
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
required:
- labelSelector
type: object
maxItems: 10
type: array
type: object
type: object
clusterNames:
description: |-
ClusterNames contains a list of names of MemberCluster to place the selected resources.
If the list is not empty, Affinity is ignored.
items:
type: string
maxItems: 100
type: array
type: object
resourceSelectors:
description: |-
ResourceSelectors is an array of selectors used to select cluster scoped resources. The selectors are `ORed`.
You can have 1-100 selectors.
items:
description: |-
ClusterResourceSelector is used to select cluster scoped resources as the target resources to be placed.
If a namespace is selected, ALL the resources under the namespace are selected automatically.
All the fields are `ANDed`. In other words, a resource must match all the fields to be selected.
properties:
group:
description: |-
Group name of the cluster-scoped resource.
Use an empty string to select resources under the core API group (e.g., namespaces).
type: string
kind:
description: |-
Kind of the cluster-scoped resource.
Note: When `Kind` is `namespace`, ALL the resources under the selected namespaces are selected.
type: string
labelSelector:
description: |-
A label query over all the cluster-scoped resources. Resources matching the query are selected.
Note that namespace-scoped resources can't be selected even if they match the query.
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
name:
description: Name of the cluster-scoped resource.
type: string
version:
description: Version of the cluster-scoped resource.
type: string
required:
- group
- kind
- version
type: object
maxItems: 100
minItems: 1
type: array
required:
- resourceSelectors
type: object
status:
description: The observed status of ClusterResourcePlacement.
properties:
conditions:
description: Conditions is an array of current observed conditions
for ClusterResourcePlacement.
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
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.
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
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
failedPlacements:
description: |-
FailedResourcePlacements is a list of all the resources failed to be placed to the given clusters.
Note that we only include 1000 failed resource placements even if there are more than 1000.
items:
description: FailedResourcePlacement contains the failure details
of a failed resource placement.
properties:
clusterName:
description: Name of the member cluster that the resource is
placed to.
type: string
condition:
description: The failed condition status.
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.
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
group:
description: Group is the group name of the selected resource.
type: string
kind:
description: Kind represents the Kind of the selected resources.
type: string
name:
description: Name of the target resource.
type: string
namespace:
description: Namespace is the namespace of the resource. Empty
if the resource is cluster scoped.
type: string
version:
description: Version is the version of the selected resource.
type: string
required:
- clusterName
- condition
- kind
- name
- version
type: object
maxItems: 1000
type: array
selectedResources:
description: SelectedResources contains a list of resources selected
by ResourceSelectors.
items:
description: ResourceIdentifier identifies one Kubernetes resource.
properties:
group:
description: Group is the group name of the selected resource.
type: string
kind:
description: Kind represents the Kind of the selected resources.
type: string
name:
description: Name of the target resource.
type: string
namespace:
description: Namespace is the namespace of the resource. Empty
if the resource is cluster scoped.
type: string
version:
description: Version is the version of the selected resource.
type: string
required:
- kind
- name
- version
type: object
type: array
targetClusters:
description: |-
TargetClusters contains a list of names of member clusters selected by PlacementPolicy.
Note that the clusters must be both joined and meeting PlacementPolicy.
items:
type: string
type: array
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}