mirror of
https://github.com/rancher/rke.git
synced 2025-05-10 17:35:03 +00:00
add weave-net network plugin support
This commit is contained in:
parent
05336dddfd
commit
f5797c6ba3
@ -9,6 +9,7 @@ auth:
|
||||
# flannel
|
||||
# calico
|
||||
# canal
|
||||
# weave
|
||||
network:
|
||||
plugin: flannel
|
||||
options:
|
||||
|
@ -36,6 +36,8 @@ func (c *Cluster) DeployNetworkPlugin() error {
|
||||
return c.doCalicoDeploy()
|
||||
case CanalNetworkPlugin:
|
||||
return c.doCanalDeploy()
|
||||
case WeaveNetworkPlugin:
|
||||
return c.doWeaveDeploy()
|
||||
default:
|
||||
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)
|
||||
}
|
||||
|
||||
func (c *Cluster) doWeaveDeploy() error {
|
||||
weaveConfig := make(map[string]string)
|
||||
pluginYaml := network.GetWeaveManifest(weaveConfig)
|
||||
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
|
||||
}
|
||||
|
||||
func (c *Cluster) setClusterNetworkDefaults() {
|
||||
setDefaultIfEmpty(&c.Network.Plugin, DefaultNetworkPlugin)
|
||||
|
||||
|
@ -46,7 +46,7 @@ func validateAuthOptions(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 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