config/crd/bases/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: {}