github.com/oam-dev/cluster-gateway@v1.9.0/hack/crd/addon/managedclusteraddon.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 4 name: managedclusteraddons.addon.open-cluster-management.io 5 spec: 6 group: addon.open-cluster-management.io 7 names: 8 kind: ManagedClusterAddOn 9 listKind: ManagedClusterAddOnList 10 plural: managedclusteraddons 11 singular: managedclusteraddon 12 scope: Namespaced 13 preserveUnknownFields: false 14 versions: 15 - additionalPrinterColumns: 16 - jsonPath: .status.conditions[?(@.type=="Available")].status 17 name: Available 18 type: string 19 - jsonPath: .status.conditions[?(@.type=="Degraded")].status 20 name: Degraded 21 type: string 22 - jsonPath: .status.conditions[?(@.type=="Progressing")].status 23 name: Progressing 24 type: string 25 name: v1alpha1 26 schema: 27 openAPIV3Schema: 28 description: ManagedClusterAddOn is the Custom Resource object which holds 29 the current state of an add-on. This object is used by add-on operators 30 to convey their state. This resource should be created in the ManagedCluster 31 namespace. 32 type: object 33 required: 34 - spec 35 properties: 36 apiVersion: 37 description: 'APIVersion defines the versioned schema of this representation 38 of an object. Servers should convert recognized schemas to the latest 39 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 40 type: string 41 kind: 42 description: 'Kind is a string value representing the REST resource this 43 object represents. Servers may infer this from the endpoint the client 44 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 45 type: string 46 metadata: 47 type: object 48 spec: 49 description: spec holds configuration that could apply to any operator. 50 type: object 51 properties: 52 installNamespace: 53 description: installNamespace is the namespace on the managed cluster 54 to install the addon agent. If it is not set, open-cluster-management-agent-addon 55 namespace is used to install the addon agent. 56 type: string 57 maxLength: 63 58 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ 59 status: 60 description: status holds the information about the state of an operator. It 61 is consistent with status information across the Kubernetes ecosystem. 62 type: object 63 properties: 64 addOnConfiguration: 65 description: addOnConfiguration is a reference to configuration information 66 for the add-on. This resource is use to locate the configuration 67 resource for the add-on. 68 type: object 69 properties: 70 crName: 71 description: crName is the name of the CR used to configure instances 72 of the managed add-on. This field should be configured if add-on 73 CR have a consistent name across the all of the ManagedCluster 74 instaces. 75 type: string 76 crdName: 77 description: crdName is the name of the CRD used to configure 78 instances of the managed add-on. This field should be configured 79 if the add-on have a CRD that controls the configuration of 80 the add-on. 81 type: string 82 addOnMeta: 83 description: addOnMeta is a reference to the metadata information 84 for the add-on. This should be same as the addOnMeta for the corresponding 85 ClusterManagementAddOn resource. 86 type: object 87 properties: 88 description: 89 description: description represents the detailed description of 90 the add-on. 91 type: string 92 displayName: 93 description: displayName represents the name of add-on that will 94 be displayed. 95 type: string 96 conditions: 97 description: conditions describe the state of the managed and monitored 98 components for the operator. 99 type: array 100 items: 101 description: "Condition contains details for one aspect of the current 102 state of this API Resource. --- This struct is intended for direct 103 use as an array at the field path .status.conditions. For example, 104 type FooStatus struct{ // Represents the observations of a 105 foo's current state. // Known .status.conditions.type are: 106 \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type 107 \ // +patchStrategy=merge // +listType=map // +listMapKey=type 108 \ Conditions []metav1.Condition `json:\"conditions,omitempty\" 109 patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` 110 \n // other fields }" 111 type: object 112 required: 113 - lastTransitionTime 114 - message 115 - reason 116 - status 117 - type 118 properties: 119 lastTransitionTime: 120 description: lastTransitionTime is the last time the condition 121 transitioned from one status to another. This should be when 122 the underlying condition changed. If that is not known, then 123 using the time when the API field changed is acceptable. 124 type: string 125 format: date-time 126 message: 127 description: message is a human readable message indicating 128 details about the transition. This may be an empty string. 129 type: string 130 maxLength: 32768 131 observedGeneration: 132 description: observedGeneration represents the .metadata.generation 133 that the condition was set based upon. For instance, if .metadata.generation 134 is currently 12, but the .status.conditions[x].observedGeneration 135 is 9, the condition is out of date with respect to the current 136 state of the instance. 137 type: integer 138 format: int64 139 minimum: 0 140 reason: 141 description: reason contains a programmatic identifier indicating 142 the reason for the condition's last transition. Producers 143 of specific condition types may define expected values and 144 meanings for this field, and whether the values are considered 145 a guaranteed API. The value should be a CamelCase string. 146 This field may not be empty. 147 type: string 148 maxLength: 1024 149 minLength: 1 150 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 151 status: 152 description: status of the condition, one of True, False, Unknown. 153 type: string 154 enum: 155 - "True" 156 - "False" 157 - Unknown 158 type: 159 description: type of condition in CamelCase or in foo.example.com/CamelCase. 160 --- Many .condition.type values are consistent across resources 161 like Available, but because arbitrary conditions can be useful 162 (see .node.status.conditions), the ability to deconflict is 163 important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 164 type: string 165 maxLength: 316 166 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])$ 167 registrations: 168 description: registrations is the conifigurations for the addon agent 169 to register to hub. It should be set by each addon controller on 170 hub to define how the addon agent on managedcluster is registered. 171 With the registration defined, The addon agent can access to kube 172 apiserver with kube style API or other endpoints on hub cluster 173 with client certificate authentication. A csr will be created per 174 registration configuration. If more than one registrationConfig 175 is defined, a csr will be created for each registration configuration. 176 It is not allowed that multiple registrationConfigs have the same 177 signer name. After the csr is approved on the hub cluster, the klusterlet 178 agent will create a secret in the installNamespace for the registrationConfig. 179 If the signerName is "kubernetes.io/kube-apiserver-client", the 180 secret name will be "{addon name}-hub-kubeconfig" whose contents 181 includes key/cert and kubeconfig. Otherwise, the secret name will 182 be "{addon name}-{signer name}-client-cert" whose contents includes 183 key/cert. 184 type: array 185 items: 186 description: RegistrationConfig defines the configuration of the 187 addon agent to register to hub. The Klusterlet agent will create 188 a csr for the addon agent with the registrationConfig. 189 type: object 190 properties: 191 signerName: 192 description: signerName is the name of signer that addon agent 193 will use to create csr. 194 type: string 195 maxLength: 571 196 minLength: 5 197 subject: 198 description: "subject is the user subject of the addon agent 199 to be registered to the hub. If it is not set, the addon agent 200 will have the default subject \"subject\": { \t\"user\": \"system:open-cluster-management:addon:{addonName}:{clusterName}:{agentName}\", 201 \t\"groups: [\"system:open-cluster-management:addon\", \"system:open-cluster-management:addon:{addonName}\", 202 \"system:authenticated\"] }" 203 type: object 204 properties: 205 groups: 206 description: groups is the user group of the addon agent. 207 type: array 208 items: 209 type: string 210 organizationUnit: 211 description: organizationUnit is the ou of the addon agent 212 type: array 213 items: 214 type: string 215 user: 216 description: user is the user name of the addon agent. 217 type: string 218 relatedObjects: 219 description: 'relatedObjects is a list of objects that are "interesting" 220 or related to this operator. Common uses are: 1. the detailed resource 221 driving the operator 2. operator namespaces 3. operand namespaces 222 4. related ClusterManagementAddon resource' 223 type: array 224 items: 225 description: ObjectReference contains enough information to let 226 you inspect or modify the referred object. 227 type: object 228 required: 229 - group 230 - name 231 - resource 232 properties: 233 group: 234 description: group of the referent. 235 type: string 236 name: 237 description: name of the referent. 238 type: string 239 namespace: 240 description: namespace of the referent. 241 type: string 242 resource: 243 description: resource of the referent. 244 type: string 245 served: true 246 storage: true 247 subresources: 248 status: {} 249 status: 250 acceptedNames: 251 kind: "" 252 plural: "" 253 conditions: [] 254 storedVersions: []