--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: zonedisruptionbudgets.zonecontrol.k8s.aws spec: group: zonecontrol.k8s.aws names: kind: ZoneDisruptionBudget listKind: ZoneDisruptionBudgetList plural: zonedisruptionbudgets shortNames: - zdb singular: zonedisruptionbudget scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: ZoneDisruptionBudget is the Schema for the zonedisruptionbudgets API 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: ZoneDisruptionBudgetSpec defines the desired state of ZoneDisruptionBudget properties: dryRun: description: Dryn-run mode that can be used to test the new controller before enable it type: boolean maxUnavailable: anyOf: - type: integer - type: string description: Evict pod specification is allowed if at most "maxUnavailable" pods selected by "selector" are unavailable in the same zone after the above operation for pod. Evictions are not allowed if there are unavailable pods in other zones. x-kubernetes-int-or-string: true selector: description: Selector label query over pods managed by the budget 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 status: description: ZoneDisruptionBudgetStatus defines the observed state of ZoneDisruptionBudget properties: currentHealthy: additionalProperties: format: int32 type: integer description: Current number of healthy pods per zone type: object currentUnhealthy: additionalProperties: format: int32 type: integer description: Current number of unhealthy pods per zone type: object desiredHealthy: additionalProperties: format: int32 type: integer description: Minimum desired number of healthy pods per zone type: object disruptedPods: additionalProperties: format: date-time type: string description: DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the ZoneDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by ZDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by ZoneDisruptionBudget controller after some time. type: object disruptionsAllowed: additionalProperties: format: int32 type: integer description: Number of pod disruptions that are currently allowed *per zone* type: object expectedPods: additionalProperties: format: int32 type: integer description: Total number of expected replicas per zone type: object observedGeneration: description: Most recent generation observed when updating this ZDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to ZDB's object generation. format: int64 type: integer type: object type: object served: true storage: true subresources: status: {}