Merge "Add server group for cluster worker nodes"

This commit is contained in:
Zuul 2019-02-27 12:32:47 +00:00 committed by Gerrit Code Review
commit 07e48a1ed5
7 changed files with 77 additions and 38 deletions

View File

@ -605,11 +605,16 @@ resources:
###################################################################### ######################################################################
# #
# resources that expose the server group for all nodes include master # resources that expose one server group for each master and worker nodes
# and minions. # separately.
# #
nodes_server_group: master_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
worker_nodes_server_group:
type: OS::Nova::ServerGroup type: OS::Nova::ServerGroup
properties: properties:
policies: [{get_param: nodes_affinity_policy}] policies: [{get_param: nodes_affinity_policy}]
@ -690,7 +695,7 @@ resources:
dns_service_ip: {get_param: dns_service_ip} dns_service_ip: {get_param: dns_service_ip}
dns_cluster_domain: {get_param: dns_cluster_domain} dns_cluster_domain: {get_param: dns_cluster_domain}
openstack_ca: {get_param: openstack_ca_coreos} openstack_ca: {get_param: openstack_ca_coreos}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: master_nodes_server_group}
availability_zone: {get_param: availability_zone} availability_zone: {get_param: availability_zone}
ca_key: {get_param: ca_key} ca_key: {get_param: ca_key}
cert_manager_api: {get_param: cert_manager_api} cert_manager_api: {get_param: cert_manager_api}
@ -778,7 +783,7 @@ resources:
dns_service_ip: {get_param: dns_service_ip} dns_service_ip: {get_param: dns_service_ip}
dns_cluster_domain: {get_param: dns_cluster_domain} dns_cluster_domain: {get_param: dns_cluster_domain}
openstack_ca: {get_param: openstack_ca_coreos} openstack_ca: {get_param: openstack_ca_coreos}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: worker_nodes_server_group}
availability_zone: {get_param: availability_zone} availability_zone: {get_param: availability_zone}
pods_network_cidr: {get_param: pods_network_cidr} pods_network_cidr: {get_param: pods_network_cidr}
kubelet_options: {get_param: kubelet_options} kubelet_options: {get_param: kubelet_options}

View File

@ -675,11 +675,16 @@ resources:
###################################################################### ######################################################################
# #
# resources that expose the server group for all nodes include master # resources that expose one server group for each master and worker nodes
# and minions. # separately.
# #
nodes_server_group: master_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
worker_nodes_server_group:
type: OS::Nova::ServerGroup type: OS::Nova::ServerGroup
properties: properties:
policies: [{get_param: nodes_affinity_policy}] policies: [{get_param: nodes_affinity_policy}]
@ -762,7 +767,7 @@ resources:
dns_service_ip: {get_param: dns_service_ip} dns_service_ip: {get_param: dns_service_ip}
dns_cluster_domain: {get_param: dns_cluster_domain} dns_cluster_domain: {get_param: dns_cluster_domain}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: master_nodes_server_group}
availability_zone: {get_param: availability_zone} availability_zone: {get_param: availability_zone}
ca_key: {get_param: ca_key} ca_key: {get_param: ca_key}
cert_manager_api: {get_param: cert_manager_api} cert_manager_api: {get_param: cert_manager_api}
@ -904,7 +909,7 @@ resources:
dns_service_ip: {get_param: dns_service_ip} dns_service_ip: {get_param: dns_service_ip}
dns_cluster_domain: {get_param: dns_cluster_domain} dns_cluster_domain: {get_param: dns_cluster_domain}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: worker_nodes_server_group}
availability_zone: {get_param: availability_zone} availability_zone: {get_param: availability_zone}
pods_network_cidr: {get_param: pods_network_cidr} pods_network_cidr: {get_param: pods_network_cidr}
kubelet_options: {get_param: kubelet_options} kubelet_options: {get_param: kubelet_options}

View File

@ -468,11 +468,16 @@ resources:
###################################################################### ######################################################################
# #
# resources that expose the server group for all nodes include master # resources that expose one server group for each master and worker nodes
# and minions. # separately.
# #
nodes_server_group: master_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
worker_nodes_server_group:
type: OS::Nova::ServerGroup type: OS::Nova::ServerGroup
properties: properties:
policies: [{get_param: nodes_affinity_policy}] policies: [{get_param: nodes_affinity_policy}]
@ -544,7 +549,7 @@ resources:
wc_curl_cli: {get_attr: [master_wait_handle, curl_cli]} wc_curl_cli: {get_attr: [master_wait_handle, curl_cli]}
etcd_lb_vip: {get_attr: [etcd_lb, address]} etcd_lb_vip: {get_attr: [etcd_lb, address]}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: master_nodes_server_group}
octavia_enabled: {get_param: octavia_enabled} octavia_enabled: {get_param: octavia_enabled}
###################################################################### ######################################################################
@ -589,7 +594,7 @@ resources:
flannel_network_cidr: {get_param: flannel_network_cidr} flannel_network_cidr: {get_param: flannel_network_cidr}
external_network: {get_param: external_network} external_network: {get_param: external_network}
kube_software_configs: {get_attr: [kubeminion_software_configs, kube_minion_init]} kube_software_configs: {get_attr: [kubeminion_software_configs, kube_minion_init]}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: worker_nodes_server_group}
###################################################################### ######################################################################
# #

View File

@ -380,11 +380,16 @@ resources:
###################################################################### ######################################################################
# #
# resources that expose the server group for all nodes include master # resources that expose one server group for each master and worker nodes
# and minions. # separately.
# #
nodes_server_group: master_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
worker_nodes_server_group:
type: OS::Nova::ServerGroup type: OS::Nova::ServerGroup
properties: properties:
policies: [{get_param: nodes_affinity_policy}] policies: [{get_param: nodes_affinity_policy}]
@ -417,7 +422,7 @@ resources:
secgroup_mesos_id: {get_resource: secgroup_master} secgroup_mesos_id: {get_resource: secgroup_master}
api_pool_id: {get_attr: [api_lb, pool_id]} api_pool_id: {get_attr: [api_lb, pool_id]}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: master_nodes_server_group}
###################################################################### ######################################################################
# #
@ -447,7 +452,7 @@ resources:
external_network: {get_param: external_network} external_network: {get_param: external_network}
secgroup_slave_all_open_id: {get_resource: secgroup_slave_all_open} secgroup_slave_all_open_id: {get_resource: secgroup_slave_all_open}
mesos_slave_software_configs: {get_attr: [mesos_slave_software_configs, mesos_init]} mesos_slave_software_configs: {get_attr: [mesos_slave_software_configs, mesos_init]}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: worker_nodes_server_group}
###################################################################### ######################################################################
# #

View File

@ -346,23 +346,28 @@ resources:
master_public_ip: {get_attr: [swarm_masters, resource.0.swarm_master_external_ip]} 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]} master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
######################################################################
#
# resources that expose the server group for all nodes include master
# and minions.
#
nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
etcd_address_lb_switch: etcd_address_lb_switch:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_private_ip: {get_attr: [etcd_lb, address]} pool_private_ip: {get_attr: [etcd_lb, address]}
master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]} master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
######################################################################
#
# resources that expose one server group for each master and worker nodes
# separately.
#
master_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
worker_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
###################################################################### ######################################################################
# #
# Swarm manager is responsible for the entire cluster and manages the # Swarm manager is responsible for the entire cluster and manages the
@ -420,7 +425,7 @@ resources:
volume_driver: {get_param: volume_driver} volume_driver: {get_param: volume_driver}
rexray_preempt: {get_param: rexray_preempt} rexray_preempt: {get_param: rexray_preempt}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: master_nodes_server_group}
swarm_nodes: swarm_nodes:
type: "OS::Heat::ResourceGroup" type: "OS::Heat::ResourceGroup"
@ -473,7 +478,7 @@ resources:
volume_driver: {get_param: volume_driver} volume_driver: {get_param: volume_driver}
rexray_preempt: {get_param: rexray_preempt} rexray_preempt: {get_param: rexray_preempt}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: worker_nodes_server_group}
outputs: outputs:

View File

@ -292,11 +292,16 @@ resources:
###################################################################### ######################################################################
# #
# resources that expose the server group for all nodes include master # resources that expose one server group for each master and worker nodes
# and minions. # separately.
# #
nodes_server_group: master_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
policies: [{get_param: nodes_affinity_policy}]
worker_nodes_server_group:
type: OS::Nova::ServerGroup type: OS::Nova::ServerGroup
properties: properties:
policies: [{get_param: nodes_affinity_policy}] policies: [{get_param: nodes_affinity_policy}]
@ -350,7 +355,7 @@ resources:
rexray_preempt: {get_param: rexray_preempt} rexray_preempt: {get_param: rexray_preempt}
verify_ca: {get_param: verify_ca} verify_ca: {get_param: verify_ca}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: master_nodes_server_group}
availability_zone: {get_param: availability_zone} availability_zone: {get_param: availability_zone}
swarm_secondary_masters: swarm_secondary_masters:
@ -395,7 +400,7 @@ resources:
rexray_preempt: {get_param: rexray_preempt} rexray_preempt: {get_param: rexray_preempt}
verify_ca: {get_param: verify_ca} verify_ca: {get_param: verify_ca}
openstack_ca: {get_param: openstack_ca} openstack_ca: {get_param: openstack_ca}
nodes_server_group_id: {get_resource: nodes_server_group} nodes_server_group_id: {get_resource: worker_nodes_server_group}
availability_zone: {get_param: availability_zone} availability_zone: {get_param: availability_zone}
swarm_nodes: swarm_nodes:

View File

@ -0,0 +1,9 @@
---
features:
- |
Magnums onlys has one server group for all master and worker nodes
per cluster, which is not very flexible for small cloud scale. For a
3+ master clusters, it's easily meeting the capacity when using hard
anti-affinity policy. Now one server group is added for each
master and worker nodes group to have better flexibility.