From 14909f0944649b4de7eb5c8785162defaad0d55a Mon Sep 17 00:00:00 2001 From: Angus Lees Date: Thu, 5 Nov 2015 15:12:43 +1100 Subject: [PATCH] Add flannel's host-gw backend option Allow configuring Flannel with 3 different backends Magnum deploys k8s/swarm over a dedicated neutron private network, possibly using flannel. Flannel's `host-gw` backend gives the best performance in this topopolgy (private layer2): no packet processing overhead, no reduction to MTU, scales to many hosts as well as the alternatives. The performance difference is significant, see bug for performance numbers for the 3 backend options. Note that part of this change involves relaxing the minion IP spoofing rules to allow traffic from all dynamically-allocated flannel subnets. This is morally equivalent to what we were doing previously with encapsulation - only now neutron is able to see the inner IP header directly. This patch repurposes the label "flannel_use_vxlan" when the network driver is flannel. 1. Rename the label flannel_use_vxlan to flannel_backend 2. Redefine the value of this label from "yes/no" to "udp/vxlan/host-gw" For example, to create a bay model with flannel as network driver: --network-driver flannel --labels flannel_backend=host-gw Other backend options are udp and vxlan. Co-Authored-By: Ton Ngo Partial-Bug: #1518605 Closes-Bug: #1516789 Change-Id: I6d2441664ad1baaca14d0e6ff4bcddbe75bee094 --- magnum/conductor/template_definition.py | 4 ++-- magnum/templates/kubernetes/README.md | 6 ------ .../kubernetes/fragments/configure-flannel.sh | 17 ++------------- .../fragments/write-heat-params-master.yaml | 2 +- .../write-network-config-coreos.yaml | 7 +------ .../fragments/write-network-config.sh | 20 ++---------------- .../kubernetes/kubecluster-coreos.yaml | 12 +++++------ .../kubernetes/kubecluster-fedora-ironic.yaml | 11 +++++----- magnum/templates/kubernetes/kubecluster.yaml | 12 +++++------ .../kubernetes/kubemaster-coreos.yaml | 13 ++++++------ .../kubernetes/kubemaster-fedora-ironic.yaml | 11 +++++----- magnum/templates/kubernetes/kubemaster.yaml | 13 ++++++------ .../kubernetes/kubeminion-coreos.yaml | 5 +++++ magnum/templates/kubernetes/kubeminion.yaml | 5 +++++ .../swarm/fragments/write-heat-params.yaml | 2 +- .../swarm/fragments/write-network-config.sh | 21 +++---------------- magnum/templates/swarm/swarmcluster.yaml | 12 +++++------ magnum/templates/swarm/swarmmaster.yaml | 11 +++++----- magnum/templates/swarm/swarmnode.yaml | 6 ++++++ .../handlers/test_k8s_bay_conductor.py | 12 +++++------ .../handlers/test_swarm_bay_conductor.py | 6 +++--- .../conductor/test_template_definition.py | 18 ++++++++-------- specs/container-networking-model.rst | 2 +- 23 files changed, 95 insertions(+), 133 deletions(-) diff --git a/magnum/conductor/template_definition.py b/magnum/conductor/template_definition.py index d12b6c9ba9..3d485ae038 100644 --- a/magnum/conductor/template_definition.py +++ b/magnum/conductor/template_definition.py @@ -482,7 +482,7 @@ class K8sTemplateDefinition(BaseTemplateDefinition): extra_params['discovery_url'] = self.get_discovery_url(bay) - label_list = ['flannel_network_cidr', 'flannel_use_vxlan', + label_list = ['flannel_network_cidr', 'flannel_backend', 'flannel_network_subnetlen'] for label in label_list: extra_params[label] = baymodel.labels.get(label) @@ -597,7 +597,7 @@ class AtomicSwarmTemplateDefinition(BaseTemplateDefinition): extra_params['user_token'] = self._get_user_token(context, osc, bay) extra_params['magnum_url'] = osc.magnum_url() - label_list = ['flannel_network_cidr', 'flannel_use_vxlan', + label_list = ['flannel_network_cidr', 'flannel_backend', 'flannel_network_subnetlen'] for label in label_list: diff --git a/magnum/templates/kubernetes/README.md b/magnum/templates/kubernetes/README.md index b8fa2d41be..9ab32e8888 100644 --- a/magnum/templates/kubernetes/README.md +++ b/magnum/templates/kubernetes/README.md @@ -26,11 +26,6 @@ work with Juno as well as soon as [#1402894][] is resolved. These templates will work with either CentOS Atomic Host or Fedora 21 Atomic. -You can enable the VXLAN backend for flannel by setting the -"flannel_use_vxlan" parameter to "true", but I have run into kernel -crashes using that backend with CentOS 7. It seems to work fine with -Fedora 21. - You can enable docker registry v2 by setting the "registry_enabled" parameter to "true". @@ -146,4 +141,3 @@ When submitting pull requests: stylistic/formatting/cleanup changes. [github repository]: https://github.com/larsks/heat-kubernetes/ - diff --git a/magnum/templates/kubernetes/fragments/configure-flannel.sh b/magnum/templates/kubernetes/fragments/configure-flannel.sh index caf6970fd6..3015648d44 100644 --- a/magnum/templates/kubernetes/fragments/configure-flannel.sh +++ b/magnum/templates/kubernetes/fragments/configure-flannel.sh @@ -5,28 +5,15 @@ FLANNEL_JSON=/etc/sysconfig/flannel-network.json -if [ "$FLANNEL_USE_VXLAN" == "true" ]; then - use_vxlan=1 -fi - # Generate a flannel configuration that we will # store into etcd using curl. cat > $FLANNEL_JSON <> $FLANNEL_JSON <> $FLANNEL_JSON < $FLANNEL_JSON < $FLANNEL_JSON <> $FLANNEL_JSON <> $FLANNEL_JSON < - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] kube_allow_priv: type: string @@ -203,7 +202,7 @@ resources: kube_allow_priv: {get_param: kube_allow_priv} flannel_network_cidr: {get_param: flannel_network_cidr} flannel_network_subnetlen: {get_param: flannel_network_subnetlen} - flannel_use_vxlan: {get_param: flannel_use_vxlan} + flannel_backend: {get_param: flannel_backend} portal_network_cidr: {get_param: portal_network_cidr} fixed_network: {get_resource: fixed_network} fixed_subnet: {get_resource: fixed_subnet} @@ -234,6 +233,7 @@ resources: minion_flavor: {get_param: minion_flavor} fixed_network: {get_resource: fixed_network} fixed_subnet: {get_resource: fixed_subnet} + flannel_network_cidr: {get_param: flannel_network_cidr} kube_master_ip: {"Fn::Select": [0, {get_attr: [kube_master, kube_master_ip]}]} external_network: {get_param: external_network} kube_allow_priv: {get_param: kube_allow_priv} diff --git a/magnum/templates/kubernetes/kubecluster-fedora-ironic.yaml b/magnum/templates/kubernetes/kubecluster-fedora-ironic.yaml index 01051b5842..33e5875685 100644 --- a/magnum/templates/kubernetes/kubecluster-fedora-ironic.yaml +++ b/magnum/templates/kubernetes/kubecluster-fedora-ironic.yaml @@ -54,14 +54,13 @@ parameters: description: size of subnet assigned to each minion default: 24 - flannel_use_vxlan: + flannel_backend: type: string description: > - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] kube_allow_priv: type: string @@ -161,7 +160,7 @@ resources: wait_condition_timeout: {get_param: wait_condition_timeout} flannel_network_cidr: {get_param: flannel_network_cidr} flannel_network_subnetlen: {get_param: flannel_network_subnetlen} - flannel_use_vxlan: {get_param: flannel_use_vxlan} + flannel_backend: {get_param: flannel_backend} portal_network_cidr: {get_param: portal_network_cidr} fixed_network: {get_resource: fixed_network} auth_url: {get_param: auth_url} diff --git a/magnum/templates/kubernetes/kubecluster.yaml b/magnum/templates/kubernetes/kubecluster.yaml index adda7de773..bc6837c0eb 100644 --- a/magnum/templates/kubernetes/kubecluster.yaml +++ b/magnum/templates/kubernetes/kubecluster.yaml @@ -71,14 +71,13 @@ parameters: description: size of subnet assigned to each minion default: 24 - flannel_use_vxlan: + flannel_backend: type: string description: > - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] kube_allow_priv: type: string @@ -431,7 +430,7 @@ resources: network_driver: {get_param: network_driver} flannel_network_cidr: {get_param: flannel_network_cidr} flannel_network_subnetlen: {get_param: flannel_network_subnetlen} - flannel_use_vxlan: {get_param: flannel_use_vxlan} + flannel_backend: {get_param: flannel_backend} portal_network_cidr: {get_param: portal_network_cidr} discovery_url: {get_param: discovery_url} user_token: {get_param: user_token} @@ -476,6 +475,7 @@ resources: fixed_network: {get_resource: fixed_network} fixed_subnet: {get_resource: fixed_subnet} network_driver: {get_param: network_driver} + flannel_network_cidr: {get_param: flannel_network_cidr} kube_master_ip: {get_attr: [api_pool, vip, address]} etcd_server_ip: {get_attr: [etcd_pool, vip, address]} external_network: {get_param: external_network} diff --git a/magnum/templates/kubernetes/kubemaster-coreos.yaml b/magnum/templates/kubernetes/kubemaster-coreos.yaml index 506008560b..d6aad238b7 100644 --- a/magnum/templates/kubernetes/kubemaster-coreos.yaml +++ b/magnum/templates/kubernetes/kubemaster-coreos.yaml @@ -59,14 +59,13 @@ parameters: description: size of subnet assigned to each master default: 24 - flannel_use_vxlan: + flannel_backend: type: string description: > - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] fixed_network: type: string @@ -162,7 +161,7 @@ resources: "$KUBE_ALLOW_PRIV": {get_param: kube_allow_priv} "$FLANNEL_NETWORK_CIDR": {get_param: flannel_network_cidr} "$FLANNEL_NETWORK_SUBNETLEN": {get_param: flannel_network_subnetlen} - "$FLANNEL_USE_VXLAN": {get_param: flannel_use_vxlan} + "$FLANNEL_BACKEND": {get_param: flannel_backend} "$PORTAL_NETWORK_CIDR": {get_param: portal_network_cidr} "$CLUSTER_SUBNET": {get_param: fixed_subnet} "$ETCD_DISCOVERY_URL": {get_param: discovery_url} @@ -319,6 +318,8 @@ resources: - {get_resource: secgroup_kubernetes} fixed_ips: - subnet: {get_param: fixed_subnet} + allowed_address_pairs: + - ip_address: {get_param: flannel_network_cidr} replacement_policy: AUTO kube_master_floating: diff --git a/magnum/templates/kubernetes/kubemaster-fedora-ironic.yaml b/magnum/templates/kubernetes/kubemaster-fedora-ironic.yaml index ff2f5f62ec..421d39fddc 100644 --- a/magnum/templates/kubernetes/kubemaster-fedora-ironic.yaml +++ b/magnum/templates/kubernetes/kubemaster-fedora-ironic.yaml @@ -45,14 +45,13 @@ parameters: description: size of subnet assigned to each minion default: 24 - flannel_use_vxlan: + flannel_backend: type: string description: > - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] kube_allow_priv: type: string @@ -147,7 +146,7 @@ resources: "$KUBE_ALLOW_PRIV": {get_param: kube_allow_priv} "$FLANNEL_NETWORK_CIDR": {get_param: flannel_network_cidr} "$FLANNEL_NETWORK_SUBNETLEN": {get_param: flannel_network_subnetlen} - "$FLANNEL_USE_VXLAN": {get_param: flannel_use_vxlan} + "$FLANNEL_BACKEND": {get_param: flannel_backend} "$PORTAL_NETWORK_CIDR": {get_param: portal_network_cidr} "$AUTH_URL": {get_param: auth_url} "$USERNAME": {get_param: username} diff --git a/magnum/templates/kubernetes/kubemaster.yaml b/magnum/templates/kubernetes/kubemaster.yaml index d669f7aaf5..f4923ade17 100644 --- a/magnum/templates/kubernetes/kubemaster.yaml +++ b/magnum/templates/kubernetes/kubemaster.yaml @@ -56,14 +56,13 @@ parameters: description: size of subnet assigned to each master default: 24 - flannel_use_vxlan: + flannel_backend: type: string description: > - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] discovery_url: type: string @@ -190,7 +189,7 @@ resources: "$NETWORK_DRIVER": {get_param: network_driver} "$FLANNEL_NETWORK_CIDR": {get_param: flannel_network_cidr} "$FLANNEL_NETWORK_SUBNETLEN": {get_param: flannel_network_subnetlen} - "$FLANNEL_USE_VXLAN": {get_param: flannel_use_vxlan} + "$FLANNEL_BACKEND": {get_param: flannel_backend} "$PORTAL_NETWORK_CIDR": {get_param: portal_network_cidr} "$ETCD_DISCOVERY_URL": {get_param: discovery_url} "$AUTH_URL": {get_param: auth_url} @@ -370,6 +369,8 @@ resources: - {get_param: secgroup_kube_master_id} fixed_ips: - subnet: {get_param: fixed_subnet} + allowed_address_pairs: + - ip_address: {get_param: flannel_network_cidr} replacement_policy: AUTO kube_master_floating: diff --git a/magnum/templates/kubernetes/kubeminion-coreos.yaml b/magnum/templates/kubernetes/kubeminion-coreos.yaml index 689b99f36b..975a577211 100644 --- a/magnum/templates/kubernetes/kubeminion-coreos.yaml +++ b/magnum/templates/kubernetes/kubeminion-coreos.yaml @@ -63,6 +63,9 @@ parameters: fixed_subnet: type: string description: Subnet from which to allocate fixed addresses. + flannel_network_cidr: + type: string + description: network range for flannel overlay network resources: @@ -191,6 +194,8 @@ resources: - get_resource: secgroup_all_open fixed_ips: - subnet: {get_param: fixed_subnet} + allowed_address_pairs: + - ip_address: {get_param: flannel_network_cidr} replacement_policy: AUTO kube_minion_floating: diff --git a/magnum/templates/kubernetes/kubeminion.yaml b/magnum/templates/kubernetes/kubeminion.yaml index dba54ea705..bcf477c7a1 100644 --- a/magnum/templates/kubernetes/kubeminion.yaml +++ b/magnum/templates/kubernetes/kubeminion.yaml @@ -81,6 +81,9 @@ parameters: network_driver: type: string description: network driver to use for instantiating container networks + flannel_network_cidr: + type: string + description: network range for flannel overlay network wait_condition_timeout: type: number description : > @@ -359,6 +362,8 @@ resources: - get_param: secgroup_kube_minion_id fixed_ips: - subnet: {get_param: fixed_subnet} + allowed_address_pairs: + - ip_address: {get_param: flannel_network_cidr} replacement_policy: AUTO kube_minion_floating: diff --git a/magnum/templates/swarm/fragments/write-heat-params.yaml b/magnum/templates/swarm/fragments/write-heat-params.yaml index 873c9c09fb..b02f591b45 100644 --- a/magnum/templates/swarm/fragments/write-heat-params.yaml +++ b/magnum/templates/swarm/fragments/write-heat-params.yaml @@ -20,7 +20,7 @@ write_files: NETWORK_DRIVER="$NETWORK_DRIVER" FLANNEL_NETWORK_CIDR="$FLANNEL_NETWORK_CIDR" FLANNEL_NETWORK_SUBNETLEN="$FLANNEL_NETWORK_SUBNETLEN" - FLANNEL_USE_VXLAN="$FLANNEL_USE_VXLAN" + FLANNEL_BACKEND="$FLANNEL_BACKEND" ETCD_SERVER_IP="$ETCD_SERVER_IP" API_IP_ADDRESS="$API_IP_ADDRESS" SWARM_VERSION="$SWARM_VERSION" diff --git a/magnum/templates/swarm/fragments/write-network-config.sh b/magnum/templates/swarm/fragments/write-network-config.sh index e6e2d0cb72..37670b72b8 100644 --- a/magnum/templates/swarm/fragments/write-network-config.sh +++ b/magnum/templates/swarm/fragments/write-network-config.sh @@ -7,31 +7,16 @@ if [ "$NETWORK_DRIVER" != "flannel" ]; then fi FLANNEL_JSON=/etc/sysconfig/flannel-network.json -FLANNEL_NETWORK_CIDR="$FLANNEL_NETWORK_CIDR" -FLANNEL_NETWORK_SUBNETLEN="$FLANNEL_NETWORK_SUBNETLEN" -FLANNEL_USE_VXLAN="$FLANNEL_USE_VXLAN" - -if [ "$FLANNEL_USE_VXLAN" == "true" ]; then - use_vxlan=1 -fi # Generate a flannel configuration that we will # store into etcd using curl. cat > $FLANNEL_JSON <> $FLANNEL_JSON <> $FLANNEL_JSON < - if true use the vxlan backend, otherwise use the default - udp backend - default: "false" + specify the backend for flannel, default udp backend + default: "udp" constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] docker_volume_size: type: number @@ -318,7 +317,7 @@ resources: network_driver: {get_param: network_driver} flannel_network_cidr: {get_param: flannel_network_cidr} flannel_network_subnetlen: {get_param: flannel_network_subnetlen} - flannel_use_vxlan: {get_param: flannel_use_vxlan} + flannel_backend: {get_param: flannel_backend} swarm_port: {get_param: swarm_port} api_pool_id: {get_resource: api_pool} etcd_pool_id: {get_resource: etcd_pool} @@ -352,6 +351,7 @@ resources: magnum_url: {get_param: magnum_url} tls_disabled: {get_param: tls_disabled} secgroup_swarm_node_id: {get_resource: secgroup_manager} + flannel_network_cidr: {get_param: flannel_network_cidr} network_driver: {get_param: network_driver} etcd_server_ip: {get_attr: [etcd_pool, vip, address]} api_ip_address: {get_attr: [api_pool_floating, floating_ip_address]} diff --git a/magnum/templates/swarm/swarmmaster.yaml b/magnum/templates/swarm/swarmmaster.yaml index 61a6c617b3..e5bba58090 100644 --- a/magnum/templates/swarm/swarmmaster.yaml +++ b/magnum/templates/swarm/swarmmaster.yaml @@ -88,13 +88,12 @@ parameters: type: string description: size of subnet assigned to each master - flannel_use_vxlan: + flannel_backend: type: string description: > - if true use the vxlan backend, otherwise use the default - udp backend + specify the backend for flannel, default udp backend constraints: - - allowed_values: ["true", "false"] + - allowed_values: ["udp", "vxlan", "host-gw"] swarm_version: type: string @@ -175,7 +174,7 @@ resources: "$NETWORK_DRIVER": {get_param: network_driver} "$FLANNEL_NETWORK_CIDR": {get_param: flannel_network_cidr} "$FLANNEL_NETWORK_SUBNETLEN": {get_param: flannel_network_subnetlen} - "$FLANNEL_USE_VXLAN": {get_param: flannel_use_vxlan} + "$FLANNEL_BACKEND": {get_param: flannel_backend} "$ETCD_SERVER_IP": {get_param: etcd_server_ip} "$API_IP_ADDRESS": {get_param: api_ip_address} "$SWARM_VERSION": {get_param: swarm_version} @@ -343,6 +342,8 @@ resources: fixed_ips: - subnet_id: get_param: fixed_subnet_id + allowed_address_pairs: + - ip_address: {get_param: flannel_network_cidr} swarm_master_floating: type: "OS::Neutron::FloatingIP" diff --git a/magnum/templates/swarm/swarmnode.yaml b/magnum/templates/swarm/swarmnode.yaml index 99a611ead5..d50c7f618d 100644 --- a/magnum/templates/swarm/swarmnode.yaml +++ b/magnum/templates/swarm/swarmnode.yaml @@ -41,6 +41,10 @@ parameters: type: string description: network driver to use for instantiating container networks + flannel_network_cidr: + type: string + description: network range for flannel overlay network + discovery_url: type: string description: url provided for node discovery @@ -272,6 +276,8 @@ resources: fixed_ips: - subnet_id: get_param: fixed_subnet_id + allowed_address_pairs: + - ip_address: {get_param: flannel_network_cidr} swarm_node_floating: type: "OS::Neutron::FloatingIP" diff --git a/magnum/tests/unit/conductor/handlers/test_k8s_bay_conductor.py b/magnum/tests/unit/conductor/handlers/test_k8s_bay_conductor.py index f403c0baab..88b50cbe82 100644 --- a/magnum/tests/unit/conductor/handlers/test_k8s_bay_conductor.py +++ b/magnum/tests/unit/conductor/handlers/test_k8s_bay_conductor.py @@ -41,7 +41,7 @@ class TestBayConductorWithK8s(base.TestCase): 'no_proxy': 'no_proxy', 'labels': {'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes'}, + 'flannel_backend': 'vxlan'}, 'tls_disabled': False, 'server_type': 'vm' } @@ -114,7 +114,7 @@ class TestBayConductorWithK8s(base.TestCase): 'discovery_url': 'discovery_url', 'labels': {'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes'}, + 'flannel_backend': 'vxlan'}, 'http_proxy': 'http_proxy', 'https_proxy': 'https_proxy', 'no_proxy': 'no_proxy', @@ -137,7 +137,7 @@ class TestBayConductorWithK8s(base.TestCase): 'discovery_url': 'https://discovery.etcd.io/test', 'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes', + 'flannel_backend': 'vxlan', 'http_proxy': 'http_proxy', 'https_proxy': 'https_proxy', 'no_proxy': 'no_proxy', @@ -188,7 +188,7 @@ class TestBayConductorWithK8s(base.TestCase): 'no_proxy': 'no_proxy', 'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes', + 'flannel_backend': 'vxlan', 'tls_disabled': False, 'trustee_domain_id': '3527620c-b220-4f37-9ebc-6e63a81a9b2f', 'trustee_username': 'fake_trustee', @@ -233,7 +233,7 @@ class TestBayConductorWithK8s(base.TestCase): 'no_proxy': 'no_proxy', 'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes', + 'flannel_backend': 'vxlan', 'tls_disabled': False, 'trustee_domain_id': '3527620c-b220-4f37-9ebc-6e63a81a9b2f', 'trustee_username': 'fake_trustee', @@ -347,7 +347,7 @@ class TestBayConductorWithK8s(base.TestCase): 'no_proxy': 'no_proxy', 'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes', + 'flannel_backend': 'vxlan', 'tenant_name': 'fake_tenant', 'username': 'fake_user', 'user_token': 'fake_token', diff --git a/magnum/tests/unit/conductor/handlers/test_swarm_bay_conductor.py b/magnum/tests/unit/conductor/handlers/test_swarm_bay_conductor.py index 284f4a52e3..667abdb4f3 100644 --- a/magnum/tests/unit/conductor/handlers/test_swarm_bay_conductor.py +++ b/magnum/tests/unit/conductor/handlers/test_swarm_bay_conductor.py @@ -44,7 +44,7 @@ class TestBayConductorWithSwarm(base.TestCase): 'network_driver': 'network_driver', 'labels': {'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes'} + 'flannel_backend': 'vxlan'} } self.bay_dict = { 'id': 1, @@ -108,7 +108,7 @@ class TestBayConductorWithSwarm(base.TestCase): 'network_driver': 'network_driver', 'flannel_network_cidr': '10.101.0.0/16', 'flannel_network_subnetlen': '26', - 'flannel_use_vxlan': 'yes', + 'flannel_backend': 'vxlan', 'trustee_domain_id': '3527620c-b220-4f37-9ebc-6e63a81a9b2f', 'trustee_username': 'fake_trustee', 'trustee_password': 'fake_trustee_password', @@ -151,7 +151,7 @@ class TestBayConductorWithSwarm(base.TestCase): 'tls_disabled': False, 'flannel_network_cidr': u'10.101.0.0/16', 'flannel_network_subnetlen': u'26', - 'flannel_use_vxlan': u'yes', + 'flannel_backend': u'vxlan', 'trustee_domain_id': '3527620c-b220-4f37-9ebc-6e63a81a9b2f', 'trustee_username': 'fake_trustee', 'trustee_password': 'fake_trustee_password', diff --git a/magnum/tests/unit/conductor/test_template_definition.py b/magnum/tests/unit/conductor/test_template_definition.py index 06b57ca860..90ec45ea4c 100644 --- a/magnum/tests/unit/conductor/test_template_definition.py +++ b/magnum/tests/unit/conductor/test_template_definition.py @@ -193,7 +193,7 @@ class AtomicK8sTemplateDefinitionTestCase(base.TestCase): flannel_cidr = mock_baymodel.labels.get('flannel_network_cidr') flannel_subnet = mock_baymodel.labels.get('flannel_network_subnetlen') - flannel_vxlan = mock_baymodel.labels.get('flannel_use_vxlan') + flannel_backend = mock_baymodel.labels.get('flannel_backend') k8s_def = tdef.AtomicK8sTemplateDefinition() @@ -204,8 +204,8 @@ class AtomicK8sTemplateDefinitionTestCase(base.TestCase): 'minions_to_remove': removal_nodes, 'discovery_url': 'fake_discovery_url', 'flannel_network_cidr': flannel_cidr, - 'flannel_use_vxlan': flannel_subnet, - 'flannel_network_subnetlen': flannel_vxlan, + 'flannel_network_subnetlen': flannel_subnet, + 'flannel_backend': flannel_backend, 'username': 'fake_user', 'tenant_name': 'fake_tenant', 'magnum_url': mock_osc.magnum_url.return_value, @@ -244,7 +244,7 @@ class AtomicK8sTemplateDefinitionTestCase(base.TestCase): flannel_cidr = mock_baymodel.labels.get('flannel_network_cidr') flannel_subnet = mock_baymodel.labels.get('flannel_network_subnetlen') - flannel_vxlan = mock_baymodel.labels.get('flannel_use_vxlan') + flannel_backend = mock_baymodel.labels.get('flannel_backend') k8s_def = tdef.AtomicK8sTemplateDefinition() @@ -255,8 +255,8 @@ class AtomicK8sTemplateDefinitionTestCase(base.TestCase): 'minions_to_remove': removal_nodes, 'discovery_url': 'fake_discovery_url', 'flannel_network_cidr': flannel_cidr, - 'flannel_use_vxlan': flannel_subnet, - 'flannel_network_subnetlen': flannel_vxlan, + 'flannel_network_subnetlen': flannel_subnet, + 'flannel_backend': flannel_backend, 'username': 'fake_user', 'tenant_name': 'fake_tenant', 'magnum_url': mock_osc.magnum_url.return_value, @@ -418,7 +418,7 @@ class AtomicSwarmTemplateDefinitionTestCase(base.TestCase): flannel_cidr = mock_baymodel.labels.get('flannel_network_cidr') flannel_subnet = mock_baymodel.labels.get('flannel_network_subnetlen') - flannel_vxlan = mock_baymodel.labels.get('flannel_use_vxlan') + flannel_backend = mock_baymodel.labels.get('flannel_backend') swarm_def = tdef.AtomicSwarmTemplateDefinition() @@ -429,8 +429,8 @@ class AtomicSwarmTemplateDefinitionTestCase(base.TestCase): 'user_token': mock_context.auth_token, 'magnum_url': mock_osc.magnum_url.return_value, 'flannel_network_cidr': flannel_cidr, - 'flannel_use_vxlan': flannel_subnet, - 'flannel_network_subnetlen': flannel_vxlan}} + 'flannel_backend': flannel_backend, + 'flannel_network_subnetlen': flannel_subnet}} mock_get_params.assert_called_once_with(mock_context, mock_baymodel, mock_bay, **expected_kwargs) diff --git a/specs/container-networking-model.rst b/specs/container-networking-model.rst index e6bb1a21ad..0577a3e407 100644 --- a/specs/container-networking-model.rst +++ b/specs/container-networking-model.rst @@ -225,7 +225,7 @@ Proposed Changes --network-driver flannel \ --labels flannel_network_cidr=10.0.0.0/8,\ flannel_network_subnetlen=22,\ - flannel_use_vxlan=vxlan + flannel_backend=vxlan With Magnum's current implementation, this document would support labels for the Kubernetes COE type. However, labels are applicable