@@ -23,13 +23,13 @@ type (
23
23
24
24
ForksConfig struct {
25
25
KubeaidForkURL string `yaml:"kubeaid" default:"https://github.com/Obmondo/KubeAid"`
26
- KubeaidConfigForkURL string `yaml:"kubeaidConfig" validate:"required, notblank"`
26
+ KubeaidConfigForkURL string `yaml:"kubeaidConfig" validate:"notblank"`
27
27
}
28
28
29
29
ClusterConfig struct {
30
- Name string `yaml:"name" validate:"required, notblank"`
31
- K8sVersion string `yaml:"k8sVersion" validate:"required, notblank"`
32
- KubeaidVersion string `yaml:"kubeaidVersion" validate:"required, notblank"`
30
+ Name string `yaml:"name" validate:"notblank"`
31
+ K8sVersion string `yaml:"k8sVersion" validate:"notblank"`
32
+ KubeaidVersion string `yaml:"kubeaidVersion" validate:"notblank"`
33
33
34
34
EnableAuditLogging bool `yaml:"enableAuditLogging" default:"True"`
35
35
56
56
57
57
// REFER : "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1".HostPathMount
58
58
HostPathMountConfig struct {
59
- Name string `yaml:"name" validate:"required, notblank"`
60
- HostPath string `yaml:"hostPath" validate:"required, notblank"`
61
- MountPath string `yaml:"mountPath" validate:"required, notblank"`
59
+ Name string `yaml:"name" validate:"notblank"`
60
+ HostPath string `yaml:"hostPath" validate:"notblank"`
61
+ MountPath string `yaml:"mountPath" validate:"notblank"`
62
62
PathType coreV1.HostPathType `yaml:"pathType" validate:"required"`
63
63
64
64
/*
75
75
76
76
// REFER : "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1".File
77
77
FileConfig struct {
78
- Path string `yaml:"path" validate:"required, notblank"`
79
- Content string `yaml:"content" validate:"required, notblank"`
78
+ Path string `yaml:"path" validate:"notblank"`
79
+ Content string `yaml:"content" validate:"notblank"`
80
80
}
81
81
82
82
UserConfig struct {
85
85
}
86
86
87
87
NodeGroup struct {
88
- Name string `yaml:"name" validate:"required, notblank"`
88
+ Name string `yaml:"name" validate:"notblank"`
89
89
90
90
CPU uint32 `validate:"required"`
91
91
Memory uint32 `validate:"required"`
@@ -107,16 +107,16 @@ type (
107
107
}
108
108
109
109
DisasterRecoveryConfig struct {
110
- VeleroBackupsBucketName string `yaml:"veleroBackupsBucketName" validate:"required, notblank"`
111
- SealedSecretsBackupsBucketName string `yaml:"sealedSecretsBackupsBucketName" validate:"required, notblank"`
110
+ VeleroBackupsBucketName string `yaml:"veleroBackupsBucketName" validate:"notblank"`
111
+ SealedSecretsBackupsBucketName string `yaml:"sealedSecretsBackupsBucketName" validate:"notblank"`
112
112
}
113
113
114
114
SSHKeyPairConfig struct {
115
- PublicKeyFilePath string `yaml:"publicKeyFilePath" validate:"required, notblank"`
116
- PublicKey string ` validate:"required, notblank"`
115
+ PublicKeyFilePath string `yaml:"publicKeyFilePath" validate:"notblank"`
116
+ PublicKey string ` validate:"notblank"`
117
117
118
- PrivateKeyFilePath string `yaml:"privateKeyFilePath" validate:"required, notblank"`
119
- PrivateKey string ` validate:"required, notblank"`
118
+ PrivateKeyFilePath string `yaml:"privateKeyFilePath" validate:"notblank"`
119
+ PrivateKey string ` validate:"notblank"`
120
120
}
121
121
122
122
MonitoringConfig struct {
@@ -129,49 +129,49 @@ type (
129
129
// AWS specific.
130
130
type (
131
131
AWSConfig struct {
132
- Region string `yaml:"region" validate:"required, notblank"`
132
+ Region string `yaml:"region" validate:"notblank"`
133
133
134
- SSHKeyName string `yaml:"sshKeyName" validate:"required, notblank"`
134
+ SSHKeyName string `yaml:"sshKeyName" validate:"notblank"`
135
135
VPCID * string `yaml:"vpcID"`
136
- BastionEnabled bool `yaml:"bastionEnabled" default:"True"`
136
+ BastionEnabled bool `yaml:"bastionEnabled" default:"True"`
137
137
ControlPlane AWSControlPlane `yaml:"controlPlane" validate:"required"`
138
138
NodeGroups []AWSNodeGroup `yaml:"nodeGroups" validate:"required"`
139
139
}
140
140
141
141
AWSControlPlane struct {
142
- LoadBalancerScheme string `yaml:"loadBalancerScheme" default:"internet-facing" validate:"required, notblank"`
142
+ LoadBalancerScheme string `yaml:"loadBalancerScheme" default:"internet-facing" validate:"notblank"`
143
143
Replicas uint32 `yaml:"replicas" validate:"required"`
144
- InstanceType string `yaml:"instanceType" validate:"required, notblank"`
144
+ InstanceType string `yaml:"instanceType" validate:"notblank"`
145
145
AMI AMIConfig `yaml:"ami" validate:"required"`
146
146
}
147
147
148
148
AWSNodeGroup struct {
149
149
NodeGroup `yaml:",inline"`
150
150
151
151
AMI AMIConfig `yaml:"ami" validate:"required"`
152
- InstanceType string `yaml:"instanceType" validate:"required, notblank"`
152
+ InstanceType string `yaml:"instanceType" validate:"notblank"`
153
153
RootVolumeSize uint32 `yaml:"rootVolumeSize" validate:"required"`
154
- SSHKeyName string `yaml:"sshKeyName" validate:"required, notblank"`
154
+ SSHKeyName string `yaml:"sshKeyName" validate:"notblank"`
155
155
}
156
156
157
157
AMIConfig struct {
158
- ID string `yaml:"id" validate:"required, notblank"`
158
+ ID string `yaml:"id" validate:"notblank"`
159
159
}
160
160
)
161
161
162
162
// Azure specific.
163
163
type (
164
164
AzureConfig struct {
165
- TenantID string `yaml:"tenantID" validate:"required, notblank"`
166
- SubscriptionID string `yaml:"subscriptionID" validate:"required, notblank"`
165
+ TenantID string `yaml:"tenantID" validate:"notblank"`
166
+ SubscriptionID string `yaml:"subscriptionID" validate:"notblank"`
167
167
AADApplication AADApplication `yaml:"aadApplication" validate:"required"`
168
- Location string `yaml:"location" validate:"required, notblank"`
168
+ Location string `yaml:"location" validate:"notblank"`
169
169
170
- StorageAccount string `yaml:"storageAccount" validate:"required, notblank"`
170
+ StorageAccount string `yaml:"storageAccount" validate:"notblank"`
171
171
172
172
WorkloadIdentity WorkloadIdentity `yaml:"workloadIdentity" validate:"required"`
173
173
174
- SSHPublicKey string `yaml:"sshPublicKey" validate:"required, notblank"`
174
+ SSHPublicKey string `yaml:"sshPublicKey" validate:"notblank"`
175
175
176
176
ImageID * string `yaml:"imageID"`
177
177
@@ -180,57 +180,57 @@ type (
180
180
}
181
181
182
182
AADApplication struct {
183
- Name string `yaml:"name" validate:"required, notblank"`
184
- ObjectID string `yaml:"objectID" validate:"required, notblank"`
185
- ServicePrincipalID string `yaml:"servicePrincipalID" validate:"required, notblank"`
183
+ Name string `yaml:"name" validate:"notblank"`
184
+ ObjectID string `yaml:"objectID" validate:"notblank"`
185
+ ServicePrincipalID string `yaml:"servicePrincipalID" validate:"notblank"`
186
186
}
187
187
188
188
WorkloadIdentity struct {
189
- OpenIDProviderSSHKeyPair SSHKeyPairConfig `yaml:"openIDProviderSSHKeyPair" validate:"required, notblank"`
189
+ OpenIDProviderSSHKeyPair SSHKeyPairConfig `yaml:"openIDProviderSSHKeyPair" validate:"notblank"`
190
190
}
191
191
192
192
AzureControlPlane struct {
193
- LoadBalancerType string `yaml:"loadBalancerType" validate:"required, notblank" default:"Public"`
193
+ LoadBalancerType string `yaml:"loadBalancerType" validate:"notblank" default:"Public"`
194
194
DiskSizeGB uint32 `yaml:"diskSizeGB" validate:"required,gt=100"`
195
- VMSize string `yaml:"vmSize" validate:"required, notblank"`
195
+ VMSize string `yaml:"vmSize" validate:"notblank"`
196
196
Replicas uint32 `yaml:"replicas" validate:"required,gt=0"`
197
197
}
198
198
199
199
AzureNodeGroup struct {
200
200
NodeGroup `yaml:",inline"`
201
201
202
- VMSize string `yaml:"vmSize" validate:"required, notblank"`
202
+ VMSize string `yaml:"vmSize" validate:"notblank"`
203
203
DiskSizeGB uint32 `yaml:"diskSizeGB" validate:"required"`
204
204
}
205
205
)
206
206
207
207
// Hetzner specific.
208
208
type (
209
209
HetznerConfig struct {
210
- Mode string `yaml:"mode" default:"hcloud" validate:"required, notblank"`
210
+ Mode string `yaml:"mode" default:"hcloud" validate:"notblank,oneof='bare-metal hcloud hybrid' "`
211
211
212
- Zone string `yaml:"zone" validate:"required, notblank"`
213
- Region string `yaml:"region" validate:"required, notblank"`
212
+ Zone string `yaml:"zone" validate:"notblank"`
213
+ Region string `yaml:"region" validate:"notblank"`
214
214
215
- HCloudSSHKeyPairName string `yaml:"hcloudSSHKeyPairName" validate:"required, notblank"`
215
+ HCloudSSHKeyPairName string `yaml:"hcloudSSHKeyPairName" validate:"notblank"`
216
216
217
217
NetworkEnabled bool `yaml:"networkEnabled" default:"True" validate:"required"`
218
- ImageName string `yaml:"imageName" default:"ubuntu-24.04" validate:"required, notblank"`
218
+ ImageName string `yaml:"imageName" default:"ubuntu-24.04" validate:"notblank"`
219
219
220
220
ControlPlane HetznerControlPlane `yaml:"controlPlane" validate:"required"`
221
221
NodeGroups HetznerNodeGroups `yaml:"nodeGroups" validate:"required"`
222
222
}
223
223
224
224
HetznerControlPlane struct {
225
- MachineType string `yaml:"machineType" validate:"required, notblank"`
225
+ MachineType string `yaml:"machineType" validate:"notblank"`
226
226
Replicas uint `yaml:"replicas" validate:"required"`
227
227
Regions []string `yaml:"regions" validate:"required,gt=0"`
228
228
LoadBalancer HCloudControlPlaneLoadBalancer `yaml:"loadBalancer"`
229
229
}
230
230
231
231
HCloudControlPlaneLoadBalancer struct {
232
232
Enabled bool `yaml:"enabled" validate:"required"`
233
- Region string `yaml:"region" validate:"required, notblank"`
233
+ Region string `yaml:"region" validate:"notblank"`
234
234
}
235
235
236
236
HetznerNodeGroups struct {
@@ -240,7 +240,7 @@ type (
240
240
HCloudNodeGroup struct {
241
241
NodeGroup `yaml:",inline"`
242
242
243
- MachineType string `yaml:"machineType" validate:"required, notblank"`
243
+ MachineType string `yaml:"machineType" validate:"notblank"`
244
244
RootVolumeSize uint32 ` validate:"required"`
245
245
}
246
246
)
0 commit comments