mirror of
https://github.com/rancher/rke.git
synced 2025-08-17 14:27:01 +00:00
add weave-net network plugin support
This commit is contained in:
parent
05336dddfd
commit
f5797c6ba3
@ -9,6 +9,7 @@ auth:
|
|||||||
# flannel
|
# flannel
|
||||||
# calico
|
# calico
|
||||||
# canal
|
# canal
|
||||||
|
# weave
|
||||||
network:
|
network:
|
||||||
plugin: flannel
|
plugin: flannel
|
||||||
options:
|
options:
|
||||||
|
@ -36,6 +36,8 @@ func (c *Cluster) DeployNetworkPlugin() error {
|
|||||||
return c.doCalicoDeploy()
|
return c.doCalicoDeploy()
|
||||||
case CanalNetworkPlugin:
|
case CanalNetworkPlugin:
|
||||||
return c.doCanalDeploy()
|
return c.doCanalDeploy()
|
||||||
|
case WeaveNetworkPlugin:
|
||||||
|
return c.doWeaveDeploy()
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("[network] Unsupported network plugin: %s", c.Network.Plugin)
|
return fmt.Errorf("[network] Unsupported network plugin: %s", c.Network.Plugin)
|
||||||
}
|
}
|
||||||
@ -78,6 +80,12 @@ func (c *Cluster) doCanalDeploy() error {
|
|||||||
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
|
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Cluster) doWeaveDeploy() error {
|
||||||
|
weaveConfig := make(map[string]string)
|
||||||
|
pluginYaml := network.GetWeaveManifest(weaveConfig)
|
||||||
|
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Cluster) setClusterNetworkDefaults() {
|
func (c *Cluster) setClusterNetworkDefaults() {
|
||||||
setDefaultIfEmpty(&c.Network.Plugin, DefaultNetworkPlugin)
|
setDefaultIfEmpty(&c.Network.Plugin, DefaultNetworkPlugin)
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ func validateAuthOptions(c *Cluster) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func validateNetworkOptions(c *Cluster) error {
|
func validateNetworkOptions(c *Cluster) error {
|
||||||
if c.Network.Plugin != FlannelNetworkPlugin && c.Network.Plugin != CalicoNetworkPlugin && c.Network.Plugin != CanalNetworkPlugin {
|
if c.Network.Plugin != FlannelNetworkPlugin && c.Network.Plugin != CalicoNetworkPlugin && c.Network.Plugin != CanalNetworkPlugin && c.Network.Plugin != WeaveNetworkPlugin {
|
||||||
return fmt.Errorf("Network plugin [%s] is not supported", c.Network.Plugin)
|
return fmt.Errorf("Network plugin [%s] is not supported", c.Network.Plugin)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
114
network/weave.go
Normal file
114
network/weave.go
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
package network
|
||||||
|
|
||||||
|
func GetWeaveManifest(weaveConfig map[string]string) string {
|
||||||
|
return `# This ConfigMap can be used to configure a self-hosted Weave Net installation.
|
||||||
|
apiVersion: v1
|
||||||
|
kind: List
|
||||||
|
items:
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: weave-net
|
||||||
|
namespace: kube-system
|
||||||
|
- apiVersion: extensions/v1beta1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: weave-net
|
||||||
|
labels:
|
||||||
|
name: weave-net
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: weave-net
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: weave
|
||||||
|
command:
|
||||||
|
- /home/weave/launch.sh
|
||||||
|
env:
|
||||||
|
- name: HOSTNAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
apiVersion: v1
|
||||||
|
fieldPath: spec.nodeName
|
||||||
|
image: 'weaveworks/weave-kube:2.1.2'
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
host: 127.0.0.1
|
||||||
|
path: /status
|
||||||
|
port: 6784
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: weavedb
|
||||||
|
mountPath: /weavedb
|
||||||
|
- name: cni-bin
|
||||||
|
mountPath: /host/opt
|
||||||
|
- name: cni-bin2
|
||||||
|
mountPath: /host/home
|
||||||
|
- name: cni-conf
|
||||||
|
mountPath: /host/etc
|
||||||
|
- name: dbus
|
||||||
|
mountPath: /host/var/lib/dbus
|
||||||
|
- name: lib-modules
|
||||||
|
mountPath: /lib/modules
|
||||||
|
- name: xtables-lock
|
||||||
|
mountPath: /run/xtables.lock
|
||||||
|
- name: weave-npc
|
||||||
|
args: []
|
||||||
|
env:
|
||||||
|
- name: HOSTNAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
apiVersion: v1
|
||||||
|
fieldPath: spec.nodeName
|
||||||
|
image: 'weaveworks/weave-npc:2.1.2'
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: xtables-lock
|
||||||
|
mountPath: /run/xtables.lock
|
||||||
|
hostNetwork: true
|
||||||
|
hostPID: true
|
||||||
|
restartPolicy: Always
|
||||||
|
securityContext:
|
||||||
|
seLinuxOptions: {}
|
||||||
|
serviceAccountName: weave-net
|
||||||
|
tolerations:
|
||||||
|
- effect: NoSchedule
|
||||||
|
operator: Exists
|
||||||
|
volumes:
|
||||||
|
- name: weavedb
|
||||||
|
hostPath:
|
||||||
|
path: /var/lib/weave
|
||||||
|
- name: cni-bin
|
||||||
|
hostPath:
|
||||||
|
path: /opt
|
||||||
|
- name: cni-bin2
|
||||||
|
hostPath:
|
||||||
|
path: /home
|
||||||
|
- name: cni-conf
|
||||||
|
hostPath:
|
||||||
|
path: /etc
|
||||||
|
- name: dbus
|
||||||
|
hostPath:
|
||||||
|
path: /var/lib/dbus
|
||||||
|
- name: lib-modules
|
||||||
|
hostPath:
|
||||||
|
path: /lib/modules
|
||||||
|
- name: xtables-lock
|
||||||
|
hostPath:
|
||||||
|
path: /run/xtables.lock
|
||||||
|
updateStrategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
`
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user