add hack/update-crdgen.sh and hack/verify-crdgen.sh
This commit is contained in:
parent
4dc204f4ad
commit
5cd57f1043
|
@ -1,28 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
"helm.sh/hook": crd-install
|
|
||||||
creationTimestamp: null
|
|
||||||
name: propagationbindings.propagationstrategy.karmada.io
|
|
||||||
spec:
|
|
||||||
group: propagationstrategy.karmada.io
|
|
||||||
names:
|
|
||||||
kind: PropagationBinding
|
|
||||||
listKind: PropagationBindingList
|
|
||||||
plural: propagationbindings
|
|
||||||
singular: propagationbinding
|
|
||||||
scope: Namespaced
|
|
||||||
version: v1alpha1
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
---
|
|
|
@ -1,11 +0,0 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: memberclusters.membercluster.karmada.io
|
|
||||||
spec:
|
|
||||||
group: membercluster.karmada.io
|
|
||||||
version: v1alpha1
|
|
||||||
names:
|
|
||||||
kind: MemberCluster
|
|
||||||
plural: memberclusters
|
|
||||||
scope: Namespaced
|
|
|
@ -1,28 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
"helm.sh/hook": crd-install
|
|
||||||
creationTimestamp: null
|
|
||||||
name: propagationworks.propagationstrategy.karmada.io
|
|
||||||
spec:
|
|
||||||
group: propagationstrategy.karmada.io
|
|
||||||
names:
|
|
||||||
kind: PropagationWork
|
|
||||||
listKind: PropagationWorkList
|
|
||||||
plural: propagationworks
|
|
||||||
singular: propagationwork
|
|
||||||
scope: Namespaced
|
|
||||||
version: v1alpha1
|
|
||||||
versions:
|
|
||||||
- name: v1alpha1
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
status:
|
|
||||||
acceptedNames:
|
|
||||||
kind: ""
|
|
||||||
plural: ""
|
|
||||||
conditions: []
|
|
||||||
storedVersions: []
|
|
||||||
---
|
|
|
@ -0,0 +1,239 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1beta1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.3.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: memberclusters.membercluster.karmada.io
|
||||||
|
spec:
|
||||||
|
group: membercluster.karmada.io
|
||||||
|
names:
|
||||||
|
kind: MemberCluster
|
||||||
|
listKind: MemberClusterList
|
||||||
|
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
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
status:
|
||||||
|
acceptedNames:
|
||||||
|
kind: ""
|
||||||
|
plural: ""
|
||||||
|
conditions: []
|
||||||
|
storedVersions: []
|
|
@ -0,0 +1,225 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1beta1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.3.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: propagationbindings.propagationstrategy.karmada.io
|
||||||
|
spec:
|
||||||
|
group: propagationstrategy.karmada.io
|
||||||
|
names:
|
||||||
|
kind: PropagationBinding
|
||||||
|
listKind: PropagationBindingList
|
||||||
|
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
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
status:
|
||||||
|
acceptedNames:
|
||||||
|
kind: ""
|
||||||
|
plural: ""
|
||||||
|
conditions: []
|
||||||
|
storedVersions: []
|
|
@ -0,0 +1,321 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1beta1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.3.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: propagationpolicies.propagationstrategy.karmada.io
|
||||||
|
spec:
|
||||||
|
group: propagationstrategy.karmada.io
|
||||||
|
names:
|
||||||
|
kind: PropagationPolicy
|
||||||
|
listKind: PropagationPolicyList
|
||||||
|
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:
|
||||||
|
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: 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 <key,value,effect> using the
|
||||||
|
matching operator <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
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
status:
|
||||||
|
acceptedNames:
|
||||||
|
kind: ""
|
||||||
|
plural: ""
|
||||||
|
conditions: []
|
||||||
|
storedVersions: []
|
|
@ -0,0 +1,268 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1beta1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.3.0
|
||||||
|
creationTimestamp: null
|
||||||
|
name: propagationworks.propagationstrategy.karmada.io
|
||||||
|
spec:
|
||||||
|
group: propagationstrategy.karmada.io
|
||||||
|
names:
|
||||||
|
kind: PropagationWork
|
||||||
|
listKind: PropagationWorkList
|
||||||
|
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
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
status:
|
||||||
|
acceptedNames:
|
||||||
|
kind: ""
|
||||||
|
plural: ""
|
||||||
|
conditions: []
|
||||||
|
storedVersions: []
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
controller-gen crd paths=./pkg/apis/... output:crd:dir=./artifacts/deploy
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||||
|
|
||||||
|
DIFFROOT="${SCRIPT_ROOT}/artifacts/deploy"
|
||||||
|
TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/artifacts/deploy"
|
||||||
|
_tmp="${SCRIPT_ROOT}/_tmp"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf "${_tmp}"
|
||||||
|
}
|
||||||
|
trap "cleanup" EXIT SIGINT
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
|
||||||
|
mkdir -p "${TMP_DIFFROOT}"
|
||||||
|
cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}"
|
||||||
|
|
||||||
|
"${SCRIPT_ROOT}/hack/update-crdgen.sh"
|
||||||
|
echo "diffing ${DIFFROOT} against freshly generated files"
|
||||||
|
ret=0
|
||||||
|
diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$?
|
||||||
|
cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}"
|
||||||
|
if [[ $ret -eq 0 ]]
|
||||||
|
then
|
||||||
|
echo "${DIFFROOT} up to date."
|
||||||
|
else
|
||||||
|
echo "${DIFFROOT} is out of date. Please run hack/update-crdgen.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in New Issue