-
Notifications
You must be signed in to change notification settings - Fork 284
/
cluster_defaults.go
82 lines (71 loc) · 2.47 KB
/
cluster_defaults.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
package v1alpha1
import (
"fmt"
"os"
"github.com/aws/eks-anywhere/pkg/constants"
"github.com/aws/eks-anywhere/pkg/logger"
"github.com/aws/eks-anywhere/pkg/utils/ptr"
)
var clusterDefaults = []func(*Cluster) error{
setRegistryMirrorConfigDefaults,
setWorkerNodeGroupDefaults,
setCNIConfigDefault,
setEtcdEncryptionConfigDefaults,
}
func setClusterDefaults(cluster *Cluster) error {
for _, d := range clusterDefaults {
if err := d(cluster); err != nil {
return err
}
}
return nil
}
func setRegistryMirrorConfigDefaults(clusterConfig *Cluster) error {
if clusterConfig.Spec.RegistryMirrorConfiguration == nil {
return nil
}
if clusterConfig.Spec.RegistryMirrorConfiguration.Port == "" {
logger.V(1).Info("RegistryMirrorConfiguration.Port is not specified, default port will be used", "Default Port", constants.DefaultHttpsPort)
clusterConfig.Spec.RegistryMirrorConfiguration.Port = constants.DefaultHttpsPort
}
if clusterConfig.Spec.RegistryMirrorConfiguration.CACertContent == "" {
if caCert, set := os.LookupEnv(RegistryMirrorCAKey); set && len(caCert) > 0 {
content, err := os.ReadFile(caCert)
if err != nil {
return fmt.Errorf("reading the cert file %s: %v", caCert, err)
}
logger.V(4).Info(fmt.Sprintf("%s is set, using %s as ca cert for registry", RegistryMirrorCAKey, caCert))
clusterConfig.Spec.RegistryMirrorConfiguration.CACertContent = string(content)
}
}
return nil
}
func setWorkerNodeGroupDefaults(cluster *Cluster) error {
if len(cluster.Spec.WorkerNodeGroupConfigurations) >= 1 && cluster.Spec.WorkerNodeGroupConfigurations[0].Name == "" {
logger.V(1).Info("First worker node group name not specified. Defaulting name to md-0.")
cluster.Spec.WorkerNodeGroupConfigurations[0].Name = "md-0"
}
for i := range cluster.Spec.WorkerNodeGroupConfigurations {
w := &cluster.Spec.WorkerNodeGroupConfigurations[i]
if w.Count == nil && w.AutoScalingConfiguration != nil {
w.Count = &w.AutoScalingConfiguration.MinCount
} else if w.Count == nil {
w.Count = ptr.Int(1)
}
}
return nil
}
func setCNIConfigDefault(cluster *Cluster) error {
if cluster.Spec.ClusterNetwork.CNIConfig != nil {
return nil
}
cluster.Spec.ClusterNetwork.CNIConfig = &CNIConfig{}
switch cluster.Spec.ClusterNetwork.CNI {
case Cilium, CiliumEnterprise:
cluster.Spec.ClusterNetwork.CNIConfig.Cilium = &CiliumConfig{}
case Kindnetd:
cluster.Spec.ClusterNetwork.CNIConfig.Kindnetd = &KindnetdConfig{}
}
cluster.Spec.ClusterNetwork.CNI = ""
return nil
}