diff --git a/cluster/defaults.go b/cluster/defaults.go index 43579264..c937e5c7 100644 --- a/cluster/defaults.go +++ b/cluster/defaults.go @@ -26,6 +26,8 @@ const ( DefaultCanalNodeImage = "quay.io/calico/node:v2.6.2" DefaultCanalCNIImage = "quay.io/calico/cni:v1.11.0" DefaultCanalFlannelImage = "quay.io/coreos/flannel:v0.9.1" + DefaultWeaveImage = "weaveworks/weave-kube:2.1.2" + DefaultWeaveCNIImage = "weaveworks/weave-npc:2.1.2" DefaultKubeDNSImage = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5" DefaultDNSMasqImage = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.5" diff --git a/cluster/network.go b/cluster/network.go index 5643a4bf..3212abf1 100644 --- a/cluster/network.go +++ b/cluster/network.go @@ -25,6 +25,10 @@ const ( CanalNodeImage = "canal_node_image" CanalCNIImage = "canal_cni_image" CanalFlannelImage = "canal_flannel_image" + + WeaveNetworkPlugin = "weave" + WeaveImage = "weave_node_image" + WeaveCNIImage = "weave_cni_image" ) func (c *Cluster) DeployNetworkPlugin() error { @@ -81,8 +85,7 @@ func (c *Cluster) doCanalDeploy() error { } func (c *Cluster) doWeaveDeploy() error { - weaveConfig := make(map[string]string) - pluginYaml := network.GetWeaveManifest(weaveConfig) + pluginYaml := network.GetWeaveManifest(c.ClusterCIDR, c.Network.Options[WeaveImage], c.Network.Options[WeaveCNIImage]) return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName) } @@ -107,5 +110,9 @@ func (c *Cluster) setClusterNetworkDefaults() { setDefaultIfEmptyMapValue(c.Network.Options, CanalCNIImage, DefaultCanalCNIImage) setDefaultIfEmptyMapValue(c.Network.Options, CanalNodeImage, DefaultCanalNodeImage) setDefaultIfEmptyMapValue(c.Network.Options, CanalFlannelImage, DefaultCanalFlannelImage) + + case c.Network.Plugin == WeaveNetworkPlugin: + setDefaultIfEmptyMapValue(c.Network.Options, WeaveImage, DefaultWeaveImage) + setDefaultIfEmptyMapValue(c.Network.Options, WeaveCNIImage, DefaultWeaveCNIImage) } } diff --git a/network/weave.go b/network/weave.go index 177680b6..b325b74c 100644 --- a/network/weave.go +++ b/network/weave.go @@ -1,6 +1,6 @@ package network -func GetWeaveManifest(weaveConfig map[string]string) string { +func GetWeaveManifest(clusterCIDR, image, cniImage string) string { return `# This ConfigMap can be used to configure a self-hosted Weave Net installation. apiVersion: v1 kind: List @@ -33,7 +33,9 @@ items: fieldRef: apiVersion: v1 fieldPath: spec.nodeName - image: 'weaveworks/weave-kube:2.1.2' + - name: IPALLOC_RANGE + value: "` + clusterCIDR + `" + image: ` + image + ` livenessProbe: httpGet: host: 127.0.0.1 @@ -68,7 +70,7 @@ items: fieldRef: apiVersion: v1 fieldPath: spec.nodeName - image: 'weaveworks/weave-npc:2.1.2' + image: ` + cniImage + ` resources: requests: cpu: 10m