...
1---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: (unknown)
7 name: clusters.edge.ncr.com
8spec:
9 group: edge.ncr.com
10 names:
11 kind: Cluster
12 listKind: ClusterList
13 plural: clusters
14 singular: cluster
15 scope: Cluster
16 versions:
17 - additionalPrinterColumns:
18 - jsonPath: .spec.name
19 name: ClusterName
20 type: string
21 - jsonPath: .spec.projectId
22 name: ProjectID
23 type: string
24 - jsonPath: .spec.banner
25 name: Banner
26 type: string
27 - jsonPath: .spec.fleet
28 name: Fleet
29 type: string
30 - jsonPath: .spec.organization
31 name: Organization
32 type: string
33 - jsonPath: .status.conditions[?(@.type=="Ready")].status
34 name: Ready
35 type: string
36 - jsonPath: .status.conditions[?(@.type=="Ready")].message
37 name: Status
38 type: string
39 name: v1alpha1
40 schema:
41 openAPIV3Schema:
42 description: Cluster is the Schema for the clusters API
43 properties:
44 apiVersion:
45 description: |-
46 APIVersion defines the versioned schema of this representation of an object.
47 Servers should convert recognized schemas to the latest internal value, and
48 may reject unrecognized values.
49 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
50 type: string
51 kind:
52 description: |-
53 Kind is a string value representing the REST resource this object represents.
54 Servers may infer this from the endpoint the client submits requests to.
55 Cannot be updated.
56 In CamelCase.
57 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
58 type: string
59 metadata:
60 type: object
61 spec:
62 description: ClusterSpec defines the desired state of Cluster
63 properties:
64 autoscale:
65 type: boolean
66 banner:
67 type: string
68 banner_edge_id:
69 type: string
70 cluster_artifacts:
71 description: |-
72 Deprecated: Adding this was a mistake. Remove during migration to v1alpha2
73 Tracking: https://github.com/ncr-swt-retail/edge-roadmap/issues/7862
74 items:
75 description: |-
76 ArtifactVersion is a reference to an OCI artifact. E.g., store:latest. Name is provided without
77 a registry context. Version may either be a tag or a digest
78 properties:
79 name:
80 type: string
81 version:
82 type: string
83 required:
84 - name
85 - version
86 type: object
87 type: array
88 cluster_id:
89 description: |-
90 Deprecated: Remove during migration to v1alpha2
91 Tracking: https://github.com/ncr-swt-retail/edge-roadmap/issues/7862
92 type: string
93 edge_id_syncing:
94 description: |-
95 Deprecated: Remove during migration to v1alpha2
96 Tracking: https://github.com/ncr-swt-retail/edge-roadmap/issues/7862
97 type: boolean
98 fleet:
99 description: Type is the enum type representing Edge Fleets
100 type: string
101 interval:
102 default: 120s
103 description: |-
104 Interval is how often the object will be reconciled, in order to prevent
105 drift.
106 type: string
107 location:
108 description: Fields required for GKE only
109 type: string
110 machine_type:
111 type: string
112 max_nodes:
113 type: integer
114 min_nodes:
115 type: integer
116 name:
117 type: string
118 node_version:
119 description: node version is optional. if not provided it will default
120 to be on the stable
121 type: string
122 num_node:
123 type: integer
124 organization:
125 type: string
126 projectId:
127 type: string
128 type:
129 description: Type is the enum type representing Edge Cluster Types
130 type: string
131 required:
132 - banner
133 - fleet
134 - name
135 - organization
136 - projectId
137 - type
138 type: object
139 status:
140 default:
141 observedGeneration: -1
142 description: ClusterStatus defines the observed state of Cluster
143 properties:
144 conditions:
145 items:
146 description: "Condition contains details for one aspect of the current
147 state of this API Resource.\n---\nThis struct is intended for
148 direct use as an array at the field path .status.conditions. For
149 example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
150 observations of a foo's current state.\n\t // Known .status.conditions.type
151 are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
152 +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
153 \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
154 patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
155 \ // other fields\n\t}"
156 properties:
157 lastTransitionTime:
158 description: |-
159 lastTransitionTime is the last time the condition transitioned from one status to another.
160 This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
161 format: date-time
162 type: string
163 message:
164 description: |-
165 message is a human readable message indicating details about the transition.
166 This may be an empty string.
167 maxLength: 32768
168 type: string
169 observedGeneration:
170 description: |-
171 observedGeneration represents the .metadata.generation that the condition was set based upon.
172 For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
173 with respect to the current state of the instance.
174 format: int64
175 minimum: 0
176 type: integer
177 reason:
178 description: |-
179 reason contains a programmatic identifier indicating the reason for the condition's last transition.
180 Producers of specific condition types may define expected values and meanings for this field,
181 and whether the values are considered a guaranteed API.
182 The value should be a CamelCase string.
183 This field may not be empty.
184 maxLength: 1024
185 minLength: 1
186 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
187 type: string
188 status:
189 description: status of the condition, one of True, False, Unknown.
190 enum:
191 - "True"
192 - "False"
193 - Unknown
194 type: string
195 type:
196 description: |-
197 type of condition in CamelCase or in foo.example.com/CamelCase.
198 ---
199 Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
200 useful (see .node.status.conditions), the ability to deconflict is important.
201 The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
202 maxLength: 316
203 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])$
204 type: string
205 required:
206 - lastTransitionTime
207 - message
208 - reason
209 - status
210 - type
211 type: object
212 type: array
213 external_inventory:
214 description: ExternalResourceInventory contains a list of resources
215 not in kubernetes
216 properties:
217 okta_client:
218 description: OktaClient contains the ID and name of an okta app
219 properties:
220 id:
221 type: string
222 name:
223 type: string
224 type: object
225 secret_manager_secrets:
226 description: SecretManagerSecrets list of secret ids in gcp secret
227 manager
228 items:
229 type: string
230 type: array
231 required:
232 - secret_manager_secrets
233 type: object
234 inventory:
235 description: |-
236 ResourceInventory contains a list of Kubernetes resource object references
237 that have been applied.
238 properties:
239 entries:
240 description: Entries of Kubernetes resource object references.
241 items:
242 description: ResourceRef contains the information necessary
243 to locate a resource within a cluster.
244 properties:
245 id:
246 description: |-
247 ID is the string representation of the Kubernetes resource object's metadata,
248 in the format '<namespace>_<name>_<group>_<kind>'.
249 type: string
250 v:
251 description: Version is the API version of the Kubernetes
252 resource object's kind.
253 type: string
254 required:
255 - id
256 - v
257 type: object
258 type: array
259 type: object
260 observedGeneration:
261 format: int64
262 type: integer
263 type: object
264 type: object
265 served: true
266 storage: true
267 subresources:
268 status: {}
View as plain text