-
Notifications
You must be signed in to change notification settings - Fork 221
/
structure_cluster_v2_rke_config_etcd.go
117 lines (94 loc) · 2.53 KB
/
structure_cluster_v2_rke_config_etcd.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package rancher2
import (
rkev1 "github.com/rancher/rancher/pkg/apis/rke.cattle.io/v1"
)
// Flatteners
func flattenClusterV2RKEConfigETCDSnapshotS3(in *rkev1.ETCDSnapshotS3) []interface{} {
if in == nil {
return nil
}
obj := make(map[string]interface{})
if len(in.Bucket) > 0 {
obj["bucket"] = in.Bucket
}
if len(in.CloudCredentialName) > 0 {
obj["cloud_credential_name"] = in.CloudCredentialName
}
if len(in.Endpoint) > 0 {
obj["endpoint"] = in.Endpoint
}
if len(in.EndpointCA) > 0 {
obj["endpoint_ca"] = in.EndpointCA
}
if len(in.Folder) > 0 {
obj["folder"] = in.Folder
}
if len(in.Region) > 0 {
obj["region"] = in.Region
}
obj["skip_ssl_verify"] = in.SkipSSLVerify
return []interface{}{obj}
}
func flattenClusterV2RKEConfigETCD(in *rkev1.ETCD) []interface{} {
if in == nil {
return nil
}
obj := make(map[string]interface{})
obj["disable_snapshots"] = in.DisableSnapshots
if len(in.SnapshotScheduleCron) > 0 {
obj["snapshot_schedule_cron"] = in.SnapshotScheduleCron
}
if in.SnapshotRetention > 0 {
obj["snapshot_retention"] = in.SnapshotRetention
}
if in.S3 != nil {
obj["s3_config"] = flattenClusterV2RKEConfigETCDSnapshotS3(in.S3)
}
return []interface{}{obj}
}
// Expanders
func expandClusterV2RKEConfigETCDSnapshotS3(p []interface{}) *rkev1.ETCDSnapshotS3 {
if p == nil || len(p) == 0 || p[0] == nil {
return nil
}
obj := &rkev1.ETCDSnapshotS3{}
in := p[0].(map[string]interface{})
if v, ok := in["bucket"].(string); ok && len(v) > 0 {
obj.Bucket = v
}
if v, ok := in["cloud_credential_name"].(string); ok && len(v) > 0 {
obj.CloudCredentialName = v
}
if v, ok := in["endpoint"].(string); ok && len(v) > 0 {
obj.Endpoint = v
}
if v, ok := in["endpoint_ca"].(string); ok && len(v) > 0 {
obj.EndpointCA = v
}
if v, ok := in["folder"].(string); ok && len(v) > 0 {
obj.Folder = v
}
if v, ok := in["region"].(string); ok && len(v) > 0 {
obj.Region = v
}
obj.SkipSSLVerify = in["skip_ssl_verify"].(bool)
return obj
}
func expandClusterV2RKEConfigETCD(p []interface{}) *rkev1.ETCD {
if p == nil || len(p) == 0 || p[0] == nil {
return nil
}
obj := &rkev1.ETCD{}
in := p[0].(map[string]interface{})
obj.DisableSnapshots = in["disable_snapshots"].(bool)
if v, ok := in["snapshot_schedule_cron"].(string); ok && len(v) > 0 {
obj.SnapshotScheduleCron = v
}
if v, ok := in["snapshot_retention"].(int); ok && v > 0 {
obj.SnapshotRetention = v
}
if v, ok := in["s3_config"].([]interface{}); ok && len(v) > 0 {
obj.S3 = expandClusterV2RKEConfigETCDSnapshotS3(v)
}
return obj
}