Skip to content

Commit b84409a

Browse files
authored
Merge pull request #2 from AbsaOSS/awsmanagedclustertemplate
AWSManagedClusterTemplate
2 parents 4b19445 + 405761a commit b84409a

File tree

3 files changed

+230
-0
lines changed

3 files changed

+230
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
Copyright 2025 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1beta2
18+
19+
import (
20+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21+
)
22+
23+
// AWSManagedClusterTemplateSpec defines the desired state of AWSManagedClusterTemplate.
24+
type AWSManagedClusterTemplateSpec struct {
25+
Template AWSManagedClusterTemplateResource `json:"template"`
26+
}
27+
28+
// +kubebuilder:object:root=true
29+
// +kubebuilder:resource:path=awsmanagedclustertemplates,scope=Namespaced,categories=cluster-api,shortName=amct
30+
// +kubebuilder:storageversion
31+
32+
// AWSManagedClusterTemplate is the Schema for the AWSManagedClusterTemplates API.
33+
type AWSManagedClusterTemplate struct {
34+
metav1.TypeMeta `json:",inline"`
35+
metav1.ObjectMeta `json:"metadata,omitempty"`
36+
37+
Spec AWSManagedClusterTemplateSpec `json:"spec,omitempty"`
38+
}
39+
40+
// +kubebuilder:object:root=true
41+
42+
// AWSManagedClusterTemplateList contains a list of AWSManagedClusterTemplates.
43+
type AWSManagedClusterTemplateList struct {
44+
metav1.TypeMeta `json:",inline"`
45+
metav1.ListMeta `json:"metadata,omitempty"`
46+
Items []AWSManagedClusterTemplate `json:"items"`
47+
}
48+
49+
func init() {
50+
SchemeBuilder.Register(&AWSManagedClusterTemplate{}, &AWSManagedClusterTemplateList{})
51+
}
52+
53+
// AWSManagedClusterTemplateResource describes the data needed to create an AWSManagedCluster from a template.
54+
type AWSManagedClusterTemplateResource struct {
55+
Spec AWSManagedClusterTemplateResourceSpec `json:"spec"`
56+
}
57+
58+
// AWSManagedClusterTemplateResourceSpec defines the desired state of an AWSManagedCluster. Note that
59+
// this object is needed to satisfy the ClusterClass contract.
60+
type AWSManagedClusterTemplateResourceSpec struct{}

api/v1beta2/zz_generated.deepcopy.go

Lines changed: 105 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
controller-gen.kubebuilder.io/version: v0.14.0
7+
name: awsmanagedclustertemplates.infrastructure.cluster.x-k8s.io
8+
spec:
9+
group: infrastructure.cluster.x-k8s.io
10+
names:
11+
categories:
12+
- cluster-api
13+
kind: AWSManagedClusterTemplate
14+
listKind: AWSManagedClusterTemplateList
15+
plural: awsmanagedclustertemplates
16+
shortNames:
17+
- amct
18+
singular: awsmanagedclustertemplate
19+
scope: Namespaced
20+
versions:
21+
- name: v1beta2
22+
schema:
23+
openAPIV3Schema:
24+
description: AWSManagedClusterTemplate is the Schema for the AWSManagedClusterTemplates
25+
API.
26+
properties:
27+
apiVersion:
28+
description: |-
29+
APIVersion defines the versioned schema of this representation of an object.
30+
Servers should convert recognized schemas to the latest internal value, and
31+
may reject unrecognized values.
32+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
33+
type: string
34+
kind:
35+
description: |-
36+
Kind is a string value representing the REST resource this object represents.
37+
Servers may infer this from the endpoint the client submits requests to.
38+
Cannot be updated.
39+
In CamelCase.
40+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
41+
type: string
42+
metadata:
43+
type: object
44+
spec:
45+
description: AWSManagedClusterTemplateSpec defines the desired state of
46+
AWSManagedClusterTemplate.
47+
properties:
48+
template:
49+
description: AWSManagedClusterTemplateResource describes the data
50+
needed to create an AWSManagedCluster from a template.
51+
properties:
52+
spec:
53+
description: |-
54+
AWSManagedClusterTemplateResourceSpec defines the desired state of an AWSManagedCluster. Note that
55+
this object is needed to satisfy the ClusterClass contract.
56+
type: object
57+
required:
58+
- spec
59+
type: object
60+
required:
61+
- template
62+
type: object
63+
type: object
64+
served: true
65+
storage: true

0 commit comments

Comments
 (0)