Skip to content

Commit

Permalink
CI: Document the 'all-in-one' layout + small refactoring (kubernetes-…
Browse files Browse the repository at this point in the history
…sigs#10725)

* Rename aio to all-in-one and document it

ADTM.
Acronyms don't tell much.

* Refactor vm_count in tests provisioning
  • Loading branch information
VannTen committed Jan 4, 2024
1 parent e4be213 commit 11e986d
Show file tree
Hide file tree
Showing 16 changed files with 34 additions and 24 deletions.
14 changes: 7 additions & 7 deletions .gitlab-ci/packet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ packet_cleanup_old:
- make cleanup-packet
after_script: []

# The ubuntu20-calico-aio jobs are meant as early stages to prevent running the full CI if something is horribly broken
packet_ubuntu20-calico-aio:
# The ubuntu20-calico-all-in-one jobs are meant as early stages to prevent running the full CI if something is horribly broken
packet_ubuntu20-calico-all-in-one:
stage: deploy-part1
extends: .packet_pr
when: on_success
Expand All @@ -41,22 +41,22 @@ packet_ubuntu20-calico-aio:

# ### PR JOBS PART2

packet_ubuntu20-aio-docker:
packet_ubuntu20-all-in-one-docker:
stage: deploy-part2
extends: .packet_pr
when: on_success

packet_ubuntu20-calico-aio-hardening:
packet_ubuntu20-calico-all-in-one-hardening:
stage: deploy-part2
extends: .packet_pr
when: on_success

packet_ubuntu22-aio-docker:
packet_ubuntu22-all-in-one-docker:
stage: deploy-part2
extends: .packet_pr
when: on_success

packet_ubuntu22-calico-aio:
packet_ubuntu22-calico-all-in-one:
stage: deploy-part2
extends: .packet_pr
when: on_success
Expand Down Expand Up @@ -235,7 +235,7 @@ packet_fedora37-calico-swap-selinux:
extends: .packet_pr
when: manual

packet_amazon-linux-2-aio:
packet_amazon-linux-2-all-in-one:
stage: deploy-part2
extends: .packet_pr
when: manual
Expand Down
4 changes: 3 additions & 1 deletion docs/test_cases.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Node Layouts

There are four node layout types: `default`, `separate`, `ha`, and `scale`.
There are five node layout types: `default`, `separate`, `ha`, `scale`, and `all-in-one`.

`default` is a non-HA two nodes setup with one separate `kube_node`
and the `etcd` group merged with the `kube_control_plane`.
Expand All @@ -16,6 +16,8 @@ in the Ansible inventory. This helps test TLS certificate generation at scale
to prevent regressions and profile certain long-running tasks. These nodes are
never actually deployed, but certificates are generated for them.

`all-in-one` layout use a single node for with `kube_control_plane`, `etcd` and `kube_node` merged.

Note, the canal network plugin deploys flannel as well plus calico policy controller.

## Test cases
Expand Down
2 changes: 1 addition & 1 deletion tests/cloud_playbooks/create-gce.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
instance_names: >-
{%- if mode in ['separate', 'separate-scale', 'ha', 'ha-scale'] -%}
k8s-{{ test_name }}-1,k8s-{{ test_name }}-2,k8s-{{ test_name }}-3
{%- elif mode == 'aio' -%}
{%- elif mode == 'all-in-one' -%}
k8s-{{ test_name }}-1
{%- else -%}
k8s-{{ test_name }}-1,k8s-{{ test_name }}-2
Expand Down
2 changes: 1 addition & 1 deletion tests/cloud_playbooks/roles/packet-ci/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ memory_allocation_ratio: 1
inventory_path: "/tmp/{{ test_name }}/inventory"

# Deployment mode
mode: aio
mode: all-in-one

# Cloud init config for each os type
# distro: fedora -> I2Nsb3VkLWNvbmZpZwpzeXN0ZW1faW5mbzoKICBkaXN0cm86IGZlZG9yYQp1c2VyczoKIC0gbmFtZToga3ViZXNwcmF5CiAgIGdyb3Vwczogd2hlZWwKICAgc3VkbzogJ0FMTD0oQUxMKSBOT1BBU1NXRDpBTEwnCiAgIHNoZWxsOiAvYmluL2Jhc2gKICAgbG9ja19wYXNzd2Q6IEZhbHNlCiAgIGhvbWU6IC9ob21lL2t1YmVzcHJheQogICBzc2hfYXV0aG9yaXplZF9rZXlzOgogICAgIC0gc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDYW5UaS9lS3gwK3RIWUpBZURocStzRlMyT2JVUDEvSTY5ZjdpVjNVdGtLbFQyMEpmVzFmNkZlWHQvMDRWZjI3V1FxK05xczZ2R0JxRDlRWFNZdWYrdDAvczdFUExqVGVpOW1lMW1wcXIrdVRlK0tEdFRQMzlwZkQzL2VWQ2FlQjcyNkdQMkZrYUQwRnpwbUViNjZPM05xaHhPUTk2R3gvOVhUdXcvSzNsbGo0T1ZENkdyalIzQjdjNFh0RUJzWmNacHBNSi9vSDFtR3lHWGRoMzFtV1FTcUFSTy9QOFU4R3d0MCtIR3BVd2gvaGR5M3QrU1lvVEIyR3dWYjB6b3lWd3RWdmZEUXpzbThmcTNhdjRLdmV6OGtZdU5ESnYwNXg0bHZVWmdSMTVaRFJYc0FuZGhReXFvWGRDTEFlMCtlYUtYcTlCa1d4S0ZiOWhQZTBBVWpqYTU=
Expand Down
4 changes: 0 additions & 4 deletions tests/cloud_playbooks/roles/packet-ci/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
- name: "Include custom vars for ci job: {{ ci_job_name }}"
include_vars: "../files/{{ ci_job_name }}.yml"

- name: Set VM count needed for CI test_id
set_fact:
vm_count: "{%- if mode in ['separate', 'separate-scale', 'ha', 'ha-scale', 'ha-recover', 'ha-recover-noquorum'] -%}{{ 3 | int }}{%- elif mode == 'aio' -%}{{ 1 | int }}{%- else -%}{{ 2 | int }}{%- endif -%}"

- name: Cleamup old VMs
import_tasks: cleanup-old-vms.yml

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ instance-2

[etcd]
instance-1
{% elif mode == "aio" %}
{% elif mode == "all-in-one" %}
[kube_control_plane]
instance-1

Expand Down
12 changes: 12 additions & 0 deletions tests/cloud_playbooks/roles/packet-ci/vars/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
_vm_count_dict:
separate: 3
separate-scale: 3
ha: 3
ha-scale: 3
ha-recover: 3
ha-recover-noquorum: 3
all-in-one: 1
default: 2

vm_count: "{{ _vm_count_dict[mode | d('default')] }}"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
# Instance settings
cloud_image: amazon-linux-2
mode: aio
mode: all-in-one
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
# Instance settings
cloud_image: ubuntu-2004
mode: aio
mode: all-in-one

# Kubespray settings
auto_renew_certificates: true
Expand Down
1 change: 0 additions & 1 deletion tests/files/packet_ubuntu20-calico-aio-ansible-2_11.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
# Instance settings
cloud_image: ubuntu-2004
mode: aio
mode: all-in-one

# Kubespray settings
auto_renew_certificates: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
# Instance settings
cloud_image: ubuntu-2004
mode: aio
mode: all-in-one

# Kubespray settings
auto_renew_certificates: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
# Instance settings
cloud_image: ubuntu-2204
mode: aio
mode: all-in-one
vm_memory: 1600Mi

# Kubespray settings
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
# Instance settings
cloud_image: ubuntu-2204
mode: aio
mode: all-in-one
vm_memory: 1600Mi

# Kubespray settings
Expand Down
4 changes: 2 additions & 2 deletions tests/templates/inventory-gce.j2
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{% set node1 = gce.instance_data[0].name %}
{{node1}} ansible_ssh_host={{gce.instance_data[0].public_ip}}
{% if mode != "aio" %}
{% if mode != "all-in-one" %}
{% set node2 = gce.instance_data[1].name %}
{{node2}} ansible_ssh_host={{gce.instance_data[1].public_ip}}
{% endif %}
Expand Down Expand Up @@ -46,7 +46,7 @@

[etcd]
{{node1}}
{% elif mode == "aio" %}
{% elif mode == "all-in-one" %}
[kube_control_plane]
{{node1}}

Expand Down

0 comments on commit 11e986d

Please sign in to comment.