Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Document the 'all-in-one' layout + small refactoring #10725

Merged
merged 2 commits into from
Dec 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

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