-
Notifications
You must be signed in to change notification settings - Fork 274
/
snowmachines.go
53 lines (43 loc) 路 1.44 KB
/
snowmachines.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
package api
import (
"strings"
anywherev1 "github.com/aws/eks-anywhere/pkg/api/v1alpha1"
)
type SnowMachineConfigFiller func(m *anywherev1.SnowMachineConfig)
func FillSnowMachineConfig(m *anywherev1.SnowMachineConfig, fillers ...SnowMachineConfigFiller) {
for _, f := range fillers {
f(m)
}
}
func WithSnowMachineDefaultValues() SnowMachineConfigFiller {
return func(m *anywherev1.SnowMachineConfig) {
m.Spec.InstanceType = anywherev1.DefaultSnowInstanceType
m.Spec.PhysicalNetworkConnector = anywherev1.DefaultSnowPhysicalNetworkConnectorType
m.Spec.SshKeyName = anywherev1.DefaultSnowSshKeyName
}
}
func WithSnowAMIID(id string) SnowMachineConfigFiller {
return func(m *anywherev1.SnowMachineConfig) {
m.Spec.AMIID = id
}
}
func WithSnowInstanceType(instanceType anywherev1.SnowInstanceType) SnowMachineConfigFiller {
return func(m *anywherev1.SnowMachineConfig) {
m.Spec.InstanceType = instanceType
}
}
func WithSnowPhysicalNetworkConnector(connectorType anywherev1.PhysicalNetworkConnectorType) SnowMachineConfigFiller {
return func(m *anywherev1.SnowMachineConfig) {
m.Spec.PhysicalNetworkConnector = connectorType
}
}
func WithSnowSshKeyName(keyName string) SnowMachineConfigFiller {
return func(m *anywherev1.SnowMachineConfig) {
m.Spec.SshKeyName = keyName
}
}
func WithSnowDevices(devices string) SnowMachineConfigFiller {
return func(m *anywherev1.SnowMachineConfig) {
m.Spec.Devices = strings.Split(devices, ",")
}
}