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  }