Skip to content

Commit c476630

Browse files
committed
Add Cluster API app and CRD charts
Signed-off-by: Ryan Djurovich <git@ryan0x44.com>
1 parent 2d38e42 commit c476630

35 files changed

Lines changed: 25250 additions & 6 deletions

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,13 @@ __Addons (optional, installable via `podplane install <name>`):__
5454
certificate trust store management (_Apache 2.0_).
5555
- [Snapshot Controller](https://github.com/kubernetes-csi/external-snapshotter)
5656
for persistent volume snapshotting (_Apache 2.0_).
57+
58+
__Provider-Specific Core (always installed for certain providers):__
59+
5760
- [AWS EBS CSI Driver](https://github.com/kubernetes-sigs/aws-ebs-csi-driver)
5861
for persistent storage on AWS (_Apache 2.0_).
62+
- [Cluster API](https://cluster-api.sigs.k8s.io/) core controller and CRDs for
63+
declarative infrastructure-provider cluster lifecycle management (_Apache 2.0_).
5964

6065
## Usage
6166

charts/cluster-api-crds/Chart.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Podplane <https://podplane.dev>
2+
# Copyright The Podplane Authors
3+
# SPDX-License-Identifier: Apache-2.0
4+
---
5+
apiVersion: v2
6+
name: cluster-api-crds
7+
description: Cluster API core custom resource definitions
8+
type: application
9+
version: "1.0.0"
10+
appVersion: "v1.12.10"

charts/cluster-api-crds/templates/external/clusterclasses.cluster.x-k8s.io.yaml

Lines changed: 5425 additions & 0 deletions
Large diffs are not rendered by default.

charts/cluster-api-crds/templates/external/clusterresourcesetbindings.addons.cluster.x-k8s.io.yaml

Lines changed: 434 additions & 0 deletions
Large diffs are not rendered by default.

charts/cluster-api-crds/templates/external/clusterresourcesets.addons.cluster.x-k8s.io.yaml

Lines changed: 903 additions & 0 deletions
Large diffs are not rendered by default.

charts/cluster-api-crds/templates/external/clusters.cluster.x-k8s.io.yaml

Lines changed: 3872 additions & 0 deletions
Large diffs are not rendered by default.

charts/cluster-api-crds/templates/external/extensionconfigs.runtime.cluster.x-k8s.io.yaml

Lines changed: 743 additions & 0 deletions
Large diffs are not rendered by default.

charts/cluster-api-crds/templates/external/ipaddressclaims.ipam.cluster.x-k8s.io.yaml

Lines changed: 619 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 356 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,356 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
cert-manager.io/inject-ca-from: platform-cluster-api/capi-serving-cert
7+
controller-gen.kubebuilder.io/version: v0.19.0
8+
labels:
9+
cluster.x-k8s.io/provider: cluster-api
10+
name: ipaddresses.ipam.cluster.x-k8s.io
11+
spec:
12+
conversion:
13+
strategy: Webhook
14+
webhook:
15+
clientConfig:
16+
service:
17+
name: capi-webhook-service
18+
namespace: platform-cluster-api
19+
path: /convert
20+
conversionReviewVersions:
21+
- v1
22+
- v1beta1
23+
group: ipam.cluster.x-k8s.io
24+
names:
25+
categories:
26+
- cluster-api
27+
kind: IPAddress
28+
listKind: IPAddressList
29+
plural: ipaddresses
30+
singular: ipaddress
31+
scope: Namespaced
32+
versions:
33+
- additionalPrinterColumns:
34+
- description: Address
35+
jsonPath: .spec.address
36+
name: Address
37+
type: string
38+
- description: Name of the pool the address is from
39+
jsonPath: .spec.poolRef.name
40+
name: Pool Name
41+
type: string
42+
- description: Kind of the pool the address is from
43+
jsonPath: .spec.poolRef.kind
44+
name: Pool Kind
45+
type: string
46+
- description: Time duration since creation of IPAdress
47+
jsonPath: .metadata.creationTimestamp
48+
name: Age
49+
type: date
50+
name: v1alpha1
51+
schema:
52+
openAPIV3Schema:
53+
description: IPAddress is the Schema for the ipaddress API.
54+
properties:
55+
apiVersion:
56+
description: |-
57+
APIVersion defines the versioned schema of this representation of an object.
58+
Servers should convert recognized schemas to the latest internal value, and
59+
may reject unrecognized values.
60+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
61+
type: string
62+
kind:
63+
description: |-
64+
Kind is a string value representing the REST resource this object represents.
65+
Servers may infer this from the endpoint the client submits requests to.
66+
Cannot be updated.
67+
In CamelCase.
68+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
69+
type: string
70+
metadata:
71+
type: object
72+
spec:
73+
description: spec is the desired state of IPAddress.
74+
properties:
75+
address:
76+
description: address is the IP address.
77+
maxLength: 39
78+
minLength: 1
79+
type: string
80+
claimRef:
81+
description: claimRef is a reference to the claim this IPAddress was
82+
created for.
83+
properties:
84+
name:
85+
default: ""
86+
description: |-
87+
Name of the referent.
88+
This field is effectively required, but due to backwards compatibility is
89+
allowed to be empty. Instances of this type with an empty value here are
90+
almost certainly wrong.
91+
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
92+
type: string
93+
type: object
94+
x-kubernetes-map-type: atomic
95+
gateway:
96+
description: gateway is the network gateway of the network the address
97+
is from.
98+
maxLength: 39
99+
minLength: 1
100+
type: string
101+
poolRef:
102+
description: poolRef is a reference to the pool that this IPAddress
103+
was created from.
104+
properties:
105+
apiGroup:
106+
description: |-
107+
APIGroup is the group for the resource being referenced.
108+
If APIGroup is not specified, the specified Kind must be in the core API group.
109+
For any other third-party types, APIGroup is required.
110+
type: string
111+
kind:
112+
description: Kind is the type of resource being referenced
113+
type: string
114+
name:
115+
description: Name is the name of resource being referenced
116+
type: string
117+
required:
118+
- kind
119+
- name
120+
type: object
121+
x-kubernetes-map-type: atomic
122+
prefix:
123+
description: prefix is the prefix of the address.
124+
type: integer
125+
required:
126+
- address
127+
- claimRef
128+
- poolRef
129+
- prefix
130+
type: object
131+
type: object
132+
served: true
133+
storage: false
134+
subresources: {}
135+
- additionalPrinterColumns:
136+
- description: Address
137+
jsonPath: .spec.address
138+
name: Address
139+
type: string
140+
- description: Name of the pool the address is from
141+
jsonPath: .spec.poolRef.name
142+
name: Pool Name
143+
type: string
144+
- description: Kind of the pool the address is from
145+
jsonPath: .spec.poolRef.kind
146+
name: Pool Kind
147+
type: string
148+
- description: Time duration since creation of IPAdress
149+
jsonPath: .metadata.creationTimestamp
150+
name: Age
151+
type: date
152+
deprecated: true
153+
name: v1beta1
154+
schema:
155+
openAPIV3Schema:
156+
description: IPAddress is the Schema for the ipaddress API.
157+
properties:
158+
apiVersion:
159+
description: |-
160+
APIVersion defines the versioned schema of this representation of an object.
161+
Servers should convert recognized schemas to the latest internal value, and
162+
may reject unrecognized values.
163+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
164+
type: string
165+
kind:
166+
description: |-
167+
Kind is a string value representing the REST resource this object represents.
168+
Servers may infer this from the endpoint the client submits requests to.
169+
Cannot be updated.
170+
In CamelCase.
171+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
172+
type: string
173+
metadata:
174+
type: object
175+
spec:
176+
description: spec is the desired state of IPAddress.
177+
properties:
178+
address:
179+
description: address is the IP address.
180+
maxLength: 39
181+
minLength: 1
182+
type: string
183+
claimRef:
184+
description: claimRef is a reference to the claim this IPAddress was
185+
created for.
186+
properties:
187+
name:
188+
default: ""
189+
description: |-
190+
Name of the referent.
191+
This field is effectively required, but due to backwards compatibility is
192+
allowed to be empty. Instances of this type with an empty value here are
193+
almost certainly wrong.
194+
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
195+
type: string
196+
type: object
197+
x-kubernetes-map-type: atomic
198+
gateway:
199+
description: gateway is the network gateway of the network the address
200+
is from.
201+
maxLength: 39
202+
minLength: 1
203+
type: string
204+
poolRef:
205+
description: poolRef is a reference to the pool that this IPAddress
206+
was created from.
207+
properties:
208+
apiGroup:
209+
description: |-
210+
APIGroup is the group for the resource being referenced.
211+
If APIGroup is not specified, the specified Kind must be in the core API group.
212+
For any other third-party types, APIGroup is required.
213+
type: string
214+
kind:
215+
description: Kind is the type of resource being referenced
216+
type: string
217+
name:
218+
description: Name is the name of resource being referenced
219+
type: string
220+
required:
221+
- kind
222+
- name
223+
type: object
224+
x-kubernetes-map-type: atomic
225+
prefix:
226+
description: prefix is the prefix of the address.
227+
type: integer
228+
required:
229+
- address
230+
- claimRef
231+
- poolRef
232+
- prefix
233+
type: object
234+
type: object
235+
served: true
236+
storage: false
237+
subresources: {}
238+
- additionalPrinterColumns:
239+
- description: Address
240+
jsonPath: .spec.address
241+
name: Address
242+
type: string
243+
- description: Name of the pool the address is from
244+
jsonPath: .spec.poolRef.name
245+
name: Pool Name
246+
type: string
247+
- description: Kind of the pool the address is from
248+
jsonPath: .spec.poolRef.kind
249+
name: Pool Kind
250+
type: string
251+
- description: Time duration since creation of IPAdress
252+
jsonPath: .metadata.creationTimestamp
253+
name: Age
254+
type: date
255+
name: v1beta2
256+
schema:
257+
openAPIV3Schema:
258+
description: IPAddress is the Schema for the ipaddress API.
259+
properties:
260+
apiVersion:
261+
description: |-
262+
APIVersion defines the versioned schema of this representation of an object.
263+
Servers should convert recognized schemas to the latest internal value, and
264+
may reject unrecognized values.
265+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
266+
type: string
267+
kind:
268+
description: |-
269+
Kind is a string value representing the REST resource this object represents.
270+
Servers may infer this from the endpoint the client submits requests to.
271+
Cannot be updated.
272+
In CamelCase.
273+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
274+
type: string
275+
metadata:
276+
type: object
277+
spec:
278+
description: spec is the desired state of IPAddress.
279+
properties:
280+
address:
281+
description: address is the IP address.
282+
maxLength: 39
283+
minLength: 1
284+
type: string
285+
claimRef:
286+
description: claimRef is a reference to the claim this IPAddress was
287+
created for.
288+
properties:
289+
name:
290+
description: |-
291+
name of the IPAddressClaim.
292+
name must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
293+
maxLength: 253
294+
minLength: 1
295+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
296+
type: string
297+
required:
298+
- name
299+
type: object
300+
gateway:
301+
description: gateway is the network gateway of the network the address
302+
is from.
303+
maxLength: 39
304+
minLength: 1
305+
type: string
306+
poolRef:
307+
description: poolRef is a reference to the pool that this IPAddress
308+
was created from.
309+
properties:
310+
apiGroup:
311+
description: |-
312+
apiGroup of the IPPool.
313+
apiGroup must be fully qualified domain name.
314+
maxLength: 253
315+
minLength: 1
316+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
317+
type: string
318+
kind:
319+
description: |-
320+
kind of the IPPool.
321+
kind must consist of alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character.
322+
maxLength: 63
323+
minLength: 1
324+
pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
325+
type: string
326+
name:
327+
description: |-
328+
name of the IPPool.
329+
name must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
330+
maxLength: 253
331+
minLength: 1
332+
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
333+
type: string
334+
required:
335+
- apiGroup
336+
- kind
337+
- name
338+
type: object
339+
prefix:
340+
description: prefix is the prefix of the address.
341+
format: int32
342+
maximum: 128
343+
minimum: 0
344+
type: integer
345+
required:
346+
- address
347+
- claimRef
348+
- poolRef
349+
- prefix
350+
type: object
351+
required:
352+
- spec
353+
type: object
354+
served: true
355+
storage: true
356+
subresources: {}

0 commit comments

Comments
 (0)