diff --git a/artifacts/deploy/membercluster.karmada.io_memberclusters.yaml b/artifacts/deploy/membercluster.karmada.io_memberclusters.yaml index 2b75bafed..2e186fe40 100644 --- a/artifacts/deploy/membercluster.karmada.io_memberclusters.yaml +++ b/artifacts/deploy/membercluster.karmada.io_memberclusters.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null name: memberclusters.membercluster.karmada.io spec: @@ -15,220 +15,223 @@ spec: plural: memberclusters singular: membercluster scope: Namespaced - validation: - openAPIV3Schema: - description: MemberCluster represents the desire state and status of a member - cluster. - 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 specification of the desired behavior of - member cluster. - properties: - accepted: - description: Accepted represents if the member cluster has been accepted - by control plane. Default value is false. If member cluster working - in 'Delegation' mode, this always be true. If member cluster working - in 'SelfManagement' mode, this will turn to true only after administrator - accepted the request from member cluster. - type: boolean - apiEndpoint: - description: The API endpoint of the member cluster. This can be a hostname, - hostname:port, IP or IP:port. - type: string - manageMode: - description: ManageMode specifies the relationship between control plane - and member cluster, the mode determines how to reach each other. - type: string - provider: - description: Provider represents the cloud provider name of the member - cluster. - type: string - region: - description: Region represents the region of the member cluster locate - in. - type: string - secretRef: - description: 'SecretRef represents the secret contains mandatory credentials - to access the member cluster. The secret should hold credentials as - follows: - secret.data.token - secret.data.caBundle' - properties: - name: - description: Name is the name of resource being referenced. - type: string - namespace: - description: Namespace is the namespace for the resource being referenced. - type: string - required: - - name - - namespace - type: object - taints: - description: Taints attached to the member cluster. Taints on the cluster - have the "effect" on any resource that does not tolerate the Taint. - items: - description: The node this Taint is attached to has the "effect" on - any pod that does not tolerate the Taint. - properties: - effect: - description: Required. The effect of the taint on pods that do - not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule - and NoExecute. - type: string - key: - description: Required. The taint key to be applied to a node. - type: string - timeAdded: - description: TimeAdded represents the time at which the taint - was added. It is only written for NoExecute taints. - format: date-time - type: string - value: - description: The taint value corresponding to the taint key. - type: string - required: - - effect - - key - type: object - type: array - zone: - description: Zone represents the zone of the member cluster locate in. - type: string - type: object - status: - description: Status represents the status of member cluster. - properties: - apiEnablement: - description: APIEnablement represents the list of APIs installed in - the member cluster. - items: - description: GroupVersionKind unambiguously identifies a kind. It - doesn't anonymously include GroupVersion to avoid automatic coercion. It - doesn't use a GroupVersion to avoid custom marshalling - type: object - type: array - conditions: - description: Conditions is an array of current cluster conditions. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - type FooStatus struct{ // Represents the observations of a foo's - current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // - +patchStrategy=merge // +listType=map // +listMapKey=type - \ Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` - \n // other fields }" - 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. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - 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 - kubernetesVersion: - description: KubernetesVersion represents version of the member cluster. - type: string - nodeSummary: - description: NodeSummary represents the summary of nodes status in the - member cluster. - properties: - allocatable: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Allocatable represents the allocatable resources across - all nodes. - type: object - readyNum: - description: ReadyNum is the number of ready nodes in the cluster. - type: integer - totalNum: - description: TotalNum is the total number of nodes in the cluster. - type: integer - used: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Used represents the resources have been used across - all nodes. - type: object - type: object - type: object - required: - - spec - type: object - version: v1alpha1 versions: - name: v1alpha1 + schema: + openAPIV3Schema: + description: MemberCluster represents the desire state and status of a member + cluster. + 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 specification of the desired behavior + of member cluster. + properties: + accepted: + description: Accepted represents if the member cluster has been accepted + by control plane. Default value is false. If member cluster working + in 'Delegation' mode, this always be true. If member cluster working + in 'SelfManagement' mode, this will turn to true only after administrator + accepted the request from member cluster. + type: boolean + apiEndpoint: + description: The API endpoint of the member cluster. This can be a + hostname, hostname:port, IP or IP:port. + type: string + manageMode: + description: ManageMode specifies the relationship between control + plane and member cluster, the mode determines how to reach each + other. + type: string + provider: + description: Provider represents the cloud provider name of the member + cluster. + type: string + region: + description: Region represents the region of the member cluster locate + in. + type: string + secretRef: + description: 'SecretRef represents the secret contains mandatory credentials + to access the member cluster. The secret should hold credentials + as follows: - secret.data.token - secret.data.caBundle' + properties: + name: + description: Name is the name of resource being referenced. + type: string + namespace: + description: Namespace is the namespace for the resource being + referenced. + type: string + required: + - name + - namespace + type: object + taints: + description: Taints attached to the member cluster. Taints on the + cluster have the "effect" on any resource that does not tolerate + the Taint. + items: + description: The node this Taint is attached to has the "effect" + on any pod that does not tolerate the Taint. + properties: + effect: + description: Required. The effect of the taint on pods that + do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule + and NoExecute. + type: string + key: + description: Required. The taint key to be applied to a node. + type: string + timeAdded: + description: TimeAdded represents the time at which the taint + was added. It is only written for NoExecute taints. + format: date-time + type: string + value: + description: The taint value corresponding to the taint key. + type: string + required: + - effect + - key + type: object + type: array + zone: + description: Zone represents the zone of the member cluster locate + in. + type: string + type: object + status: + description: Status represents the status of member cluster. + properties: + apiEnablement: + description: APIEnablement represents the list of APIs installed in + the member cluster. + items: + description: GroupVersionKind unambiguously identifies a kind. It + doesn't anonymously include GroupVersion to avoid automatic coercion. It + doesn't use a GroupVersion to avoid custom marshalling + type: object + type: array + conditions: + description: Conditions is an array of current cluster conditions. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: + \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type + \ // +patchStrategy=merge // +listType=map // +listMapKey=type + \ Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + \n // other fields }" + 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 + kubernetesVersion: + description: KubernetesVersion represents version of the member cluster. + type: string + nodeSummary: + description: NodeSummary represents the summary of nodes status in + the member cluster. + properties: + allocatable: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Allocatable represents the allocatable resources + across all nodes. + type: object + readyNum: + description: ReadyNum is the number of ready nodes in the cluster. + type: integer + totalNum: + description: TotalNum is the total number of nodes in the cluster. + type: integer + used: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Used represents the resources have been used across + all nodes. + type: object + type: object + type: object + required: + - spec + type: object served: true storage: true status: diff --git a/artifacts/deploy/propagationstrategy.karmada.io_propagationbindings.yaml b/artifacts/deploy/propagationstrategy.karmada.io_propagationbindings.yaml index 01c3e3899..310b9f9af 100644 --- a/artifacts/deploy/propagationstrategy.karmada.io_propagationbindings.yaml +++ b/artifacts/deploy/propagationstrategy.karmada.io_propagationbindings.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null name: propagationbindings.propagationstrategy.karmada.io spec: @@ -15,206 +15,207 @@ spec: plural: propagationbindings singular: propagationbinding scope: Namespaced - validation: - openAPIV3Schema: - description: PropagationBinding represents a binding of a kubernetes resource - with a propagation policy. - 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. - properties: - clusters: - description: Clusters represents target member clusters where the resource - to be deployed. - items: - description: TargetCluster represents the identifier of a member cluster. - properties: - name: - description: Name of target cluster. - type: string - required: - - name - type: object - type: array - resource: - description: Resource represents the Kubernetes resource to be propagated. - properties: - apiVersion: - description: APIVersion represents the API version of the referent. - type: string - kind: - description: Kind represents the Kind of the referent. - type: string - name: - description: Name represents the name of the referent. - type: string - namespace: - description: Namespace represents the namespace for the referent. - For non-namespace scoped resources(e.g. 'ClusterRole'),do not - need specify Namespace, and for namespace scoped resources, Namespace - is required. If Namespace is not specified, means the resource - is non-namespace scoped. - type: string - resourceVersion: - description: ResourceVersion represents the internal version of - the referenced object, that can be used by clients to determine - when object has changed. - type: string - required: - - apiVersion - - kind - - name - type: object - required: - - resource - type: object - status: - description: Status represents the most recently observed status of the - PropagationBinding. - properties: - aggregatedStatus: - description: AggregatedStatus represents status list of the resource - running in each member cluster. - items: - description: AggregatedStatusItem represents status of the resource - running in a member cluster. - properties: - clusterName: - description: ClusterName represents the member cluster name which - the resource deployed on. - type: string - resourceStatus: - description: ResourceStatus represents the status of the resource. - properties: - deploymentStatus: - description: Deployment represents the deployment status in - the member cluster, only available when the resource kind - is Deployment. - properties: - availableReplicas: - description: Total number of available pods (ready for - at least minReadySeconds) targeted by this deployment. - format: int32 - type: integer - readyReplicas: - description: Total number of ready pods targeted by this - deployment. - format: int32 - type: integer - replicas: - description: Total number of non-terminated pods targeted - by this deployment (their labels match the selector). - format: int32 - type: integer - unavailableReplicas: - description: Total number of unavailable pods targeted - by this deployment. This is the total number of pods - that are still required for the deployment to have 100% - available capacity. They may either be pods that are - running but not yet available or pods that still have - not been created. - format: int32 - type: integer - updatedReplicas: - description: Total number of non-terminated pods targeted - by this deployment that have the desired template spec. - format: int32 - type: integer - type: object - type: object - required: - - clusterName - type: object - type: array - conditions: - description: Conditions contain the different condition statuses. - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - type FooStatus struct{ // Represents the observations of a foo's - current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // - +patchStrategy=merge // +listType=map // +listMapKey=type - \ Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` - \n // other fields }" - 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. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - 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 - version: v1alpha1 versions: - name: v1alpha1 + schema: + openAPIV3Schema: + description: PropagationBinding represents a binding of a kubernetes resource + with a propagation policy. + 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. + properties: + clusters: + description: Clusters represents target member clusters where the + resource to be deployed. + items: + description: TargetCluster represents the identifier of a member + cluster. + properties: + name: + description: Name of target cluster. + type: string + required: + - name + type: object + type: array + resource: + description: Resource represents the Kubernetes resource to be propagated. + properties: + apiVersion: + description: APIVersion represents the API version of the referent. + type: string + kind: + description: Kind represents the Kind of the referent. + type: string + name: + description: Name represents the name of the referent. + type: string + namespace: + description: Namespace represents the namespace for the referent. + For non-namespace scoped resources(e.g. 'ClusterRole'),do not + need specify Namespace, and for namespace scoped resources, + Namespace is required. If Namespace is not specified, means + the resource is non-namespace scoped. + type: string + resourceVersion: + description: ResourceVersion represents the internal version of + the referenced object, that can be used by clients to determine + when object has changed. + type: string + required: + - apiVersion + - kind + - name + type: object + required: + - resource + type: object + status: + description: Status represents the most recently observed status of the + PropagationBinding. + properties: + aggregatedStatus: + description: AggregatedStatus represents status list of the resource + running in each member cluster. + items: + description: AggregatedStatusItem represents status of the resource + running in a member cluster. + properties: + clusterName: + description: ClusterName represents the member cluster name + which the resource deployed on. + type: string + resourceStatus: + description: ResourceStatus represents the status of the resource. + properties: + deploymentStatus: + description: Deployment represents the deployment status + in the member cluster, only available when the resource + kind is Deployment. + properties: + availableReplicas: + description: Total number of available pods (ready for + at least minReadySeconds) targeted by this deployment. + format: int32 + type: integer + readyReplicas: + description: Total number of ready pods targeted by + this deployment. + format: int32 + type: integer + replicas: + description: Total number of non-terminated pods targeted + by this deployment (their labels match the selector). + format: int32 + type: integer + unavailableReplicas: + description: Total number of unavailable pods targeted + by this deployment. This is the total number of pods + that are still required for the deployment to have + 100% available capacity. They may either be pods that + are running but not yet available or pods that still + have not been created. + format: int32 + type: integer + updatedReplicas: + description: Total number of non-terminated pods targeted + by this deployment that have the desired template + spec. + format: int32 + type: integer + type: object + type: object + required: + - clusterName + type: object + type: array + conditions: + description: Conditions contain the different condition statuses. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: + \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type + \ // +patchStrategy=merge // +listType=map // +listMapKey=type + \ Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + \n // other fields }" + 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 status: diff --git a/artifacts/deploy/propagationstrategy.karmada.io_propagationpolicies.yaml b/artifacts/deploy/propagationstrategy.karmada.io_propagationpolicies.yaml index 3d90fa0b2..15b14a938 100644 --- a/artifacts/deploy/propagationstrategy.karmada.io_propagationpolicies.yaml +++ b/artifacts/deploy/propagationstrategy.karmada.io_propagationpolicies.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null name: propagationpolicies.propagationstrategy.karmada.io spec: @@ -15,93 +15,232 @@ spec: plural: propagationpolicies singular: propagationpolicy scope: Namespaced - validation: - 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: - association: - description: Association tells if relevant resources should be selected - automatically. e.g. a ConfigMap referred by a Deployment. default - false. - type: boolean - placement: - description: Placement represents the rule for select clusters to propagate - resources. - properties: - clusterAffinity: - description: ClusterAffinity represents scheduling restrictions - to a certain set of clusters. If not set, any cluster can be scheduling - candidate. - 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. 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: + 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: + association: + description: Association tells if relevant resources should be selected + automatically. e.g. a ConfigMap referred by a Deployment. default + false. + type: boolean + placement: + description: Placement represents the rule for select clusters to + propagate resources. + properties: + clusterAffinity: + description: ClusterAffinity represents scheduling restrictions + to a certain set of clusters. If not set, any cluster can be + scheduling candidate. + 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. 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 - type: array - required: - - key - - operator + 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: array + type: object + type: object + clusterTolerations: + description: ClusterTolerations represents the tolerations. + items: + description: The pod this Toleration is attached to tolerates + any taint that matches the triple using + the matching 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 + spreadConstraints: + description: SpreadConstraints represents a list of the scheduling + constraints. + items: + description: SpreadConstraint represents the spread constraints + on resources. + properties: + maximumClusters: + description: Maximum restricts the maximum number of cluster + units to be selected. + type: integer + minimumClusters: + description: Minimum restricts the minimum number of cluster + units to be selected. + type: integer + spreadByField: + description: 'SpreadByField represents the field used for + grouping member clusters into units. Resources will be + spread among different cluster units. Available field + for spreading are: region, zone, cluster and provider.' + type: string + spreadByLabel: + description: SpreadByLabel represents the label key used + for grouping member clusters into units. Resources will + be spread among different cluster units. + type: string + type: object + type: array + type: object + resourceSelector: + description: ResourceSelectors used to select resources. nil represents + all resources. + items: + description: ResourceSelector the resources will be selected. + properties: + apiVersion: + description: APIVersion represents the API version of the target + resources. + type: string + excludeNamespaces: + description: ExcludeNamespaces is a list of namespaces that + the ResourceSelector will ignore. Default is empty, which + means don't ignore any namespace. + items: + type: string + type: array + kind: + description: Kind represents the Kind of the target resources. + type: string 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. + description: A label query over a set of resources. properties: matchExpressions: description: matchExpressions is a list of label selector @@ -144,173 +283,36 @@ spec: only "value". The requirements are ANDed. type: object type: object + names: + description: Names restricts a list of referent names that the + ResourceSelector will only select. Default is empty, which + means selecting all resources. + items: + type: string + type: array + namespaces: + description: Namespaces restricts a list of namespaces that + the ResourceSelector will only select. If set, only resources + in the listed namespaces will be selected. Default is empty, + which means selecting all namespaces. + items: + type: string + type: array + required: + - apiVersion + - kind type: object - clusterTolerations: - description: ClusterTolerations represents the tolerations. - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using the - matching 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 - spreadConstraints: - description: SpreadConstraints represents a list of the scheduling - constraints. - items: - description: SpreadConstraint represents the spread constraints - on resources. - properties: - maximumClusters: - description: Maximum restricts the maximum number of cluster - units to be selected. - type: integer - minimumClusters: - description: Minimum restricts the minimum number of cluster - units to be selected. - type: integer - spreadByField: - description: 'SpreadByField represents the field used for - grouping member clusters into units. Resources will be spread - among different cluster units. Available field for spreading - are: region, zone, cluster and provider.' - type: string - spreadByLabel: - description: SpreadByLabel represents the label key used for - grouping member clusters into units. Resources will be spread - among different cluster units. - type: string - type: object - type: array - type: object - resourceSelector: - description: ResourceSelectors used to select resources. nil represents - all resources. - items: - description: ResourceSelector the resources will be selected. - properties: - apiVersion: - description: APIVersion represents the API version of the target - resources. - type: string - excludeNamespaces: - description: ExcludeNamespaces is a list of namespaces that the - ResourceSelector will ignore. Default is empty, which means - don't ignore any namespace. - items: - type: string - type: array - kind: - description: Kind represents the Kind of the target resources. - type: string - labelSelector: - description: A label query over a set of resources. - 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 - names: - description: Names restricts a list of referent names that the - ResourceSelector will only select. Default is empty, which means - selecting all resources. - items: - type: string - type: array - namespaces: - description: Namespaces restricts a list of namespaces that the - ResourceSelector will only select. If set, only resources in - the listed namespaces will be selected. Default is empty, which - means selecting all namespaces. - items: - type: string - type: array - required: - - apiVersion - - kind - type: object - type: array - schedulerName: - 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 - type: object - required: - - spec - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + type: array + schedulerName: + 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 + type: object + required: + - spec + type: object served: true storage: true status: diff --git a/artifacts/deploy/propagationstrategy.karmada.io_propagationworks.yaml b/artifacts/deploy/propagationstrategy.karmada.io_propagationworks.yaml index c8a98db92..e90d43490 100644 --- a/artifacts/deploy/propagationstrategy.karmada.io_propagationworks.yaml +++ b/artifacts/deploy/propagationstrategy.karmada.io_propagationworks.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.4.0 creationTimestamp: null name: propagationworks.propagationstrategy.karmada.io spec: @@ -15,249 +15,248 @@ spec: plural: propagationworks singular: propagationwork scope: Namespaced - validation: - openAPIV3Schema: - description: PropagationWork defines a list of resources to be deployed on the - member cluster. - 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 PropagationWork. - properties: - workload: - description: Workload represents the manifest workload to be deployed - on managed cluster. - properties: - manifests: - description: Manifests represents a list of Kubernetes resources - to be deployed on the managed cluster. - items: - description: Manifest represents a resource to be deployed on - managed cluster. - type: object - type: array - type: object - type: object - status: - description: Status represents the status of PropagationStatus. - properties: - conditions: - description: 'Conditions contain the different condition statuses for - this work. Valid condition types are: 1. Applied represents workload - in PropagationWork is applied successfully on a managed cluster. 2. - Progressing represents workload in PropagationWork is being applied - on a managed cluster. 3. Available represents workload in PropagationWork - exists on the managed cluster. 4. Degraded represents the current - state of workload does not match the desired state for a certain period.' - items: - description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - type FooStatus struct{ // Represents the observations of a foo's - current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // - +patchStrategy=merge // +listType=map // +listMapKey=type - \ Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` - \n // other fields }" - 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. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - 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 - manifestConditions: - description: ManifestConditions represents the conditions of each Kubernetes - resource in work deployed on managed cluster. - items: - description: ManifestCondition represents the conditions of the resources - deployed on managed cluster - properties: - conditions: - description: Conditions represents the conditions of this resource - on the managed cluster - items: - description: "Condition contains details for one aspect of the - current state of this API Resource. --- This struct is intended - for direct use as an array at the field path .status.conditions. - \ For example, type FooStatus struct{ // Represents the - observations of a foo's current state. // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\" // - +patchMergeKey=type // +patchStrategy=merge // +listType=map - \ // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other - fields }" - 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. - --- Many .condition.type values are consistent across - resources like Available, but because arbitrary conditions - can be useful (see .node.status.conditions), the ability - to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - 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 - identifier: - description: Identifier represents the identity of a resource - linking to manifests in spec. - properties: - group: - description: Group is the group of the resource. - type: string - kind: - description: Kind is the kind of the resource. - type: string - name: - description: Name is the name of the resource - type: string - namespace: - description: Namespace is the namespace of the resource, the - resource is cluster scoped if the value is empty - type: string - ordinal: - description: Ordinal represents an index in manifests list, - so the condition can still be linked to a manifest even - though manifest cannot be parsed successfully. - type: integer - resource: - description: Resource is the resource type of the resource - type: string - version: - description: Version is the version of the resource. - type: string - required: - - kind - - name - - ordinal - - resource - - version - type: object - required: - - conditions - - identifier - type: object - type: array - required: - - conditions - type: object - required: - - spec - type: object - version: v1alpha1 versions: - name: v1alpha1 + schema: + openAPIV3Schema: + description: PropagationWork defines a list of resources to be deployed on + the member cluster. + 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 PropagationWork. + properties: + workload: + description: Workload represents the manifest workload to be deployed + on managed cluster. + properties: + manifests: + description: Manifests represents a list of Kubernetes resources + to be deployed on the managed cluster. + items: + type: Any + type: array + type: object + type: object + status: + description: Status represents the status of PropagationStatus. + properties: + conditions: + description: 'Conditions contain the different condition statuses + for this work. Valid condition types are: 1. Applied represents + workload in PropagationWork is applied successfully on a managed + cluster. 2. Progressing represents workload in PropagationWork is + being applied on a managed cluster. 3. Available represents workload + in PropagationWork exists on the managed cluster. 4. Degraded represents + the current state of workload does not match the desired state for + a certain period.' + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: + \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type + \ // +patchStrategy=merge // +listType=map // +listMapKey=type + \ Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + \n // other fields }" + 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 + manifestConditions: + description: ManifestConditions represents the conditions of each + Kubernetes resource in work deployed on managed cluster. + items: + description: ManifestCondition represents the conditions of the + resources deployed on managed cluster + properties: + conditions: + description: Conditions represents the conditions of this resource + on the managed cluster + items: + description: "Condition contains details for one aspect of + the current state of this API Resource. --- This struct + is intended for direct use as an array at the field path + .status.conditions. For example, type FooStatus struct{ + \ // Represents the observations of a foo's current state. + \ // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type + \ // +patchStrategy=merge // +listType=map // + +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` + \n // other fields }" + 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. + --- Many .condition.type values are consistent across + resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability + to deconflict is important. The regex it matches is + (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 + identifier: + description: Identifier represents the identity of a resource + linking to manifests in spec. + properties: + group: + description: Group is the group of the resource. + type: string + kind: + description: Kind is the kind of the resource. + type: string + name: + description: Name is the name of the resource + type: string + namespace: + description: Namespace is the namespace of the resource, + the resource is cluster scoped if the value is empty + type: string + ordinal: + description: Ordinal represents an index in manifests list, + so the condition can still be linked to a manifest even + though manifest cannot be parsed successfully. + type: integer + resource: + description: Resource is the resource type of the resource + type: string + version: + description: Version is the version of the resource. + type: string + required: + - kind + - name + - ordinal + - resource + - version + type: object + required: + - conditions + - identifier + type: object + type: array + required: + - conditions + type: object + required: + - spec + type: object served: true storage: true status: