charts/hub-agent/templates/crds/placement.kubernetes-fleet.io_clusterresourceplacementevictions.yaml (318 lines of code) (raw):

--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.0 name: clusterresourceplacementevictions.placement.kubernetes-fleet.io spec: group: placement.kubernetes-fleet.io names: categories: - fleet - fleet-placement kind: ClusterResourcePlacementEviction listKind: ClusterResourcePlacementEvictionList plural: clusterresourceplacementevictions shortNames: - crpe singular: clusterresourceplacementeviction scope: Cluster versions: - name: v1alpha1 schema: openAPIV3Schema: description: |- ClusterResourcePlacementEviction is an eviction attempt on a specific placement from a ClusterResourcePlacement object; one may use this API to force the removal of specific resources from a cluster. An eviction is a voluntary disruption; its execution is subject to the disruption budget linked with the target ClusterResourcePlacement object (if present). Beware that an eviction alone does not guarantee that a placement will not re-appear; i.e., after an eviction, the Fleet scheduler might still pick the previous target cluster for placement. To prevent this, considering adding proper taints to the target cluster before running an eviction that will exclude it from future placements; this is especially true in scenarios where one would like to perform a cluster replacement. For safety reasons, Fleet will only execute an eviction once; the spec in this object is immutable, and once executed, the object will be ignored after. To trigger another eviction attempt on the same placement from the same ClusterResourcePlacement object, one must re-create (delete and create) the same Eviction object. Note also that an Eviction object will be ignored once it is deemed invalid (e.g., such an object might be targeting a CRP object or a placement that does not exist yet), even if it does become valid later (e.g., the CRP object or the placement appears later). To fix the situation, re-create the Eviction object. Note: Eviction of resources from a cluster propagated by a PickFixed CRP is not allowed. If the user wants to remove resources from a cluster propagated by a PickFixed CRP simply remove the cluster name from cluster names field from the CRP spec. Executed evictions might be kept around for a while for auditing purposes; the Fleet controllers might have a TTL set up for such objects and will garbage collect them automatically. For further information, see the Fleet documentation. 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 is the desired state of the ClusterResourcePlacementEviction. Note that all fields in the spec are immutable. properties: clusterName: description: ClusterName is the name of the cluster that the Eviction object targets. maxLength: 255 type: string x-kubernetes-validations: - message: The ClusterName field is immutable rule: self == oldSelf placementName: description: |- PlacementName is the name of the Placement object which the Eviction object targets. maxLength: 255 type: string x-kubernetes-validations: - message: The PlacementName field is immutable rule: self == oldSelf required: - clusterName - placementName type: object status: description: Status is the observed state of the ClusterResourcePlacementEviction. properties: conditions: description: |- Conditions is the list of currently observed conditions for the PlacementEviction object. Available condition types include: * Valid: whether the Eviction object is valid, i.e., it targets at a valid placement. * Executed: whether the Eviction object has been executed. 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 type: object required: - spec type: object served: true storage: false subresources: status: {} - additionalPrinterColumns: - jsonPath: .status.conditions[?(@.type=="Valid")].status name: Valid type: string - jsonPath: .status.conditions[?(@.type=="Executed")].status name: Executed type: string name: v1beta1 schema: openAPIV3Schema: description: |- ClusterResourcePlacementEviction is an eviction attempt on a specific placement from a ClusterResourcePlacement object; one may use this API to force the removal of specific resources from a cluster. An eviction is a voluntary disruption; its execution is subject to the disruption budget linked with the target ClusterResourcePlacement object (if present). Beware that an eviction alone does not guarantee that a placement will not re-appear; i.e., after an eviction, the Fleet scheduler might still pick the previous target cluster for placement. To prevent this, considering adding proper taints to the target cluster before running an eviction that will exclude it from future placements; this is especially true in scenarios where one would like to perform a cluster replacement. For safety reasons, Fleet will only execute an eviction once; the spec in this object is immutable, and once executed, the object will be ignored after. To trigger another eviction attempt on the same placement from the same ClusterResourcePlacement object, one must re-create (delete and create) the same Eviction object. Note also that an Eviction object will be ignored once it is deemed invalid (e.g., such an object might be targeting a CRP object or a placement that does not exist yet), even if it does become valid later (e.g., the CRP object or the placement appears later). To fix the situation, re-create the Eviction object. Note: Eviction of resources from a cluster propagated by a PickFixed CRP is not allowed. If the user wants to remove resources from a cluster propagated by a PickFixed CRP simply remove the cluster name from cluster names field from the CRP spec. Executed evictions might be kept around for a while for auditing purposes; the Fleet controllers might have a TTL set up for such objects and will garbage collect them automatically. For further information, see the Fleet documentation. 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 is the desired state of the ClusterResourcePlacementEviction. Note that all fields in the spec are immutable. properties: clusterName: description: ClusterName is the name of the cluster that the Eviction object targets. maxLength: 255 type: string x-kubernetes-validations: - message: The ClusterName field is immutable rule: self == oldSelf placementName: description: |- PlacementName is the name of the Placement object which the Eviction object targets. maxLength: 255 type: string x-kubernetes-validations: - message: The PlacementName field is immutable rule: self == oldSelf required: - clusterName - placementName type: object status: description: Status is the observed state of the ClusterResourcePlacementEviction. properties: conditions: description: |- Conditions is the list of currently observed conditions for the PlacementEviction object. Available condition types include: * Valid: whether the Eviction object is valid, i.e., it targets at a valid placement. * Executed: whether the Eviction object has been executed. 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 type: object required: - spec type: object served: true storage: true subresources: status: {}