-
Notifications
You must be signed in to change notification settings - Fork 541
/
eksconfig_types.go
93 lines (73 loc) · 3.2 KB
/
eksconfig_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
Copyright 2020 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha3
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
clusterv1alpha3 "sigs.k8s.io/cluster-api/api/v1alpha3"
)
// EKSConfigSpec defines the desired state of EKSConfig
type EKSConfigSpec struct {
// Passes the kubelet args into the EKS bootstrap script
// +optional
KubeletExtraArgs map[string]string `json:"kubeletExtraArgs,omitempty"`
}
// EKSConfigStatus defines the observed state of EKSConfig
type EKSConfigStatus struct {
// Ready indicates the BootstrapData secret is ready to be consumed
Ready bool `json:"ready,omitempty"`
// DataSecretName is the name of the secret that stores the bootstrap data script.
// +optional
DataSecretName *string `json:"dataSecretName,omitempty"`
// FailureReason will be set on non-retryable errors
// +optional
FailureReason string `json:"failureReason,omitempty"`
// FailureMessage will be set on non-retryable errors
// +optional
FailureMessage string `json:"failureMessage,omitempty"`
// ObservedGeneration is the latest generation observed by the controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// Conditions defines current service state of the EKSConfig.
// +optional
Conditions clusterv1alpha3.Conditions `json:"conditions,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:resource:path=eksconfigs,scope=Namespaced,categories=cluster-api,shortName=eksc
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Bootstrap configuration is ready"
// +kubebuilder:printcolumn:name="DataSecretName",type="string",JSONPath=".status.dataSecretName",description="Name of Secret containing bootstrap data"
// EKSConfig is the Schema for the eksconfigs API
type EKSConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec EKSConfigSpec `json:"spec,omitempty"`
Status EKSConfigStatus `json:"status,omitempty"`
}
// GetConditions returns the observations of the operational state of the EKSConfig resource.
func (r *EKSConfig) GetConditions() clusterv1alpha3.Conditions {
return r.Status.Conditions
}
// SetConditions sets the underlying service state of the EKSConfig to the predescribed clusterv1alpha3.Conditions.
func (r *EKSConfig) SetConditions(conditions clusterv1alpha3.Conditions) {
r.Status.Conditions = conditions
}
// +kubebuilder:object:root=true
// EKSConfigList contains a list of EKSConfig.
type EKSConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []EKSConfig `json:"items"`
}
func init() {
SchemeBuilder.Register(&EKSConfig{}, &EKSConfigList{})
}