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"