From 0088d666637c23a90126e9a7e99e54ecc3bca8c1 Mon Sep 17 00:00:00 2001 From: moelsayed Date: Mon, 29 Jan 2018 21:05:04 +0200 Subject: [PATCH] Add SystemImages type --- apis/management.cattle.io/v3/rke_types.go | 29 ++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/apis/management.cattle.io/v3/rke_types.go b/apis/management.cattle.io/v3/rke_types.go index 2d6d9178..6acd6974 100644 --- a/apis/management.cattle.io/v3/rke_types.go +++ b/apis/management.cattle.io/v3/rke_types.go @@ -12,15 +12,15 @@ type RancherKubernetesEngineConfig struct { // YAML manifest for user provided addons to be deployed on the cluster Addons string `yaml:"addons" json:"addons,omitempty"` // List of images used internally for proxy, cert downlaod and kubedns - SystemImages map[string]string `yaml:"system_images" json:"systemImages,omitempty"` + SystemImages RKESystemImages `yaml:"system_images" json:"systemImages,omitempty"` // SSH Private Key Path SSHKeyPath string `yaml:"ssh_key_path" json:"sshKeyPath,omitempty"` // Authorization mode configuration used in the cluster Authorization AuthzConfig `yaml:"authorization" json:"authorization,omitempty"` // Enable/disable strict docker version checking IgnoreDockerVersion bool `yaml:"ignore_docker_version" json:"ignoreDockerVersion"` - // Kubernetes version to use (overrides individual Images) - Version string `yaml:"kubernetesVersion"` + // Kubernetes version to use (if kubernetes image is specifed, image version takes precedence) + Version string `yaml:"kubernetes_version" json:"kubernetesVersion,omitempty"` // List of private registries and their credentials PrivateRegistries []PrivateRegistry `yaml:"private_registries" json:"privateRegistries,omitempty"` } @@ -34,6 +34,29 @@ type PrivateRegistry struct { Password string `yaml:"password" json:"password,omitempty"` } +type RKESystemImages struct { + // etcd image + Etcd string `yaml:"etcd" json:"etcd,omitempty" norman:"default=quay.io/coreos/etcd:latest"` + // Alpine image + Alpine string `yaml:"alpine" json:"alpine,omitempty" norman:"default=alpine"` + // rke-nginx-proxy image + NginxProxy string `yaml:"nginx_proxy" json:"nginxProxy,omitempty" norman:"default=rancher/rke-nginx-proxy"` + // rke-cert-deployer image + CertDownloader string `yaml:"cert_downloader" json:"certDownloader,omitempty" norman:"default=rancher/rke-cert-deployer"` + // rke-service-sidekick image + KubernetesServicesSidecar string `yaml:"kubernetes_services_sidecar" json:"kubernetesServicesSidecar,omitempty" norman:"default=rancher/rke-kube-services-sidecar"` + // KubeDNS image + KubeDNS string `yaml:"kubedns" json:"kubedns,omitempty" norman:"default=gcr.io/google_containers/k8s-dns-kube-dns-amd64"` + // DNSMasq image + DNSmasq string `yaml:"dnsmasq" json:"dnsmasq,omitempty" norman:"default=gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64"` + // KubeDNS side car image + KubeDNSSidecar string `yaml:"kubedns_sidecar" json:"kubednsSidecar,omitempty" norman:"default=gcr.io/google_containers/k8s-dns-sidecar-amd64"` + // KubeDNS autoscaler image + KubeDNSAutoscaler string `yaml:"kubedns_autoscaler" json:"kubednsAutoscaler,omitempty" norman:"default=gcr.io/google_containers/cluster-proportional-autoscaler-amd64"` + // Kubernetes image + Kubernetes string `yaml:"kubernetes" json:"kubernetes,omitempty" norman:"default=rancher/k8s"` +} + type RKEConfigNode struct { // Name of the host provisioned via docker machine MachineName string `yaml:"machine_name,omitempty" json:"machineName,omitempty" norman:"type=reference[machine]"`