Skip to content

Commit 41feaf4

Browse files
committed
Add RosaRoleConfig API and CRD.
1 parent e9f2823 commit 41feaf4

18 files changed

+1425
-26
lines changed

PROJECT

+21-20
Original file line numberDiff line numberDiff line change
@@ -2,59 +2,60 @@ version: "2"
22
domain: cluster.x-k8s.io
33
repo: sigs.k8s.io/cluster-api-provider-aws
44
resources:
5-
# v1beta1 types
65
- group: infrastructure
7-
version: v1beta1
86
kind: AWSMachine
9-
- group: infrastructure
107
version: v1beta1
11-
kind: AWSCluster
128
- group: infrastructure
9+
kind: AWSCluster
1310
version: v1beta1
14-
kind: AWSMachineTemplate
1511
- group: infrastructure
12+
kind: AWSMachineTemplate
1613
version: v1beta1
17-
kind: AWSClusterStaticIdentity
1814
- group: infrastructure
15+
kind: AWSClusterStaticIdentity
1916
version: v1beta1
20-
kind: AWSClusterRoleIdentity
2117
- group: infrastructure
18+
kind: AWSClusterRoleIdentity
2219
version: v1beta1
23-
kind: AWSClusterControllerIdentity
2420
- group: infrastructure
21+
kind: AWSClusterControllerIdentity
2522
version: v1beta1
26-
kind: AWSClusterTemplate
2723
- group: infrastructure
24+
kind: AWSClusterTemplate
2825
version: v1beta1
29-
kind: AWSManagedControlPlanes
3026
- group: infrastructure
27+
kind: AWSManagedControlPlanes
3128
version: v1beta1
29+
- group: infrastructure
3230
kind: AWSManagedCluster
33-
# v1beta2 types
31+
version: v1beta1
3432
- group: infrastructure
35-
version: v1beta2
3633
kind: AWSMachine
37-
- group: infrastructure
3834
version: v1beta2
39-
kind: AWSCluster
4035
- group: infrastructure
36+
kind: AWSCluster
4137
version: v1beta2
42-
kind: AWSMachineTemplate
4338
- group: infrastructure
39+
kind: AWSMachineTemplate
4440
version: v1beta2
45-
kind: AWSClusterStaticIdentity
4641
- group: infrastructure
42+
kind: AWSClusterStaticIdentity
4743
version: v1beta2
48-
kind: AWSClusterRoleIdentity
4944
- group: infrastructure
45+
kind: AWSClusterRoleIdentity
5046
version: v1beta2
51-
kind: AWSClusterControllerIdentity
5247
- group: infrastructure
48+
kind: AWSClusterControllerIdentity
5349
version: v1beta2
54-
kind: AWSClusterTemplate
5550
- group: infrastructure
51+
kind: AWSClusterTemplate
5652
version: v1beta2
57-
kind: AWSManagedControlPlanes
5853
- group: infrastructure
54+
kind: AWSManagedControlPlanes
5955
version: v1beta2
56+
- group: infrastructure
6057
kind: AWSManagedCluster
58+
version: v1beta2
59+
- group: infrastructure
60+
kind: ROSARoleConfig
61+
version: v1beta2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,263 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
controller-gen.kubebuilder.io/version: v0.16.5
7+
name: rosaroleconfig.infrastructure.cluster.x-k8s.io
8+
spec:
9+
group: infrastructure.cluster.x-k8s.io
10+
names:
11+
categories:
12+
- cluster-api
13+
kind: ROSARoleConfig
14+
listKind: ROSARoleConfigList
15+
plural: rosaroleconfig
16+
shortNames:
17+
- rosarole
18+
singular: rosaroleconfig
19+
scope: cluster
20+
versions:
21+
- name: v1beta2
22+
schema:
23+
openAPIV3Schema:
24+
description: ROSARoleConfig is the Schema for the rosaroleconfigs API
25+
properties:
26+
apiVersion:
27+
description: |-
28+
APIVersion defines the versioned schema of this representation of an object.
29+
Servers should convert recognized schemas to the latest internal value, and
30+
may reject unrecognized values.
31+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
32+
type: string
33+
kind:
34+
description: |-
35+
Kind is a string value representing the REST resource this object represents.
36+
Servers may infer this from the endpoint the client submits requests to.
37+
Cannot be updated.
38+
In CamelCase.
39+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
40+
type: string
41+
metadata:
42+
type: object
43+
spec:
44+
properties:
45+
accountRoleConfig:
46+
properties:
47+
path:
48+
type: string
49+
permissionsBoundaryARN:
50+
type: string
51+
prefix:
52+
maxLength: 4
53+
type: string
54+
sharedVPCConfig:
55+
properties:
56+
routeRoleARN:
57+
type: string
58+
vpcEndpointRoleArn:
59+
type: string
60+
type: object
61+
version:
62+
type: string
63+
required:
64+
- prefix
65+
- version
66+
type: object
67+
oidcConfig:
68+
properties:
69+
createManagedOIDC:
70+
type: string
71+
externalAuthProviders:
72+
items:
73+
properties:
74+
claimMappings:
75+
properties:
76+
groups:
77+
properties:
78+
claim:
79+
type: string
80+
prefixPolicy:
81+
type: string
82+
required:
83+
- claim
84+
type: object
85+
username:
86+
properties:
87+
claim:
88+
type: string
89+
prefixPolicy:
90+
type: string
91+
required:
92+
- claim
93+
type: object
94+
required:
95+
- username
96+
type: object
97+
issuer:
98+
properties:
99+
audiences:
100+
items:
101+
type: string
102+
type: array
103+
issuerURL:
104+
type: string
105+
required:
106+
- issuerURL
107+
type: object
108+
name:
109+
type: string
110+
oidcClients:
111+
items:
112+
properties:
113+
clientID:
114+
type: string
115+
clientSecret:
116+
properties:
117+
name:
118+
type: string
119+
required:
120+
- name
121+
type: object
122+
componentName:
123+
type: string
124+
componentNamespace:
125+
type: string
126+
required:
127+
- clientID
128+
- clientSecret
129+
- componentName
130+
- componentNamespace
131+
type: object
132+
type: array
133+
required:
134+
- claimMappings
135+
- issuer
136+
- name
137+
type: object
138+
type: array
139+
required:
140+
- createManagedOIDC
141+
type: object
142+
operatorRoleConfig:
143+
properties:
144+
oidcConfigId:
145+
type: string
146+
permissionsBoundaryARN:
147+
type: string
148+
prefix:
149+
maxLength: 4
150+
type: string
151+
sharedVPCConfig:
152+
properties:
153+
routeRoleARN:
154+
type: string
155+
vpcEndpointRoleArn:
156+
type: string
157+
type: object
158+
required:
159+
- oidcConfigId
160+
- prefix
161+
type: object
162+
required:
163+
- accountRoleConfig
164+
- oidcConfig
165+
- operatorRoleConfig
166+
type: object
167+
status:
168+
description: ROSARoleConfigStatus defines the observed state of ROSARoleConfig
169+
properties:
170+
accountRolesRef:
171+
properties:
172+
installerRoleARN:
173+
type: string
174+
supportRoleARN:
175+
type: string
176+
workerRoleARN:
177+
type: string
178+
type: object
179+
conditions:
180+
items:
181+
description: Condition contains details for one aspect of the current
182+
state of this API Resource.
183+
properties:
184+
lastTransitionTime:
185+
description: |-
186+
lastTransitionTime is the last time the condition transitioned from one status to another.
187+
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
188+
format: date-time
189+
type: string
190+
message:
191+
description: |-
192+
message is a human readable message indicating details about the transition.
193+
This may be an empty string.
194+
maxLength: 32768
195+
type: string
196+
observedGeneration:
197+
description: |-
198+
observedGeneration represents the .metadata.generation that the condition was set based upon.
199+
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
200+
with respect to the current state of the instance.
201+
format: int64
202+
minimum: 0
203+
type: integer
204+
reason:
205+
description: |-
206+
reason contains a programmatic identifier indicating the reason for the condition's last transition.
207+
Producers of specific condition types may define expected values and meanings for this field,
208+
and whether the values are considered a guaranteed API.
209+
The value should be a CamelCase string.
210+
This field may not be empty.
211+
maxLength: 1024
212+
minLength: 1
213+
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
214+
type: string
215+
status:
216+
description: status of the condition, one of True, False, Unknown.
217+
enum:
218+
- "True"
219+
- "False"
220+
- Unknown
221+
type: string
222+
type:
223+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
224+
maxLength: 316
225+
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])$
226+
type: string
227+
required:
228+
- lastTransitionTime
229+
- message
230+
- reason
231+
- status
232+
- type
233+
type: object
234+
type: array
235+
oidcID:
236+
type: string
237+
oidcProviderARN:
238+
type: string
239+
operatorRolesRef:
240+
properties:
241+
controlPlaneOperatorARN:
242+
type: string
243+
imageRegistryARN:
244+
type: string
245+
ingressARN:
246+
type: string
247+
kmsProviderARN:
248+
type: string
249+
kubeCloudControllerARN:
250+
type: string
251+
networkARN:
252+
type: string
253+
nodePoolManagementARN:
254+
type: string
255+
storageARN:
256+
type: string
257+
type: object
258+
type: object
259+
type: object
260+
served: true
261+
storage: true
262+
subresources:
263+
status: {}

0 commit comments

Comments
 (0)