---
|
- name: Define {{ machineset_group.name }} machinesets
|
k8s:
|
state: present
|
definition: "{{ lookup('template', 'aws-machineset.yml.j2') | from_yaml }}"
|
# Iterate through availability zones in reverse order as it makes the math
|
# easier to scale zone "a" before "b" to match expected behavior.
|
loop: "{{ aws_worker_availability_zones[::-1] }}"
|
loop_control:
|
label: "{{ machineset_name }}"
|
loop_var: aws_worker_availability_zone
|
index_var: loop_index
|
vars:
|
availability_zone: "{{ aws_worker_availability_zone.name }}"
|
availability_zone_region: "{{ aws_worker_availability_zone.region }}"
|
availability_zone_subnet: "{{ aws_worker_availability_zone.subnet }}"
|
aws_instance_type: >-
|
{{ machineset_group.aws_instance_type | default(default_aws_instance_type) }}
|
aws_root_volume_size: >-
|
{{ machineset_group.aws_root_volume_size | default(default_aws_root_volume_size) }}
|
machineset_name: >-
|
{{ [cluster_label, machineset_group.name, availability_zone] | join('-') }}
|
machineset_group_node_labels: >-
|
{{ machineset_group.node_labels
|
| default({'node-role.kubernetes.io/' + machineset_group.role: ''}
|
if machineset_group.role|default(False) else {})
|
}}
|
machineset_group_total_replicas: >-
|
{{ machineset_group.total_replicas
|
| default(machineset_group.total_replicas_min)
|
| default(0)
|
}}
|
machineset_replicas: >-
|
{{ (
|
(machineset_group_total_replicas|int + loop_index) / aws_worker_availability_zones|count
|
) | int }}
|
|
- name: Define {{ machineset_group.name }} machineautoscalers
|
k8s:
|
state: present
|
definition: "{{ lookup('template', 'machineautoscaler.yml.j2') | from_yaml }}"
|
# Iterate through availability zones in reverse order as it makes the math
|
# easier to scale zone "a" before "b" to match expected behavior.
|
loop: "{{ aws_worker_availability_zones[::-1] }}"
|
loop_control:
|
label: "{{ machineset_name }}"
|
loop_var: aws_worker_availability_zone
|
index_var: loop_index
|
vars:
|
availability_zone: "{{ aws_worker_availability_zone.name }}"
|
machineset_name: >-
|
{{ [cluster_label, machineset_group.name, availability_zone] | join('-') }}
|
machineset_min_replicas: >-
|
{{ (
|
(machineset_group.total_replicas_min|default(0) + loop_index) /
|
aws_worker_availability_zones|count
|
) | int }}
|
machineset_max_replicas: >-
|
{{ (
|
(machineset_group.total_replicas_max|default(100) + loop_index) /
|
aws_worker_availability_zones|count
|
) | int }}
|
when: machineset_group.autoscale | default(False) | bool
|