github.com/rancher/types@v0.0.0-20220328215343-4370ff10ecd5/kdm/kdm.go (about) 1 package kdm 2 3 import ( 4 "encoding/json" 5 6 v3 "github.com/rancher/types/apis/management.cattle.io/v3" 7 ) 8 9 const ( 10 Calico = "calico" 11 Canal = "canal" 12 Flannel = "flannel" 13 Weave = "weave" 14 CoreDNS = "coreDNS" 15 KubeDNS = "kubeDNS" 16 MetricsServer = "metricsServer" 17 NginxIngress = "nginxIngress" 18 Nodelocal = "nodelocal" 19 TemplateKeys = "templateKeys" 20 ) 21 22 type Data struct { 23 // K8sVersionServiceOptions - service options per k8s version 24 K8sVersionServiceOptions map[string]v3.KubernetesServicesOptions 25 K8sVersionRKESystemImages map[string]v3.RKESystemImages 26 27 // Addon Templates per K8s version ("default" where nothing changes for k8s version) 28 K8sVersionedTemplates map[string]map[string]string 29 30 // K8sVersionInfo - min/max RKE+Rancher versions per k8s version 31 K8sVersionInfo map[string]v3.K8sVersionInfo 32 33 //Default K8s version for every rancher version 34 RancherDefaultK8sVersions map[string]string 35 36 //Default K8s version for every rke version 37 RKEDefaultK8sVersions map[string]string 38 39 K8sVersionDockerInfo map[string][]string 40 41 // K8sVersionWindowsServiceOptions - service options per windows k8s version 42 K8sVersionWindowsServiceOptions map[string]v3.KubernetesServicesOptions 43 44 CisConfigParams map[string]v3.CisConfigParams 45 CisBenchmarkVersionInfo map[string]v3.CisBenchmarkVersionInfo 46 47 // K3S specific data, opaque and defined by the config file in kdm 48 K3S map[string]interface{} `json:"k3s,omitempty"` 49 } 50 51 func FromData(b []byte) (Data, error) { 52 d := &Data{} 53 54 if err := json.Unmarshal(b, d); err != nil { 55 return Data{}, err 56 } 57 return *d, nil 58 }