Browse Source

Add test case for calico using etcd datastore (#10722)

* Add multinode ci layout

* Add test case for calico using etcd datastore
pull/10738/head
Max Gautier 11 months ago
committed by GitHub
parent
commit
243ca5d08f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 48 additions and 1 deletions
  1. 5
      .gitlab-ci/packet.yml
  2. 4
      docs/test_cases.md
  3. 10
      tests/cloud_playbooks/roles/packet-ci/templates/inventory.j2
  4. 1
      tests/cloud_playbooks/roles/packet-ci/vars/main.yml
  5. 29
      tests/files/packet_ubuntu22-calico-etcd-datastore.yml

5
.gitlab-ci/packet.yml

@ -61,6 +61,11 @@ packet_ubuntu22-calico-all-in-one:
extends: .packet_pr extends: .packet_pr
when: on_success when: on_success
packet_ubuntu22-calico-etcd-datastore:
stage: deploy-part2
extends: .packet_pr
when: on_success
packet_centos7-flannel-addons-ha: packet_centos7-flannel-addons-ha:
extends: .packet_pr extends: .packet_pr
stage: deploy-part2 stage: deploy-part2

4
docs/test_cases.md

@ -1,6 +1,6 @@
# Node Layouts # Node Layouts
There are five node layout types: `default`, `separate`, `ha`, `scale`, and `all-in-one`.
There are six node layout types: `default`, `separate`, `ha`, `scale`, `all-in-one`, and `multinode`.
`default` is a non-HA two nodes setup with one separate `kube_node` `default` is a non-HA two nodes setup with one separate `kube_node`
and the `etcd` group merged with the `kube_control_plane`. and the `etcd` group merged with the `kube_control_plane`.
@ -18,6 +18,8 @@ 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. `all-in-one` layout use a single node for with `kube_control_plane`, `etcd` and `kube_node` merged.
`multinode` layout consists of two separate `kube_node` and a merged single `etcd+kube_control_plane` node.
Note, the canal network plugin deploys flannel as well plus calico policy controller. Note, the canal network plugin deploys flannel as well plus calico policy controller.
## Test cases ## Test cases

10
tests/cloud_playbooks/roles/packet-ci/templates/inventory.j2

@ -81,6 +81,16 @@ instance-2
[broken_etcd] [broken_etcd]
instance-1 etcd_member_name=etcd2 instance-1 etcd_member_name=etcd2
instance-2 etcd_member_name=etcd3 instance-2 etcd_member_name=etcd3
{% elif mode == "multinode" %}
[kube_control_plane]
instance-1
[etcd]
instance-1
[kube_node]
instance-2
instance-3
{% endif %} {% endif %}
[k8s_cluster:children] [k8s_cluster:children]

1
tests/cloud_playbooks/roles/packet-ci/vars/main.yml

@ -7,6 +7,7 @@ _vm_count_dict:
ha-recover: 3 ha-recover: 3
ha-recover-noquorum: 3 ha-recover-noquorum: 3
all-in-one: 1 all-in-one: 1
multinode: 3
default: 2 default: 2
vm_count: "{{ _vm_count_dict[mode | d('default')] }}" vm_count: "{{ _vm_count_dict[mode | d('default')] }}"

29
tests/files/packet_ubuntu22-calico-etcd-datastore.yml

@ -0,0 +1,29 @@
---
# Instance settings
cloud_image: ubuntu-2204
mode: multinode
vm_memory: 1600Mi
# Kubespray settings
auto_renew_certificates: true
# Currently ipvs not available on KVM: https://packages.ubuntu.com/search?suite=focal&arch=amd64&mode=exactfilename&searchon=contents&keywords=ip_vs_sh.ko
kube_proxy_mode: iptables
enable_nodelocaldns: False
containerd_registries:
"docker.io": "https://mirror.gcr.io"
containerd_registries_mirrors:
- prefix: docker.io
mirrors:
- host: https://mirror.gcr.io
capabilities: ["pull", "resolve"]
skip_verify: false
- prefix: 172.19.16.11:5000
mirrors:
- host: http://172.19.16.11:5000
capabilities: ["pull", "resolve", "push"]
skip_verify: true
calico_datastore: "etcd"
Loading…
Cancel
Save