From 77e6c3160fa991dd9f593dbfd0a9e054c520bc16 Mon Sep 17 00:00:00 2001 From: Hua Wang Date: Sat, 27 Aug 2016 15:54:58 +0530 Subject: [PATCH] Add Support of LBaaS v2 API LBaaS v1 api is completely removed by neutron, so it cannot be used now. Added Support of LBaaS v2 API. Now all COE's uses LBaaS v2. Co-Authored-By: yatin karel Change-Id: Idbccbe1065857449fc8e158115b7833b68c2da9f Partially-Implements: blueprint magnum-lbaasv2-support --- devstack/settings | 12 ++- doc/source/dev/manual-devstack.rst | 14 +++- doc/source/dev/quickstart.rst | 14 +++- .../templates/environments/no_master_lb.yaml | 10 ++- .../environments/with_master_lb.yaml | 10 ++- .../k8s_coreos_v1/templates/kubecluster.yaml | 73 ++++++++++------- .../k8s_coreos_v1/templates/kubemaster.yaml | 10 ++- .../templates/kubecluster-fedora-ironic.yaml | 79 ++++++++++++------- .../templates/kubecluster.yaml | 73 ++++++++++------- .../templates/kubemaster-fedora-ironic.yaml | 10 ++- .../templates/kubemaster.yaml | 10 ++- .../templates/mesoscluster.yaml | 36 +++++---- .../templates/mesosmaster.yaml | 5 +- .../templates/cluster.yaml | 75 +++++++++++------- .../templates/swarmmaster.yaml | 10 ++- magnum/tests/contrib/gate_hook.sh | 11 +++ 16 files changed, 295 insertions(+), 157 deletions(-) diff --git a/devstack/settings b/devstack/settings index 8b215c63ab..2b604827de 100644 --- a/devstack/settings +++ b/devstack/settings @@ -22,8 +22,6 @@ enable_service q-agt enable_service q-dhcp enable_service q-l3 enable_service q-meta -# Note: Default template uses LBaaS. -enable_service q-lbaas enable_service neutron # Enable Heat services @@ -32,6 +30,16 @@ enable_service h-api enable_service h-api-cfn enable_service h-api-cw +# Disable LBaaS(v1) service +disable_service q-lbaas +# Enable LBaaS(v2) services +enable_service q-lbaasv2 +enable_service octavia +enable_service o-cw +enable_service o-hk +enable_service o-hm +enable_service o-api + # Enable Magnum services enable_service magnum-api enable_service magnum-cond diff --git a/doc/source/dev/manual-devstack.rst b/doc/source/dev/manual-devstack.rst index 3dc5ac74fc..4bda54888f 100644 --- a/doc/source/dev/manual-devstack.rst +++ b/doc/source/dev/manual-devstack.rst @@ -52,10 +52,19 @@ and neutron:: enable_service q-dhcp enable_service q-l3 enable_service q-meta - # Note: Default template uses LBaaS. - enable_service q-lbaas enable_service neutron + # Disable LBaaS(v1) service + disable_service q-lbaas + + # Enable LBaaS(v2) services + enable_service q-lbaasv2 + enable_service octavia + enable_service o-cw + enable_service o-hk + enable_service o-hm + enable_service o-api + # Enable heat services enable_service h-eng enable_service h-api @@ -65,6 +74,7 @@ and neutron:: # Enable barbican services enable_plugin barbican https://git.openstack.org/openstack/barbican enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas + enable_plugin octavia https://git.openstack.org/openstack/octavia VOLUME_BACKING_FILE_SIZE=20G END diff --git a/doc/source/dev/quickstart.rst b/doc/source/dev/quickstart.rst index f548b725ef..bf7b904195 100644 --- a/doc/source/dev/quickstart.rst +++ b/doc/source/dev/quickstart.rst @@ -78,7 +78,8 @@ To run unit test coverage and check percentage of code covered:: tox -e cover - +To discover and interact with templates, please refer to +``_ Exercising the Services Using Devstack ====================================== @@ -123,6 +124,17 @@ Kilo, and heat is enabled by the magnum plugin):: # For details http://docs.openstack.org/developer/magnum/dev/tls.html enable_plugin barbican https://git.openstack.org/openstack/barbican enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas + enable_plugin octavia https://git.openstack.org/openstack/octavia + + # Disable LBaaS(v1) service + disable_service q-lbaas + # Enable LBaaS(v2) services + enable_service q-lbaasv2 + enable_service octavia + enable_service o-cw + enable_service o-hk + enable_service o-hm + enable_service o-api VOLUME_BACKING_FILE_SIZE=20G END diff --git a/magnum/drivers/common/templates/environments/no_master_lb.yaml b/magnum/drivers/common/templates/environments/no_master_lb.yaml index 5beb7b21be..10d8ba341b 100644 --- a/magnum/drivers/common/templates/environments/no_master_lb.yaml +++ b/magnum/drivers/common/templates/environments/no_master_lb.yaml @@ -4,9 +4,11 @@ resource_registry: "Magnum::ApiGatewaySwitcher": ../fragments/api_gateway_switcher_master.yaml # Cluster template - "Magnum::Optional::Neutron::Pool": "OS::Heat::None" - "Magnum::Optional::Neutron::Pool::FloatingIP": "OS::Heat::None" - "Magnum::Optional::Neutron::Pool::HealthMonitor": "OS::Heat::None" + "Magnum::Optional::Neutron::LBaaS::LoadBalancer": "OS::Heat::None" + "Magnum::Optional::Neutron::LBaaS::Listener": "OS::Heat::None" + "Magnum::Optional::Neutron::LBaaS::Pool": "OS::Heat::None" + "Magnum::Optional::Neutron::LBaaS::HealthMonitor": "OS::Heat::None" + "Magnum::Optional::Neutron::FloatingIP": "OS::Heat::None" # Master node template - "Magnum::Optional::Neutron::PoolMember": "OS::Heat::None" + "Magnum::Optional::Neutron::LBaaS::PoolMember": "OS::Heat::None" diff --git a/magnum/drivers/common/templates/environments/with_master_lb.yaml b/magnum/drivers/common/templates/environments/with_master_lb.yaml index f48d7013d1..debdb0c502 100644 --- a/magnum/drivers/common/templates/environments/with_master_lb.yaml +++ b/magnum/drivers/common/templates/environments/with_master_lb.yaml @@ -4,9 +4,11 @@ resource_registry: "Magnum::ApiGatewaySwitcher": ../fragments/api_gateway_switcher_pool.yaml # Cluster template - "Magnum::Optional::Neutron::Pool": "OS::Neutron::Pool" - "Magnum::Optional::Neutron::Pool::FloatingIP": "OS::Neutron::FloatingIP" - "Magnum::Optional::Neutron::Pool::HealthMonitor": "OS::Neutron::HealthMonitor" + "Magnum::Optional::Neutron::LBaaS::LoadBalancer": "OS::Neutron::LBaaS::LoadBalancer" + "Magnum::Optional::Neutron::LBaaS::Listener": "OS::Neutron::LBaaS::Listener" + "Magnum::Optional::Neutron::LBaaS::Pool": "OS::Neutron::LBaaS::Pool" + "Magnum::Optional::Neutron::LBaaS::HealthMonitor": "OS::Neutron::LBaaS::HealthMonitor" + "Magnum::Optional::Neutron::FloatingIP": "OS::Neutron::FloatingIP" # Master node template - "Magnum::Optional::Neutron::PoolMember": "OS::Neutron::PoolMember" + "Magnum::Optional::Neutron::LBaaS::PoolMember": "OS::Neutron::LBaaS::PoolMember" diff --git a/magnum/drivers/k8s_coreos_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_coreos_v1/templates/kubecluster.yaml index d4b02b429d..8d81f81abc 100644 --- a/magnum/drivers/k8s_coreos_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_coreos_v1/templates/kubecluster.yaml @@ -238,50 +238,69 @@ resources: # # load balancers. # + api_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + api_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: api_loadbalancer} + protocol: {get_param: loadbalancing_protocol} + protocol_port: {get_param: kubernetes_port} + + api_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: api_listener} + protocol: {get_param: loadbalancing_protocol} api_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - api_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: {get_param: loadbalancing_protocol} - monitors: [{get_resource: api_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: {get_param: kubernetes_port} + pool: { get_resource: api_pool } api_pool_floating: - type: Magnum::Optional::Neutron::Pool::FloatingIP + type: Magnum::Optional::Neutron::FloatingIP depends_on: - extrouter_inside properties: floating_network: {get_param: external_network} - port_id: {get_attr: [api_pool, vip, port_id]} + port_id: {get_attr: [api_loadbalancer, vip_port_id]} + + etcd_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + etcd_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: etcd_loadbalancer} + protocol: HTTP + protocol_port: 2379 + + etcd_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: etcd_listener} + protocol: HTTP etcd_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - etcd_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: HTTP - monitors: [{get_resource: etcd_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: 2379 + pool: { get_resource: etcd_pool } ###################################################################### # @@ -293,14 +312,14 @@ resources: type: Magnum::ApiGatewaySwitcher properties: pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} - pool_private_ip: {get_attr: [api_pool, vip, address]} + pool_private_ip: {get_attr: [api_loadbalancer, vip_address]} master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} etcd_address_switch: type: Magnum::ApiGatewaySwitcher properties: - pool_private_ip: {get_attr: [etcd_pool, vip, address]} + pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} ###################################################################### @@ -319,7 +338,7 @@ resources: type: kubemaster.yaml properties: api_public_address: {get_attr: [api_pool_floating, floating_ip_address]} - api_private_address: {get_attr: [api_pool, vip, address]} + api_private_address: {get_attr: [api_loadbalancer, vip_address]} ssh_key_name: {get_param: ssh_key_name} server_image: {get_param: server_image} master_flavor: {get_param: master_flavor} diff --git a/magnum/drivers/k8s_coreos_v1/templates/kubemaster.yaml b/magnum/drivers/k8s_coreos_v1/templates/kubemaster.yaml index 0a9ed07e1f..2859625f1e 100644 --- a/magnum/drivers/k8s_coreos_v1/templates/kubemaster.yaml +++ b/magnum/drivers/k8s_coreos_v1/templates/kubemaster.yaml @@ -428,17 +428,19 @@ resources: port_id: {get_resource: kube_master_eth0} api_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: api_pool_id} + pool: {get_param: api_pool_id} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet } protocol_port: {get_param: kubernetes_port} etcd_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: etcd_pool_id} + pool: {get_param: etcd_pool_id} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet } protocol_port: 2379 outputs: diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster-fedora-ironic.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster-fedora-ironic.yaml index 9d96b8c9e1..f585fb5b2d 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster-fedora-ironic.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster-fedora-ironic.yaml @@ -328,48 +328,67 @@ resources: # # load balancers. # - - api_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + api_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer properties: - type: TCP - delay: 5 - max_retries: 5 - timeout: 5 + vip_subnet: {get_param: fixed_subnet} + + api_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: api_loadbalancer} + protocol: {get_param: loadbalancing_protocol} + protocol_port: {get_param: kubernetes_port} api_pool: - type: Magnum::Optional::Neutron::Pool + type: Magnum::Optional::Neutron::LBaaS::Pool properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: api_listener} protocol: {get_param: loadbalancing_protocol} - monitors: [{get_resource: api_monitor}] - subnet: {get_param: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: {get_param: kubernetes_port} - api_pool_floating: - type: Magnum::Optional::Neutron::Pool::FloatingIP - properties: - floating_network: {get_param: external_network} - port_id: {get_attr: [api_pool, vip, port_id]} - - etcd_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + api_monitor: + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 + pool: { get_resource: api_pool } + + api_pool_floating: + type: Magnum::Optional::Neutron::FloatingIP + properties: + floating_network: {get_param: external_network} + port_id: {get_attr: [api_loadbalancer, vip_port_id]} + + etcd_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_param: fixed_subnet} + + etcd_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: etcd_loadbalancer} + protocol: HTTP + protocol_port: 2379 etcd_pool: - type: Magnum::Optional::Neutron::Pool + type: Magnum::Optional::Neutron::LBaaS::Pool properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: etcd_listener} protocol: HTTP - monitors: [{get_resource: etcd_monitor}] - subnet: {get_param: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: 2379 + + etcd_monitor: + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor + properties: + type: TCP + delay: 5 + max_retries: 5 + timeout: 5 + pool: { get_resource: etcd_pool } ###################################################################### # @@ -381,14 +400,14 @@ resources: type: Magnum::ApiGatewaySwitcher properties: pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} - pool_private_ip: {get_attr: [api_pool, vip, address]} + pool_private_ip: {get_attr: [api_loadbalancer, vip_address]} master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} etcd_address_switch: type: Magnum::ApiGatewaySwitcher properties: - pool_private_ip: {get_attr: [etcd_pool, vip, address]} + pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} ###################################################################### @@ -405,7 +424,7 @@ resources: type: kubemaster-fedora-ironic.yaml properties: api_public_address: {get_attr: [api_pool_floating, floating_ip_address]} - api_private_address: {get_attr: [api_pool, vip, address]} + api_private_address: {get_attr: [api_loadbalancer, vip_address]} ssh_key_name: {get_param: ssh_key_name} server_image: {get_param: server_image} master_flavor: {get_param: master_flavor} diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml index c23e2bb903..b303f88612 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml @@ -348,50 +348,69 @@ resources: # # load balancers. # + api_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + api_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: api_loadbalancer} + protocol: {get_param: loadbalancing_protocol} + protocol_port: {get_param: kubernetes_port} + + api_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: api_listener} + protocol: {get_param: loadbalancing_protocol} api_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - api_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: {get_param: loadbalancing_protocol} - monitors: [{get_resource: api_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: {get_param: kubernetes_port} + pool: { get_resource: api_pool } api_pool_floating: - type: Magnum::Optional::Neutron::Pool::FloatingIP + type: Magnum::Optional::Neutron::FloatingIP depends_on: - extrouter_inside properties: floating_network: {get_param: external_network} - port_id: {get_attr: [api_pool, vip, port_id]} + port_id: {get_attr: [api_loadbalancer, vip_port_id]} + + etcd_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + etcd_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: etcd_loadbalancer} + protocol: HTTP + protocol_port: 2379 + + etcd_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: etcd_listener} + protocol: HTTP etcd_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - etcd_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: HTTP - monitors: [{get_resource: etcd_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: 2379 + pool: { get_resource: etcd_pool } ###################################################################### # @@ -403,14 +422,14 @@ resources: type: Magnum::ApiGatewaySwitcher properties: pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} - pool_private_ip: {get_attr: [api_pool, vip, address]} + pool_private_ip: {get_attr: [api_loadbalancer, vip_address]} master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} etcd_address_lb_switch: type: Magnum::ApiGatewaySwitcher properties: - pool_private_ip: {get_attr: [etcd_pool, vip, address]} + pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} ###################################################################### @@ -441,7 +460,7 @@ resources: type: kubemaster.yaml properties: api_public_address: {get_attr: [api_pool_floating, floating_ip_address]} - api_private_address: {get_attr: [api_pool, vip, address]} + api_private_address: {get_attr: [api_loadbalancer, vip_address]} ssh_key_name: {get_param: ssh_key_name} server_image: {get_param: server_image} master_flavor: {get_param: master_flavor} diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster-fedora-ironic.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster-fedora-ironic.yaml index 1063fce5c9..c0ae62ae53 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster-fedora-ironic.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster-fedora-ironic.yaml @@ -402,17 +402,19 @@ resources: get_attr: [kube_master, addresses, {get_param: fixed_network}, 0, port] api_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: api_pool_id} + pool: {get_param: api_pool_id} address: {get_attr: [kube_master, networks, private, 0]} + subnet: { get_param: fixed_subnet } protocol_port: {get_param: kubernetes_port} etcd_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: etcd_pool_id} + pool: {get_param: etcd_pool_id} address: {get_attr: [kube_master, networks, private, 0]} + subnet: { get_param: fixed_subnet } protocol_port: 2379 outputs: diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml index 37e3547c88..7a51f8a43b 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml @@ -420,17 +420,19 @@ resources: port_id: {get_resource: kube_master_eth0} api_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: api_pool_id} + pool: {get_param: api_pool_id} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet } protocol_port: {get_param: kubernetes_port} etcd_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: etcd_pool_id} + pool: {get_param: etcd_pool_id} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet } protocol_port: 2379 ###################################################################### diff --git a/magnum/drivers/mesos_ubuntu_v1/templates/mesoscluster.yaml b/magnum/drivers/mesos_ubuntu_v1/templates/mesoscluster.yaml index ba7d255171..dd56e699e5 100644 --- a/magnum/drivers/mesos_ubuntu_v1/templates/mesoscluster.yaml +++ b/magnum/drivers/mesos_ubuntu_v1/templates/mesoscluster.yaml @@ -343,33 +343,41 @@ resources: # # load balancers. # + api_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + api_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: api_loadbalancer} + protocol: HTTP + protocol_port: 8080 + + api_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: api_listener} + protocol: HTTP api_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - api_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: HTTP - monitors: [{get_resource: api_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: 8080 - description: API pool for Mesos cluster + pool: { get_resource: api_pool } api_pool_floating: - type: Magnum::Optional::Neutron::Pool::FloatingIP + type: Magnum::Optional::Neutron::FloatingIP depends_on: - extrouter_inside properties: floating_network: {get_param: external_network} - port_id: {get_attr: [api_pool, vip, port_id]} + port_id: {get_attr: [api_loadbalancer, vip_port_id]} ###################################################################### # diff --git a/magnum/drivers/mesos_ubuntu_v1/templates/mesosmaster.yaml b/magnum/drivers/mesos_ubuntu_v1/templates/mesosmaster.yaml index d98bd0b348..1ae7ad9a51 100644 --- a/magnum/drivers/mesos_ubuntu_v1/templates/mesosmaster.yaml +++ b/magnum/drivers/mesos_ubuntu_v1/templates/mesosmaster.yaml @@ -78,10 +78,11 @@ resources: port_id: {get_resource: mesos_master_eth0} api_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: api_pool_id} + pool: {get_param: api_pool_id} address: {get_attr: [mesos_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet } protocol_port: 8080 outputs: diff --git a/magnum/drivers/swarm_fedora_atomic_v1/templates/cluster.yaml b/magnum/drivers/swarm_fedora_atomic_v1/templates/cluster.yaml index dff4b5d5f1..0de667db3f 100644 --- a/magnum/drivers/swarm_fedora_atomic_v1/templates/cluster.yaml +++ b/magnum/drivers/swarm_fedora_atomic_v1/templates/cluster.yaml @@ -287,50 +287,69 @@ resources: # # load balancers. # + api_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + api_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: api_loadbalancer} + protocol: {get_param: loadbalancing_protocol} + protocol_port: {get_param: swarm_port} + + api_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: api_listener} + protocol: {get_param: loadbalancing_protocol} api_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - api_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: {get_param: loadbalancing_protocol} - monitors: [{get_resource: api_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: {get_param: swarm_port} + pool: { get_resource: api_pool } api_pool_floating: - type: Magnum::Optional::Neutron::Pool::FloatingIP + type: Magnum::Optional::Neutron::FloatingIP depends_on: - extrouter_inside properties: floating_network: {get_param: external_network} - port_id: {get_attr: [api_pool, vip, port_id]} + port_id: {get_attr: [api_loadbalancer, vip_port_id]} + + etcd_loadbalancer: + type: Magnum::Optional::Neutron::LBaaS::LoadBalancer + properties: + vip_subnet: {get_resource: fixed_subnet} + + etcd_listener: + type: Magnum::Optional::Neutron::LBaaS::Listener + properties: + loadbalancer: {get_resource: etcd_loadbalancer} + protocol: HTTP + protocol_port: 2379 + + etcd_pool: + type: Magnum::Optional::Neutron::LBaaS::Pool + properties: + lb_algorithm: ROUND_ROBIN + listener: {get_resource: etcd_listener} + protocol: HTTP etcd_monitor: - type: Magnum::Optional::Neutron::Pool::HealthMonitor + type: Magnum::Optional::Neutron::LBaaS::HealthMonitor properties: type: TCP delay: 5 max_retries: 5 timeout: 5 - - etcd_pool: - type: Magnum::Optional::Neutron::Pool - properties: - protocol: HTTP - monitors: [{get_resource: etcd_monitor}] - subnet: {get_resource: fixed_subnet} - lb_method: ROUND_ROBIN - vip: - protocol_port: 2379 + pool: { get_resource: etcd_pool } ###################################################################### # @@ -342,14 +361,14 @@ resources: type: Magnum::ApiGatewaySwitcher properties: pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} - pool_private_ip: {get_attr: [api_pool, vip, address]} + pool_private_ip: {get_attr: [api_loadbalancer, vip_address]} master_public_ip: {get_attr: [swarm_masters, resource.0.swarm_master_external_ip]} master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]} etcd_address_switch: type: Magnum::ApiGatewaySwitcher properties: - pool_private_ip: {get_attr: [etcd_pool, vip, address]} + pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]} master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]} ###################################################################### @@ -380,7 +399,7 @@ resources: http_proxy: {get_param: http_proxy} https_proxy: {get_param: https_proxy} no_proxy: {get_param: no_proxy} - swarm_api_ip: {get_attr: [api_pool, vip, address]} + swarm_api_ip: {get_attr: [api_loadbalancer, vip_address]} cluster_uuid: {get_param: cluster_uuid} magnum_url: {get_param: magnum_url} tls_disabled: {get_param: tls_disabled} @@ -392,7 +411,7 @@ resources: swarm_port: {get_param: swarm_port} api_pool_id: {get_resource: api_pool} etcd_pool_id: {get_resource: etcd_pool} - etcd_server_ip: {get_attr: [etcd_pool, vip, address]} + etcd_server_ip: {get_attr: [etcd_loadbalancer, vip_address]} api_ip_address: {get_attr: [api_pool_floating, floating_ip_address]} swarm_version: {get_param: swarm_version} trustee_user_id: {get_param: trustee_user_id} diff --git a/magnum/drivers/swarm_fedora_atomic_v1/templates/swarmmaster.yaml b/magnum/drivers/swarm_fedora_atomic_v1/templates/swarmmaster.yaml index 99c33fb58d..38e52f868d 100644 --- a/magnum/drivers/swarm_fedora_atomic_v1/templates/swarmmaster.yaml +++ b/magnum/drivers/swarm_fedora_atomic_v1/templates/swarmmaster.yaml @@ -415,17 +415,19 @@ resources: get_resource: swarm_master_eth0 api_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: api_pool_id} + pool: {get_param: api_pool_id} address: {get_attr: [swarm_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet_id } protocol_port: {get_param: swarm_port} etcd_pool_member: - type: Magnum::Optional::Neutron::PoolMember + type: Magnum::Optional::Neutron::LBaaS::PoolMember properties: - pool_id: {get_param: etcd_pool_id} + pool: {get_param: etcd_pool_id} address: {get_attr: [swarm_master_eth0, fixed_ips, 0, ip_address]} + subnet: { get_param: fixed_subnet_id } protocol_port: 2379 ###################################################################### diff --git a/magnum/tests/contrib/gate_hook.sh b/magnum/tests/contrib/gate_hook.sh index d30d10ea2d..8529d49474 100755 --- a/magnum/tests/contrib/gate_hook.sh +++ b/magnum/tests/contrib/gate_hook.sh @@ -21,6 +21,8 @@ special=$2 export PROJECTS="openstack/barbican $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin magnum git://git.openstack.org/openstack/magnum" export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer" +export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas" +export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin octavia https://github.com/openstack/octavia" if [ "$coe" = "mesos" ]; then echo "MAGNUM_GUEST_IMAGE_URL=https://fedorapeople.org/groups/magnum/ubuntu-14.04.3-mesos-0.25.0.qcow2" >> $BASE/new/devstack/localrc @@ -36,6 +38,15 @@ elif [ "${coe}${special}" = "k8s-ironic" ]; then # NOTE(strigazi) keep cinder # export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service cinder c-sch c-api c-vol" + # Enable LBaaS(v2) and disable LBaaS(v1) + export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service q-lbaas" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service q-lbaasv2" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service octavia" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-cw" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-hk" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-hm" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-api" + export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER=pxe_ssh"