From 31af17bb5935b722dcf59d5800aaff9e789cfa93 Mon Sep 17 00:00:00 2001 From: pceicicd Date: Wed, 14 Dec 2022 17:32:00 +0000 Subject: [PATCH] add kubespray to the XTesting as it provides newer version of kubenetes and can be better used in deployment and testing Change-Id: I91b3daaa2f0cec0efdf49359c9ec8443f58cfc12 Signed-off-by: pceicicd --- XTesting/kubespray/CNAME | 1 + XTesting/kubespray/CONTRIBUTING.md | 39 ++ XTesting/kubespray/Dockerfile | 41 ++ XTesting/kubespray/LICENSE | 201 +++++++ XTesting/kubespray/Makefile | 7 + XTesting/kubespray/OWNERS | 8 + XTesting/kubespray/OWNERS_ALIASES | 23 + XTesting/kubespray/README.md | 256 ++++++++ XTesting/kubespray/RELEASE.md | 83 +++ XTesting/kubespray/SECURITY_CONTACTS | 13 + XTesting/kubespray/Vagrantfile | 275 +++++++++ XTesting/kubespray/_config.yml | 2 + XTesting/kubespray/ansible.cfg | 22 + XTesting/kubespray/ansible_version.yml | 33 ++ XTesting/kubespray/cluster.yml | 128 ++++ XTesting/kubespray/code-of-conduct.md | 3 + XTesting/kubespray/contrib.tar.gz | Bin 0 -> 409311 bytes XTesting/kubespray/docs/_sidebar.md | 64 ++ XTesting/kubespray/docs/amazonlinux.md | 15 + XTesting/kubespray/docs/ansible.md | 303 ++++++++++ XTesting/kubespray/docs/arch.md | 17 + XTesting/kubespray/docs/aws-ebs-csi.md | 87 +++ XTesting/kubespray/docs/aws.md | 81 +++ XTesting/kubespray/docs/azure-csi.md | 119 ++++ XTesting/kubespray/docs/azure.md | 110 ++++ XTesting/kubespray/docs/bootstrap-os.md | 59 ++ XTesting/kubespray/docs/calico.md | 417 +++++++++++++ .../docs/calico_peer_example/new-york.yml | 12 + .../kubespray/docs/calico_peer_example/paris.yml | 12 + XTesting/kubespray/docs/centos.md | 16 + XTesting/kubespray/docs/cert_manager.md | 196 +++++++ XTesting/kubespray/docs/ci-setup.md | 27 + XTesting/kubespray/docs/ci.md | 60 ++ XTesting/kubespray/docs/cilium.md | 184 ++++++ XTesting/kubespray/docs/cinder-csi.md | 102 ++++ XTesting/kubespray/docs/cloud.md | 13 + XTesting/kubespray/docs/cni.md | 10 + XTesting/kubespray/docs/comparisons.md | 26 + XTesting/kubespray/docs/containerd.md | 42 ++ XTesting/kubespray/docs/cri-o.md | 78 +++ XTesting/kubespray/docs/debian.md | 36 ++ XTesting/kubespray/docs/dns-stack.md | 272 +++++++++ XTesting/kubespray/docs/docker.md | 99 ++++ XTesting/kubespray/docs/downloads.md | 41 ++ .../docs/encrypting-secret-data-at-rest.md | 22 + XTesting/kubespray/docs/equinix-metal.md | 100 ++++ XTesting/kubespray/docs/etcd.md | 46 ++ XTesting/kubespray/docs/fcos.md | 69 +++ .../kubespray/docs/figures/kubespray-calico-rr.png | Bin 0 -> 40710 bytes .../docs/figures/loadbalancer_localhost.png | Bin 0 -> 58266 bytes XTesting/kubespray/docs/flannel.md | 49 ++ XTesting/kubespray/docs/flatcar.md | 14 + XTesting/kubespray/docs/gcp-lb.md | 16 + XTesting/kubespray/docs/gcp-pd-csi.md | 77 +++ XTesting/kubespray/docs/getting-started.md | 144 +++++ XTesting/kubespray/docs/gvisor.md | 16 + XTesting/kubespray/docs/ha-mode.md | 157 +++++ XTesting/kubespray/docs/hardening.md | 120 ++++ XTesting/kubespray/docs/img/kubernetes-logo.png | Bin 0 -> 6954 bytes .../ingress_controller/alb_ingress_controller.md | 43 ++ .../docs/ingress_controller/ingress_nginx.md | 203 +++++++ XTesting/kubespray/docs/integration.md | 131 +++++ XTesting/kubespray/docs/kata-containers.md | 101 ++++ XTesting/kubespray/docs/kube-ovn.md | 55 ++ XTesting/kubespray/docs/kube-router.md | 79 +++ XTesting/kubespray/docs/kube-vip.md | 52 ++ .../docs/kubernetes-apps/cephfs_provisioner.md | 73 +++ .../kubernetes-apps/local_volume_provisioner.md | 122 ++++ .../docs/kubernetes-apps/rbd_provisioner.md | 79 +++ .../kubespray/docs/kubernetes-apps/registry.md | 254 ++++++++ XTesting/kubespray/docs/kubernetes-reliability.md | 108 ++++ XTesting/kubespray/docs/kylinlinux.md | 11 + XTesting/kubespray/docs/large-deployments.md | 52 ++ XTesting/kubespray/docs/macvlan.md | 41 ++ XTesting/kubespray/docs/metallb.md | 106 ++++ XTesting/kubespray/docs/mitogen.md | 30 + XTesting/kubespray/docs/multus.md | 74 +++ XTesting/kubespray/docs/netcheck.md | 41 ++ XTesting/kubespray/docs/nodes.md | 182 ++++++ XTesting/kubespray/docs/ntp.md | 41 ++ XTesting/kubespray/docs/offline-environment.md | 119 ++++ XTesting/kubespray/docs/openstack.md | 158 +++++ XTesting/kubespray/docs/opensuse.md | 17 + XTesting/kubespray/docs/proxy.md | 23 + XTesting/kubespray/docs/recover-control-plane.md | 42 ++ XTesting/kubespray/docs/rhel.md | 38 ++ XTesting/kubespray/docs/roadmap.md | 3 + .../docs/setting-up-your-first-cluster.md | 646 +++++++++++++++++++++ XTesting/kubespray/docs/test_cases.md | 33 ++ XTesting/kubespray/docs/upgrades.md | 401 +++++++++++++ .../docs/upgrades/migrate_docker2containerd.md | 106 ++++ XTesting/kubespray/docs/vagrant.md | 164 ++++++ XTesting/kubespray/docs/vars.md | 283 +++++++++ XTesting/kubespray/docs/vsphere-csi.md | 101 ++++ XTesting/kubespray/docs/vsphere.md | 134 +++++ XTesting/kubespray/docs/weave.md | 79 +++ XTesting/kubespray/extra_playbooks.tar.gz | Bin 0 -> 439618 bytes XTesting/kubespray/facts.yml | 27 + XTesting/kubespray/index.html | 47 ++ .../inventory/local/group_vars/all/all.yml | 135 +++++ .../inventory/local/group_vars/all/aws.yml | 9 + .../inventory/local/group_vars/all/azure.yml | 40 ++ .../inventory/local/group_vars/all/containerd.yml | 50 ++ .../inventory/local/group_vars/all/coreos.yml | 2 + .../inventory/local/group_vars/all/cri-o.yml | 6 + .../inventory/local/group_vars/all/docker.yml | 59 ++ .../inventory/local/group_vars/all/etcd.yml | 16 + .../inventory/local/group_vars/all/gcp.yml | 10 + .../inventory/local/group_vars/all/hcloud.yml | 14 + .../inventory/local/group_vars/all/oci.yml | 28 + .../inventory/local/group_vars/all/offline.yml | 96 +++ .../inventory/local/group_vars/all/openstack.yml | 49 ++ .../inventory/local/group_vars/all/upcloud.yml | 19 + .../inventory/local/group_vars/all/vsphere.yml | 32 + .../kubespray/inventory/local/group_vars/etcd.yml | 26 + .../local/group_vars/k8s_cluster/addons.yml | 226 +++++++ .../local/group_vars/k8s_cluster/k8s-cluster.yml | 326 +++++++++++ .../group_vars/k8s_cluster/k8s-net-calico.yml | 127 ++++ .../local/group_vars/k8s_cluster/k8s-net-canal.yml | 10 + .../group_vars/k8s_cluster/k8s-net-cilium.yml | 244 ++++++++ .../group_vars/k8s_cluster/k8s-net-flannel.yml | 18 + .../group_vars/k8s_cluster/k8s-net-kube-ovn.yml | 57 ++ .../group_vars/k8s_cluster/k8s-net-kube-router.yml | 64 ++ .../group_vars/k8s_cluster/k8s-net-macvlan.yml | 6 + .../local/group_vars/k8s_cluster/k8s-net-weave.yml | 64 ++ XTesting/kubespray/inventory/local/hosts.ini | 14 + .../inventory/sample/group_vars/all/all.yml | 135 +++++ .../inventory/sample/group_vars/all/aws.yml | 9 + .../inventory/sample/group_vars/all/azure.yml | 40 ++ .../inventory/sample/group_vars/all/containerd.yml | 50 ++ .../inventory/sample/group_vars/all/coreos.yml | 2 + .../inventory/sample/group_vars/all/cri-o.yml | 6 + .../inventory/sample/group_vars/all/docker.yml | 59 ++ .../inventory/sample/group_vars/all/etcd.yml | 16 + .../inventory/sample/group_vars/all/gcp.yml | 10 + .../inventory/sample/group_vars/all/hcloud.yml | 14 + .../inventory/sample/group_vars/all/oci.yml | 28 + .../inventory/sample/group_vars/all/offline.yml | 96 +++ .../inventory/sample/group_vars/all/openstack.yml | 49 ++ .../inventory/sample/group_vars/all/upcloud.yml | 19 + .../inventory/sample/group_vars/all/vsphere.yml | 32 + .../kubespray/inventory/sample/group_vars/etcd.yml | 26 + .../sample/group_vars/k8s_cluster/addons.yml | 226 +++++++ .../sample/group_vars/k8s_cluster/k8s-cluster.yml | 326 +++++++++++ .../group_vars/k8s_cluster/k8s-net-calico.yml | 127 ++++ .../group_vars/k8s_cluster/k8s-net-canal.yml | 10 + .../group_vars/k8s_cluster/k8s-net-cilium.yml | 244 ++++++++ .../group_vars/k8s_cluster/k8s-net-flannel.yml | 18 + .../group_vars/k8s_cluster/k8s-net-kube-ovn.yml | 57 ++ .../group_vars/k8s_cluster/k8s-net-kube-router.yml | 64 ++ .../group_vars/k8s_cluster/k8s-net-macvlan.yml | 6 + .../group_vars/k8s_cluster/k8s-net-weave.yml | 64 ++ XTesting/kubespray/inventory/sample/inventory.ini | 38 ++ XTesting/kubespray/legacy_groups.yml | 47 ++ XTesting/kubespray/library/kube.py | 357 ++++++++++++ XTesting/kubespray/logo.tar.gz | Bin 0 -> 311951 bytes XTesting/kubespray/recover-control-plane.yml | 33 ++ XTesting/kubespray/remove-node.yml | 50 ++ XTesting/kubespray/requirements-2.11.txt | 10 + XTesting/kubespray/requirements-2.12.txt | 10 + XTesting/kubespray/requirements.txt | 10 + XTesting/kubespray/reset.yml | 36 ++ XTesting/kubespray/roles.tar.gz | Bin 0 -> 390327 bytes XTesting/kubespray/sample_env | 4 + XTesting/kubespray/scale.yml | 109 ++++ XTesting/kubespray/scripts/collect-info.yaml | 146 +++++ XTesting/kubespray/scripts/deploy.sh | 11 + XTesting/kubespray/scripts/download_hash.py | 65 +++ XTesting/kubespray/scripts/download_hash.sh | 28 + XTesting/kubespray/scripts/gen_tags.sh | 12 + .../scripts/gitlab-branch-cleanup/.gitignore | 2 + .../scripts/gitlab-branch-cleanup/README.md | 24 + .../scripts/gitlab-branch-cleanup/main.py | 38 ++ .../scripts/gitlab-branch-cleanup/requirements.txt | 1 + XTesting/kubespray/scripts/gitlab-runner.sh | 22 + .../kubespray/scripts/openstack-cleanup/.gitignore | 1 + .../kubespray/scripts/openstack-cleanup/README.md | 21 + .../kubespray/scripts/openstack-cleanup/main.py | 95 +++ .../scripts/openstack-cleanup/requirements.txt | 1 + XTesting/kubespray/scripts/premoderator.sh | 51 ++ XTesting/kubespray/setup.cfg | 62 ++ XTesting/kubespray/setup.py | 19 + .../kubespray/test-infra/image-builder/Makefile | 2 + XTesting/kubespray/test-infra/image-builder/OWNERS | 8 + .../kubespray/test-infra/image-builder/cluster.yml | 5 + .../kubespray/test-infra/image-builder/hosts.ini | 4 + .../roles/kubevirt-images/defaults/main.yml | 119 ++++ .../roles/kubevirt-images/tasks/main.yml | 57 ++ .../roles/kubevirt-images/templates/Dockerfile | 6 + .../kubespray/test-infra/vagrant-docker/Dockerfile | 16 + .../kubespray/test-infra/vagrant-docker/README.md | 24 + .../kubespray/test-infra/vagrant-docker/build.sh | 13 + XTesting/kubespray/tests.tar.gz | Bin 0 -> 32442 bytes XTesting/kubespray/upgrade-cluster.yml | 167 ++++++ 194 files changed, 13966 insertions(+) create mode 100644 XTesting/kubespray/CNAME create mode 100644 XTesting/kubespray/CONTRIBUTING.md create mode 100644 XTesting/kubespray/Dockerfile create mode 100644 XTesting/kubespray/LICENSE create mode 100644 XTesting/kubespray/Makefile create mode 100644 XTesting/kubespray/OWNERS create mode 100644 XTesting/kubespray/OWNERS_ALIASES create mode 100644 XTesting/kubespray/README.md create mode 100644 XTesting/kubespray/RELEASE.md create mode 100644 XTesting/kubespray/SECURITY_CONTACTS create mode 100644 XTesting/kubespray/Vagrantfile create mode 100644 XTesting/kubespray/_config.yml create mode 100644 XTesting/kubespray/ansible.cfg create mode 100644 XTesting/kubespray/ansible_version.yml create mode 100644 XTesting/kubespray/cluster.yml create mode 100644 XTesting/kubespray/code-of-conduct.md create mode 100644 XTesting/kubespray/contrib.tar.gz create mode 100644 XTesting/kubespray/docs/_sidebar.md create mode 100644 XTesting/kubespray/docs/amazonlinux.md create mode 100644 XTesting/kubespray/docs/ansible.md create mode 100644 XTesting/kubespray/docs/arch.md create mode 100644 XTesting/kubespray/docs/aws-ebs-csi.md create mode 100644 XTesting/kubespray/docs/aws.md create mode 100644 XTesting/kubespray/docs/azure-csi.md create mode 100644 XTesting/kubespray/docs/azure.md create mode 100644 XTesting/kubespray/docs/bootstrap-os.md create mode 100644 XTesting/kubespray/docs/calico.md create mode 100644 XTesting/kubespray/docs/calico_peer_example/new-york.yml create mode 100644 XTesting/kubespray/docs/calico_peer_example/paris.yml create mode 100644 XTesting/kubespray/docs/centos.md create mode 100644 XTesting/kubespray/docs/cert_manager.md create mode 100644 XTesting/kubespray/docs/ci-setup.md create mode 100644 XTesting/kubespray/docs/ci.md create mode 100644 XTesting/kubespray/docs/cilium.md create mode 100644 XTesting/kubespray/docs/cinder-csi.md create mode 100644 XTesting/kubespray/docs/cloud.md create mode 100644 XTesting/kubespray/docs/cni.md create mode 100644 XTesting/kubespray/docs/comparisons.md create mode 100644 XTesting/kubespray/docs/containerd.md create mode 100644 XTesting/kubespray/docs/cri-o.md create mode 100644 XTesting/kubespray/docs/debian.md create mode 100644 XTesting/kubespray/docs/dns-stack.md create mode 100644 XTesting/kubespray/docs/docker.md create mode 100644 XTesting/kubespray/docs/downloads.md create mode 100644 XTesting/kubespray/docs/encrypting-secret-data-at-rest.md create mode 100644 XTesting/kubespray/docs/equinix-metal.md create mode 100644 XTesting/kubespray/docs/etcd.md create mode 100644 XTesting/kubespray/docs/fcos.md create mode 100644 XTesting/kubespray/docs/figures/kubespray-calico-rr.png create mode 100644 XTesting/kubespray/docs/figures/loadbalancer_localhost.png create mode 100644 XTesting/kubespray/docs/flannel.md create mode 100644 XTesting/kubespray/docs/flatcar.md create mode 100644 XTesting/kubespray/docs/gcp-lb.md create mode 100644 XTesting/kubespray/docs/gcp-pd-csi.md create mode 100644 XTesting/kubespray/docs/getting-started.md create mode 100644 XTesting/kubespray/docs/gvisor.md create mode 100644 XTesting/kubespray/docs/ha-mode.md create mode 100644 XTesting/kubespray/docs/hardening.md create mode 100644 XTesting/kubespray/docs/img/kubernetes-logo.png create mode 100644 XTesting/kubespray/docs/ingress_controller/alb_ingress_controller.md create mode 100644 XTesting/kubespray/docs/ingress_controller/ingress_nginx.md create mode 100644 XTesting/kubespray/docs/integration.md create mode 100644 XTesting/kubespray/docs/kata-containers.md create mode 100644 XTesting/kubespray/docs/kube-ovn.md create mode 100644 XTesting/kubespray/docs/kube-router.md create mode 100644 XTesting/kubespray/docs/kube-vip.md create mode 100644 XTesting/kubespray/docs/kubernetes-apps/cephfs_provisioner.md create mode 100644 XTesting/kubespray/docs/kubernetes-apps/local_volume_provisioner.md create mode 100644 XTesting/kubespray/docs/kubernetes-apps/rbd_provisioner.md create mode 100644 XTesting/kubespray/docs/kubernetes-apps/registry.md create mode 100644 XTesting/kubespray/docs/kubernetes-reliability.md create mode 100644 XTesting/kubespray/docs/kylinlinux.md create mode 100644 XTesting/kubespray/docs/large-deployments.md create mode 100644 XTesting/kubespray/docs/macvlan.md create mode 100644 XTesting/kubespray/docs/metallb.md create mode 100644 XTesting/kubespray/docs/mitogen.md create mode 100644 XTesting/kubespray/docs/multus.md create mode 100644 XTesting/kubespray/docs/netcheck.md create mode 100644 XTesting/kubespray/docs/nodes.md create mode 100644 XTesting/kubespray/docs/ntp.md create mode 100644 XTesting/kubespray/docs/offline-environment.md create mode 100644 XTesting/kubespray/docs/openstack.md create mode 100644 XTesting/kubespray/docs/opensuse.md create mode 100644 XTesting/kubespray/docs/proxy.md create mode 100644 XTesting/kubespray/docs/recover-control-plane.md create mode 100644 XTesting/kubespray/docs/rhel.md create mode 100644 XTesting/kubespray/docs/roadmap.md create mode 100644 XTesting/kubespray/docs/setting-up-your-first-cluster.md create mode 100644 XTesting/kubespray/docs/test_cases.md create mode 100644 XTesting/kubespray/docs/upgrades.md create mode 100644 XTesting/kubespray/docs/upgrades/migrate_docker2containerd.md create mode 100644 XTesting/kubespray/docs/vagrant.md create mode 100644 XTesting/kubespray/docs/vars.md create mode 100644 XTesting/kubespray/docs/vsphere-csi.md create mode 100644 XTesting/kubespray/docs/vsphere.md create mode 100644 XTesting/kubespray/docs/weave.md create mode 100644 XTesting/kubespray/extra_playbooks.tar.gz create mode 100644 XTesting/kubespray/facts.yml create mode 100644 XTesting/kubespray/index.html create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/all.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/aws.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/azure.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/containerd.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/coreos.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/cri-o.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/docker.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/etcd.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/gcp.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/hcloud.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/oci.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/offline.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/openstack.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/upcloud.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/all/vsphere.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/etcd.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/addons.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-cluster.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-calico.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-canal.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-cilium.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-flannel.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-ovn.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-router.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-macvlan.yml create mode 100644 XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-weave.yml create mode 100644 XTesting/kubespray/inventory/local/hosts.ini create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/all.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/aws.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/azure.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/containerd.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/coreos.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/cri-o.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/docker.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/etcd.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/gcp.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/hcloud.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/oci.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/offline.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/openstack.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/upcloud.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/all/vsphere.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/etcd.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/addons.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-calico.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-canal.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-cilium.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-flannel.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-ovn.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-router.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-macvlan.yml create mode 100644 XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-weave.yml create mode 100644 XTesting/kubespray/inventory/sample/inventory.ini create mode 100644 XTesting/kubespray/legacy_groups.yml create mode 100644 XTesting/kubespray/library/kube.py create mode 100644 XTesting/kubespray/logo.tar.gz create mode 100644 XTesting/kubespray/recover-control-plane.yml create mode 100644 XTesting/kubespray/remove-node.yml create mode 100644 XTesting/kubespray/requirements-2.11.txt create mode 100644 XTesting/kubespray/requirements-2.12.txt create mode 100644 XTesting/kubespray/requirements.txt create mode 100644 XTesting/kubespray/reset.yml create mode 100644 XTesting/kubespray/roles.tar.gz create mode 100644 XTesting/kubespray/sample_env create mode 100644 XTesting/kubespray/scale.yml create mode 100644 XTesting/kubespray/scripts/collect-info.yaml create mode 100644 XTesting/kubespray/scripts/deploy.sh create mode 100644 XTesting/kubespray/scripts/download_hash.py create mode 100644 XTesting/kubespray/scripts/download_hash.sh create mode 100755 XTesting/kubespray/scripts/gen_tags.sh create mode 100644 XTesting/kubespray/scripts/gitlab-branch-cleanup/.gitignore create mode 100644 XTesting/kubespray/scripts/gitlab-branch-cleanup/README.md create mode 100644 XTesting/kubespray/scripts/gitlab-branch-cleanup/main.py create mode 100644 XTesting/kubespray/scripts/gitlab-branch-cleanup/requirements.txt create mode 100644 XTesting/kubespray/scripts/gitlab-runner.sh create mode 100644 XTesting/kubespray/scripts/openstack-cleanup/.gitignore create mode 100644 XTesting/kubespray/scripts/openstack-cleanup/README.md create mode 100755 XTesting/kubespray/scripts/openstack-cleanup/main.py create mode 100644 XTesting/kubespray/scripts/openstack-cleanup/requirements.txt create mode 100644 XTesting/kubespray/scripts/premoderator.sh create mode 100644 XTesting/kubespray/setup.cfg create mode 100644 XTesting/kubespray/setup.py create mode 100644 XTesting/kubespray/test-infra/image-builder/Makefile create mode 100644 XTesting/kubespray/test-infra/image-builder/OWNERS create mode 100644 XTesting/kubespray/test-infra/image-builder/cluster.yml create mode 100644 XTesting/kubespray/test-infra/image-builder/hosts.ini create mode 100644 XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/defaults/main.yml create mode 100644 XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/tasks/main.yml create mode 100644 XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/templates/Dockerfile create mode 100644 XTesting/kubespray/test-infra/vagrant-docker/Dockerfile create mode 100644 XTesting/kubespray/test-infra/vagrant-docker/README.md create mode 100755 XTesting/kubespray/test-infra/vagrant-docker/build.sh create mode 100644 XTesting/kubespray/tests.tar.gz create mode 100644 XTesting/kubespray/upgrade-cluster.yml diff --git a/XTesting/kubespray/CNAME b/XTesting/kubespray/CNAME new file mode 100644 index 0000000..4d47144 --- /dev/null +++ b/XTesting/kubespray/CNAME @@ -0,0 +1 @@ +kubespray.io \ No newline at end of file diff --git a/XTesting/kubespray/CONTRIBUTING.md b/XTesting/kubespray/CONTRIBUTING.md new file mode 100644 index 0000000..a6ebdb2 --- /dev/null +++ b/XTesting/kubespray/CONTRIBUTING.md @@ -0,0 +1,39 @@ +# Contributing guidelines + +## How to become a contributor and submit your own code + +### Environment setup + +It is recommended to use filter to manage the GitHub email notification, see [examples for setting filters to Kubernetes Github notifications](https://github.com/kubernetes/community/blob/master/communication/best-practices.md#examples-for-setting-filters-to-kubernetes-github-notifications) + +To install development dependencies you can set up a python virtual env with the necessary dependencies: + +```ShellSession +virtualenv venv +source venv/bin/activate +pip install -r tests/requirements.txt +``` + +#### Linting + +Kubespray uses `yamllint` and `ansible-lint`. To run them locally use `yamllint .` and `ansible-lint`. It is a good idea to add call these tools as part of your pre-commit hook and avoid a lot of back end forth on fixing linting issues (). + +#### Molecule + +[molecule](https://github.com/ansible-community/molecule) is designed to help the development and testing of Ansible roles. In Kubespray you can run it all for all roles with `./tests/scripts/molecule_run.sh` or for a specific role (that you are working with) with `molecule test` from the role directory (`cd roles/my-role`). + +When developing or debugging a role it can be useful to run `molecule create` and `molecule converge` separately. Then you can use `molecule login` to SSH into the test environment. + +#### Vagrant + +Vagrant with VirtualBox or libvirt driver helps you to quickly spin test clusters to test things end to end. See [README.md#vagrant](README.md) + +### Contributing A Patch + +1. Submit an issue describing your proposed change to the repo in question. +2. The [repo owners](OWNERS) will respond to your issue promptly. +3. Fork the desired repo, develop and test your code changes. +4. Sign the CNCF CLA () +5. Submit a pull request. +6. Work with the reviewers on their suggestions. +7. Ensure to rebase to the HEAD of your target branch and squash un-necessary commits () before final merger of your contribution. diff --git a/XTesting/kubespray/Dockerfile b/XTesting/kubespray/Dockerfile new file mode 100644 index 0000000..8eef6df --- /dev/null +++ b/XTesting/kubespray/Dockerfile @@ -0,0 +1,41 @@ +# Use imutable image tags rather than mutable tags (like ubuntu:20.04) +FROM ubuntu:focal-20220531 + +ARG ARCH=amd64 +ARG TZ=Etc/UTC +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN apt update -y \ + && apt install -y \ + libssl-dev python3-dev sshpass apt-transport-https jq moreutils \ + ca-certificates curl gnupg2 software-properties-common python3-pip unzip rsync git \ + && rm -rf /var/lib/apt/lists/* +RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \ + && add-apt-repository \ + "deb [arch=$ARCH] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" \ + && apt update -y && apt-get install --no-install-recommends -y docker-ce \ + && rm -rf /var/lib/apt/lists/* + +# Some tools like yamllint need this +# Pip needs this as well at the moment to install ansible +# (and potentially other packages) +# See: https://github.com/pypa/pip/issues/10219 +ENV LANG=C.UTF-8 + +WORKDIR /kubespray +COPY . . +RUN /usr/bin/python3 -m pip install --no-cache-dir pip -U \ + && /usr/bin/python3 -m pip install --no-cache-dir -r tests/requirements.txt \ + && python3 -m pip install --no-cache-dir -r requirements.txt \ + && update-alternatives --install /usr/bin/python python /usr/bin/python3 1 + +RUN KUBE_VERSION=$(sed -n 's/^kube_version: //p' roles/kubespray-defaults/defaults/main.yaml) \ + && curl -LO https://storage.googleapis.com/kubernetes-release/release/$KUBE_VERSION/bin/linux/$ARCH/kubectl \ + && chmod a+x kubectl \ + && mv kubectl /usr/local/bin/kubectl + +RUN chmod a+x scripts/deploy.sh + +CMD scripts/deploy.sh diff --git a/XTesting/kubespray/LICENSE b/XTesting/kubespray/LICENSE new file mode 100644 index 0000000..51004ad --- /dev/null +++ b/XTesting/kubespray/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 Kubespray + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/XTesting/kubespray/Makefile b/XTesting/kubespray/Makefile new file mode 100644 index 0000000..793e763 --- /dev/null +++ b/XTesting/kubespray/Makefile @@ -0,0 +1,7 @@ +mitogen: + @echo Mitogen support is deprecated. + @echo Please run the following command manually: + @echo ansible-playbook -c local mitogen.yml -vv +clean: + rm -rf dist/ + rm *.retry diff --git a/XTesting/kubespray/OWNERS b/XTesting/kubespray/OWNERS new file mode 100644 index 0000000..a52158c --- /dev/null +++ b/XTesting/kubespray/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - kubespray-approvers +reviewers: + - kubespray-reviewers +emeritus_approvers: + - kubespray-emeritus_approvers \ No newline at end of file diff --git a/XTesting/kubespray/OWNERS_ALIASES b/XTesting/kubespray/OWNERS_ALIASES new file mode 100644 index 0000000..f0fbba3 --- /dev/null +++ b/XTesting/kubespray/OWNERS_ALIASES @@ -0,0 +1,23 @@ +aliases: + kubespray-approvers: + - mattymo + - chadswen + - mirwan + - miouge1 + - luckysb + - floryut + - oomichi + - cristicalin + kubespray-reviewers: + - holmsten + - bozzo + - eppo + - oomichi + - jayonlau + - cristicalin + - liupeng0518 + kubespray-emeritus_approvers: + - riverzhang + - atoms + - ant31 + - woopstar diff --git a/XTesting/kubespray/README.md b/XTesting/kubespray/README.md new file mode 100644 index 0000000..748edd8 --- /dev/null +++ b/XTesting/kubespray/README.md @@ -0,0 +1,256 @@ +# Deploy a Production Ready Kubernetes Cluster + +![Kubernetes Logo](https://raw.githubusercontent.com/kubernetes-sigs/kubespray/master/docs/img/kubernetes-logo.png) + +If you have questions, check the documentation at [kubespray.io](https://kubespray.io) and join us on the [kubernetes slack](https://kubernetes.slack.com), channel **\#kubespray**. +You can get your invite [here](http://slack.k8s.io/) + +- Can be deployed on **[AWS](docs/aws.md), GCE, [Azure](docs/azure.md), [OpenStack](docs/openstack.md), [vSphere](docs/vsphere.md), [Equinix Metal](docs/equinix-metal.md) (bare metal), Oracle Cloud Infrastructure (Experimental), or Baremetal** +- **Highly available** cluster +- **Composable** (Choice of the network plugin for instance) +- Supports most popular **Linux distributions** +- **Continuous integration tests** + +## Quick Start + +To deploy the cluster you can use : + +### Ansible + +#### Usage + +Install Ansible according to [Ansible installation guide](/docs/ansible.md#installing-ansible) +then run the following steps: + +```ShellSession +# Copy ``inventory/sample`` as ``inventory/mycluster`` +cp -rfp inventory/sample inventory/mycluster + +# Update Ansible inventory file with inventory builder +declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) +CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]} + +# Review and change parameters under ``inventory/mycluster/group_vars`` +cat inventory/mycluster/group_vars/all/all.yml +cat inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml + +# Deploy Kubespray with Ansible Playbook - run the playbook as root +# The option `--become` is required, as for example writing SSL keys in /etc/, +# installing packages and interacting with various systemd daemons. +# Without --become the playbook will fail to run! +ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml +``` + +Note: When Ansible is already installed via system packages on the control machine, other python packages installed via `sudo pip install -r requirements.txt` will go to a different directory tree (e.g. `/usr/local/lib/python2.7/dist-packages` on Ubuntu) from Ansible's (e.g. `/usr/lib/python2.7/dist-packages/ansible` still on Ubuntu). +As a consequence, `ansible-playbook` command will fail with: + +```raw +ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path. +``` + +probably pointing on a task depending on a module present in requirements.txt. + +One way of solving this would be to uninstall the Ansible package and then, to install it via pip but it is not always possible. +A workaround consists of setting `ANSIBLE_LIBRARY` and `ANSIBLE_MODULE_UTILS` environment variables respectively to the `ansible/modules` and `ansible/module_utils` subdirectories of pip packages installation location, which can be found in the Location field of the output of `pip show [package]` before executing `ansible-playbook`. + +A simple way to ensure you get all the correct version of Ansible is to use the [pre-built docker image from Quay](https://quay.io/repository/kubespray/kubespray?tab=tags). +You will then need to use [bind mounts](https://docs.docker.com/storage/bind-mounts/) to get the inventory and ssh key into the container, like this: + +```ShellSession +docker pull quay.io/kubespray/kubespray:v2.19.0 +docker run --rm -it --mount type=bind,source="$(pwd)"/inventory/sample,dst=/inventory \ + --mount type=bind,source="${HOME}"/.ssh/id_rsa,dst=/root/.ssh/id_rsa \ + quay.io/kubespray/kubespray:v2.19.0 bash +# Inside the container you may now run the kubespray playbooks: +ansible-playbook -i /inventory/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml +``` + +### Vagrant + +For Vagrant we need to install python dependencies for provisioning tasks. +Check if Python and pip are installed: + +```ShellSession +python -V && pip -V +``` + +If this returns the version of the software, you're good to go. If not, download and install Python from here + +Install Ansible according to [Ansible installation guide](/docs/ansible.md#installing-ansible) +then run the following step: + +```ShellSession +vagrant up +``` + +## Documents + +- [Requirements](#requirements) +- [Kubespray vs ...](docs/comparisons.md) +- [Getting started](docs/getting-started.md) +- [Setting up your first cluster](docs/setting-up-your-first-cluster.md) +- [Ansible inventory and tags](docs/ansible.md) +- [Integration with existing ansible repo](docs/integration.md) +- [Deployment data variables](docs/vars.md) +- [DNS stack](docs/dns-stack.md) +- [HA mode](docs/ha-mode.md) +- [Network plugins](#network-plugins) +- [Vagrant install](docs/vagrant.md) +- [Flatcar Container Linux bootstrap](docs/flatcar.md) +- [Fedora CoreOS bootstrap](docs/fcos.md) +- [Debian Jessie setup](docs/debian.md) +- [openSUSE setup](docs/opensuse.md) +- [Downloaded artifacts](docs/downloads.md) +- [Cloud providers](docs/cloud.md) +- [OpenStack](docs/openstack.md) +- [AWS](docs/aws.md) +- [Azure](docs/azure.md) +- [vSphere](docs/vsphere.md) +- [Equinix Metal](docs/equinix-metal.md) +- [Large deployments](docs/large-deployments.md) +- [Adding/replacing a node](docs/nodes.md) +- [Upgrades basics](docs/upgrades.md) +- [Air-Gap installation](docs/offline-environment.md) +- [NTP](docs/ntp.md) +- [Hardening](docs/hardening.md) +- [Roadmap](docs/roadmap.md) + +## Supported Linux Distributions + +- **Flatcar Container Linux by Kinvolk** +- **Debian** Bullseye, Buster, Jessie, Stretch +- **Ubuntu** 16.04, 18.04, 20.04, 22.04 +- **CentOS/RHEL** 7, [8](docs/centos.md#centos-8) +- **Fedora** 35, 36 +- **Fedora CoreOS** (see [fcos Note](docs/fcos.md)) +- **openSUSE** Leap 15.x/Tumbleweed +- **Oracle Linux** 7, [8](docs/centos.md#centos-8) +- **Alma Linux** [8](docs/centos.md#centos-8) +- **Rocky Linux** [8](docs/centos.md#centos-8) +- **Kylin Linux Advanced Server V10** (experimental: see [kylin linux notes](docs/kylinlinux.md)) +- **Amazon Linux 2** (experimental: see [amazon linux notes](docs/amazonlinux.md)) + +Note: Upstart/SysV init based OS types are not supported. + +## Supported Components + +- Core + - [kubernetes](https://github.com/kubernetes/kubernetes) v1.24.4 + - [etcd](https://github.com/etcd-io/etcd) v3.5.4 + - [docker](https://www.docker.com/) v20.10 (see note) + - [containerd](https://containerd.io/) v1.6.8 + - [cri-o](http://cri-o.io/) v1.24 (experimental: see [CRI-O Note](docs/cri-o.md). Only on fedora, ubuntu and centos based OS) +- Network Plugin + - [cni-plugins](https://github.com/containernetworking/plugins) v1.1.1 + - [calico](https://github.com/projectcalico/calico) v3.23.3 + - [canal](https://github.com/projectcalico/canal) (given calico/flannel versions) + - [cilium](https://github.com/cilium/cilium) v1.11.7 + - [flannel](https://github.com/flannel-io/flannel) v0.18.1 + - [kube-ovn](https://github.com/alauda/kube-ovn) v1.9.7 + - [kube-router](https://github.com/cloudnativelabs/kube-router) v1.5.1 + - [multus](https://github.com/intel/multus-cni) v3.8 + - [weave](https://github.com/weaveworks/weave) v2.8.1 + - [kube-vip](https://github.com/kube-vip/kube-vip) v0.4.2 +- Application + - [cert-manager](https://github.com/jetstack/cert-manager) v1.9.0 + - [coredns](https://github.com/coredns/coredns) v1.8.6 + - [ingress-nginx](https://github.com/kubernetes/ingress-nginx) v1.3.0 + - [krew](https://github.com/kubernetes-sigs/krew) v0.4.3 + - [argocd](https://argoproj.github.io/) v2.4.7 + - [helm](https://helm.sh/) v3.9.2 + - [metallb](https://metallb.universe.tf/) v0.12.1 + - [registry](https://github.com/distribution/distribution) v2.8.1 +- Storage Plugin + - [cephfs-provisioner](https://github.com/kubernetes-incubator/external-storage) v2.1.0-k8s1.11 + - [rbd-provisioner](https://github.com/kubernetes-incubator/external-storage) v2.1.1-k8s1.11 + - [aws-ebs-csi-plugin](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) v0.5.0 + - [azure-csi-plugin](https://github.com/kubernetes-sigs/azuredisk-csi-driver) v1.10.0 + - [cinder-csi-plugin](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md) v1.22.0 + - [gcp-pd-csi-plugin](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver) v1.4.0 + - [local-path-provisioner](https://github.com/rancher/local-path-provisioner) v0.0.22 + - [local-volume-provisioner](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner) v2.4.0 + +## Container Runtime Notes + +- The list of available docker version is 18.09, 19.03 and 20.10. The recommended docker version is 20.10. The kubelet might break on docker's non-standard version numbering (it no longer uses semantic versioning). To ensure auto-updates don't break your cluster look into e.g. yum versionlock plugin or apt pin). +- The cri-o version should be aligned with the respective kubernetes version (i.e. kube_version=1.20.x, crio_version=1.20) + +## Requirements + +- **Minimum required version of Kubernetes is v1.22** +- **Ansible v2.11+, Jinja 2.11+ and python-netaddr is installed on the machine that will run Ansible commands** +- The target servers must have **access to the Internet** in order to pull docker images. Otherwise, additional configuration is required (See [Offline Environment](docs/offline-environment.md)) +- The target servers are configured to allow **IPv4 forwarding**. +- If using IPv6 for pods and services, the target servers are configured to allow **IPv6 forwarding**. +- The **firewalls are not managed**, you'll need to implement your own rules the way you used to. + in order to avoid any issue during deployment you should disable your firewall. +- If kubespray is ran from non-root user account, correct privilege escalation method + should be configured in the target servers. Then the `ansible_become` flag + or command parameters `--become or -b` should be specified. + +Hardware: +These limits are safe guarded by Kubespray. Actual requirements for your workload can differ. For a sizing guide go to the [Building Large Clusters](https://kubernetes.io/docs/setup/cluster-large/#size-of-master-and-master-components) guide. + +- Master + - Memory: 1500 MB +- Node + - Memory: 1024 MB + +## Network Plugins + +You can choose between 10 network plugins. (default: `calico`, except Vagrant uses `flannel`) + +- [flannel](docs/flannel.md): gre/vxlan (layer 2) networking. + +- [Calico](https://docs.projectcalico.org/latest/introduction/) is a networking and network policy provider. Calico supports a flexible set of networking options + designed to give you the most efficient networking across a range of situations, including non-overlay + and overlay networks, with or without BGP. Calico uses the same engine to enforce network policy for hosts, + pods, and (if using Istio and Envoy) applications at the service mesh layer. + +- [canal](https://github.com/projectcalico/canal): a composition of calico and flannel plugins. + +- [cilium](http://docs.cilium.io/en/latest/): layer 3/4 networking (as well as layer 7 to protect and secure application protocols), supports dynamic insertion of BPF bytecode into the Linux kernel to implement security services, networking and visibility logic. + +- [weave](docs/weave.md): Weave is a lightweight container overlay network that doesn't require an external K/V database cluster. + (Please refer to `weave` [troubleshooting documentation](https://www.weave.works/docs/net/latest/troubleshooting/)). + +- [kube-ovn](docs/kube-ovn.md): Kube-OVN integrates the OVN-based Network Virtualization with Kubernetes. It offers an advanced Container Network Fabric for Enterprises. + +- [kube-router](docs/kube-router.md): Kube-router is a L3 CNI for Kubernetes networking aiming to provide operational + simplicity and high performance: it uses IPVS to provide Kube Services Proxy (if setup to replace kube-proxy), + iptables for network policies, and BGP for ods L3 networking (with optionally BGP peering with out-of-cluster BGP peers). + It can also optionally advertise routes to Kubernetes cluster Pods CIDRs, ClusterIPs, ExternalIPs and LoadBalancerIPs. + +- [macvlan](docs/macvlan.md): Macvlan is a Linux network driver. Pods have their own unique Mac and Ip address, connected directly the physical (layer 2) network. + +- [multus](docs/multus.md): Multus is a meta CNI plugin that provides multiple network interface support to pods. For each interface Multus delegates CNI calls to secondary CNI plugins such as Calico, macvlan, etc. + +The choice is defined with the variable `kube_network_plugin`. There is also an +option to leverage built-in cloud provider networking instead. +See also [Network checker](docs/netcheck.md). + +## Ingress Plugins + +- [nginx](https://kubernetes.github.io/ingress-nginx): the NGINX Ingress Controller. + +- [metallb](docs/metallb.md): the MetalLB bare-metal service LoadBalancer provider. + +## Community docs and resources + +- [kubernetes.io/docs/setup/production-environment/tools/kubespray/](https://kubernetes.io/docs/setup/production-environment/tools/kubespray/) +- [kubespray, monitoring and logging](https://github.com/gregbkr/kubernetes-kargo-logging-monitoring) by @gregbkr +- [Deploy Kubernetes w/ Ansible & Terraform](https://rsmitty.github.io/Terraform-Ansible-Kubernetes/) by @rsmitty +- [Deploy a Kubernetes Cluster with Kubespray (video)](https://www.youtube.com/watch?v=CJ5G4GpqDy0) + +## Tools and projects on top of Kubespray + +- [Digital Rebar Provision](https://github.com/digitalrebar/provision/blob/v4/doc/integrations/ansible.rst) +- [Terraform Contrib](https://github.com/kubernetes-sigs/kubespray/tree/master/contrib/terraform) + +## CI Tests + +[![Build graphs](https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray/badges/master/pipeline.svg)](https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray/pipelines) + +CI/end-to-end tests sponsored by: [CNCF](https://cncf.io), [Equinix Metal](https://metal.equinix.com/), [OVHcloud](https://www.ovhcloud.com/), [ELASTX](https://elastx.se/). + +See the [test matrix](docs/test_cases.md) for details. diff --git a/XTesting/kubespray/RELEASE.md b/XTesting/kubespray/RELEASE.md new file mode 100644 index 0000000..05ea6c0 --- /dev/null +++ b/XTesting/kubespray/RELEASE.md @@ -0,0 +1,83 @@ +# Release Process + +The Kubespray Project is released on an as-needed basis. The process is as follows: + +1. An issue is proposing a new release with a changelog since the last release. Please see [a good sample issue](https://github.com/kubernetes-sigs/kubespray/issues/8325) +2. At least one of the [approvers](OWNERS_ALIASES) must approve this release +3. The `kube_version_min_required` variable is set to `n-1` +4. Remove hashes for [EOL versions](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md) of kubernetes from `*_checksums` variables. +5. Create the release note with [Kubernetes Release Notes Generator](https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md). See the following `Release note creation` section for the details. +6. An approver creates [new release in GitHub](https://github.com/kubernetes-sigs/kubespray/releases/new) using a version and tag name like `vX.Y.Z` and attaching the release notes +7. An approver creates a release branch in the form `release-X.Y` +8. The corresponding version of [quay.io/kubespray/kubespray:vX.Y.Z](https://quay.io/repository/kubespray/kubespray) and [quay.io/kubespray/vagrant:vX.Y.Z](https://quay.io/repository/kubespray/vagrant) container images are built and tagged. See the following `Container image creation` section for the details. +9. The `KUBESPRAY_VERSION` variable is updated in `.gitlab-ci.yml` +10. The release issue is closed +11. An announcement email is sent to `dev@kubernetes.io` with the subject `[ANNOUNCE] Kubespray $VERSION is released` +12. The topic of the #kubespray channel is updated with `vX.Y.Z is released! | ...` + +## Major/minor releases and milestones + +* For major releases (vX.Y) Kubespray maintains one branch (`release-X.Y`). Minor releases (vX.Y.Z) are available only as tags. + +* Security patches and bugs might be backported. + +* Fixes for major releases (vX.Y) and minor releases (vX.Y.Z) are delivered + via maintenance releases (vX.Y.Z) and assigned to the corresponding open + [GitHub milestone](https://github.com/kubernetes-sigs/kubespray/milestones). + That milestone remains open for the major/minor releases support lifetime, + which ends once the milestone is closed. Then only a next major or minor release + can be done. + +* Kubespray major and minor releases are bound to the given `kube_version` major/minor + version numbers and other components' arbitrary versions, like etcd or network plugins. + Older or newer component versions are not supported and not tested for the given + release (even if included in the checksum variables, like `kubeadm_checksums`). + +* There is no unstable releases and no APIs, thus Kubespray doesn't follow + [semver](https://semver.org/). Every version describes only a stable release. + Breaking changes, if any introduced by changed defaults or non-contrib ansible roles' + playbooks, shall be described in the release notes. Other breaking changes, if any in + the contributed addons or bound versions of Kubernetes and other components, are + considered out of Kubespray scope and are up to the components' teams to deal with and + document. + +* Minor releases can change components' versions, but not the major `kube_version`. + Greater `kube_version` requires a new major or minor release. For example, if Kubespray v2.0.0 + is bound to `kube_version: 1.4.x`, `calico_version: 0.22.0`, `etcd_version: v3.0.6`, + then Kubespray v2.1.0 may be bound to only minor changes to `kube_version`, like v1.5.1 + and *any* changes to other components, like etcd v4, or calico 1.2.3. + And Kubespray v3.x.x shall be bound to `kube_version: 2.x.x` respectively. + +## Release note creation + +You can create a release note with: + +```shell +export GITHUB_TOKEN= +export ORG=kubernetes-sigs +export REPO=kubespray +release-notes --start-sha --end-sha --dependencies=false --output=/tmp/kubespray-release-note --required-author="" +``` + +If the release note file(/tmp/kubespray-release-note) contains "### Uncategorized" pull requests, those pull requests don't have a valid kind label(`kind/feature`, etc.). +It is necessary to put a valid label on each pull request and run the above release-notes command again to get a better release note) + +## Container image creation + +The container image `quay.io/kubespray/kubespray:vX.Y.Z` can be created from Dockerfile of the kubespray root directory: + +```shell +cd kubespray/ +nerdctl build -t quay.io/kubespray/kubespray:vX.Y.Z . +nerdctl push quay.io/kubespray/kubespray:vX.Y.Z +``` + +The container image `quay.io/kubespray/vagrant:vX.Y.Z` can be created from build.sh of test-infra/vagrant-docker/: + +```shell +cd kubespray/test-infra/vagrant-docker/ +./build vX.Y.Z +``` + +Please note that the above operation requires the permission to push container images into quay.io/kubespray/. +If you don't have the permission, please ask it on the #kubespray-dev channel. diff --git a/XTesting/kubespray/SECURITY_CONTACTS b/XTesting/kubespray/SECURITY_CONTACTS new file mode 100644 index 0000000..efd128f --- /dev/null +++ b/XTesting/kubespray/SECURITY_CONTACTS @@ -0,0 +1,13 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Committee to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ +atoms +mattymo diff --git a/XTesting/kubespray/Vagrantfile b/XTesting/kubespray/Vagrantfile new file mode 100644 index 0000000..63292bd --- /dev/null +++ b/XTesting/kubespray/Vagrantfile @@ -0,0 +1,275 @@ +# -*- mode: ruby -*- +# # vi: set ft=ruby : + +# For help on using kubespray with vagrant, check out docs/vagrant.md + +require 'fileutils' + +Vagrant.require_version ">= 2.0.0" + +CONFIG = File.join(File.dirname(__FILE__), ENV['KUBESPRAY_VAGRANT_CONFIG'] || 'vagrant/config.rb') + +FLATCAR_URL_TEMPLATE = "https://%s.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vagrant.json" + +# Uniq disk UUID for libvirt +DISK_UUID = Time.now.utc.to_i + +SUPPORTED_OS = { + "flatcar-stable" => {box: "flatcar-stable", user: "core", box_url: FLATCAR_URL_TEMPLATE % ["stable"]}, + "flatcar-beta" => {box: "flatcar-beta", user: "core", box_url: FLATCAR_URL_TEMPLATE % ["beta"]}, + "flatcar-alpha" => {box: "flatcar-alpha", user: "core", box_url: FLATCAR_URL_TEMPLATE % ["alpha"]}, + "flatcar-edge" => {box: "flatcar-edge", user: "core", box_url: FLATCAR_URL_TEMPLATE % ["edge"]}, + "ubuntu1604" => {box: "generic/ubuntu1604", user: "vagrant"}, + "ubuntu1804" => {box: "generic/ubuntu1804", user: "vagrant"}, + "ubuntu2004" => {box: "generic/ubuntu2004", user: "vagrant"}, + "centos" => {box: "centos/7", user: "vagrant"}, + "centos-bento" => {box: "bento/centos-7.6", user: "vagrant"}, + "centos8" => {box: "centos/8", user: "vagrant"}, + "centos8-bento" => {box: "bento/centos-8", user: "vagrant"}, + "almalinux8" => {box: "almalinux/8", user: "vagrant"}, + "almalinux8-bento" => {box: "bento/almalinux-8", user: "vagrant"}, + "rockylinux8" => {box: "generic/rocky8", user: "vagrant"}, + "fedora35" => {box: "fedora/35-cloud-base", user: "vagrant"}, + "fedora36" => {box: "fedora/36-cloud-base", user: "vagrant"}, + "opensuse" => {box: "opensuse/Leap-15.4.x86_64", user: "vagrant"}, + "opensuse-tumbleweed" => {box: "opensuse/Tumbleweed.x86_64", user: "vagrant"}, + "oraclelinux" => {box: "generic/oracle7", user: "vagrant"}, + "oraclelinux8" => {box: "generic/oracle8", user: "vagrant"}, + "rhel7" => {box: "generic/rhel7", user: "vagrant"}, + "rhel8" => {box: "generic/rhel8", user: "vagrant"}, +} + +if File.exist?(CONFIG) + require CONFIG +end + +# Defaults for config options defined in CONFIG +$num_instances ||= 3 +$instance_name_prefix ||= "k8s" +$vm_gui ||= false +$vm_memory ||= 2048 +$vm_cpus ||= 2 +$shared_folders ||= {} +$forwarded_ports ||= {} +$subnet ||= "172.18.8" +$subnet_ipv6 ||= "fd3c:b398:0698:0756" +$os ||= "ubuntu1804" +$network_plugin ||= "flannel" +# Setting multi_networking to true will install Multus: https://github.com/intel/multus-cni +$multi_networking ||= "False" +$download_run_once ||= "True" +$download_force_cache ||= "False" +# The first three nodes are etcd servers +$etcd_instances ||= $num_instances +# The first two nodes are kube masters +$kube_master_instances ||= $num_instances == 1 ? $num_instances : ($num_instances - 1) +# All nodes are kube nodes +$kube_node_instances ||= $num_instances +# The following only works when using the libvirt provider +$kube_node_instances_with_disks ||= false +$kube_node_instances_with_disks_size ||= "20G" +$kube_node_instances_with_disks_number ||= 2 +$override_disk_size ||= false +$disk_size ||= "20GB" +$local_path_provisioner_enabled ||= "False" +$local_path_provisioner_claim_root ||= "/opt/local-path-provisioner/" +$libvirt_nested ||= false +# boolean or string (e.g. "-vvv") +$ansible_verbosity ||= false +$ansible_tags ||= ENV['VAGRANT_ANSIBLE_TAGS'] || "" + +$playbook ||= "cluster.yml" + +host_vars = {} + +$box = SUPPORTED_OS[$os][:box] +# if $inventory is not set, try to use example +$inventory = "inventory/sample" if ! $inventory +$inventory = File.absolute_path($inventory, File.dirname(__FILE__)) + +# if $inventory has a hosts.ini file use it, otherwise copy over +# vars etc to where vagrant expects dynamic inventory to be +if ! File.exist?(File.join(File.dirname($inventory), "hosts.ini")) + $vagrant_ansible = File.join(File.dirname(__FILE__), ".vagrant", "provisioners", "ansible") + FileUtils.mkdir_p($vagrant_ansible) if ! File.exist?($vagrant_ansible) + $vagrant_inventory = File.join($vagrant_ansible,"inventory") + FileUtils.rm_f($vagrant_inventory) + FileUtils.ln_s($inventory, $vagrant_inventory) +end + +if Vagrant.has_plugin?("vagrant-proxyconf") + $no_proxy = ENV['NO_PROXY'] || ENV['no_proxy'] || "127.0.0.1,localhost" + (1..$num_instances).each do |i| + $no_proxy += ",#{$subnet}.#{i+100}" + end +end + +Vagrant.configure("2") do |config| + + config.vm.box = $box + if SUPPORTED_OS[$os].has_key? :box_url + config.vm.box_url = SUPPORTED_OS[$os][:box_url] + end + config.ssh.username = SUPPORTED_OS[$os][:user] + + # plugin conflict + if Vagrant.has_plugin?("vagrant-vbguest") then + config.vbguest.auto_update = false + end + + # always use Vagrants insecure key + config.ssh.insert_key = false + + if ($override_disk_size) + unless Vagrant.has_plugin?("vagrant-disksize") + system "vagrant plugin install vagrant-disksize" + end + config.disksize.size = $disk_size + end + + (1..$num_instances).each do |i| + config.vm.define vm_name = "%s-%01d" % [$instance_name_prefix, i] do |node| + + node.vm.hostname = vm_name + + if Vagrant.has_plugin?("vagrant-proxyconf") + node.proxy.http = ENV['HTTP_PROXY'] || ENV['http_proxy'] || "" + node.proxy.https = ENV['HTTPS_PROXY'] || ENV['https_proxy'] || "" + node.proxy.no_proxy = $no_proxy + end + + ["vmware_fusion", "vmware_workstation"].each do |vmware| + node.vm.provider vmware do |v| + v.vmx['memsize'] = $vm_memory + v.vmx['numvcpus'] = $vm_cpus + end + end + + node.vm.provider :virtualbox do |vb| + vb.memory = $vm_memory + vb.cpus = $vm_cpus + vb.gui = $vm_gui + vb.linked_clone = true + vb.customize ["modifyvm", :id, "--vram", "8"] # ubuntu defaults to 256 MB which is a waste of precious RAM + vb.customize ["modifyvm", :id, "--audio", "none"] + end + + node.vm.provider :libvirt do |lv| + lv.nested = $libvirt_nested + lv.cpu_mode = "host-model" + lv.memory = $vm_memory + lv.cpus = $vm_cpus + lv.default_prefix = 'kubespray' + # Fix kernel panic on fedora 28 + if $os == "fedora" + lv.cpu_mode = "host-passthrough" + end + end + + if $kube_node_instances_with_disks + # Libvirt + driverletters = ('a'..'z').to_a + node.vm.provider :libvirt do |lv| + # always make /dev/sd{a/b/c} so that CI can ensure that + # virtualbox and libvirt will have the same devices to use for OSDs + (1..$kube_node_instances_with_disks_number).each do |d| + lv.storage :file, :device => "hd#{driverletters[d]}", :path => "disk-#{i}-#{d}-#{DISK_UUID}.disk", :size => $kube_node_instances_with_disks_size, :bus => "scsi" + end + end + end + + if $expose_docker_tcp + node.vm.network "forwarded_port", guest: 2375, host: ($expose_docker_tcp + i - 1), auto_correct: true + end + + $forwarded_ports.each do |guest, host| + node.vm.network "forwarded_port", guest: guest, host: host, auto_correct: true + end + + if ["rhel7","rhel8"].include? $os + # Vagrant synced_folder rsync options cannot be used for RHEL boxes as Rsync package cannot + # be installed until the host is registered with a valid Red Hat support subscription + node.vm.synced_folder ".", "/vagrant", disabled: false + $shared_folders.each do |src, dst| + node.vm.synced_folder src, dst + end + else + node.vm.synced_folder ".", "/vagrant", disabled: false, type: "rsync", rsync__args: ['--verbose', '--archive', '--delete', '-z'] , rsync__exclude: ['.git','venv'] + $shared_folders.each do |src, dst| + node.vm.synced_folder src, dst, type: "rsync", rsync__args: ['--verbose', '--archive', '--delete', '-z'] + end + end + + ip = "#{$subnet}.#{i+100}" + node.vm.network :private_network, ip: ip, + :libvirt__guest_ipv6 => 'yes', + :libvirt__ipv6_address => "#{$subnet_ipv6}::#{i+100}", + :libvirt__ipv6_prefix => "64", + :libvirt__forward_mode => "none", + :libvirt__dhcp_enabled => false + + # Disable swap for each vm + node.vm.provision "shell", inline: "swapoff -a" + + # ubuntu1804 and ubuntu2004 have IPv6 explicitly disabled. This undoes that. + if ["ubuntu1804", "ubuntu2004"].include? $os + node.vm.provision "shell", inline: "rm -f /etc/modprobe.d/local.conf" + node.vm.provision "shell", inline: "sed -i '/net.ipv6.conf.all.disable_ipv6/d' /etc/sysctl.d/99-sysctl.conf /etc/sysctl.conf" + end + + # Disable firewalld on oraclelinux/redhat vms + if ["oraclelinux","oraclelinux8","rhel7","rhel8"].include? $os + node.vm.provision "shell", inline: "systemctl stop firewalld; systemctl disable firewalld" + end + + host_vars[vm_name] = { + "ip": ip, + "flannel_interface": "eth1", + "kube_network_plugin": $network_plugin, + "kube_network_plugin_multus": $multi_networking, + "download_run_once": $download_run_once, + "download_localhost": "False", + "download_cache_dir": ENV['HOME'] + "/kubespray_cache", + # Make kubespray cache even when download_run_once is false + "download_force_cache": $download_force_cache, + # Keeping the cache on the nodes can improve provisioning speed while debugging kubespray + "download_keep_remote_cache": "False", + "docker_rpm_keepcache": "1", + # These two settings will put kubectl and admin.config in $inventory/artifacts + "kubeconfig_localhost": "True", + "kubectl_localhost": "True", + "local_path_provisioner_enabled": "#{$local_path_provisioner_enabled}", + "local_path_provisioner_claim_root": "#{$local_path_provisioner_claim_root}", + "ansible_ssh_user": SUPPORTED_OS[$os][:user] + } + + # Only execute the Ansible provisioner once, when all the machines are up and ready. + # And limit the action to gathering facts, the full playbook is going to be ran by testcases_run.sh + if i == $num_instances + node.vm.provision "ansible" do |ansible| + ansible.playbook = $playbook + ansible.verbose = $ansible_verbosity + $ansible_inventory_path = File.join( $inventory, "hosts.ini") + if File.exist?($ansible_inventory_path) + ansible.inventory_path = $ansible_inventory_path + end + ansible.become = true + ansible.limit = "all,localhost" + ansible.host_key_checking = false + ansible.raw_arguments = ["--forks=#{$num_instances}", "--flush-cache", "-e ansible_become_pass=vagrant"] + ansible.host_vars = host_vars + if $ansible_tags != "" + ansible.tags = [$ansible_tags] + end + ansible.groups = { + "etcd" => ["#{$instance_name_prefix}-[1:#{$etcd_instances}]"], + "kube_control_plane" => ["#{$instance_name_prefix}-[1:#{$kube_master_instances}]"], + "kube_node" => ["#{$instance_name_prefix}-[1:#{$kube_node_instances}]"], + "k8s_cluster:children" => ["kube_control_plane", "kube_node"], + } + end + end + + end + end +end diff --git a/XTesting/kubespray/_config.yml b/XTesting/kubespray/_config.yml new file mode 100644 index 0000000..9b68669 --- /dev/null +++ b/XTesting/kubespray/_config.yml @@ -0,0 +1,2 @@ +--- +theme: jekyll-theme-slate diff --git a/XTesting/kubespray/ansible.cfg b/XTesting/kubespray/ansible.cfg new file mode 100644 index 0000000..e28ce32 --- /dev/null +++ b/XTesting/kubespray/ansible.cfg @@ -0,0 +1,22 @@ +[ssh_connection] +pipelining=True +ansible_ssh_args = -o ControlMaster=auto -o ControlPersist=30m -o ConnectionAttempts=100 -o UserKnownHostsFile=/dev/null +#control_path = ~/.ssh/ansible-%%r@%%h:%%p +[defaults] +# https://github.com/ansible/ansible/issues/56930 (to ignore group names with - and .) +force_valid_group_names = ignore + +host_key_checking=False +gathering = smart +fact_caching = jsonfile +fact_caching_connection = /tmp +fact_caching_timeout = 86400 +stdout_callback = default +display_skipped_hosts = no +library = ./library +callbacks_enabled = profile_tasks,ara_default +roles_path = roles:$VIRTUAL_ENV/usr/local/share/kubespray/roles:$VIRTUAL_ENV/usr/local/share/ansible/roles:/usr/share/kubespray/roles +deprecation_warnings=False +inventory_ignore_extensions = ~, .orig, .bak, .ini, .cfg, .retry, .pyc, .pyo, .creds, .gpg +[inventory] +ignore_patterns = artifacts, credentials diff --git a/XTesting/kubespray/ansible_version.yml b/XTesting/kubespray/ansible_version.yml new file mode 100644 index 0000000..151131f --- /dev/null +++ b/XTesting/kubespray/ansible_version.yml @@ -0,0 +1,33 @@ +--- +- hosts: localhost + gather_facts: false + become: no + vars: + minimal_ansible_version: 2.11.0 + maximal_ansible_version: 2.13.0 + ansible_connection: local + tags: always + tasks: + - name: "Check {{ minimal_ansible_version }} <= Ansible version < {{ maximal_ansible_version }}" + assert: + msg: "Ansible must be between {{ minimal_ansible_version }} and {{ maximal_ansible_version }} exclusive" + that: + - ansible_version.string is version(minimal_ansible_version, ">=") + - ansible_version.string is version(maximal_ansible_version, "<") + tags: + - check + + - name: "Check that python netaddr is installed" + assert: + msg: "Python netaddr is not present" + that: "'127.0.0.1' | ipaddr" + tags: + - check + + # CentOS 7 provides too old jinja version + - name: "Check that jinja is not too old (install via pip)" + assert: + msg: "Your Jinja version is too old, install via pip" + that: "{% set test %}It works{% endset %}{{ test == 'It works' }}" + tags: + - check diff --git a/XTesting/kubespray/cluster.yml b/XTesting/kubespray/cluster.yml new file mode 100644 index 0000000..cc169f8 --- /dev/null +++ b/XTesting/kubespray/cluster.yml @@ -0,0 +1,128 @@ +--- +- name: Check ansible version + import_playbook: ansible_version.yml + +- name: Ensure compatibility with old groups + import_playbook: legacy_groups.yml + +- hosts: bastion[0] + gather_facts: False + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } + +- hosts: k8s_cluster:etcd + strategy: linear + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + gather_facts: false + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: bootstrap-os, tags: bootstrap-os} + +- name: Gather facts + tags: always + import_playbook: facts.yml + +- hosts: k8s_cluster:etcd + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/preinstall, tags: preinstall } + - { role: "container-engine", tags: "container-engine", when: deploy_container_engine } + - { role: download, tags: download, when: "not skip_downloads" } + +- hosts: etcd + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - role: etcd + tags: etcd + vars: + etcd_cluster_setup: true + etcd_events_cluster_setup: "{{ etcd_events_cluster_enabled }}" + when: etcd_deployment_type != "kubeadm" + +- hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - role: etcd + tags: etcd + vars: + etcd_cluster_setup: false + etcd_events_cluster_setup: false + when: etcd_deployment_type != "kubeadm" + +- hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/node, tags: node } + +- hosts: kube_control_plane + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/control-plane, tags: master } + - { role: kubernetes/client, tags: client } + - { role: kubernetes-apps/cluster_roles, tags: cluster-roles } + +- hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/kubeadm, tags: kubeadm} + - { role: kubernetes/node-label, tags: node-label } + - { role: network_plugin, tags: network } + +- hosts: calico_rr + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: network_plugin/calico/rr, tags: ['network', 'calico_rr'] } + +- hosts: kube_control_plane[0] + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: win_nodes/kubernetes_patch, tags: ["master", "win_nodes"] } + +- hosts: kube_control_plane + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes-apps/external_cloud_controller, tags: external-cloud-controller } + - { role: kubernetes-apps/network_plugin, tags: network } + - { role: kubernetes-apps/policy_controller, tags: policy-controller } + - { role: kubernetes-apps/ingress_controller, tags: ingress-controller } + - { role: kubernetes-apps/external_provisioner, tags: external-provisioner } + - { role: kubernetes-apps, tags: apps } + +- name: Apply resolv.conf changes now that cluster DNS is up + hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/preinstall, when: "dns_mode != 'none' and resolvconf_mode == 'host_resolvconf'", tags: resolvconf, dns_late: true } diff --git a/XTesting/kubespray/code-of-conduct.md b/XTesting/kubespray/code-of-conduct.md new file mode 100644 index 0000000..0d15c00 --- /dev/null +++ b/XTesting/kubespray/code-of-conduct.md @@ -0,0 +1,3 @@ +# Kubernetes Community Code of Conduct + +Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/XTesting/kubespray/contrib.tar.gz b/XTesting/kubespray/contrib.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..98e304811cef396df351fcac1c44475518bad234 GIT binary patch literal 409311 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�LcFHq*v>@*^=7`uqQ_5S??mU}oO1rc5 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
R~& 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 literal 0 HcmV?d00001 diff --git a/XTesting/kubespray/docs/_sidebar.md b/XTesting/kubespray/docs/_sidebar.md new file mode 100644 index 0000000..44d2d2d --- /dev/null +++ b/XTesting/kubespray/docs/_sidebar.md @@ -0,0 +1,64 @@ +* [Readme](/) +* [Comparisons](/docs/comparisons.md) +* [Getting started](/docs/getting-started.md) +* [Ansible](docs/ansible.md) +* [Variables](/docs/vars.md) +* Operations + * [Integration](docs/integration.md) + * [Upgrades](/docs/upgrades.md) + * [HA Mode](docs/ha-mode.md) + * [Adding/replacing a node](docs/nodes.md) + * [Large deployments](docs/large-deployments.md) + * [Air-Gap Installation](docs/offline-environment.md) +* CNI + * [Calico](docs/calico.md) + * [Flannel](docs/flannel.md) + * [Kube Router](docs/kube-router.md) + * [Kube OVN](docs/kube-ovn.md) + * [Weave](docs/weave.md) + * [Multus](docs/multus.md) +* Ingress + * [kube-vip](docs/kube-vip.md) + * [ALB Ingress](docs/ingress_controller/alb_ingress_controller.md) + * [MetalLB](docs/metallb.md) + * [Nginx Ingress](docs/ingress_controller/ingress_nginx.md) +* [Cloud providers](docs/cloud.md) + * [AWS](docs/aws.md) + * [Azure](docs/azure.md) + * [OpenStack](/docs/openstack.md) + * [Equinix Metal](/docs/equinix-metal.md) + * [vSphere](/docs/vsphere.md) +* [Operating Systems](docs/bootstrap-os.md) + * [Debian](docs/debian.md) + * [Flatcar Container Linux](docs/flatcar.md) + * [Fedora CoreOS](docs/fcos.md) + * [OpenSUSE](docs/opensuse.md) + * [RedHat Enterprise Linux](docs/rhel.md) + * [CentOS/OracleLinux/AlmaLinux/Rocky Linux](docs/centos.md) + * [Kylin Linux Advanced Server V10](docs/kylinlinux.md) + * [Amazon Linux 2](docs/amazonlinux.md) +* CRI + * [Containerd](docs/containerd.md) + * [Docker](docs/docker.md) + * [CRI-O](docs/cri-o.md) + * [Kata Containers](docs/kata-containers.md) + * [gVisor](docs/gvisor.md) +* Advanced + * [Proxy](/docs/proxy.md) + * [Downloads](docs/downloads.md) + * [Netcheck](docs/netcheck.md) + * [Cert Manager](docs/cert_manager.md) + * [DNS Stack](docs/dns-stack.md) + * [Kubernetes reliability](docs/kubernetes-reliability.md) + * [Local Registry](docs/kubernetes-apps/registry.md) + * [NTP](docs/ntp.md) +* External Storage Provisioners + * [RBD Provisioner](docs/kubernetes-apps/rbd_provisioner.md) + * [CEPHFS Provisioner](docs/kubernetes-apps/cephfs_provisioner.md) + * [Local Volume Provisioner](docs/kubernetes-apps/local_volume_provisioner.md) +* Developers + * [Test cases](docs/test_cases.md) + * [Vagrant](docs/vagrant.md) + * [CI Matrix](docs/ci.md) + * [CI Setup](docs/ci-setup.md) +* [Roadmap](docs/roadmap.md) diff --git a/XTesting/kubespray/docs/amazonlinux.md b/XTesting/kubespray/docs/amazonlinux.md new file mode 100644 index 0000000..a411e9c --- /dev/null +++ b/XTesting/kubespray/docs/amazonlinux.md @@ -0,0 +1,15 @@ +# Amazon Linux 2 + +Amazon Linux is supported with docker,containerd and cri-o runtimes. + +**Note:** that Amazon Linux is not currently covered in kubespray CI and +support for it is currently considered experimental. + +Amazon Linux 2, while derrived from the Redhat OS family, does not keep in +sync with RHEL upstream like CentOS/AlmaLinux/Oracle Linux. In order to use +Amazon Linux as the ansible host for your kubespray deployments you need to +manually install `python3` and deploy ansible and kubespray dependencies in +a python virtual environment or use the official kubespray containers. + +There are no special considerations for using Amazon Linux as the target OS +for Kubespray deployments. diff --git a/XTesting/kubespray/docs/ansible.md b/XTesting/kubespray/docs/ansible.md new file mode 100644 index 0000000..7d48a7f --- /dev/null +++ b/XTesting/kubespray/docs/ansible.md @@ -0,0 +1,303 @@ +# Ansible + +## Installing Ansible + +Kubespray supports multiple ansible versions and ships different `requirements.txt` files for them. +Depending on your available python version you may be limited in chooding which ansible version to use. + +It is recommended to deploy the ansible version used by kubespray into a python virtual environment. + +```ShellSession +VENVDIR=kubespray-venv +KUBESPRAYDIR=kubespray +ANSIBLE_VERSION=2.12 +virtualenv --python=$(which python3) $VENVDIR +source $VENVDIR/bin/activate +cd $KUBESPRAYDIR +pip install -U -r requirements-$ANSIBLE_VERSION.txt +test -f requirements-$ANSIBLE_VERSION.yml && \ + ansible-galaxy role install -r requirements-$ANSIBLE_VERSION.yml && \ + ansible-galaxy collection -r requirements-$ANSIBLE_VERSION.yml +``` + +### Ansible Python Compatibility + +Based on the table below and the available python version for your ansible host you should choose the appropriate ansible version to use with kubespray. + +| Ansible Version | Python Version | +| --------------- | -------------- | +| 2.11 | 2.7,3.5-3.9 | +| 2.12 | 3.8-3.10 | + +## Inventory + +The inventory is composed of 3 groups: + +* **kube_node** : list of kubernetes nodes where the pods will run. +* **kube_control_plane** : list of servers where kubernetes control plane components (apiserver, scheduler, controller) will run. +* **etcd**: list of servers to compose the etcd server. You should have at least 3 servers for failover purpose. + +Note: do not modify the children of _k8s_cluster_, like putting +the _etcd_ group into the _k8s_cluster_, unless you are certain +to do that and you have it fully contained in the latter: + +```ShellSession +etcd ⊂ k8s_cluster => kube_node ∩ etcd = etcd +``` + +When _kube_node_ contains _etcd_, you define your etcd cluster to be as well schedulable for Kubernetes workloads. +If you want it a standalone, make sure those groups do not intersect. +If you want the server to act both as control-plane and node, the server must be defined +on both groups _kube_control_plane_ and _kube_node_. If you want a standalone and +unschedulable control plane, the server must be defined only in the _kube_control_plane_ and +not _kube_node_. + +There are also two special groups: + +* **calico_rr** : explained for [advanced Calico networking cases](/docs/calico.md) +* **bastion** : configure a bastion host if your nodes are not directly reachable + +Below is a complete inventory example: + +```ini +## Configure 'ip' variable to bind kubernetes services on a +## different ip than the default iface +node1 ansible_host=95.54.0.12 ip=10.3.0.1 +node2 ansible_host=95.54.0.13 ip=10.3.0.2 +node3 ansible_host=95.54.0.14 ip=10.3.0.3 +node4 ansible_host=95.54.0.15 ip=10.3.0.4 +node5 ansible_host=95.54.0.16 ip=10.3.0.5 +node6 ansible_host=95.54.0.17 ip=10.3.0.6 + +[kube_control_plane] +node1 +node2 + +[etcd] +node1 +node2 +node3 + +[kube_node] +node2 +node3 +node4 +node5 +node6 + +[k8s_cluster:children] +kube_node +kube_control_plane +``` + +## Group vars and overriding variables precedence + +The group variables to control main deployment options are located in the directory ``inventory/sample/group_vars``. +Optional variables are located in the `inventory/sample/group_vars/all.yml`. +Mandatory variables that are common for at least one role (or a node group) can be found in the +`inventory/sample/group_vars/k8s_cluster.yml`. +There are also role vars for docker, kubernetes preinstall and control plane roles. +According to the [ansible docs](https://docs.ansible.com/ansible/latest/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable), +those cannot be overridden from the group vars. In order to override, one should use +the `-e` runtime flags (most simple way) or other layers described in the docs. + +Kubespray uses only a few layers to override things (or expect them to +be overridden for roles): + +Layer | Comment +------|-------- +**role defaults** | provides best UX to override things for Kubespray deployments +inventory vars | Unused +**inventory group_vars** | Expects users to use ``all.yml``,``k8s_cluster.yml`` etc. to override things +inventory host_vars | Unused +playbook group_vars | Unused +playbook host_vars | Unused +**host facts** | Kubespray overrides for internal roles' logic, like state flags +play vars | Unused +play vars_prompt | Unused +play vars_files | Unused +registered vars | Unused +set_facts | Kubespray overrides those, for some places +**role and include vars** | Provides bad UX to override things! Use extra vars to enforce +block vars (only for tasks in block) | Kubespray overrides for internal roles' logic +task vars (only for the task) | Unused for roles, but only for helper scripts +**extra vars** (always win precedence) | override with ``ansible-playbook -e @foo.yml`` + +## Ansible tags + +The following tags are defined in playbooks: + +| Tag name | Used for +|--------------------------------|--------- +| annotate | Create kube-router annotation +| apps | K8s apps definitions +| asserts | Check tasks for download role +| aws-ebs-csi-driver | Configuring csi driver: aws-ebs +| azure-csi-driver | Configuring csi driver: azure +| bastion | Setup ssh config for bastion +| bootstrap-os | Anything related to host OS configuration +| calico | Network plugin Calico +| calico_rr | Configuring Calico route reflector +| canal | Network plugin Canal +| cephfs-provisioner | Configuring CephFS +| cert-manager | Configuring certificate manager for K8s +| cilium | Network plugin Cilium +| cinder-csi-driver | Configuring csi driver: cinder +| client | Kubernetes clients role +| cloud-provider | Cloud-provider related tasks +| cluster-roles | Configuring cluster wide application (psp ...) +| cni | CNI plugins for Network Plugins +| containerd | Configuring containerd engine runtime for hosts +| container_engine_accelerator | Enable nvidia accelerator for runtimes +| container-engine | Configuring container engines +| container-runtimes | Configuring container runtimes +| coredns | Configuring coredns deployment +| crio | Configuring crio container engine for hosts +| crun | Configuring crun runtime +| csi-driver | Configuring csi driver +| dashboard | Installing and configuring the Kubernetes Dashboard +| dns | Remove dns entries when resetting +| docker | Configuring docker engine runtime for hosts +| download | Fetching container images to a delegate host +| etcd | Configuring etcd cluster +| etcd-secrets | Configuring etcd certs/keys +| etchosts | Configuring /etc/hosts entries for hosts +| external-cloud-controller | Configure cloud controllers +| external-openstack | Cloud controller : openstack +| external-provisioner | Configure external provisioners +| external-vsphere | Cloud controller : vsphere +| facts | Gathering facts and misc check results +| files | Remove files when resetting +| flannel | Network plugin flannel +| gce | Cloud-provider GCP +| gcp-pd-csi-driver | Configuring csi driver: gcp-pd +| gvisor | Configuring gvisor runtime +| helm | Installing and configuring Helm +| ingress-controller | Configure ingress controllers +| ingress_alb | AWS ALB Ingress Controller +| init | Windows kubernetes init nodes +| iptables | Flush and clear iptable when resetting +| k8s-pre-upgrade | Upgrading K8s cluster +| k8s-secrets | Configuring K8s certs/keys +| k8s-gen-tokens | Configuring K8s tokens +| kata-containers | Configuring kata-containers runtime +| krew | Install and manage krew +| kubeadm | Roles linked to kubeadm tasks +| kube-apiserver | Configuring static pod kube-apiserver +| kube-controller-manager | Configuring static pod kube-controller-manager +| kube-vip | Installing and configuring kube-vip +| kubectl | Installing kubectl and bash completion +| kubelet | Configuring kubelet service +| kube-ovn | Network plugin kube-ovn +| kube-router | Network plugin kube-router +| kube-proxy | Configuring static pod kube-proxy +| localhost | Special steps for the localhost (ansible runner) +| local-path-provisioner | Configure External provisioner: local-path +| local-volume-provisioner | Configure External provisioner: local-volume +| macvlan | Network plugin macvlan +| master | Configuring K8s master node role +| metallb | Installing and configuring metallb +| metrics_server | Configuring metrics_server +| netchecker | Installing netchecker K8s app +| network | Configuring networking plugins for K8s +| mounts | Umount kubelet dirs when reseting +| multus | Network plugin multus +| nginx | Configuring LB for kube-apiserver instances +| node | Configuring K8s minion (compute) node role +| nodelocaldns | Configuring nodelocaldns daemonset +| node-label | Tasks linked to labeling of nodes +| node-webhook | Tasks linked to webhook (grating access to resources) +| nvidia_gpu | Enable nvidia accelerator for runtimes +| oci | Cloud provider: oci +| persistent_volumes | Configure csi volumes +| persistent_volumes_aws_ebs_csi | Configuring csi driver: aws-ebs +| persistent_volumes_cinder_csi | Configuring csi driver: cinder +| persistent_volumes_gcp_pd_csi | Configuring csi driver: gcp-pd +| persistent_volumes_openstack | Configuring csi driver: openstack +| policy-controller | Configuring Calico policy controller +| post-remove | Tasks running post-remove operation +| post-upgrade | Tasks running post-upgrade operation +| pre-remove | Tasks running pre-remove operation +| pre-upgrade | Tasks running pre-upgrade operation +| preinstall | Preliminary configuration steps +| registry | Configuring local docker registry +| reset | Tasks running doing the node reset +| resolvconf | Configuring /etc/resolv.conf for hosts/apps +| rbd-provisioner | Configure External provisioner: rdb +| services | Remove services (etcd, kubelet etc...) when resetting +| snapshot | Enabling csi snapshot +| snapshot-controller | Configuring csi snapshot controller +| upgrade | Upgrading, f.e. container images/binaries +| upload | Distributing images/binaries across hosts +| vsphere-csi-driver | Configuring csi driver: vsphere +| weave | Network plugin Weave +| win_nodes | Running windows specific tasks +| youki | Configuring youki runtime + +Note: Use the ``bash scripts/gen_tags.sh`` command to generate a list of all +tags found in the codebase. New tags will be listed with the empty "Used for" +field. + +## Example commands + +Example command to filter and apply only DNS configuration tasks and skip +everything else related to host OS configuration and downloading images of containers: + +```ShellSession +ansible-playbook -i inventory/sample/hosts.ini cluster.yml --tags preinstall,facts --skip-tags=download,bootstrap-os +``` + +And this play only removes the K8s cluster DNS resolver IP from hosts' /etc/resolv.conf files: + +```ShellSession +ansible-playbook -i inventory/sample/hosts.ini -e dns_mode='none' cluster.yml --tags resolvconf +``` + +And this prepares all container images locally (at the ansible runner node) without installing +or upgrading related stuff or trying to upload container to K8s cluster nodes: + +```ShellSession +ansible-playbook -i inventory/sample/hosts.ini cluster.yml \ + -e download_run_once=true -e download_localhost=true \ + --tags download --skip-tags upload,upgrade +``` + +Note: use `--tags` and `--skip-tags` wise and only if you're 100% sure what you're doing. + +## Bastion host + +If you prefer to not make your nodes publicly accessible (nodes with private IPs only), +you can use a so called *bastion* host to connect to your nodes. To specify and use a bastion, +simply add a line to your inventory, where you have to replace x.x.x.x with the public IP of the +bastion host. + +```ShellSession +[bastion] +bastion ansible_host=x.x.x.x +``` + +For more information about Ansible and bastion hosts, read +[Running Ansible Through an SSH Bastion Host](https://blog.scottlowe.org/2015/12/24/running-ansible-through-ssh-bastion-host/) + +## Mitogen + +Mitogen support is deprecated, please see [mitogen related docs](/docs/mitogen.md) for useage and reasons for deprecation. + +## Beyond ansible 2.9 + +Ansible project has decided, in order to ease their maintenance burden, to split between +two projects which are now joined under the Ansible umbrella. + +Ansible-base (2.10.x branch) will contain just the ansible language implementation while +ansible modules that were previously bundled into a single repository will be part of the +ansible 3.x package. Pleasee see [this blog post](https://blog.while-true-do.io/ansible-release-3-0-0/) +that explains in detail the need and the evolution plan. + +**Note:** this change means that ansible virtual envs cannot be upgraded with `pip install -U`. +You first need to uninstall your old ansible (pre 2.10) version and install the new one. + +```ShellSession +pip uninstall ansible ansible-base ansible-core +cd kubespray/ +pip install -U . +``` diff --git a/XTesting/kubespray/docs/arch.md b/XTesting/kubespray/docs/arch.md new file mode 100644 index 0000000..4deae7a --- /dev/null +++ b/XTesting/kubespray/docs/arch.md @@ -0,0 +1,17 @@ +# Architecture compatibility + +The following table shows the impact of the CPU architecture on compatible features: + +- amd64: Cluster using only x86/amd64 CPUs +- arm64: Cluster using only arm64 CPUs +- amd64 + arm64: Cluster with a mix of x86/amd64 and arm64 CPUs + +| kube_network_plugin | amd64 | arm64 | amd64 + arm64 | +| ------------------- | ----- | ----- | ------------- | +| Calico | Y | Y | Y | +| Weave | Y | Y | Y | +| Flannel | Y | N | N | +| Canal | Y | N | N | +| Cilium | Y | Y | N | +| Contib | Y | N | N | +| kube-router | Y | N | N | diff --git a/XTesting/kubespray/docs/aws-ebs-csi.md b/XTesting/kubespray/docs/aws-ebs-csi.md new file mode 100644 index 0000000..1957277 --- /dev/null +++ b/XTesting/kubespray/docs/aws-ebs-csi.md @@ -0,0 +1,87 @@ +# AWS EBS CSI Driver + +AWS EBS CSI driver allows you to provision EBS volumes for pods in EC2 instances. The old in-tree AWS cloud provider is deprecated and will be removed in future versions of Kubernetes. So transitioning to the CSI driver is advised. + +To enable AWS EBS CSI driver, uncomment the `aws_ebs_csi_enabled` option in `group_vars/all/aws.yml` and set it to `true`. + +To set the number of replicas for the AWS CSI controller, you can change `aws_ebs_csi_controller_replicas` option in `group_vars/all/aws.yml`. + +Make sure to add a role, for your EC2 instances hosting Kubernetes, that allows it to do the actions necessary to request a volume and attach it: [AWS CSI Policy](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/example-iam-policy.json) + +If you want to deploy the AWS EBS storage class used with the CSI Driver, you should set `persistent_volumes_enabled` in `group_vars/k8s_cluster/k8s_cluster.yml` to `true`. + +You can now run the kubespray playbook (cluster.yml) to deploy Kubernetes over AWS EC2 with EBS CSI Driver enabled. + +## Usage example + +To check if AWS EBS CSI Driver is deployed properly, check that the ebs-csi pods are running: + +```ShellSession +$ kubectl -n kube-system get pods | grep ebs +ebs-csi-controller-85d86bccc5-8gtq5 4/4 Running 4 40s +ebs-csi-node-n4b99 3/3 Running 3 40s +``` + +Check the associated storage class (if you enabled persistent_volumes): + +```ShellSession +$ kubectl get storageclass +NAME PROVISIONER AGE +ebs-sc ebs.csi.aws.com 45s +``` + +You can run a PVC and an example Pod using this file `ebs-pod.yml`: + +```yml +-- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ebs-claim +spec: + accessModes: + - ReadWriteOnce + storageClassName: ebs-sc + resources: + requests: + storage: 1Gi +--- +apiVersion: v1 +kind: Pod +metadata: + name: app +spec: + containers: + - name: app + image: centos + command: ["/bin/sh"] + args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 5; done"] + volumeMounts: + - name: persistent-storage + mountPath: /data + volumes: + - name: persistent-storage + persistentVolumeClaim: + claimName: ebs-claim +``` + +Apply this conf to your cluster: ```kubectl apply -f ebs-pod.yml``` + +You should see the PVC provisioned and bound: + +```ShellSession +$ kubectl get pvc +NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE +ebs-claim Bound pvc-0034cb9e-1ddd-4b3f-bb9e-0b5edbf5194c 1Gi RWO ebs-sc 50s +``` + +And the volume mounted to the example Pod (wait until the Pod is Running): + +```ShellSession +$ kubectl exec -it app -- df -h | grep data +/dev/nvme1n1 1014M 34M 981M 4% /data +``` + +## More info + +For further information about the AWS EBS CSI Driver, you can refer to this page: [AWS EBS Driver](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/). diff --git a/XTesting/kubespray/docs/aws.md b/XTesting/kubespray/docs/aws.md new file mode 100644 index 0000000..b45508c --- /dev/null +++ b/XTesting/kubespray/docs/aws.md @@ -0,0 +1,81 @@ +# AWS + +To deploy kubespray on [AWS](https://aws.amazon.com/) uncomment the `cloud_provider` option in `group_vars/all.yml` and set it to `'aws'`. Refer to the [Kubespray Configuration](#kubespray-configuration) for customizing the provider. + +Prior to creating your instances, you **must** ensure that you have created IAM roles and policies for both "kubernetes-master" and "kubernetes-node". You can find the IAM policies [here](https://github.com/kubernetes-sigs/kubespray/tree/master/contrib/aws_iam/). See the [IAM Documentation](https://aws.amazon.com/documentation/iam/) if guidance is needed on how to set these up. When you bring your instances online, associate them with the respective IAM role. Nodes that are only to be used for Etcd do not need a role. + +You would also need to tag the resources in your VPC accordingly for the aws provider to utilize them. Tag the subnets, route tables and all instances that kubernetes will be run on with key `kubernetes.io/cluster/$cluster_name` (`$cluster_name` must be a unique identifier for the cluster). Tag the subnets that must be targeted by external ELBs with the key `kubernetes.io/role/elb` and internal ELBs with the key `kubernetes.io/role/internal-elb`. + +Make sure your VPC has both DNS Hostnames support and Private DNS enabled. + +The next step is to make sure the hostnames in your `inventory` file are identical to your internal hostnames in AWS. This may look something like `ip-111-222-333-444.us-west-2.compute.internal`. You can then specify how Ansible connects to these instances with `ansible_ssh_host` and `ansible_ssh_user`. + +You can now create your cluster! + +## Dynamic Inventory + +There is also a dynamic inventory script for AWS that can be used if desired. However, be aware that it makes some certain assumptions about how you'll create your inventory. It also does not handle all use cases and groups that we may use as part of more advanced deployments. Additions welcome. + +This will produce an inventory that is passed into Ansible that looks like the following: + +```json +{ + "_meta": { + "hostvars": { + "ip-172-31-3-xxx.us-east-2.compute.internal": { + "ansible_ssh_host": "172.31.3.xxx" + }, + "ip-172-31-8-xxx.us-east-2.compute.internal": { + "ansible_ssh_host": "172.31.8.xxx" + } + } + }, + "etcd": [ + "ip-172-31-3-xxx.us-east-2.compute.internal" + ], + "k8s_cluster": { + "children": [ + "kube_control_plane", + "kube_node" + ] + }, + "kube_control_plane": [ + "ip-172-31-3-xxx.us-east-2.compute.internal" + ], + "kube_node": [ + "ip-172-31-8-xxx.us-east-2.compute.internal" + ] +} +``` + +Guide: + +- Create instances in AWS as needed. +- Either during or after creation, add tags to the instances with a key of `kubespray-role` and a value of `kube_control_plane`, `etcd`, or `kube_node`. You can also share roles like `kube_control_plane, etcd` +- Copy the `kubespray-aws-inventory.py` script from `kubespray/contrib/aws_inventory` to the `kubespray/inventory` directory. +- Set the following AWS credentials and info as environment variables in your terminal: + +```ShellSession +export AWS_ACCESS_KEY_ID="xxxxx" +export AWS_SECRET_ACCESS_KEY="yyyyy" +export REGION="us-east-2" +``` + +- We will now create our cluster. There will be either one or two small changes. The first is that we will specify `-i inventory/kubespray-aws-inventory.py` as our inventory script. The other is conditional. If your AWS instances are public facing, you can set the `VPC_VISIBILITY` variable to `public` and that will result in public IP and DNS names being passed into the inventory. This causes your cluster.yml command to look like `VPC_VISIBILITY="public" ansible-playbook ... cluster.yml` + +## Kubespray configuration + +Declare the cloud config variables for the `aws` provider as follows. Setting these variables are optional and depend on your use case. + +Variable|Type|Comment +---|---|--- +aws_zone|string|Force set the AWS zone. Recommended to leave blank. +aws_vpc|string|The AWS VPC flag enables the possibility to run the master components on a different aws account, on a different cloud provider or on-premise. If the flag is set also the KubernetesClusterTag must be provided +aws_subnet_id|string|SubnetID enables using a specific subnet to use for ELB's +aws_route_table_id|string|RouteTableID enables using a specific RouteTable +aws_role_arn|string|RoleARN is the IAM role to assume when interaction with AWS APIs +aws_kubernetes_cluster_tag|string|KubernetesClusterTag is the legacy cluster id we'll use to identify our cluster resources +aws_kubernetes_cluster_id|string|KubernetesClusterID is the cluster id we'll use to identify our cluster resources +aws_disable_security_group_ingress|bool|The aws provider creates an inbound rule per load balancer on the node security group. However, this can run into the AWS security group rule limit of 50 if many LoadBalancers are created. This flag disables the automatic ingress creation. It requires that the user has setup a rule that allows inbound traffic on kubelet ports from the local VPC subnet (so load balancers can access it). E.g. 10.82.0.0/16 30000-32000. +aws_elb_security_group|string|Only in Kubelet version >= 1.7 : AWS has a hard limit of 500 security groups. For large clusters creating a security group for each ELB can cause the max number of security groups to be reached. If this is set instead of creating a new Security group for each ELB this security group will be used instead. +aws_disable_strict_zone_check|bool|During the instantiation of an new AWS cloud provider, the detected region is validated against a known set of regions. In a non-standard, AWS like environment (e.g. Eucalyptus), this check may be undesirable. Setting this to true will disable the check and provide a warning that the check was skipped. Please note that this is an experimental feature and work-in-progress for the moment. diff --git a/XTesting/kubespray/docs/azure-csi.md b/XTesting/kubespray/docs/azure-csi.md new file mode 100644 index 0000000..d4e04d2 --- /dev/null +++ b/XTesting/kubespray/docs/azure-csi.md @@ -0,0 +1,119 @@ +# Azure Disk CSI Driver + +The Azure Disk CSI driver allows you to provision volumes for pods with a Kubernetes deployment over Azure Cloud. The CSI driver replaces to volume provisioning done by the in-tree azure cloud provider which is deprecated. + +This documentation is an updated version of the in-tree Azure cloud provider documentation (azure.md). + +To deploy Azure Disk CSI driver, uncomment the `azure_csi_enabled` option in `group_vars/all/azure.yml` and set it to `true`. + +## Azure Disk CSI Storage Class + +If you want to deploy the Azure Disk storage class to provision volumes dynamically, you should set `persistent_volumes_enabled` in `group_vars/k8s_cluster/k8s_cluster.yml` to `true`. + +## Parameters + +Before creating the instances you must first set the `azure_csi_` variables in the `group_vars/all.yml` file. + +All of the values can be retrieved using the azure cli tool which can be downloaded here: + +After installation you have to run `az login` to get access to your account. + +### azure\_csi\_tenant\_id + azure\_csi\_subscription\_id + +Run `az account show` to retrieve your subscription id and tenant id: +`azure_csi_tenant_id` -> tenantId field +`azure_csi_subscription_id` -> id field + +### azure\_csi\_location + +The region your instances are located in, it can be something like `francecentral` or `norwayeast`. A full list of region names can be retrieved via `az account list-locations` + +### azure\_csi\_resource\_group + +The name of the resource group your instances are in, a list of your resource groups can be retrieved via `az group list` + +Or you can do `az vm list | grep resourceGroup` and get the resource group corresponding to the VMs of your cluster. + +The resource group name is not case sensitive. + +### azure\_csi\_vnet\_name + +The name of the virtual network your instances are in, can be retrieved via `az network vnet list` + +### azure\_csi\_vnet\_resource\_group + +The name of the resource group your vnet is in, can be retrieved via `az network vnet list | grep resourceGroup` and get the resource group corresponding to the vnet of your cluster. + +### azure\_csi\_subnet\_name + +The name of the subnet your instances are in, can be retrieved via `az network vnet subnet list --resource-group RESOURCE_GROUP --vnet-name VNET_NAME` + +### azure\_csi\_security\_group\_name + +The name of the network security group your instances are in, can be retrieved via `az network nsg list` + +### azure\_csi\_aad\_client\_id + azure\_csi\_aad\_client\_secret + +These will have to be generated first: + +- Create an Azure AD Application with: +`az ad app create --display-name kubespray --identifier-uris http://kubespray --homepage http://kubespray.com --password CLIENT_SECRET` + +Display name, identifier-uri, homepage and the password can be chosen + +Note the AppId in the output. + +- Create Service principal for the application with: +`az ad sp create --id AppId` + +This is the AppId from the last command + +- Create the role assignment with: +`az role assignment create --role "Owner" --assignee http://kubespray --subscription SUBSCRIPTION_ID` + +azure\_csi\_aad\_client\_id must be set to the AppId, azure\_csi\_aad\_client\_secret is your chosen secret. + +### azure\_csi\_use\_instance\_metadata + +Use instance metadata service where possible. Boolean value. + +## Test the Azure Disk CSI driver + +To test the dynamic provisioning using Azure CSI driver, make sure to have the storage class deployed (through persistent volumes), and apply the following manifest: + +```yml +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-azuredisk +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: disk.csi.azure.com +--- +kind: Pod +apiVersion: v1 +metadata: + name: nginx-azuredisk +spec: + nodeSelector: + kubernetes.io/os: linux + containers: + - image: nginx + name: nginx-azuredisk + command: + - "/bin/sh" + - "-c" + - while true; do echo $(date) >> /mnt/azuredisk/outfile; sleep 1; done + volumeMounts: + - name: azuredisk + mountPath: "/mnt/azuredisk" + volumes: + - name: azuredisk + persistentVolumeClaim: + claimName: pvc-azuredisk +``` diff --git a/XTesting/kubespray/docs/azure.md b/XTesting/kubespray/docs/azure.md new file mode 100644 index 0000000..39cb9f2 --- /dev/null +++ b/XTesting/kubespray/docs/azure.md @@ -0,0 +1,110 @@ +# Azure + +To deploy Kubernetes on [Azure](https://azure.microsoft.com) uncomment the `cloud_provider` option in `group_vars/all/all.yml` and set it to `'azure'`. + +All your instances are required to run in a resource group and a routing table has to be attached to the subnet your instances are in. + +Not all features are supported yet though, for a list of the current status have a look [here](https://github.com/Azure/AKS) + +## Parameters + +Before creating the instances you must first set the `azure_` variables in the `group_vars/all/all.yml` file. + +All of the values can be retrieved using the Azure CLI tool which can be downloaded here: +After installation you have to run `az login` to get access to your account. + +### azure_cloud + +Azure Stack has different API endpoints, depending on the Azure Stack deployment. These need to be provided to the Azure SDK. +Possible values are: `AzureChinaCloud`, `AzureGermanCloud`, `AzurePublicCloud` and `AzureUSGovernmentCloud`. +The full list of existing settings for the AzureChinaCloud, AzureGermanCloud, AzurePublicCloud and AzureUSGovernmentCloud +is available in the source code [here](https://github.com/kubernetes-sigs/cloud-provider-azure/blob/master/docs/cloud-provider-config.md) + +### azure\_tenant\_id + azure\_subscription\_id + +run `az account show` to retrieve your subscription id and tenant id: +`azure_tenant_id` -> Tenant ID field +`azure_subscription_id` -> ID field + +### azure\_location + +The region your instances are located, can be something like `westeurope` or `westcentralus`. A full list of region names can be retrieved via `az account list-locations` + +### azure\_resource\_group + +The name of the resource group your instances are in, can be retrieved via `az group list` + +### azure\_vmtype + +The type of the vm. Supported values are `standard` or `vmss`. If vm is type of `Virtual Machines` then value is `standard`. If vm is part of `Virtual Machine Scale Sets` then value is `vmss` + +### azure\_vnet\_name + +The name of the virtual network your instances are in, can be retrieved via `az network vnet list` + +### azure\_vnet\_resource\_group + +The name of the resource group that contains the vnet. + +### azure\_subnet\_name + +The name of the subnet your instances are in, can be retrieved via `az network vnet subnet list --resource-group RESOURCE_GROUP --vnet-name VNET_NAME` + +### azure\_security\_group\_name + +The name of the network security group your instances are in, can be retrieved via `az network nsg list` + +### azure\_security\_group\_resource\_group + +The name of the resource group that contains the network security group. Defaults to `azure_vnet_resource_group` + +### azure\_route\_table\_name + +The name of the route table used with your instances. + +### azure\_route\_table\_resource\_group + +The name of the resource group that contains the route table. Defaults to `azure_vnet_resource_group` + +### azure\_aad\_client\_id + azure\_aad\_client\_secret + +These will have to be generated first: + +- Create an Azure AD Application with: +`az ad app create --display-name kubernetes --identifier-uris http://kubernetes --homepage http://example.com --password CLIENT_SECRET` +display name, identifier-uri, homepage and the password can be chosen +Note the AppId in the output. +- Create Service principal for the application with: +`az ad sp create --id AppId` +This is the AppId from the last command +- Create the role assignment with: +`az role assignment create --role "Owner" --assignee http://kubernetes --subscription SUBSCRIPTION_ID` + +azure\_aad\_client\_id must be set to the AppId, azure\_aad\_client\_secret is your chosen secret. + +### azure\_loadbalancer\_sku + +Sku of Load Balancer and Public IP. Candidate values are: basic and standard. + +### azure\_exclude\_master\_from\_standard\_lb + +azure\_exclude\_master\_from\_standard\_lb excludes master nodes from `standard` load balancer. + +### azure\_disable\_outbound\_snat + +azure\_disable\_outbound\_snat disables the outbound SNAT for public load balancer rules. It should only be set when azure\_exclude\_master\_from\_standard\_lb is `standard`. + +### azure\_primary\_availability\_set\_name + +(Optional) The name of the availability set that should be used as the load balancer backend .If this is set, the Azure +cloudprovider will only add nodes from that availability set to the load balancer backend pool. If this is not set, and +multiple agent pools (availability sets) are used, then the cloudprovider will try to add all nodes to a single backend +pool which is forbidden. In other words, if you use multiple agent pools (availability sets), you MUST set this field. + +### azure\_use\_instance\_metadata + +Use instance metadata service where possible + +## Provisioning Azure with Resource Group Templates + +You'll find Resource Group Templates and scripts to provision the required infrastructure to Azure in [*contrib/azurerm*](../contrib/azurerm/README.md) diff --git a/XTesting/kubespray/docs/bootstrap-os.md b/XTesting/kubespray/docs/bootstrap-os.md new file mode 100644 index 0000000..c9f4ffd --- /dev/null +++ b/XTesting/kubespray/docs/bootstrap-os.md @@ -0,0 +1,59 @@ +# bootstrap-os + +Bootstrap an Ansible host to be able to run Ansible modules. + +This role will: + +* configure the package manager (if applicable) to be able to fetch packages +* install Python +* install the necessary packages to use Ansible's package manager modules +* set the hostname of the host to `{{ inventory_hostname }}` when requested + +## Requirements + +A host running an operating system that is supported by Kubespray. +See [Supported Linux Distributions](https://github.com/kubernetes-sigs/kubespray#supported-linux-distributions) for a current list. + +SSH access to the host. + +## Role Variables + +Variables are listed with their default values, if applicable. + +### General variables + +* `http_proxy`/`https_proxy` + The role will configure the package manager (if applicable) to download packages via a proxy. + +* `override_system_hostname: true` + The role will set the hostname of the machine to the name it has according to Ansible's inventory (the variable `{{ inventory_hostname }}`). + +### Per distribution variables + +#### Flatcar Container Linux + +* `coreos_locksmithd_disable: false` + Whether `locksmithd` (responsible for rolling restarts) should be disabled or be left alone. + +#### CentOS/RHEL/AlmaLinux/Rocky Linux + +* `centos_fastestmirror_enabled: false` + Whether the [fastestmirror](https://wiki.centos.org/PackageManagement/Yum/FastestMirror) yum plugin should be enabled. + +## Dependencies + +The `kubespray-defaults` role is expected to be run before this role. + +## Example Playbook + +Remember to disable fact gathering since Python might not be present on hosts. + + - hosts: all + gather_facts: false # not all hosts might be able to run modules yet + roles: + - kubespray-defaults + - bootstrap-os + +## License + +Apache 2.0 diff --git a/XTesting/kubespray/docs/calico.md b/XTesting/kubespray/docs/calico.md new file mode 100644 index 0000000..9c371fd --- /dev/null +++ b/XTesting/kubespray/docs/calico.md @@ -0,0 +1,417 @@ +# Calico + +Check if the calico-node container is running + +```ShellSession +docker ps | grep calico +``` + +The **calicoctl.sh** is wrap script with configured access credentials for command calicoctl allows to check the status of the network workloads. + +* Check the status of Calico nodes + +```ShellSession +calicoctl.sh node status +``` + +* Show the configured network subnet for containers + +```ShellSession +calicoctl.sh get ippool -o wide +``` + +* Show the workloads (ip addresses of containers and their location) + +```ShellSession +calicoctl.sh get workloadEndpoint -o wide +``` + +and + +```ShellSession +calicoctl.sh get hostEndpoint -o wide +``` + +## Configuration + +### Optional : Define datastore type + +The default datastore, Kubernetes API datastore is recommended for on-premises deployments, and supports only Kubernetes workloads; etcd is the best datastore for hybrid deployments. + +Allowed values are `kdd` (default) and `etcd`. + +Note: using kdd and more than 50 nodes, consider using the `typha` daemon to provide scaling. + +To re-define you need to edit the inventory and add a group variable `calico_datastore` + +```yml +calico_datastore: kdd +``` + +### Optional : Define network backend + +In some cases you may want to define Calico network backend. Allowed values are `bird`, `vxlan` or `none`. `vxlan` is the default value. + +To re-define you need to edit the inventory and add a group variable `calico_network_backend` + +```yml +calico_network_backend: none +``` + +### Optional : Define the default pool CIDRs + +By default, `kube_pods_subnet` is used as the IP range CIDR for the default IP Pool, and `kube_pods_subnet_ipv6` for IPv6. +In some cases you may want to add several pools and not have them considered by Kubernetes as external (which means that they must be within or equal to the range defined in `kube_pods_subnet` and `kube_pods_subnet_ipv6` ), it starts with the default IP Pools of which IP range CIDRs can by defined in group_vars (k8s_cluster/k8s-net-calico.yml): + +```ShellSession +calico_pool_cidr: 10.233.64.0/20 +calico_pool_cidr_ipv6: fd85:ee78:d8a6:8607::1:0000/112 +``` + +### Optional : BGP Peering with border routers + +In some cases you may want to route the pods subnet and so NAT is not needed on the nodes. +For instance if you have a cluster spread on different locations and you want your pods to talk each other no matter where they are located. +The following variables need to be set: +`peer_with_router` to enable the peering with the datacenter's border router (default value: false). +you'll need to edit the inventory and add a hostvar `local_as` by node. + +```ShellSession +node1 ansible_ssh_host=95.54.0.12 local_as=xxxxxx +``` + +### Optional : Defining BGP peers + +Peers can be defined using the `peers` variable (see docs/calico_peer_example examples). +In order to define global peers, the `peers` variable can be defined in group_vars with the "scope" attribute of each global peer set to "global". +In order to define peers on a per node basis, the `peers` variable must be defined in hostvars. +NB: Ansible's `hash_behaviour` is by default set to "replace", thus defining both global and per node peers would end up with having only per node peers. If having both global and per node peers defined was meant to happen, global peers would have to be defined in hostvars for each host (as well as per node peers) + +Since calico 3.4, Calico supports advertising Kubernetes service cluster IPs over BGP, just as it advertises pod IPs. +This can be enabled by setting the following variable as follow in group_vars (k8s_cluster/k8s-net-calico.yml) + +```yml +calico_advertise_cluster_ips: true +``` + +Since calico 3.10, Calico supports advertising Kubernetes service ExternalIPs over BGP in addition to cluster IPs advertising. +This can be enabled by setting the following variable in group_vars (k8s_cluster/k8s-net-calico.yml) + +```yml +calico_advertise_service_external_ips: +- x.x.x.x/24 +- y.y.y.y/32 +``` + +### Optional : Define global AS number + +Optional parameter `global_as_num` defines Calico global AS number (`/calico/bgp/v1/global/as_num` etcd key). +It defaults to "64512". + +### Optional : BGP Peering with route reflectors + +At large scale you may want to disable full node-to-node mesh in order to +optimize your BGP topology and improve `calico-node` containers' start times. + +To do so you can deploy BGP route reflectors and peer `calico-node` with them as +recommended here: + +* +* + +You need to edit your inventory and add: + +* `calico_rr` group with nodes in it. `calico_rr` can be combined with + `kube_node` and/or `kube_control_plane`. `calico_rr` group also must be a child + group of `k8s_cluster` group. +* `cluster_id` by route reflector node/group (see details +[here](https://hub.docker.com/r/calico/routereflector/)) + +Here's an example of Kubespray inventory with standalone route reflectors: + +```ini +[all] +rr0 ansible_ssh_host=10.210.1.10 ip=10.210.1.10 +rr1 ansible_ssh_host=10.210.1.11 ip=10.210.1.11 +node2 ansible_ssh_host=10.210.1.12 ip=10.210.1.12 +node3 ansible_ssh_host=10.210.1.13 ip=10.210.1.13 +node4 ansible_ssh_host=10.210.1.14 ip=10.210.1.14 +node5 ansible_ssh_host=10.210.1.15 ip=10.210.1.15 + +[kube_control_plane] +node2 +node3 + +[etcd] +node2 +node3 +node4 + +[kube_node] +node2 +node3 +node4 +node5 + +[k8s_cluster:children] +kube_node +kube_control_plane +calico_rr + +[calico_rr] +rr0 +rr1 + +[rack0] +rr0 +rr1 +node2 +node3 +node4 +node5 + +[rack0:vars] +cluster_id="1.0.0.1" +calcio_rr_id=rr1 +calico_group_id=rr1 +``` + +The inventory above will deploy the following topology assuming that calico's +`global_as_num` is set to `65400`: + +![Image](figures/kubespray-calico-rr.png?raw=true) + +### Optional : Define default endpoint to host action + +By default Calico blocks traffic from endpoints to the host itself by using an iptables DROP action. When using it in kubernetes the action has to be changed to RETURN (default in kubespray) or ACCEPT (see and Otherwise all network packets from pods (with hostNetwork=False) to services endpoints (with hostNetwork=True) within the same node are dropped. + +To re-define default action please set the following variable in your inventory: + +```yml +calico_endpoint_to_host_action: "ACCEPT" +``` + +### Optional : Define address on which Felix will respond to health requests + +Since Calico 3.2.0, HealthCheck default behavior changed from listening on all interfaces to just listening on localhost. + +To re-define health host please set the following variable in your inventory: + +```yml +calico_healthhost: "0.0.0.0" +``` + +### Optional : Configure Calico Node probe timeouts + +Under certain conditions a deployer may need to tune the Calico liveness and readiness probes timeout settings. These can be configured like this: + +```yml +calico_node_livenessprobe_timeout: 10 +calico_node_readinessprobe_timeout: 10 +``` + +## Config encapsulation for cross server traffic + +Calico supports two types of encapsulation: [VXLAN and IP in IP](https://docs.projectcalico.org/v3.11/networking/vxlan-ipip). VXLAN is the more mature implementation and enabled by default, please check your environment if you need *IP in IP* encapsulation. + +*IP in IP* and *VXLAN* is mutualy exclusive modes. + +Kubespray defaults have changed after version 2.18 from auto-enabling `ipip` mode to auto-enabling `vxlan`. This was done to facilitate wider deployment scenarios including those where vxlan acceleration is provided by the underlying network devices. + +If you are running your cluster with the default calico settings and are upgrading to a release post 2.18.x (i.e. 2.19 and later or `master` branch) then you have two options: + +* perform a manual migration to vxlan before upgrading kubespray (see migrating from IP in IP to VXLAN below) +* pin the pre-2.19 settings in your ansible inventory (see IP in IP mode settings below) + +### IP in IP mode + +To configure Ip in Ip mode you need to use the bird network backend. + +```yml +calico_ipip_mode: 'Always' # Possible values is `Always`, `CrossSubnet`, `Never` +calico_vxlan_mode: 'Never' +calico_network_backend: 'bird' +``` + +### BGP mode + +To enable BGP no-encapsulation mode: + +```yml +calico_ipip_mode: 'Never' +calico_vxlan_mode: 'Never' +calico_network_backend: 'bird' +``` + +### Migrating from IP in IP to VXLAN + +If you would like to migrate from the old IP in IP with `bird` network backends default to the new VXLAN based encapsulation you need to perform this change before running an upgrade of your cluster; the `cluster.yml` and `upgrade-cluster.yml` playbooks will refuse to continue if they detect incompatible settings. + +Execute the following sters on one of the control plane nodes, ensure the cluster in healthy before proceeding. + +```shell +calicoctl.sh patch felixconfig default -p '{"spec":{"vxlanEnabled":true}}' +calicoctl.sh patch ippool default-pool -p '{"spec":{"ipipMode":"Never", "vxlanMode":"Always"}}' +``` + +**Note:** if you created multiple ippools you will need to patch all of them individually to change their encapsulation. The kubespray playbooks only handle the default ippool creaded by kubespray. + +Wait for the `vxlan.calico` interfaces to be created on all cluster nodes and traffic to be routed through it then you can disable `ipip`. + +```shell +calicoctl.sh patch felixconfig default -p '{"spec":{"ipipEnabled":false}}' +``` + +## Configuring interface MTU + +This is an advanced topic and should usually not be modified unless you know exactly what you are doing. Calico is smart enough to deal with the defaults and calculate the proper MTU. If you do need to set up a custom MTU you can change `calico_veth_mtu` as follows: + +* If Wireguard is enabled, subtract 60 from your network MTU (i.e. 1500-60=1440) +* If using VXLAN or BPF mode is enabled, subtract 50 from your network MTU (i.e. 1500-50=1450) +* If using IPIP, subtract 20 from your network MTU (i.e. 1500-20=1480) +* if not using any encapsulation, set to your network MTU (i.e. 1500 or 9000) + +```yaml +calico_veth_mtu: 1440 +``` + +## Cloud providers configuration + +Please refer to the official documentation, for example [GCE configuration](http://docs.projectcalico.org/v1.5/getting-started/docker/installation/gce) requires a security rule for calico ip-ip tunnels. Note, calico is always configured with ``calico_ipip_mode: Always`` if the cloud provider was defined. + +### Optional : Ignore kernel's RPF check setting + +By default the felix agent(calico-node) will abort if the Kernel RPF setting is not 'strict'. If you want Calico to ignore the Kernel setting: + +```yml +calico_node_ignorelooserpf: true +``` + +Note that in OpenStack you must allow `ipip` traffic in your security groups, +otherwise you will experience timeouts. +To do this you must add a rule which allows it, for example: + +### Optional : Felix configuration via extraenvs of calico node + +Possible environment variable parameters for [configuring Felix](https://docs.projectcalico.org/reference/felix/configuration) + +```yml +calico_node_extra_envs: + FELIX_DEVICEROUTESOURCEADDRESS: 172.17.0.1 +``` + +```ShellSession +neutron security-group-rule-create --protocol 4 --direction egress k8s-a0tp4t +neutron security-group-rule-create --protocol 4 --direction igress k8s-a0tp4t +``` + +### Optional : Use Calico CNI host-local IPAM plugin + +Calico currently supports two types of CNI IPAM plugins, `host-local` and `calico-ipam` (default). + +To allow Calico to determine the subnet to use from the Kubernetes API based on the `Node.podCIDR` field, enable the following setting. + +```yml +calico_ipam_host_local: true +``` + +Refer to Project Calico section [Using host-local IPAM](https://docs.projectcalico.org/reference/cni-plugin/configuration#using-host-local-ipam) for further information. + +### Optional : Disable CNI logging to disk + +Calico CNI plugin logs to /var/log/calico/cni/cni.log and to stderr. +stderr of CNI plugins can be found in the logs of container runtime. + +You can disable Calico CNI logging to disk by setting `calico_cni_log_file_path: false`. + +## eBPF Support + +Calico supports eBPF for its data plane see [an introduction to the Calico eBPF Dataplane](https://www.projectcalico.org/introducing-the-calico-ebpf-dataplane/) for further information. + +Note that it is advisable to always use the latest version of Calico when using the eBPF dataplane. + +### Enabling eBPF support + +To enable the eBPF dataplane support ensure you add the following to your inventory. Note that the `kube-proxy` is incompatible with running Calico in eBPF mode and the kube-proxy should be removed from the system. + +```yaml +calico_bpf_enabled: true +``` + +**NOTE:** there is known incompatibility in using the `kernel-kvm` kernel package on Ubuntu OSes because it is missing support for `CONFIG_NET_SCHED` which is a requirement for Calico eBPF support. When using Calico eBPF with Ubuntu ensure you run the `-generic` kernel. + +### Cleaning up after kube-proxy + +Calico node cannot clean up after kube-proxy has run in ipvs mode. If you are converting an existing cluster to eBPF you will need to ensure the `kube-proxy` DaemonSet is deleted and that ipvs rules are cleaned. + +To check that kube-proxy was running in ipvs mode: + +```ShellSession +# ipvsadm -l +``` + +To clean up any ipvs leftovers: + +```ShellSession +# ipvsadm -C +``` + +### Calico access to the kube-api + +Calico node, typha and kube-controllers need to be able to talk to the kubernetes API. Please reference the [Enabling eBPF Calico Docs](https://docs.projectcalico.org/maintenance/ebpf/enabling-bpf) for guidelines on how to do this. + +Kubespray sets up the `kubernetes-services-endpoint` configmap based on the contents of the `loadbalancer_apiserver` inventory variable documented in [HA Mode](/docs/ha-mode.md). + +If no external loadbalancer is used, Calico eBPF can also use the localhost loadbalancer option. In this case Calico Automatic Host Endpoints need to be enabled to allow services like `coredns` and `metrics-server` to communicate with the kubernetes host endpoint. See [this blog post](https://www.projectcalico.org/securing-kubernetes-nodes-with-calico-automatic-host-endpoints/) on enabling automatic host endpoints. + +```yaml +loadbalancer_apiserver_localhost: true +use_localhost_as_kubeapi_loadbalancer: true +``` + +### Tunneled versus Direct Server Return + +By default Calico usese Tunneled service mode but it can use direct server return (DSR) in order to optimize the return path for a service. + +To configure DSR: + +```yaml +calico_bpf_service_mode: "DSR" +``` + +### eBPF Logging and Troubleshooting + +In order to enable Calico eBPF mode logging: + +```yaml +calico_bpf_log_level: "Debug" +``` + +To view the logs you need to use the `tc` command to read the kernel trace buffer: + +```ShellSession +tc exec bpf debug +``` + +Please see [Calico eBPF troubleshooting guide](https://docs.projectcalico.org/maintenance/troubleshoot/troubleshoot-ebpf#ebpf-program-debug-logs). + +## Wireguard Encryption + +Calico supports using Wireguard for encryption. Please see the docs on [encryptiong cluster pod traffic](https://docs.projectcalico.org/security/encrypt-cluster-pod-traffic). + +To enable wireguard support: + +```yaml +calico_wireguard_enabled: true +``` + +The following OSes will require enabling the EPEL repo in order to bring in wireguard tools: + +* CentOS 7 & 8 +* AlmaLinux 8 +* Rocky Linux 8 +* Amazon Linux 2 + +```yaml +epel_enabled: true +``` diff --git a/XTesting/kubespray/docs/calico_peer_example/new-york.yml b/XTesting/kubespray/docs/calico_peer_example/new-york.yml new file mode 100644 index 0000000..af497a9 --- /dev/null +++ b/XTesting/kubespray/docs/calico_peer_example/new-york.yml @@ -0,0 +1,12 @@ +# --- +# peers: +# - router_id: "10.99.0.34" +# as: "65xxx" +# sourceaddress: "None" +# - router_id: "10.99.0.35" +# as: "65xxx" +# sourceaddress: "None" + +# loadbalancer_apiserver: +# address: "10.99.0.44" +# port: "8383" diff --git a/XTesting/kubespray/docs/calico_peer_example/paris.yml b/XTesting/kubespray/docs/calico_peer_example/paris.yml new file mode 100644 index 0000000..1768e03 --- /dev/null +++ b/XTesting/kubespray/docs/calico_peer_example/paris.yml @@ -0,0 +1,12 @@ +# --- +# peers: +# - router_id: "10.99.0.2" +# as: "65xxx" +# sourceaddress: "None" +# - router_id: "10.99.0.3" +# as: "65xxx" +# sourceaddress: "None" + +# loadbalancer_apiserver: +# address: "10.99.0.21" +# port: "8383" diff --git a/XTesting/kubespray/docs/centos.md b/XTesting/kubespray/docs/centos.md new file mode 100644 index 0000000..12c27ea --- /dev/null +++ b/XTesting/kubespray/docs/centos.md @@ -0,0 +1,16 @@ +# CentOS and derivatives + +## CentOS 7 + +The maximum python version offically supported in CentOS is 3.6. Ansible as of version 5 (ansible core 2.12.x) increased their python requirement to python 3.8 and above. +Kubespray supports multiple ansible versions but only the default (5.x) gets wide testing coverage. If your deployment host is CentOS 7 it is recommended to use one of the earlier versions still supported. + +## CentOS 8 + +CentOS 8 / Oracle Linux 8 / AlmaLinux 8 / Rocky Linux 8 ship only with iptables-nft (ie without iptables-legacy similar to RHEL8) +The only tested configuration for now is using Calico CNI +You need to add `calico_iptables_backend: "NFT"` to your configuration. + +If you have containers that are using iptables in the host network namespace (`hostNetwork=true`), +you need to ensure they are using iptables-nft. +An example how k8s do the autodetection can be found [in this PR](https://github.com/kubernetes/kubernetes/pull/82966) diff --git a/XTesting/kubespray/docs/cert_manager.md b/XTesting/kubespray/docs/cert_manager.md new file mode 100644 index 0000000..4ed28af --- /dev/null +++ b/XTesting/kubespray/docs/cert_manager.md @@ -0,0 +1,196 @@ +# Installation Guide + +- [Installation Guide](#installation-guide) + - [Kubernetes TLS Root CA Certificate/Key Secret](#kubernetes-tls-root-ca-certificatekey-secret) + - [Securing Ingress Resources](#securing-ingress-resources) + - [Create New TLS Root CA Certificate and Key](#create-new-tls-root-ca-certificate-and-key) + - [Install Cloudflare PKI/TLS `cfssl` Toolkit.](#install-cloudflare-pkitls-cfssl-toolkit) + - [Create Root Certificate Authority (CA) Configuration File](#create-root-certificate-authority-ca-configuration-file) + - [Create Certficate Signing Request (CSR) Configuration File](#create-certficate-signing-request-csr-configuration-file) + - [Create TLS Root CA Certificate and Key](#create-tls-root-ca-certificate-and-key) + +Cert-Manager is a native Kubernetes certificate management controller. It can help with issuing certificates from a variety of sources, such as Let’s Encrypt, HashiCorp Vault, Venafi, a simple signing key pair, or self signed. It will ensure certificates are valid and up to date, and attempt to renew certificates at a configured time before expiry. + +## Kubernetes TLS Root CA Certificate/Key Secret + +If you're planning to secure your ingress resources using TLS client certificates, you'll need to create and deploy the Kubernetes `ca-key-pair` secret consisting of the Root CA certificate and key to your K8s cluster. + +For further information, read the official [Cert-Manager CA Configuration](https://cert-manager.io/docs/configuration/ca/) doc. + +`cert-manager` can now be enabled by editing your K8s cluster addons inventory e.g. `inventory\sample\group_vars\k8s_cluster\addons.yml` and setting `cert_manager_enabled` to true. + +```ini +# Cert manager deployment +cert_manager_enabled: true +``` + +If you don't have a TLS Root CA certificate and key available, you can create these by following the steps outlined in section [Create New TLS Root CA Certificate and Key](#create-new-tls-root-ca-certificate-and-key) using the Cloudflare PKI/TLS `cfssl` toolkit. TLS Root CA certificates and keys can also be created using `ssh-keygen` and OpenSSL, if `cfssl` is not available. + +## Securing Ingress Resources + +A common use-case for cert-manager is requesting TLS signed certificates to secure your ingress resources. This can be done by simply adding annotations to your Ingress resources and cert-manager will facilitate creating the Certificate resource for you. A small sub-component of cert-manager, ingress-shim, is responsible for this. + +To enable the Nginx Ingress controller as part of your Kubespray deployment, simply edit your K8s cluster addons inventory e.g. `inventory\sample\group_vars\k8s_cluster\addons.yml` and set `ingress_nginx_enabled` to true. + +```ini +# Nginx ingress controller deployment +ingress_nginx_enabled: true +``` + +For example, if you're using the Nginx ingress controller, you can secure the Prometheus ingress by adding the annotation `cert-manager.io/cluster-issuer: ca-issuer` and the `spec.tls` section to the `Ingress` resource definition. + +```yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: prometheus-k8s + namespace: monitoring + labels: + prometheus: k8s + annotations: + kubernetes.io/ingress.class: "nginx" + cert-manager.io/cluster-issuer: ca-issuer +spec: + tls: + - hosts: + - prometheus.example.com + secretName: prometheus-dashboard-certs + rules: + - host: prometheus.example.com + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: + service: + name: prometheus-k8s + port: + name: web +``` + +Once deployed to your K8s cluster, every 3 months cert-manager will automatically rotate the Prometheus `prometheus.example.com` TLS client certificate and key, and store these as the Kubernetes `prometheus-dashboard-certs` secret. + +Please consult the official upstream documentation: + +- [cert-manager Ingress Usage](https://cert-manager.io/v1.5-docs/usage/ingress/) +- [cert-manager Ingress Tutorial](https://cert-manager.io/v1.5-docs/tutorials/acme/ingress/#step-3-assign-a-dns-name) + +### ACME + +The ACME Issuer type represents a single account registered with the Automated Certificate Management Environment (ACME) Certificate Authority server. When you create a new ACME Issuer, cert-manager will generate a private key which is used to identify you with the ACME server. + +Certificates issued by public ACME servers are typically trusted by client’s computers by default. This means that, for example, visiting a website that is backed by an ACME certificate issued for that URL, will be trusted by default by most client’s web browsers. ACME certificates are typically free. + +- [ACME Configuration](https://cert-manager.io/v1.5-docs/configuration/acme/) +- [ACME HTTP Validation](https://cert-manager.io/v1.5-docs/tutorials/acme/http-validation/) + - [HTTP01 Challenges](https://cert-manager.io/v1.5-docs/configuration/acme/http01/) +- [ACME DNS Validation](https://cert-manager.io/v1.5-docs/tutorials/acme/dns-validation/) + - [DNS01 Challenges](https://cert-manager.io/v1.5-docs/configuration/acme/dns01/) +- [ACME FAQ](https://cert-manager.io/v1.5-docs/faq/acme/) + +#### ACME With An Internal Certificate Authority + +The ACME Issuer with an internal certificate authority requires cert-manager to trust the certificate authority. This trust must be done at the cert-manager deployment level. +To add a trusted certificate authority to cert-manager, add it's certificate to `group_vars/k8s-cluster/addons.yml`: + +```yaml +cert_manager_trusted_internal_ca: | + -----BEGIN CERTIFICATE----- + [REPLACE with your CA certificate] + -----END CERTIFICATE----- +``` + +Once the CA is trusted, you can define your issuer normally. + +### Create New TLS Root CA Certificate and Key + +#### Install Cloudflare PKI/TLS `cfssl` Toolkit + +e.g. For Ubuntu/Debian distributions, the toolkit is part of the `golang-cfssl` package. + +```shell +sudo apt-get install -y golang-cfssl +``` + +#### Create Root Certificate Authority (CA) Configuration File + +The default TLS certificate expiry time period is `8760h` which is 5 years from the date the certificate is created. + +```shell +$ cat > ca-config.json < ca-csr.json < The Cilium Operator is responsible for managing duties in the cluster which should logically be handled once for the entire cluster, rather than once for each node in the cluster. + +### Adding custom flags to the Cilium Operator + +You can set additional cilium-operator container arguments using `cilium_operator_custom_args`. +This is an advanced option, and you should only use it if you know what you are doing. + +Accepts an array or a string. + +```yml +cilium_operator_custom_args: ["--foo=bar", "--baz=qux"] +``` + +or + +```yml +cilium_operator_custom_args: "--foo=bar" +``` + +You do not need to add a custom flag to enable debugging. Instead, feel free to use the `CILIUM_DEBUG` variable. + +### Adding extra volumes and mounting them + +You can use `cilium_operator_extra_volumes` to add extra volumes to the Cilium Operator, and use `cilium_operator_extra_volume_mounts` to mount those volumes. +This is an advanced option, and you should only use it if you know what you are doing. + +```yml +cilium_operator_extra_volumes: + - configMap: + name: foo + name: foo-mount-path + +cilium_operator_extra_volume_mounts: + - mountPath: /tmp/foo/bar + name: foo-mount-path + readOnly: true +``` + +## Choose Cilium version + +```yml +cilium_version: v1.11.3 +``` + +## Add variable to config + +Use following variables: + +Example: + +```yml +cilium_config_extra_vars: + enable-endpoint-routes: true +``` + +## Change Identity Allocation Mode + +Cilium assigns an identity for each endpoint. This identity is used to enforce basic connectivity between endpoints. + +Cilium currently supports two different identity allocation modes: + +- "crd" stores identities in kubernetes as CRDs (custom resource definition). + - These can be queried with `kubectl get ciliumid` +- "kvstore" stores identities in an etcd kvstore. + +## Enable Transparent Encryption + +Cilium supports the transparent encryption of Cilium-managed host traffic and +traffic between Cilium-managed endpoints either using IPsec or Wireguard. + +Wireguard option is only available in Cilium 1.10.0 and newer. + +### IPsec Encryption + +For further information, make sure to check the official [Cilium documentation.](https://docs.cilium.io/en/stable/gettingstarted/encryption-ipsec/) + +To enable IPsec encryption, you just need to set three variables. + +```yml +cilium_encryption_enabled: true +cilium_encryption_type: "ipsec" +``` + +The third variable is `cilium_ipsec_key.` You need to create a secret key string for this variable. +Kubespray does not automate this process. +Cilium documentation currently recommends creating a key using the following command: + +```shell +echo "3 rfc4106(gcm(aes)) $(echo $(dd if=/dev/urandom count=20 bs=1 2> /dev/null | xxd -p -c 64)) 128" +``` + +Note that Kubespray handles secret creation. So you only need to pass the key as the `cilium_ipsec_key` variable. + +### Wireguard Encryption + +For further information, make sure to check the official [Cilium documentation.](https://docs.cilium.io/en/stable/gettingstarted/encryption-wireguard/) + +To enable Wireguard encryption, you just need to set two variables. + +```yml +cilium_encryption_enabled: true +cilium_encryption_type: "wireguard" +``` + +Kubespray currently supports Linux distributions with Wireguard Kernel mode on Linux 5.6 and newer. + +## Install Cilium Hubble + +k8s-net-cilium.yml: + +```yml +cilium_enable_hubble: true ## enable support hubble in cilium +cilium_hubble_install: true ## install hubble-relay, hubble-ui +cilium_hubble_tls_generate: true ## install hubble-certgen and generate certificates +``` + +To validate that Hubble UI is properly configured, set up a port forwarding for hubble-ui service: + +```shell script +kubectl port-forward -n kube-system svc/hubble-ui 12000:80 +``` + +and then open [http://localhost:12000/](http://localhost:12000/). + +## Hubble metrics + +```yml +cilium_enable_hubble_metrics: true +cilium_hubble_metrics: + - dns + - drop + - tcp + - flow + - icmp + - http +``` + +[More](https://docs.cilium.io/en/v1.9/operations/metrics/#hubble-exported-metrics) + +## Upgrade considerations + +### Rolling-restart timeouts + +Cilium relies on the kernel's BPF support, which is extremely fast at runtime but incurs a compilation penalty on initialization and update. + +As a result, the Cilium DaemonSet pods can take a significant time to start, which scales with the number of nodes and endpoints in your cluster. + +As part of cluster.yml, this DaemonSet is restarted, and Kubespray's [default timeouts for this operation](../roles/network_plugin/cilium/defaults/main.yml) +are not appropriate for large clusters. + +This means that you will likely want to update these timeouts to a value more in-line with your cluster's number of nodes and their respective CPU performance. +This is configured by the following values: + +```yaml +# Configure how long to wait for the Cilium DaemonSet to be ready again +cilium_rolling_restart_wait_retries_count: 30 +cilium_rolling_restart_wait_retries_delay_seconds: 10 +``` + +The total time allowed (count * delay) should be at least `($number_of_nodes_in_cluster * $cilium_pod_start_time)` for successful rolling updates. There are no +drawbacks to making it higher and giving yourself a time buffer to accommodate transient slowdowns. + +Note: To find the `$cilium_pod_start_time` for your cluster, you can simply restart a Cilium pod on a node of your choice and look at how long it takes for it +to become ready. + +Note 2: The default CPU requests/limits for Cilium pods is set to a very conservative 100m:500m which will likely yield very slow startup for Cilium pods. You +probably want to significantly increase the CPU limit specifically if short bursts of CPU from Cilium are acceptable to you. diff --git a/XTesting/kubespray/docs/cinder-csi.md b/XTesting/kubespray/docs/cinder-csi.md new file mode 100644 index 0000000..b7dadf1 --- /dev/null +++ b/XTesting/kubespray/docs/cinder-csi.md @@ -0,0 +1,102 @@ +# Cinder CSI Driver + +Cinder CSI driver allows you to provision volumes over an OpenStack deployment. The Kubernetes historic in-tree cloud provider is deprecated and will be removed in future versions. + +To enable Cinder CSI driver, uncomment the `cinder_csi_enabled` option in `group_vars/all/openstack.yml` and set it to `true`. + +To set the number of replicas for the Cinder CSI controller, you can change `cinder_csi_controller_replicas` option in `group_vars/all/openstack.yml`. + +You need to source the OpenStack credentials you use to deploy your machines that will host Kubernetes: `source path/to/your/openstack-rc` or `. path/to/your/openstack-rc`. + +Make sure the hostnames in your `inventory` file are identical to your instance names in OpenStack. Otherwise [cinder](https://docs.openstack.org/cinder/latest/) won't work as expected. + +If you want to deploy the cinder provisioner used with Cinder CSI Driver, you should set `persistent_volumes_enabled` in `group_vars/k8s_cluster/k8s_cluster.yml` to `true`. + +You can now run the kubespray playbook (cluster.yml) to deploy Kubernetes over OpenStack with Cinder CSI Driver enabled. + +## Usage example + +To check if Cinder CSI Driver works properly, see first that the cinder-csi pods are running: + +```ShellSession +$ kubectl -n kube-system get pods | grep cinder +csi-cinder-controllerplugin-7f8bf99785-cpb5v 5/5 Running 0 100m +csi-cinder-nodeplugin-rm5x2 2/2 Running 0 100m +``` + +Check the associated storage class (if you enabled persistent_volumes): + +```ShellSession +$ kubectl get storageclass +NAME PROVISIONER AGE +cinder-csi cinder.csi.openstack.org 100m +``` + +You can run a PVC and an Nginx Pod using this file `nginx.yaml`: + +```yml +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: csi-pvc-cinderplugin +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: cinder-csi + +--- +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - image: nginx + imagePullPolicy: IfNotPresent + name: nginx + ports: + - containerPort: 80 + protocol: TCP + volumeMounts: + - mountPath: /var/lib/www/html + name: csi-data-cinderplugin + volumes: + - name: csi-data-cinderplugin + persistentVolumeClaim: + claimName: csi-pvc-cinderplugin + readOnly: false +``` + +Apply this conf to your cluster: ```kubectl apply -f nginx.yml``` + +You should see the PVC provisioned and bound: + +```ShellSession +$ kubectl get pvc +NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE +csi-pvc-cinderplugin Bound pvc-f21ad0a1-5b7b-405e-a462-48da5cb76beb 1Gi RWO cinder-csi 8s +``` + +And the volume mounted to the Nginx Pod (wait until the Pod is Running): + +```ShellSession +kubectl exec -it nginx -- df -h | grep /var/lib/www/html +/dev/vdb 976M 2.6M 958M 1% /var/lib/www/html +``` + +## Compatibility with in-tree cloud provider + +It is not necessary to enable OpenStack as a cloud provider for Cinder CSI Driver to work. +Though, you can run both the in-tree openstack cloud provider and the Cinder CSI Driver at the same time. The storage class provisioners associated to each one of them are differently named. + +## Cinder v2 support + +For the moment, only Cinder v3 is supported by the CSI Driver. + +## More info + +For further information about the Cinder CSI Driver, you can refer to this page: [Cloud Provider OpenStack](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/using-cinder-csi-plugin.md). diff --git a/XTesting/kubespray/docs/cloud.md b/XTesting/kubespray/docs/cloud.md new file mode 100644 index 0000000..ccd30fb --- /dev/null +++ b/XTesting/kubespray/docs/cloud.md @@ -0,0 +1,13 @@ +# Cloud providers + +## Provisioning + +You can deploy instances in your cloud environment in several different ways. Examples include Terraform, Ansible (ec2 and gce modules), and manual creation. + +## Deploy kubernetes + +With ansible-playbook command + +```ShellSession +ansible-playbook -u smana -e ansible_ssh_user=admin -e cloud_provider=[aws|gce] -b --become-user=root -i inventory/single.cfg cluster.yml +``` diff --git a/XTesting/kubespray/docs/cni.md b/XTesting/kubespray/docs/cni.md new file mode 100644 index 0000000..e21ed54 --- /dev/null +++ b/XTesting/kubespray/docs/cni.md @@ -0,0 +1,10 @@ +CNI +============== + +This network plugin only unpacks CNI plugins version `cni_version` into `/opt/cni/bin` and instructs kubelet to use cni, that is adds following cli params: + +`KUBELET_NETWORK_PLUGIN="--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"` + +It's intended usage is for custom CNI configuration, e.g. manual routing tables + bridge + loopback CNI plugin outside kubespray scope. Furthermore, it's used for non-kubespray supported CNI plugins which you can install afterward. + +You are required to fill `/etc/cni/net.d` with valid CNI configuration after using kubespray. diff --git a/XTesting/kubespray/docs/comparisons.md b/XTesting/kubespray/docs/comparisons.md new file mode 100644 index 0000000..7ad1921 --- /dev/null +++ b/XTesting/kubespray/docs/comparisons.md @@ -0,0 +1,26 @@ +# Comparison + +## Kubespray vs Kops + +Kubespray runs on bare metal and most clouds, using Ansible as its substrate for +provisioning and orchestration. [Kops](https://github.com/kubernetes/kops) performs the provisioning and orchestration +itself, and as such is less flexible in deployment platforms. For people with +familiarity with Ansible, existing Ansible deployments or the desire to run a +Kubernetes cluster across multiple platforms, Kubespray is a good choice. Kops, +however, is more tightly integrated with the unique features of the clouds it +supports so it could be a better choice if you know that you will only be using +one platform for the foreseeable future. + +## Kubespray vs Kubeadm + +[Kubeadm](https://github.com/kubernetes/kubeadm) provides domain Knowledge of Kubernetes clusters' life cycle +management, including self-hosted layouts, dynamic discovery services and so +on. Had it belonged to the new [operators world](https://coreos.com/blog/introducing-operators.html), +it may have been named a "Kubernetes cluster operator". Kubespray however, +does generic configuration management tasks from the "OS operators" ansible +world, plus some initial K8s clustering (with networking plugins included) and +control plane bootstrapping. + +Kubespray has started using `kubeadm` internally for cluster creation since v2.3 +in order to consume life cycle management domain knowledge from it +and offload generic OS configuration things from it, which hopefully benefits both sides. diff --git a/XTesting/kubespray/docs/containerd.md b/XTesting/kubespray/docs/containerd.md new file mode 100644 index 0000000..32de176 --- /dev/null +++ b/XTesting/kubespray/docs/containerd.md @@ -0,0 +1,42 @@ +# containerd + +[containerd] An industry-standard container runtime with an emphasis on simplicity, robustness and portability +Kubespray supports basic functionality for using containerd as the default container runtime in a cluster. + +_To use the containerd container runtime set the following variables:_ + +## k8s_cluster.yml + +When kube_node contains etcd, you define your etcd cluster to be as well schedulable for Kubernetes workloads. Thus containerd and dockerd can not run at same time, must be set to bellow for running etcd cluster with only containerd. + +```yaml +container_manager: containerd +``` + +## etcd.yml + +```yaml +etcd_deployment_type: host +``` + +## Containerd config + +Example: define registry mirror for docker hub + +```yaml +containerd_registries: + "docker.io": + - "https://mirror.gcr.io" + - "https://registry-1.docker.io" +``` + +`containerd_registries` is ignored for pulling images when `image_command_tool=nerdctl` +(the default for `container_manager=containerd`). Use `crictl` instead, it supports +`containerd_registries` but lacks proper multi-arch support (see +[#8375](https://github.com/kubernetes-sigs/kubespray/issues/8375)): + +```yaml +image_command_tool: crictl +``` + +[containerd]: https://containerd.io/ diff --git a/XTesting/kubespray/docs/cri-o.md b/XTesting/kubespray/docs/cri-o.md new file mode 100644 index 0000000..43be723 --- /dev/null +++ b/XTesting/kubespray/docs/cri-o.md @@ -0,0 +1,78 @@ +# CRI-O + +[CRI-O] is a lightweight container runtime for Kubernetes. +Kubespray supports basic functionality for using CRI-O as the default container runtime in a cluster. + +* Kubernetes supports CRI-O on v1.11.1 or later. +* etcd: configure either kubeadm managed etcd or host deployment + +_To use the CRI-O container runtime set the following variables:_ + +## all/all.yml + +```yaml +download_container: false +skip_downloads: false +etcd_deployment_type: host # optionally kubeadm +``` + +## k8s_cluster/k8s_cluster.yml + +```yaml +container_manager: crio +``` + +## all/crio.yml + +Enable docker hub registry mirrors + +```yaml +crio_registries: + - prefix: docker.io + insecure: false + blocked: false + location: registry-1.docker.io + unqualified: false + mirrors: + - location: 192.168.100.100:5000 + insecure: true + - location: mirror.gcr.io + insecure: false +``` + +## Note about pids_limit + +For heavily mult-threaded workloads like databases, the default of 1024 for pids-limit is too low. +This parameter controls not just the number of processes but also the amount of threads +(since a thread is technically a process with shared memory). See [cri-o#1921] + +In order to increase the default `pids_limit` for cri-o based deployments you need to set the `crio_pids_limit` +for your `k8s_cluster` ansible group or per node depending on the use case. + +```yaml +crio_pids_limit: 4096 +``` + +[CRI-O]: https://cri-o.io/ +[cri-o#1921]: https://github.com/cri-o/cri-o/issues/1921 + +## Note about user namespaces + +CRI-O has support for user namespaces. This feature is optional and can be enabled by setting the following two variables. + +```yaml +crio_runtimes: + - name: runc + path: /usr/bin/runc + type: oci + root: /run/runc + allowed_annotations: + - "io.kubernetes.cri-o.userns-mode" + +crio_remap_enable: true +``` + +The `allowed_annotations` configures `crio.conf` accordingly. + +The `crio_remap_enable` configures the `/etc/subuid` and `/etc/subgid` files to add an entry for the **containers** user. +By default, 16M uids and gids are reserved for user namespaces (256 pods * 65536 uids/gids) at the end of the uid/gid space. diff --git a/XTesting/kubespray/docs/debian.md b/XTesting/kubespray/docs/debian.md new file mode 100644 index 0000000..28d8f15 --- /dev/null +++ b/XTesting/kubespray/docs/debian.md @@ -0,0 +1,36 @@ +# Debian Jessie + +Debian Jessie installation Notes: + +- Add + + ```GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"``` + + to /etc/default/grub. Then update with + + ```ShellSession + sudo update-grub + sudo update-grub2 + sudo reboot + ``` + +- Add the [backports](https://backports.debian.org/Instructions/) which contain Systemd 2.30 and update Systemd. + + ```apt-get -t jessie-backports install systemd``` + + (Necessary because the default Systemd version (2.15) does not support the "Delegate" directive in service files) + +- Add the Ansible repository and install Ansible to get a proper version + + ```ShellSession + sudo add-apt-repository ppa:ansible/ansible + sudo apt-get update + sudo apt-get install ansible + + ``` + +- Install Jinja2 and Python-Netaddr + + ```sudo apt-get install python-jinja2=2.8-1~bpo8+1 python-netaddr``` + +Now you can continue with [Preparing your deployment](getting-started.md#starting-custom-deployment) diff --git a/XTesting/kubespray/docs/dns-stack.md b/XTesting/kubespray/docs/dns-stack.md new file mode 100644 index 0000000..0466259 --- /dev/null +++ b/XTesting/kubespray/docs/dns-stack.md @@ -0,0 +1,272 @@ +# K8s DNS stack by Kubespray + +For K8s cluster nodes, Kubespray configures a [Kubernetes DNS](https://kubernetes.io/docs/admin/dns/) +[cluster add-on](https://releases.k8s.io/master/cluster/addons/README.md) +to serve as an authoritative DNS server for a given ``dns_domain`` and its +``svc, default.svc`` default subdomains (a total of ``ndots: 5`` max levels). + +Other nodes in the inventory, like external storage nodes or a separate etcd cluster +node group, considered non-cluster and left up to the user to configure DNS resolve. + +## DNS variables + +There are several global variables which can be used to modify DNS settings: + +### ndots + +ndots value to be used in ``/etc/resolv.conf`` + +It is important to note that multiple search domains combined with high ``ndots`` +values lead to poor performance of DNS stack, so please choose it wisely. + +### searchdomains + +Custom search domains to be added in addition to the cluster search domains (``default.svc.{{ dns_domain }}, svc.{{ dns_domain }}``). + +Most Linux systems limit the total number of search domains to 6 and the total length of all search domains +to 256 characters. Depending on the length of ``dns_domain``, you're limited to less than the total limit. + +Please note that ``resolvconf_mode: docker_dns`` will automatically add your systems search domains as +additional search domains. Please take this into the accounts for the limits. + +### nameservers + +This variable is only used by ``resolvconf_mode: host_resolvconf``. These nameservers are added to the hosts +``/etc/resolv.conf`` *after* ``upstream_dns_servers`` and thus serve as backup nameservers. If this variable +is not set, a default resolver is chosen (depending on cloud provider or 8.8.8.8 when no cloud provider is specified). + +### upstream_dns_servers + +DNS servers to be added *after* the cluster DNS. Used by all ``resolvconf_mode`` modes. These serve as backup +DNS servers in early cluster deployment when no cluster DNS is available yet. + +### coredns_external_zones + +Array of optional external zones to coredns forward queries to. It's injected into +`coredns`' config file before default kubernetes zone. Use it as an optimization for well-known zones and/or internal-only +domains, i.e. VPN for internal networks (default is unset) + +Example: + +```yaml +coredns_external_zones: +- zones: + - example.com + - example.io:1053 + nameservers: + - 1.1.1.1 + - 2.2.2.2 + cache: 5 +- zones: + - https://mycompany.local:4453 + nameservers: + - 192.168.0.53 + cache: 0 +``` + +or as INI + +```ini +coredns_external_zones='[{"cache": 30,"zones":["example.com","example.io:453"],"nameservers":["1.1.1.1","2.2.2.2"]}]' +``` + +### dns_etchosts (coredns) + +Optional hosts file content to coredns use as /etc/hosts file. This will also be used by nodelocaldns, if enabled. + +Example: + +```yaml +dns_etchosts: | + 192.168.0.100 api.example.com + 192.168.0.200 ingress.example.com +``` + +### enable_coredns_reverse_dns_lookups + +Whether reverse DNS lookups are enabled in the coredns config. Defaults to `true`. + +### CoreDNS default zone cache plugin + +If you wish to configure the caching behaviour of CoreDNS on the default zone, you can do so using the `coredns_default_zone_cache_block` string block. + +An example value (more information on the [plugin's documentation](https://coredns.io/plugins/cache/)) to: + +* raise the max cache TTL to 3600 seconds +* raise the max amount of success responses to cache to 3000 +* disable caching of denial responses altogether +* enable pre-fetching of lookups with at least 10 lookups per minute before they expire + +Would be as follows: + +```yaml +coredns_default_zone_cache_block: | + cache 3600 { + success 3000 + denial 0 + prefetch 10 1m + } +``` + +## DNS modes supported by Kubespray + +You can modify how Kubespray sets up DNS for your cluster with the variables ``dns_mode`` and ``resolvconf_mode``. + +### dns_mode + +``dns_mode`` configures how Kubespray will setup cluster DNS. There are four modes available: + +#### dns_mode: coredns (default) + +This installs CoreDNS as the default cluster DNS for all queries. + +#### dns_mode: coredns_dual + +This installs CoreDNS as the default cluster DNS for all queries, plus a secondary CoreDNS stack. + +#### dns_mode: manual + +This does not install coredns, but allows you to specify +`manual_dns_server`, which will be configured on nodes for handling Pod DNS. +Use this method if you plan to install your own DNS server in the cluster after +initial deployment. + +#### dns_mode: none + +This does not install any of DNS solution at all. This basically disables cluster DNS completely and +leaves you with a non functional cluster. + +## resolvconf_mode + +``resolvconf_mode`` configures how Kubespray will setup DNS for ``hostNetwork: true`` PODs and non-k8s containers. +There are three modes available: + +### resolvconf_mode: host_resolvconf (default) + +This activates the classic Kubespray behavior that modifies the hosts ``/etc/resolv.conf`` file and dhclient +configuration to point to the cluster dns server (either coredns or coredns_dual, depending on dns_mode). + +As cluster DNS is not available on early deployment stage, this mode is split into 2 stages. In the first +stage (``dns_early: true``), ``/etc/resolv.conf`` is configured to use the DNS servers found in ``upstream_dns_servers`` +and ``nameservers``. Later, ``/etc/resolv.conf`` is reconfigured to use the cluster DNS server first, leaving +the other nameservers as backups. + +Also note, existing records will be purged from the `/etc/resolv.conf`, +including resolvconf's base/head/cloud-init config files and those that come from dhclient. + +### resolvconf_mode: docker_dns + +This sets up the docker daemon with additional --dns/--dns-search/--dns-opt flags. + +The following nameservers are added to the docker daemon (in the same order as listed here): + +* cluster nameserver (depends on dns_mode) +* content of optional upstream_dns_servers variable +* host system nameservers (read from hosts /etc/resolv.conf) + +The following search domains are added to the docker daemon (in the same order as listed here): + +* cluster domains (``default.svc.{{ dns_domain }}``, ``svc.{{ dns_domain }}``) +* content of optional searchdomains variable +* host system search domains (read from hosts /etc/resolv.conf) + +The following dns options are added to the docker daemon + +* ndots:{{ ndots }} +* timeout:2 +* attempts:2 + +These dns options can be overridden by setting a different list: + +```yaml +docker_dns_options: +- ndots:{{ ndots }} +- timeout:2 +- attempts:2 +- rotate +``` + +For normal PODs, k8s will ignore these options and setup its own DNS settings for the PODs, taking +the --cluster_dns (either coredns or coredns_dual, depending on dns_mode) kubelet option into account. +For ``hostNetwork: true`` PODs however, k8s will let docker setup DNS settings. Docker containers which +are not started/managed by k8s will also use these docker options. + +The host system name servers are added to ensure name resolution is also working while cluster DNS is not +running yet. This is especially important in early stages of cluster deployment. In this early stage, +DNS queries to the cluster DNS will timeout after a few seconds, resulting in the system nameserver being +used as a backup nameserver. After cluster DNS is running, all queries will be answered by the cluster DNS +servers, which in turn will forward queries to the system nameserver if required. + +### resolvconf_mode: none + +Does nothing regarding ``/etc/resolv.conf``. This leaves you with a cluster that works as expected in most cases. +The only exception is that ``hostNetwork: true`` PODs and non-k8s managed containers will not be able to resolve +cluster service names. + +## Nodelocal DNS cache + +Setting ``enable_nodelocaldns`` to ``true`` will make pods reach out to the dns (core-dns) caching agent running on the same node, thereby avoiding iptables DNAT rules and connection tracking. The local caching agent will query core-dns (depending on what main DNS plugin is configured in your cluster) for cache misses of cluster hostnames(cluster.local suffix by default). + +More information on the rationale behind this implementation can be found [here](https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/0030-nodelocal-dns-cache.md). + +**As per the 2.10 release, Nodelocal DNS cache is enabled by default.** + +### External zones + +It's possible to extent the `nodelocaldns`' configuration by adding an array of external zones. For example: + +```yaml +nodelocaldns_external_zones: +- zones: + - example.com + - example.io:1053 + nameservers: + - 1.1.1.1 + - 2.2.2.2 + cache: 5 +- zones: + - https://mycompany.local:4453 + nameservers: + - 192.168.0.53 +``` + +### dns_etchosts (nodelocaldns) + +See [dns_etchosts](#dns_etchosts-coredns) above. + +### Nodelocal DNS HA + +Under some circumstances the single POD nodelocaldns implementation may not be able to be replaced soon enough and a cluster upgrade or a nodelocaldns upgrade can cause DNS requests to time out for short intervals. If for any reason your applications cannot tollerate this behavior you can enable a redundant nodelocal DNS pod on each node: + +```yaml +enable_nodelocaldns_secondary: true +``` + +**Note:** when the nodelocaldns secondary is enabled, the primary is instructed to no longer tear down the iptables rules it sets up to direct traffic to itself. In case both daemonsets have failing pods on the same node, this can cause a DNS blackout with traffic no longer being forwarded to the coredns central service as a fallback. Please ensure you account for this also if you decide to disable the nodelocaldns cache. + +There is a time delta (in seconds) allowed for the secondary nodelocaldns to survive in case both primary and secondary daemonsets are updated at the same time. It is advised to tune this variable after you have performed some tests in your own environment. + +```yaml +nodelocaldns_secondary_skew_seconds: 5 +``` + +## Limitations + +* Kubespray has yet ways to configure Kubedns addon to forward requests SkyDns can + not answer with authority to arbitrary recursive resolvers. This task is left + for future. See [official SkyDns docs](https://github.com/skynetservices/skydns) + for details. + +* There is + [no way to specify a custom value](https://github.com/kubernetes/kubernetes/issues/33554) + for the SkyDNS ``ndots`` param. + +* the ``searchdomains`` have a limitation of a 6 names and 256 chars + length. Due to default ``svc, default.svc`` subdomains, the actual + limits are a 4 names and 239 chars respectively. + +* the ``nameservers`` have a limitation of a 3 servers, although there + is a way to mitigate that with the ``upstream_dns_servers``, + see below. Anyway, the ``nameservers`` can take no more than a two + custom DNS servers because of one slot is reserved for a Kubernetes + cluster needs. diff --git a/XTesting/kubespray/docs/docker.md b/XTesting/kubespray/docs/docker.md new file mode 100644 index 0000000..4abe11a --- /dev/null +++ b/XTesting/kubespray/docs/docker.md @@ -0,0 +1,99 @@ +# Docker support + +The docker runtime is supported by kubespray and while the `dockershim` is deprecated to be removed in kubernetes 1.24+ there are alternative ways to use docker such as through the [cri-dockerd](https://github.com/Mirantis/cri-dockerd) project supported by Mirantis. + +Using the docker container manager: + +```yaml +container_manager: docker +``` + +*Note:* `cri-dockerd` has replaced `dockershim` across supported kubernetes version in kubespray 2.20. + +Enabling the `overlay2` graph driver: + +```yaml +docker_storage_options: -s overlay2 +``` + +Enabling `docker_container_storage_setup`, it will configure devicemapper driver on Centos7 or RedHat7. +Deployers must be define a disk path for `docker_container_storage_setup_devs`, otherwise docker-storage-setup will be executed incorrectly. + +```yaml +docker_container_storage_setup: true +docker_container_storage_setup_devs: /dev/vdb +``` + +Changing the Docker cgroup driver (native.cgroupdriver); valid options are `systemd` or `cgroupfs`, default is `systemd`: + +```yaml +docker_cgroup_driver: systemd +``` + +If you have more than 3 nameservers kubespray will only use the first 3 else it will fail. Set the `docker_dns_servers_strict` to `false` to prevent deployment failure. + +```yaml +docker_dns_servers_strict: false +``` + +Set the path used to store Docker data: + +```yaml +docker_daemon_graph: "/var/lib/docker" +``` + +Changing the docker daemon iptables support: + +```yaml +docker_iptables_enabled: "false" +``` + +Docker log options: + +```yaml +# Rotate container stderr/stdout logs at 50m and keep last 5 +docker_log_opts: "--log-opt max-size=50m --log-opt max-file=5" +``` + +Changre the docker `bin_dir`, this should not be changed unless you use a custom docker package: + +```yaml +docker_bin_dir: "/usr/bin" +``` + +To keep docker packages after installation; speeds up repeated ansible provisioning runs when '1'. +kubespray deletes the docker package on each run, so caching the package makes sense: + +```yaml +docker_rpm_keepcache: 1 +``` + +Allowing insecure-registry access to self hosted registries. Can be ipaddress and domain_name. + +```yaml +## example define 172.19.16.11 or mirror.registry.io +docker_insecure_registries: + - mirror.registry.io + - 172.19.16.11 +``` + +Adding other registry, i.e. China registry mirror: + +```yaml +docker_registry_mirrors: + - https://registry.docker-cn.com + - https://mirror.aliyuncs.com +``` + +Overriding default system MountFlags value. This option takes a mount propagation flag: `shared`, `slave` or `private`, which control whether mounts in the file system namespace set up for docker will receive or propagate mounts and unmounts. Leave empty for system default: + +```yaml +docker_mount_flags: +``` + +Adding extra options to pass to the docker daemon: + +```yaml +## This string should be exactly as you wish it to appear. +docker_options: "" +``` diff --git a/XTesting/kubespray/docs/downloads.md b/XTesting/kubespray/docs/downloads.md new file mode 100644 index 0000000..9961eab --- /dev/null +++ b/XTesting/kubespray/docs/downloads.md @@ -0,0 +1,41 @@ +# Downloading binaries and containers + +Kubespray supports several download/upload modes. The default is: + +* Each node downloads binaries and container images on its own, which is ``download_run_once: False``. +* For K8s apps, pull policy is ``k8s_image_pull_policy: IfNotPresent``. +* For system managed containers, like kubelet or etcd, pull policy is ``download_always_pull: False``, which is pull if only the wanted repo and tag/sha256 digest differs from that the host has. + +There is also a "pull once, push many" mode as well: + +* Setting ``download_run_once: True`` will make kubespray download container images and binaries only once and then push them to the cluster nodes. The default download delegate node is the first `kube_control_plane`. +* Set ``download_localhost: True`` to make localhost the download delegate. This can be useful if cluster nodes cannot access external addresses. To use this requires that the container runtime is installed and running on the Ansible master and that the current user is either in the docker group or can do passwordless sudo, to be able to use the container runtime. Note: even if `download_localhost` is false, files will still be copied to the Ansible server (local host) from the delegated download node, and then distributed from the Ansible server to all cluster nodes. + +NOTE: When `download_run_once` is true and `download_localhost` is false, all downloads will be done on the delegate node, including downloads for container images that are not required on that node. As a consequence, the storage required on that node will probably be more than if download_run_once was false, because all images will be loaded into the storage of the container runtime on that node, instead of just the images required for that node. + +On caching: + +* When `download_run_once` is `True`, all downloaded files will be cached locally in `download_cache_dir`, which defaults to `/tmp/kubespray_cache`. On subsequent provisioning runs, this local cache will be used to provision the nodes, minimizing bandwidth usage and improving provisioning time. Expect about 800MB of disk space to be used on the ansible node for the cache. Disk space required for the image cache on the kubernetes nodes is a much as is needed for the largest image, which is currently slightly less than 150MB. +* By default, if `download_run_once` is false, kubespray will not retrieve the downloaded images and files from the download delegate node to the local cache, or use that cache to pre-provision those nodes. If you have a full cache with container images and files and you don’t need to download anything, but want to use a cache - set `download_force_cache` to `True`. +* By default, cached images that are used to pre-provision the remote nodes will be deleted from the remote nodes after use, to save disk space. Setting `download_keep_remote_cache` will prevent the files from being deleted. This can be useful while developing kubespray, as it can decrease provisioning times. As a consequence, the required storage for images on the remote nodes will increase from 150MB to about 550MB, which is currently the combined size of all required container images. + +Container images and binary files are described by the vars like ``foo_version``, +``foo_download_url``, ``foo_checksum`` for binaries and ``foo_image_repo``, +``foo_image_tag`` or optional ``foo_digest_checksum`` for containers. + +Container images may be defined by its repo and tag, for example: +`andyshinn/dnsmasq:2.72`. Or by repo and tag and sha256 digest: +`andyshinn/dnsmasq@sha256:7c883354f6ea9876d176fe1d30132515478b2859d6fc0cbf9223ffdc09168193`. + +Note, the SHA256 digest and the image tag must be both specified and correspond +to each other. The given example above is represented by the following vars: + +```yaml +dnsmasq_digest_checksum: 7c883354f6ea9876d176fe1d30132515478b2859d6fc0cbf9223ffdc09168193 +dnsmasq_image_repo: andyshinn/dnsmasq +dnsmasq_image_tag: '2.72' +``` + +The full list of available vars may be found in the download's ansible role defaults. Those also allow to specify custom urls and local repositories for binaries and container +images as well. See also the DNS stack docs for the related intranet configuration, +so the hosts can resolve those urls and repos. diff --git a/XTesting/kubespray/docs/encrypting-secret-data-at-rest.md b/XTesting/kubespray/docs/encrypting-secret-data-at-rest.md new file mode 100644 index 0000000..3674282 --- /dev/null +++ b/XTesting/kubespray/docs/encrypting-secret-data-at-rest.md @@ -0,0 +1,22 @@ +# Encrypting Secret Data at Rest + +Before enabling Encrypting Secret Data at Rest, please read the following documentation carefully. + + + +As you can see from the documentation above, 5 encryption providers are supported as of today (22.02.2022). + +As default value for the provider we have chosen `secretbox`. + +Alternatively you can use the values `identity`, `aesgcm`, `aescbc` or `kms`. + +| Provider | Why we have decided against the value as default | +|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| identity | no encryption | +| aesgcm | Must be rotated every 200k writes | +| aescbc | Not recommended due to CBC's vulnerability to padding oracle attacks. | +| kms | Is the official recommended way, but assumes that a key management service independent of Kubernetes exists, we cannot assume this in all environments, so not a suitable default value. | + +## Details about Secretbox + +Secretbox uses [Poly1305](https://cr.yp.to/mac.html) as message-authentication code and [XSalsa20](https://www.xsalsa20.com/) as secret-key authenticated encryption and secret-key encryption. diff --git a/XTesting/kubespray/docs/equinix-metal.md b/XTesting/kubespray/docs/equinix-metal.md new file mode 100644 index 0000000..61260f0 --- /dev/null +++ b/XTesting/kubespray/docs/equinix-metal.md @@ -0,0 +1,100 @@ +# Equinix Metal + +Kubespray provides support for bare metal deployments using the [Equinix Metal](http://metal.equinix.com). +Deploying upon bare metal allows Kubernetes to run at locations where an existing public or private cloud might not exist such +as cell tower, edge collocated installations. The deployment mechanism used by Kubespray for Equinix Metal is similar to that used for +AWS and OpenStack clouds (notably using Terraform to deploy the infrastructure). Terraform uses the Equinix Metal provider plugin +to provision and configure hosts which are then used by the Kubespray Ansible playbooks. The Ansible inventory is generated +dynamically from the Terraform state file. + +## Local Host Configuration + +To perform this installation, you will need a localhost to run Terraform/Ansible (laptop, VM, etc) and an account with Equinix Metal. +In this example, we're using an m1.large CentOS 7 OpenStack VM as the localhost to kickoff the Kubernetes installation. +You'll need Ansible, Git, and PIP. + +```bash +sudo yum install epel-release +sudo yum install ansible +sudo yum install git +sudo yum install python-pip +``` + +## Playbook SSH Key + +An SSH key is needed by Kubespray/Ansible to run the playbooks. +This key is installed into the bare metal hosts during the Terraform deployment. +You can generate a key new key or use an existing one. + +```bash +ssh-keygen -f ~/.ssh/id_rsa +``` + +## Install Terraform + +Terraform is required to deploy the bare metal infrastructure. The steps below are for installing on CentOS 7. +[More terraform installation options are available.](https://learn.hashicorp.com/terraform/getting-started/install.html) + +Grab the latest version of Terraform and install it. + +```bash +echo "https://releases.hashicorp.com/terraform/$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r -M '.current_version')/terraform_$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r -M '.current_version')_linux_amd64.zip" +sudo yum install unzip +sudo unzip terraform_0.14.10_linux_amd64.zip -d /usr/local/bin/ +``` + +## Download Kubespray + +Pull over Kubespray and setup any required libraries. + +```bash +git clone https://github.com/kubernetes-sigs/kubespray +cd kubespray +``` + +## Install Ansible + +Install Ansible according to [Ansible installation guide](/docs/ansible.md#installing-ansible) + +## Cluster Definition + +In this example, a new cluster called "alpha" will be created. + +```bash +cp -LRp contrib/terraform/packet/sample-inventory inventory/alpha +cd inventory/alpha/ +ln -s ../../contrib/terraform/packet/hosts +``` + +Details about the cluster, such as the name, as well as the authentication tokens and project ID +for Equinix Metal need to be defined. To find these values see [Equinix Metal API Accounts](https://metal.equinix.com/developers/docs/accounts/). + +```bash +vi cluster.tfvars +``` + +* cluster_name = alpha +* packet_project_id = ABCDEFGHIJKLMNOPQRSTUVWXYZ123456 +* public_key_path = 12345678-90AB-CDEF-GHIJ-KLMNOPQRSTUV + +## Deploy Bare Metal Hosts + +Initializing Terraform will pull down any necessary plugins/providers. + +```bash +terraform init ../../contrib/terraform/packet/ +``` + +Run Terraform to deploy the hardware. + +```bash +terraform apply -var-file=cluster.tfvars ../../contrib/terraform/packet +``` + +## Run Kubespray Playbooks + +With the bare metal infrastructure deployed, Kubespray can now install Kubernetes and setup the cluster. + +```bash +ansible-playbook --become -i inventory/alpha/hosts cluster.yml +``` diff --git a/XTesting/kubespray/docs/etcd.md b/XTesting/kubespray/docs/etcd.md new file mode 100644 index 0000000..17aa291 --- /dev/null +++ b/XTesting/kubespray/docs/etcd.md @@ -0,0 +1,46 @@ +# etcd + +## Deployment Types + +It is possible to deploy etcd with three methods. To change the default deployment method (host), use the `etcd_deployment_type` variable. Possible values are `host`, `kubeadm`, and `docker`. + +### Host + +Host deployment is the default method. Using this method will result in etcd installed as a systemd service. + +### Docker + +Installs docker in etcd group members and runs etcd on docker containers. Only usable when `container_manager` is set to `docker`. + +### Kubeadm + +This deployment method is experimental and is only available for new deployments. This deploys etcd as a static pod in master hosts. + +## Metrics + +To expose metrics on a separate HTTP port, define it in the inventory with: + +```yaml +etcd_metrics_port: 2381 +``` + +To create a service `etcd-metrics` and associated endpoints in the `kube-system` namespace, +define it's labels in the inventory with: + +```yaml +etcd_metrics_service_labels: + k8s-app: etcd + app.kubernetes.io/managed-by: Kubespray + app: kube-prometheus-stack-kube-etcd + release: prometheus-stack +``` + +The last two labels in the above example allows to scrape the metrics from the +[kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) +chart with the following Helm `values.yaml` : + +```yaml +kubeEtcd: + service: + enabled: false +``` diff --git a/XTesting/kubespray/docs/fcos.md b/XTesting/kubespray/docs/fcos.md new file mode 100644 index 0000000..c91d8b1 --- /dev/null +++ b/XTesting/kubespray/docs/fcos.md @@ -0,0 +1,69 @@ +# Fedora CoreOS + +Tested with stable version 34.20210611.3.0 + +Because package installation with `rpm-ostree` requires a reboot, playbook may fail while bootstrap. +Restart playbook again. + +## Containers + +Tested with + +- containerd +- crio + +## Network + +### calico + +To use calico create sysctl file with ignition: + +```yaml +files: + - path: /etc/sysctl.d/reverse-path-filter.conf + contents: + inline: | + net.ipv4.conf.all.rp_filter=1 +``` + +## libvirt setup + +### Prepare + +Prepare ignition and serve via http (a.e. python -m http.server ) + +```json +{ + "ignition": { + "version": "3.0.0" + }, + + "passwd": { + "users": [ + { + "name": "ansibleUser", + "sshAuthorizedKeys": [ + "ssh-rsa ..publickey.." + ], + "groups": [ "wheel" ] + } + ] + } +} +``` + +### create guest + +```shell script +machine_name=myfcos1 +ignition_url=http://mywebserver/fcos.ign + +fcos_version=34.20210611.3.0 +kernel=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-kernel-x86_64 +initrd=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-initramfs.x86_64.img +rootfs=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-rootfs.x86_64.img +kernel_args="console=ttyS0 coreos.live.rootfs_url=${rootfs} coreos.inst.install_dev=/dev/sda coreos.inst.stream=stable coreos.inst.ignition_url=${ignition_url}" +sudo virt-install --name ${machine_name} --ram 4048 --graphics=none --vcpus 2 --disk size=20 \ + --network bridge=virbr0 \ + --install kernel=${kernel},initrd=${initrd},kernel_args_overwrite=yes,kernel_args="${kernel_args}" +``` diff --git a/XTesting/kubespray/docs/figures/kubespray-calico-rr.png b/XTesting/kubespray/docs/figures/kubespray-calico-rr.png new file mode 100644 index 0000000000000000000000000000000000000000..2dacdb5156d3a963b84d12a55138ba1b8a8680a3 GIT binary patch literal 40710 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 literal 0 HcmV?d00001 diff --git a/XTesting/kubespray/docs/figures/loadbalancer_localhost.png b/XTesting/kubespray/docs/figures/loadbalancer_localhost.png new file mode 100644 index 0000000000000000000000000000000000000000..0732d5489a919007e65f58f15ac0e181b612e7ee GIT binary patch literal 58266 zcmeFZWmr{R)HVu;l1hn63cBeM36W0On^d|(x*Mb$1f{#XJEc(&5D<{=?(UF0a~sd| zeDArwpXblH-d`fR)|zX~F-P3@JyyVLDbc&=gy;we2zOynVHpI3Tj2-@Na?6|z;7~L z7BLVI?uo`JZTcq$oKqfSvk9ty5WO|towX)==V9d|btJEnhueC*42lY#D)H5dJu^UwFGZekg zVg>$JNJr`K-EqeFz62&`Gh!VG7kw(>7Q0UWswfhrrhXxyRJyZq;v5j0vwbG7U7)vh zSi*XMarFe^cP)d;;oc$AFm&U8z{7o@SJW}z_v|tTnXrUUDtUOa=90Ph@UkcR?6RnX zZ^d5v=i>t6j)P6ef%gF)b;7V!?N^?$)a%GhpWycokRN_v=(H#w8LXyiBpS9-3i#$L zr|cuuAZ%rgcYGO^Cw)kDOm;B;sL9TV#+4SZu7|VMJbkAVFWa<9`4XxL|aY0 zSfrLn!$H?hZsl2T5B`jYfy2>4i0q{Beey|vmFSFtF=iK!{1eK8XTgUho<{1qc8tR0 z&&bT%s{>BUgapk3)B*=Gi>*du(3BWH=bN5Um=1q@wQtlxyy|c#(tJ4n(9>Wq%dM;Q z8>QKnwea`00C}km_7nRBan|%8XlDq|$~?VsHud#X?sE-M{FVr7e`1|SMc&r5S*Fu| z)7KvZwGA(d_mnem?<+z5JXz5@$uq~U0isN4uNsP5EKEUa1mt0-28`T^ygYot z`&Za;S@=HT;&Eaf!H*jAOiZ|Q1jiZ2v`n53n3;`i-KFQ)b{59U7HV)CDC%cu_BFAwYn z4lfQi#pS-N_1UfXv;V& z_Y3W27&Pib40Df^t#4RU|J^Fi0~x~%J$;H7<-|z^gkj;VagjOJc4xebe$E;pv*x9% zK?d6|X7t$Wn#+3_2jp~V_QC}hbIHl%bIQKTkblX+-z>dXgP>Pi5+wdQ5Ha=pS<3*1 zXO)hg#8!0ndRmdJcF$g$HxcUMEqC5gL9HJsg0Pp-n>jL10&OrH85OHH^3mc}XwOfQ zH>aOtrS@6-*4xrtlC)>T+MUVZ=Qc%`3G9x*q^0r|lamvNlb^CV3F z+KFTT^_5n6eKUui)rCiL49GQcDZFzTZ>Vd=3%QLnE=h#^^ zxhGeb(U12nFP>8zbAA_J?){*>#6fu`efWI2?DCO7_3G&R%q0<4DqX$lg2Ptq5E-&cyW-5$ca6Kj9(U4{u6OO(hJQ zVx(V;LOI@xRv1Klc(!Gg!@x5a@5l)=rz7dN;Xf-uvtr(&eZqHMMDR@O!LtvKuy4JcYfe6I;yoeg zjmz6vPaYh!8MU+OvCOX9D5^Jh+F1XzQAF{8L8bB=6x#yYLdf5nm?&A-{qcncg5+9^CXGG zly*0Lg@iJ7>v3NS->gcd;Tr`*PNs6rN(A2&CGh zkwHv8?HV}}AiKDYS=7wm;W}T-*j`O>w`V)vnV!7f4{;w07iUy{)$;*kTm?T|(`Dbc zsOfy;WHE$Kg_&8CeT$a%vw@nz8=L%rA!D3y7x!|O2C?JYvzuE-_|d>+kHHfNaIoJC zqz++SWW{J0Q>D0At9N!hc5euJ#GIZ?#qz4kE@m!_wSGN2A(2B-5XyM%fk?UR(z>9j z${-lND}Bi;b>1c8`ex&l(#V+_3wXB&6QWNh6U~7DnQ-bD)|1*O!WOn8I~nFl-NgJ+L^s?t}?z z!PKaF)x9S(gge(`kp3VMWdH7)>{$BGpg!j+_oVrc4ccUXsb&<9?U~Z~ORe z8V(=jPhl`M{NS|P7$U>cOlVOfq@~^pIAmae z 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 mtu 1450 qdisc noqueue state UNKNOWN group default + link/ether e2:f3:a7:0f:bf:cb brd ff:ff:ff:ff:ff:ff + inet 10.233.16.0/18 scope global flannel.1 + valid_lft forever preferred_lft forever + inet6 fe80::e0f3:a7ff:fe0f:bfcb/64 scope link + valid_lft forever preferred_lft forever +``` + +* Try to run a container and check its ip address + +```ShellSession +kubectl run test --image=busybox --command -- tail -f /dev/null +replicationcontroller "test" created + +kubectl describe po test-34ozs | grep ^IP +IP: 10.233.16.2 +``` + +```ShellSession +kubectl exec test-34ozs -- ip a show dev eth0 +8: eth0@if9: mtu 1450 qdisc noqueue + link/ether 02:42:0a:e9:2b:03 brd ff:ff:ff:ff:ff:ff + inet 10.233.16.2/24 scope global eth0 + valid_lft forever preferred_lft forever + inet6 fe80::42:aff:fee9:2b03/64 scope link tentative flags 08 + valid_lft forever preferred_lft forever +``` diff --git a/XTesting/kubespray/docs/flatcar.md b/XTesting/kubespray/docs/flatcar.md new file mode 100644 index 0000000..cdd2c6a --- /dev/null +++ b/XTesting/kubespray/docs/flatcar.md @@ -0,0 +1,14 @@ +Flatcar Container Linux bootstrap +=============== + +Example with Ansible: + +Before running the cluster playbook you must satisfy the following requirements: + +General Flatcar Pre-Installation Notes: + +- Ensure that the bin_dir is set to `/opt/bin` +- ansible_python_interpreter should be `/opt/bin/python`. This will be laid down by the bootstrap task. +- The resolvconf_mode setting of `docker_dns` **does not** work for Flatcar. This is because we do not edit the systemd service file for docker on Flatcar nodes. Instead, just use the default `host_resolvconf` mode. It should work out of the box. + +Then you can proceed to [cluster deployment](#run-deployment) diff --git a/XTesting/kubespray/docs/gcp-lb.md b/XTesting/kubespray/docs/gcp-lb.md new file mode 100644 index 0000000..bb378f6 --- /dev/null +++ b/XTesting/kubespray/docs/gcp-lb.md @@ -0,0 +1,16 @@ +# GCP Load Balancers for type=LoadBalacer of Kubernetes Services + +Google Cloud Platform can be used for creation of Kubernetes Service Load Balancer. + +This feature is able to deliver by adding parameters to kube-controller-manager and kubelet. You need specify: + + --cloud-provider=gce + --cloud-config=/etc/kubernetes/cloud-config + +To get working it in kubespray, you need to add tag to GCE instances and specify it in kubespray group vars and also set cloud_provider to gce. So for example, in file group_vars/all/gcp.yml: + + cloud_provider: gce + gce_node_tags: k8s-lb + +When you will setup it and create SVC in Kubernetes with type=LoadBalancer, cloud provider will create public IP and will set firewall. +Note: Cloud provider run under VM service account, so this account needs to have correct permissions to be able to create all GCP resources. diff --git a/XTesting/kubespray/docs/gcp-pd-csi.md b/XTesting/kubespray/docs/gcp-pd-csi.md new file mode 100644 index 0000000..88fa060 --- /dev/null +++ b/XTesting/kubespray/docs/gcp-pd-csi.md @@ -0,0 +1,77 @@ +# GCP Persistent Disk CSI Driver + +The GCP Persistent Disk CSI driver allows you to provision volumes for pods with a Kubernetes deployment over Google Cloud Platform. The CSI driver replaces to volume provioning done by the in-tree azure cloud provider which is deprecated. + +To deploy GCP Persistent Disk CSI driver, uncomment the `gcp_pd_csi_enabled` option in `group_vars/all/gcp.yml` and set it to `true`. + +## GCP Persistent Disk Storage Class + +If you want to deploy the GCP Persistent Disk storage class to provision volumes dynamically, you should set `persistent_volumes_enabled` in `group_vars/k8s_cluster/k8s_cluster.yml` to `true`. + +## GCP credentials + +In order for the CSI driver to provision disks, you need to create for it a service account on GCP with the appropriate permissions. + +Follow these steps to configure it: + +```ShellSession +# This will open a web page for you to authenticate +gcloud auth login +export PROJECT=nameofmyproject +gcloud config set project $PROJECT + +git clone https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver $GOPATH/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver + +export GCE_PD_SA_NAME=my-gce-pd-csi-sa +export GCE_PD_SA_DIR=/my/safe/credentials/directory + +./deploy/setup-project.sh +``` + +The above will create a file named `cloud-sa.json` in the specified `GCE_PD_SA_DIR`. This file contains the service account with the appropriate credentials for the CSI driver to perform actions on GCP to request disks for pods. + +You need to provide this file's path through the variable `gcp_pd_csi_sa_cred_file` in `inventory/mycluster/group_vars/all/gcp.yml` + +You can now deploy Kubernetes with Kubespray over GCP. + +## GCP PD CSI Driver test + +To test the dynamic provisioning using GCP PD CSI driver, make sure to have the storage class deployed (through persistent volumes), and apply the following manifest: + +```yml +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: podpvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: csi-gce-pd + resources: + requests: + storage: 1Gi + +--- +apiVersion: v1 +kind: Pod +metadata: + name: web-server +spec: + containers: + - name: web-server + image: nginx + volumeMounts: + - mountPath: /var/lib/www/html + name: mypvc + volumes: + - name: mypvc + persistentVolumeClaim: + claimName: podpvc + readOnly: false +``` + +## GCP PD documentation + +You can find the official GCP Persistent Disk CSI driver installation documentation here: [GCP PD CSI Driver](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/blob/master/docs/kubernetes/user-guides/driver-install.md +) diff --git a/XTesting/kubespray/docs/getting-started.md b/XTesting/kubespray/docs/getting-started.md new file mode 100644 index 0000000..32660d1 --- /dev/null +++ b/XTesting/kubespray/docs/getting-started.md @@ -0,0 +1,144 @@ +# Getting started + +## Building your own inventory + +Ansible inventory can be stored in 3 formats: YAML, JSON, or INI-like. There is +an example inventory located +[here](https://github.com/kubernetes-sigs/kubespray/blob/master/inventory/sample/inventory.ini). + +You can use an +[inventory generator](https://github.com/kubernetes-sigs/kubespray/blob/master/contrib/inventory_builder/inventory.py) +to create or modify an Ansible inventory. Currently, it is limited in +functionality and is only used for configuring a basic Kubespray cluster inventory, but it does +support creating inventory file for large clusters as well. It now supports +separated ETCD and Kubernetes control plane roles from node role if the size exceeds a +certain threshold. Run `python3 contrib/inventory_builder/inventory.py help` for more information. + +Example inventory generator usage: + +```ShellSession +cp -r inventory/sample inventory/mycluster +declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) +CONFIG_FILE=inventory/mycluster/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]} +``` + +Then use `inventory/mycluster/hosts.yml` as inventory file. + +## Starting custom deployment + +Once you have an inventory, you may want to customize deployment data vars +and start the deployment: + +**IMPORTANT**: Edit my\_inventory/groups\_vars/\*.yaml to override data vars: + +```ShellSession +ansible-playbook -i inventory/mycluster/hosts.yml cluster.yml -b -v \ + --private-key=~/.ssh/private_key +``` + +See more details in the [ansible guide](/docs/ansible.md). + +### Adding nodes + +You may want to add worker, control plane or etcd nodes to your existing cluster. This can be done by re-running the `cluster.yml` playbook, or you can target the bare minimum needed to get kubelet installed on the worker and talking to your control planes. This is especially helpful when doing something like autoscaling your clusters. + +- Add the new worker node to your inventory in the appropriate group (or utilize a [dynamic inventory](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html)). +- Run the ansible-playbook command, substituting `cluster.yml` for `scale.yml`: + +```ShellSession +ansible-playbook -i inventory/mycluster/hosts.yml scale.yml -b -v \ + --private-key=~/.ssh/private_key +``` + +### Remove nodes + +You may want to remove **control plane**, **worker**, or **etcd** nodes from your +existing cluster. This can be done by re-running the `remove-node.yml` +playbook. First, all specified nodes will be drained, then stop some +kubernetes services and delete some certificates, +and finally execute the kubectl command to delete these nodes. +This can be combined with the add node function. This is generally helpful +when doing something like autoscaling your clusters. Of course, if a node +is not working, you can remove the node and install it again. + +Use `--extra-vars "node=,"` to select the node(s) you want to delete. + +```ShellSession +ansible-playbook -i inventory/mycluster/hosts.yml remove-node.yml -b -v \ +--private-key=~/.ssh/private_key \ +--extra-vars "node=nodename,nodename2" +``` + +If a node is completely unreachable by ssh, add `--extra-vars reset_nodes=false` +to skip the node reset step. If one node is unavailable, but others you wish +to remove are able to connect via SSH, you could set `reset_nodes=false` as a host +var in inventory. + +## Connecting to Kubernetes + +By default, Kubespray configures kube_control_plane hosts with insecure access to +kube-apiserver via port 8080. A kubeconfig file is not necessary in this case, +because kubectl will use to connect. The kubeconfig files +generated will point to localhost (on kube_control_planes) and kube_node hosts will +connect either to a localhost nginx proxy or to a loadbalancer if configured. +More details on this process are in the [HA guide](/docs/ha-mode.md). + +Kubespray permits connecting to the cluster remotely on any IP of any +kube_control_plane host on port 6443 by default. However, this requires +authentication. One can get a kubeconfig from kube_control_plane hosts +(see [below](#accessing-kubernetes-api)). + +For more information on kubeconfig and accessing a Kubernetes cluster, refer to +the Kubernetes [documentation](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/). + +## Accessing Kubernetes Dashboard + +Supported version is kubernetes-dashboard v2.0.x : + +- Login option : token/kubeconfig by default +- Deployed by default in "kube-system" namespace, can be overridden with `dashboard_namespace: kubernetes-dashboard` in inventory, +- Only serves over https + +Access is described in [dashboard docs](https://github.com/kubernetes/dashboard/tree/master/docs/user/accessing-dashboard). With kubespray's default deployment in kube-system namespace, instead of kubernetes-dashboard : + +- Proxy URL is +- kubectl commands must be run with "-n kube-system" + +Accessing through Ingress is highly recommended. For proxy access, please note that proxy must listen to [localhost](https://github.com/kubernetes/dashboard/issues/692#issuecomment-220492484) (`proxy --address="x.x.x.x"` will not work) + +For token authentication, guide to create Service Account is provided in [dashboard sample user](https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md) doc. Still take care of default namespace. + +Access can also by achieved via ssh tunnel on a control plane : + +```bash +# localhost:8081 will be sent to control-plane-1's own localhost:8081 +ssh -L8001:localhost:8001 user@control-plane-1 +sudo -i +kubectl proxy +``` + +## Accessing Kubernetes API + +The main client of Kubernetes is `kubectl`. It is installed on each kube_control_plane +host and can optionally be configured on your ansible host by setting +`kubectl_localhost: true` and `kubeconfig_localhost: true` in the configuration: + +- If `kubectl_localhost` enabled, `kubectl` will download onto `/usr/local/bin/` and setup with bash completion. A helper script `inventory/mycluster/artifacts/kubectl.sh` also created for setup with below `admin.conf`. +- If `kubeconfig_localhost` enabled `admin.conf` will appear in the `inventory/mycluster/artifacts/` directory after deployment. +- The location where these files are downloaded to can be configured via the `artifacts_dir` variable. + +NOTE: The controller host name in the admin.conf file might be a private IP. If so, change it to use the controller's public IP or the cluster's load balancer. + +You can see a list of nodes by running the following commands: + +```ShellSession +cd inventory/mycluster/artifacts +./kubectl.sh get nodes +``` + +If desired, copy admin.conf to ~/.kube/config. + +## Setting up your first cluster + +[Setting up your first cluster](/docs/setting-up-your-first-cluster.md) is an + applied step-by-step guide for setting up your first cluster with Kubespray. diff --git a/XTesting/kubespray/docs/gvisor.md b/XTesting/kubespray/docs/gvisor.md new file mode 100644 index 0000000..ef0a64b --- /dev/null +++ b/XTesting/kubespray/docs/gvisor.md @@ -0,0 +1,16 @@ +# gVisor + +[gVisor](https://gvisor.dev/docs/) is an application kernel, written in Go, that implements a substantial portion of the Linux system call interface. It provides an additional layer of isolation between running applications and the host operating system. + +gVisor includes an Open Container Initiative (OCI) runtime called runsc that makes it easy to work with existing container tooling. The runsc runtime integrates with Docker and Kubernetes, making it simple to run sandboxed containers. + +## Usage + +To enable gVisor you should be using a container manager that is compatible with selecting the [RuntimeClass](https://kubernetes.io/docs/concepts/containers/runtime-class/) such as `containerd`. + +Containerd support: + +```yaml +container_manager: containerd +gvisor_enabled: true +``` diff --git a/XTesting/kubespray/docs/ha-mode.md b/XTesting/kubespray/docs/ha-mode.md new file mode 100644 index 0000000..de80199 --- /dev/null +++ b/XTesting/kubespray/docs/ha-mode.md @@ -0,0 +1,157 @@ +# HA endpoints for K8s + +The following components require a highly available endpoints: + +* etcd cluster, +* kube-apiserver service instances. + +The latter relies on a 3rd side reverse proxy, like Nginx or HAProxy, to +achieve the same goal. + +## Etcd + +The etcd clients (kube-api-masters) are configured with the list of all etcd peers. If the etcd-cluster has multiple instances, it's configured in HA already. + +## Kube-apiserver + +K8s components require a loadbalancer to access the apiservers via a reverse +proxy. Kubespray includes support for an nginx-based proxy that resides on each +non-master Kubernetes node. This is referred to as localhost loadbalancing. It +is less efficient than a dedicated load balancer because it creates extra +health checks on the Kubernetes apiserver, but is more practical for scenarios +where an external LB or virtual IP management is inconvenient. This option is +configured by the variable `loadbalancer_apiserver_localhost` (defaults to +`True`. Or `False`, if there is an external `loadbalancer_apiserver` defined). +You may also define the port the local internal loadbalancer uses by changing, +`loadbalancer_apiserver_port`. This defaults to the value of +`kube_apiserver_port`. It is also important to note that Kubespray will only +configure kubelet and kube-proxy on non-master nodes to use the local internal +loadbalancer. + +If you choose to NOT use the local internal loadbalancer, you will need to +use the [kube-vip](kube-vip.md) ansible role or configure your own loadbalancer to achieve HA. By default, it only configures a non-HA endpoint, which points to the +`access_ip` or IP address of the first server node in the `kube_control_plane` group. +It can also configure clients to use endpoints for a given loadbalancer type. +The following diagram shows how traffic to the apiserver is directed. + +![Image](figures/loadbalancer_localhost.png?raw=true) + +A user may opt to use an external loadbalancer (LB) instead. An external LB +provides access for external clients, while the internal LB accepts client +connections only to the localhost. +Given a frontend `VIP` address and `IP1, IP2` addresses of backends, here is +an example configuration for a HAProxy service acting as an external LB: + +```raw +listen kubernetes-apiserver-https + bind :8383 + mode tcp + option log-health-checks + timeout client 3h + timeout server 3h + server master1 :6443 check check-ssl verify none inter 10000 + server master2 :6443 check check-ssl verify none inter 10000 + balance roundrobin +``` + + Note: That's an example config managed elsewhere outside of Kubespray. + +And the corresponding example global vars for such a "cluster-aware" +external LB with the cluster API access modes configured in Kubespray: + +```yml +apiserver_loadbalancer_domain_name: "my-apiserver-lb.example.com" +loadbalancer_apiserver: + address: + port: 8383 +``` + + Note: The default kubernetes apiserver configuration binds to all interfaces, + so you will need to use a different port for the vip from that the API is + listening on, or set the `kube_apiserver_bind_address` so that the API only + listens on a specific interface (to avoid conflict with haproxy binding the + port on the VIP address) + +This domain name, or default "lb-apiserver.kubernetes.local", will be inserted +into the `/etc/hosts` file of all servers in the `k8s_cluster` group and wired +into the generated self-signed TLS/SSL certificates as well. Note that +the HAProxy service should as well be HA and requires a VIP management, which +is out of scope of this doc. + +There is a special case for an internal and an externally configured (not with +Kubespray) LB used simultaneously. Keep in mind that the cluster is not aware +of such an external LB and you need no to specify any configuration variables +for it. + + Note: TLS/SSL termination for externally accessed API endpoints' will **not** + be covered by Kubespray for that case. Make sure your external LB provides it. + Alternatively you may specify an externally load balanced VIPs in the + `supplementary_addresses_in_ssl_keys` list. Then, kubespray will add them into + the generated cluster certificates as well. + +Aside of that specific case, the `loadbalancer_apiserver` considered mutually +exclusive to `loadbalancer_apiserver_localhost`. + +Access API endpoints are evaluated automatically, as the following: + +| Endpoint type | kube_control_plane | non-master | external | +|------------------------------|------------------------------------------|-------------------------|-----------------------| +| Local LB (default) | `https://dbip:sp` | `https://lc:nsp` | `https://m[0].aip:sp` | +| Local LB (default) + cbip | `https://cbip:sp` and `https://lc:nsp` | `https://lc:nsp` | `https://m[0].aip:sp` | +| Local LB + Unmanaged here LB | `https://dbip:sp` | `https://lc:nsp` | `https://ext` | +| External LB, no internal | `https://dbip:sp` | `` | `https://lb:lp` | +| No ext/int LB | `https://dbip:sp` | `` | `https://m[0].aip:sp` | + +Where: + +* `m[0]` - the first node in the `kube_control_plane` group; +* `lb` - LB FQDN, `apiserver_loadbalancer_domain_name`; +* `ext` - Externally load balanced VIP:port and FQDN, not managed by Kubespray; +* `lc` - localhost; +* `cbip` - a custom bind IP, `kube_apiserver_bind_address`; +* `dbip` - localhost for the default bind IP '0.0.0.0'; +* `nsp` - nginx secure port, `loadbalancer_apiserver_port`, defers to `sp`; +* `sp` - secure port, `kube_apiserver_port`; +* `lp` - LB port, `loadbalancer_apiserver.port`, defers to the secure port; +* `ip` - the node IP, defers to the ansible IP; +* `aip` - `access_ip`, defers to the ip. + +A second and a third column represent internal cluster access modes. The last +column illustrates an example URI to access the cluster APIs externally. +Kubespray has nothing to do with it, this is informational only. + +As you can see, the masters' internal API endpoints are always +contacted via the local bind IP, which is `https://bip:sp`. + +## Optional configurations + +### ETCD with a LB + +In order to use an external loadbalancing (L4/TCP or L7 w/ SSL Passthrough VIP), the following variables need to be overridden in group_vars + +* `etcd_access_addresses` +* `etcd_client_url` +* `etcd_cert_alt_names` +* `etcd_cert_alt_ips` + +#### Example of a VIP w/ FQDN + +```yaml +etcd_access_addresses: https://etcd.example.com:2379 +etcd_client_url: https://etcd.example.com:2379 +etcd_cert_alt_names: + - "etcd.kube-system.svc.{{ dns_domain }}" + - "etcd.kube-system.svc" + - "etcd.kube-system" + - "etcd" + - "etcd.example.com" # This one needs to be added to the default etcd_cert_alt_names +``` + +#### Example of a VIP w/o FQDN (IP only) + +```yaml +etcd_access_addresses: https://2.3.7.9:2379 +etcd_client_url: https://2.3.7.9:2379 +etcd_cert_alt_ips: + - "2.3.7.9" +``` diff --git a/XTesting/kubespray/docs/hardening.md b/XTesting/kubespray/docs/hardening.md new file mode 100644 index 0000000..df757df --- /dev/null +++ b/XTesting/kubespray/docs/hardening.md @@ -0,0 +1,120 @@ +# Cluster Hardening + +If you want to improve the security on your cluster and make it compliant with the [CIS Benchmarks](https://learn.cisecurity.org/benchmarks), here you can find a configuration to harden your **kubernetes** installation. + +To apply the hardening configuration, create a file (eg. `hardening.yaml`) and paste the content of the following code snippet into that. + +## Minimum Requirements + +The **kubernetes** version should be at least `v1.23.6` to have all the most recent security features (eg. the new `PodSecurity` admission plugin, etc). + +**N.B.** Some of these configurations have just been added to **kubespray**, so ensure that you have the latest version to make it works properly. Also, ensure that other configurations doesn't override these. + +`hardening.yaml`: + +```yaml +# Hardening +--- + +## kube-apiserver +authorization_modes: ['Node','RBAC'] +# AppArmor-based OS +#kube_apiserver_feature_gates: ['AppArmor=true'] +kube_apiserver_request_timeout: 120s +kube_apiserver_service_account_lookup: true + +# enable kubernetes audit +kubernetes_audit: true +audit_log_path: "/var/log/kube-apiserver-log.json" +audit_log_maxage: 30 +audit_log_maxbackups: 10 +audit_log_maxsize: 100 + +tls_min_version: VersionTLS12 +tls_cipher_suites: + - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 + - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 + - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 + +# enable encryption at rest +kube_encrypt_secret_data: true +kube_encryption_resources: [secrets] +kube_encryption_algorithm: "secretbox" + +kube_apiserver_enable_admission_plugins: ['EventRateLimit,AlwaysPullImages,ServiceAccount,NamespaceLifecycle,NodeRestriction,LimitRanger,ResourceQuota,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,PodNodeSelector,PodSecurity'] +kube_apiserver_admission_control_config_file: true +# EventRateLimit plugin configuration +kube_apiserver_admission_event_rate_limits: + limit_1: + type: Namespace + qps: 50 + burst: 100 + cache_size: 2000 + limit_2: + type: User + qps: 50 + burst: 100 +kube_profiling: false + +## kube-controller-manager +kube_controller_manager_bind_address: 127.0.0.1 +kube_controller_terminated_pod_gc_threshold: 50 +# AppArmor-based OS +#kube_controller_feature_gates: ["RotateKubeletServerCertificate=true","AppArmor=true"] +kube_controller_feature_gates: ["RotateKubeletServerCertificate=true"] + +## kube-scheduler +kube_scheduler_bind_address: 127.0.0.1 +kube_kubeadm_scheduler_extra_args: + profiling: false +# AppArmor-based OS +#kube_scheduler_feature_gates: ["AppArmor=true"] + +## etcd +etcd_deployment_type: kubeadm + +## kubelet +kubelet_authorization_mode_webhook: true +kubelet_authentication_token_webhook: true +kube_read_only_port: 0 +kubelet_rotate_server_certificates: true +kubelet_protect_kernel_defaults: true +kubelet_event_record_qps: 1 +kubelet_rotate_certificates: true +kubelet_streaming_connection_idle_timeout: "5m" +kubelet_make_iptables_util_chains: true +kubelet_feature_gates: ["RotateKubeletServerCertificate=true","SeccompDefault=true"] +kubelet_seccomp_default: true + +# additional configurations +kube_owner: root +kube_cert_group: root + +# create a default Pod Security Configuration and deny running of insecure pods +# kube_system namespace is exempted by default +kube_pod_security_use_default: true +kube_pod_security_default_enforce: restricted +``` + +Let's take a deep look to the resultant **kubernetes** configuration: + +* The `anonymous-auth` (on `kube-apiserver`) is set to `true` by default. This is fine, because it is considered safe if you enable `RBAC` for the `authorization-mode`. +* The `enable-admission-plugins` has not the `PodSecurityPolicy` admission plugin. This because it is going to be definitely removed from **kubernetes** `v1.25`. For this reason we decided to set the newest `PodSecurity` (for more details, please take a look here: ). Then, we set the `EventRateLimit` plugin, providing additional configuration files (that are automatically created under the hood and mounted inside the `kube-apiserver` container) to make it work. +* The `encryption-provider-config` provide encryption at rest. This means that the `kube-apiserver` encrypt data that is going to be stored before they reach `etcd`. So the data is completely unreadable from `etcd` (in case an attacker is able to exploit this). +* The `rotateCertificates` in `KubeletConfiguration` is set to `true` along with `serverTLSBootstrap`. This could be used in alternative to `tlsCertFile` and `tlsPrivateKeyFile` parameters. Additionally it automatically generates certificates by itself, but you need to manually approve them or at least using an operator to do this (for more details, please take a look here: ). +* If you are installing **kubernetes** in an AppArmor-based OS (eg. Debian/Ubuntu) you can enable the `AppArmor` feature gate uncommenting the lines with the comment `# AppArmor-based OS` on top. + +Once you have the file properly filled, you can run the **Ansible** command to start the installation: + +```bash +ansible-playbook -v cluster.yml \ + -i inventory.ini \ + -b --become-user=root \ + --private-key ~/.ssh/id_ecdsa \ + -e "@vars.yaml" \ + -e "@hardening.yaml" +``` + +**N.B.** The `vars.yaml` contains our general cluster information (SANs, load balancer, dns, etc..) and `hardening.yaml` is the file described above. + +Once completed the cluster deployment, don't forget to approve the generated certificates (check them with `kubectl get csr`, approve with `kubectl certificate approve `). This action is necessary because the `secureTLSBootstrap` option and `RotateKubeletServerCertificate` feature gate for `kubelet` are enabled (CIS [4.2.11](https://www.tenable.com/audits/items/CIS_Kubernetes_v1.20_v1.0.0_Level_1_Worker.audit:05af3dfbca8e0c3fb3559c6c7de29191), [4.2.12](https://www.tenable.com/audits/items/CIS_Kubernetes_v1.20_v1.0.0_Level_1_Worker.audit:5351c76f8c5bff8f98c29a5200a35435)). diff --git a/XTesting/kubespray/docs/img/kubernetes-logo.png b/XTesting/kubespray/docs/img/kubernetes-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2838a1829ff3588df5e0d8110a62703031be03ee GIT binary patch literal 6954 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 + ``` + +7. If you have several temporary-stage commits - squash them using [```git rebase -i```](https://eli.thegreenplace.net/2014/02/19/squashing-github-pull-requests-into-a-single-commit) +Also you could use interactive rebase (```git rebase -i HEAD~10```) to delete commits which you don't want to contribute into original repo. + +8. When your changes is in place, you need to check upstream repo one more time because it could be changed during your work. +Check that you're on correct branch: +```git status``` +And pull changes from upstream (if any): +```git pull --rebase upstream master``` + +9. Now push your changes to your **fork** repo with ```git push```. If your branch doesn't exists on github, git will propose you to use something like ```git push --set-upstream origin fixes-name-date-index```. + +10. Open you forked repo in browser, on the main page you will see proposition to create pull request for your newly created branch. Check proposed diff of your PR. If something is wrong you could safely delete "fix" branch on github using ```git push origin --delete fixes-name-date-index```, ```git branch -D fixes-name-date-index``` and start whole process from the beginning. +If everything is fine - add description about your changes (what they do and why they're needed) and confirm pull request creation. diff --git a/XTesting/kubespray/docs/kata-containers.md b/XTesting/kubespray/docs/kata-containers.md new file mode 100644 index 0000000..30843fd --- /dev/null +++ b/XTesting/kubespray/docs/kata-containers.md @@ -0,0 +1,101 @@ +# Kata Containers + +[Kata Containers](https://katacontainers.io) is a secure container runtime with lightweight virtual machines that supports multiple hypervisor solutions. + +## Hypervisors + +_Qemu_ is the only hypervisor supported by Kubespray. + +## Installation + +To enable Kata Containers, set the following variables: + +**k8s-cluster.yml**: + +```yaml +container_manager: containerd +kata_containers_enabled: true +``` + +**etcd.yml**: + +```yaml +etcd_deployment_type: host +``` + +## Usage + +By default, runc is used for pods. +Kubespray generates the runtimeClass kata-qemu, and it is necessary to specify it as +the runtimeClassName of a pod spec to use Kata Containers: + +```shell +$ kubectl get runtimeclass +NAME HANDLER AGE +kata-qemu kata-qemu 3m34s +$ +$ cat nginx.yaml +apiVersion: v1 +kind: Pod +metadata: + name: mypod +spec: + runtimeClassName: kata-qemu + containers: + - name: nginx + image: nginx:1.14.2 +$ +$ kubectl apply -f nginx.yaml +``` + +## Configuration + +### Recommended : Pod Overhead + +[Pod Overhead](https://kubernetes.io/docs/concepts/configuration/pod-overhead/) is a feature for accounting for the resources consumed by the Runtime Class used by the Pod. + +When this feature is enabled, Kubernetes will count the fixed amount of CPU and memory set in the configuration as used by the virtual machine and not by the containers running in the Pod. + +Pod Overhead is mandatory if you run Pods with Kata Containers that use [resources limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits). + +**Set cgroup driver**: + +To enable Pod Overhead feature you have to configure Kubelet with the appropriate cgroup driver, using the following configuration: + +`cgroupfs` works best: + +```yaml +kubelet_cgroup_driver: cgroupfs +``` + +... but when using `cgroups v2` (see ) you can use systemd as well: + +```yaml +kubelet_cgroup_driver: systemd +``` + +**Qemu hypervisor configuration**: + +The configuration for the Qemu hypervisor uses the following values: + +```yaml +kata_containers_qemu_overhead: true +kata_containers_qemu_overhead_fixed_cpu: 10m +kata_containers_qemu_overhead_fixed_memory: 290Mi +``` + +### Optional : Select Kata Containers version + +Optionally you can select the Kata Containers release version to be installed. The available releases are published in [GitHub](https://github.com/kata-containers/kata-containers/releases). + +```yaml +kata_containers_version: 2.2.2 +``` + +### Optional : Debug + +Debug is disabled by default for all the components of Kata Containers. You can change this behaviour with the following configuration: + +```yaml +kata_containers_qemu_debug: 'false' +``` diff --git a/XTesting/kubespray/docs/kube-ovn.md b/XTesting/kubespray/docs/kube-ovn.md new file mode 100644 index 0000000..3ddc270 --- /dev/null +++ b/XTesting/kubespray/docs/kube-ovn.md @@ -0,0 +1,55 @@ +# Kube-OVN + +Kube-OVN integrates the OVN-based Network Virtualization with Kubernetes. It offers an advanced Container Network Fabric for Enterprises. + +For more information please check [Kube-OVN documentation](https://github.com/alauda/kube-ovn) + +**Warning:** Kernel version (`cat /proc/version`) needs to be different than `3.10.0-862` or kube-ovn won't start and will print this message: + +```bash +kernel version 3.10.0-862 has a nat related bug that will affect ovs function, please update to a version greater than 3.10.0-898 +``` + +## How to use it + +Enable kube-ovn in `group_vars/k8s_cluster/k8s_cluster.yml` + +```yml +... +kube_network_plugin: kube-ovn +... +``` + +## Verifying kube-ovn install + +Kube-OVN run ovn and controller in `kube-ovn` namespace + +* Check the status of kube-ovn pods + +```ShellSession +# From the CLI +kubectl get pod -n kube-ovn + +# Output +NAME READY STATUS RESTARTS AGE +kube-ovn-cni-49lsm 1/1 Running 0 2d20h +kube-ovn-cni-9db8f 1/1 Running 0 2d20h +kube-ovn-cni-wftdk 1/1 Running 0 2d20h +kube-ovn-controller-68d7bb48bd-7tnvg 1/1 Running 0 2d21h +ovn-central-6675dbb7d9-d7z8m 1/1 Running 0 4d16h +ovs-ovn-hqn8p 1/1 Running 0 4d16h +ovs-ovn-hvpl8 1/1 Running 0 4d16h +ovs-ovn-r5frh 1/1 Running 0 4d16h +``` + +* Check the default and node subnet + +```ShellSession +# From the CLI +kubectl get subnet + +# Output +NAME PROTOCOL CIDR PRIVATE NAT +join IPv4 100.64.0.0/16 false false +ovn-default IPv4 10.16.0.0/16 false true +``` diff --git a/XTesting/kubespray/docs/kube-router.md b/XTesting/kubespray/docs/kube-router.md new file mode 100644 index 0000000..6a32834 --- /dev/null +++ b/XTesting/kubespray/docs/kube-router.md @@ -0,0 +1,79 @@ +# Kube-router + +Kube-router is a L3 CNI provider, as such it will setup IPv4 routing between +nodes to provide Pods' networks reachability. + +See [kube-router documentation](https://www.kube-router.io/). + +## Verifying kube-router install + +Kube-router runs its pods as a `DaemonSet` in the `kube-system` namespace: + +* Check the status of kube-router pods + +```ShellSession +# From the CLI +kubectl get pod --namespace=kube-system -l k8s-app=kube-router -owide + +# output +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE +kube-router-4f679 1/1 Running 0 2d 192.168.186.4 mykube-k8s-node-nf-2 +kube-router-5slf8 1/1 Running 0 2d 192.168.186.11 mykube-k8s-node-nf-3 +kube-router-lb6k2 1/1 Running 0 20h 192.168.186.14 mykube-k8s-node-nf-6 +kube-router-rzvrb 1/1 Running 0 20h 192.168.186.17 mykube-k8s-node-nf-4 +kube-router-v6n56 1/1 Running 0 2d 192.168.186.6 mykube-k8s-node-nf-1 +kube-router-wwhg8 1/1 Running 0 20h 192.168.186.16 mykube-k8s-node-nf-5 +kube-router-x2xs7 1/1 Running 0 2d 192.168.186.10 mykube-k8s-master-1 +``` + +* Peek at kube-router container logs: + +```ShellSession +# From the CLI +kubectl logs --namespace=kube-system -l k8s-app=kube-router | grep Peer.Up + +# output +time="2018-09-17T16:47:14Z" level=info msg="Peer Up" Key=192.168.186.6 State=BGP_FSM_OPENCONFIRM Topic=Peer +time="2018-09-17T16:47:16Z" level=info msg="Peer Up" Key=192.168.186.11 State=BGP_FSM_OPENCONFIRM Topic=Peer +time="2018-09-17T16:47:46Z" level=info msg="Peer Up" Key=192.168.186.10 State=BGP_FSM_OPENCONFIRM Topic=Peer +time="2018-09-18T19:12:24Z" level=info msg="Peer Up" Key=192.168.186.14 State=BGP_FSM_OPENCONFIRM Topic=Peer +time="2018-09-18T19:12:28Z" level=info msg="Peer Up" Key=192.168.186.17 State=BGP_FSM_OPENCONFIRM Topic=Peer +time="2018-09-18T19:12:38Z" level=info msg="Peer Up" Key=192.168.186.16 State=BGP_FSM_OPENCONFIRM Topic=Peer +[...] +``` + +## Gathering kube-router state + +Kube-router Pods come bundled with a "Pod Toolbox" which provides very +useful internal state views for: + +* IPVS: via `ipvsadm` +* BGP peering and routing info: via `gobgp` + +You need to `kubectl exec -it ...` into a kube-router container to use these, see + for details. + +## Kube-router configuration + +You can change the default configuration by overriding `kube_router_...` variables +(as found at `roles/network_plugin/kube-router/defaults/main.yml`), +these are named to follow `kube-router` command-line options as per +. + +## Advanced BGP Capabilities + + + +If you have other networking devices or SDN systems that talk BGP, kube-router will fit in perfectly. +From a simple full node-to-node mesh to per-node peering configurations, most routing needs can be attained. +The configuration is Kubernetes native (annotations) just like the rest of kube-router. + +For more details please refer to the + +Next options will set up annotations for kube-router, using `kubectl annotate` command. + +```yml +kube_router_annotations_master: [] +kube_router_annotations_node: [] +kube_router_annotations_all: [] +``` diff --git a/XTesting/kubespray/docs/kube-vip.md b/XTesting/kubespray/docs/kube-vip.md new file mode 100644 index 0000000..17e4fb1 --- /dev/null +++ b/XTesting/kubespray/docs/kube-vip.md @@ -0,0 +1,52 @@ +# kube-vip + +kube-vip provides Kubernetes clusters with a virtual IP and load balancer for both the control plane (for building a highly-available cluster) and Kubernetes Services of type LoadBalancer without relying on any external hardware or software. + +## Install + +You have to explicitly enable the kube-vip extension: + +```yaml +kube_vip_enabled: true +``` + +You also need to enable +[kube-vip as HA, Load Balancer, or both](https://kube-vip.io/docs/installation/static/#kube-vip-as-ha-load-balancer-or-both): + +```yaml +# HA for control-plane, requires a VIP +kube_vip_controlplane_enabled: true +kube_vip_address: 10.42.42.42 +loadbalancer_apiserver: + address: "{{ kube_vip_address }}" + port: 6443 +# kube_vip_interface: ens160 + +# LoadBalancer for services +kube_vip_services_enabled: false +# kube_vip_services_interface: ens320 +``` + +> Note: When using `kube-vip` as LoadBalancer for services, +[additional manual steps](https://kube-vip.io/docs/usage/cloud-provider/) +are needed. + +If using [ARP mode](https://kube-vip.io/docs/installation/static/#arp) : + +```yaml +kube_vip_arp_enabled: true +``` + +If using [BGP mode](https://kube-vip.io/docs/installation/static/#bgp) : + +```yaml +kube_vip_bgp_enabled: true +kube_vip_local_as: 65000 +kube_vip_bgp_routerid: 192.168.0.2 +kube_vip_bgppeers: +- 192.168.0.10:65000::false +- 192.168.0.11:65000::false +# kube_vip_bgp_peeraddress: +# kube_vip_bgp_peerpass: +# kube_vip_bgp_peeras: +``` diff --git a/XTesting/kubespray/docs/kubernetes-apps/cephfs_provisioner.md b/XTesting/kubespray/docs/kubernetes-apps/cephfs_provisioner.md new file mode 100644 index 0000000..c5c18db --- /dev/null +++ b/XTesting/kubespray/docs/kubernetes-apps/cephfs_provisioner.md @@ -0,0 +1,73 @@ +# CephFS Volume Provisioner for Kubernetes 1.5+ + +[![Docker Repository on Quay](https://quay.io/repository/external_storage/cephfs-provisioner/status "Docker Repository on Quay")](https://quay.io/repository/external_storage/cephfs-provisioner) + +Using Ceph volume client + +## Development + +Compile the provisioner + +``` console +make +``` + +Make the container image and push to the registry + +``` console +make push +``` + +## Test instruction + +- Start Kubernetes local cluster + +See [Kubernetes](https://kubernetes.io/) + +- Create a Ceph admin secret + +``` bash +ceph auth get client.admin 2>&1 |grep "key = " |awk '{print $3'} |xargs echo -n > /tmp/secret +kubectl create ns cephfs +kubectl create secret generic ceph-secret-admin --from-file=/tmp/secret --namespace=cephfs +``` + +- Start CephFS provisioner + +The following example uses `cephfs-provisioner-1` as the identity for the instance and assumes kubeconfig is at `/root/.kube`. The identity should remain the same if the provisioner restarts. If there are multiple provisioners, each should have a different identity. + +``` bash +docker run -ti -v /root/.kube:/kube -v /var/run/kubernetes:/var/run/kubernetes --privileged --net=host cephfs-provisioner /usr/local/bin/cephfs-provisioner -master=http://127.0.0.1:8080 -kubeconfig=/kube/config -id=cephfs-provisioner-1 +``` + +Alternatively, deploy it in kubernetes, see [deployment](deploy/README.md). + +- Create a CephFS Storage Class + +Replace Ceph monitor's IP in [example class](example/class.yaml) with your own and create storage class: + +``` bash +kubectl create -f example/class.yaml +``` + +- Create a claim + +``` bash +kubectl create -f example/claim.yaml +``` + +- Create a Pod using the claim + +``` bash +kubectl create -f example/test-pod.yaml +``` + +## Known limitations + +- Kernel CephFS doesn't work with SELinux, setting SELinux label in Pod's securityContext will not work. +- Kernel CephFS doesn't support quota or capacity, capacity requested by PVC is not enforced or validated. +- Currently each Ceph user created by the provisioner has `allow r` MDS cap to permit CephFS mount. + +## Acknowledgement + +Inspired by CephFS Manila provisioner and conversation with John Spray diff --git a/XTesting/kubespray/docs/kubernetes-apps/local_volume_provisioner.md b/XTesting/kubespray/docs/kubernetes-apps/local_volume_provisioner.md new file mode 100644 index 0000000..283969d --- /dev/null +++ b/XTesting/kubespray/docs/kubernetes-apps/local_volume_provisioner.md @@ -0,0 +1,122 @@ +# Local Storage Provisioner + +The [local storage provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume) +is NOT a dynamic storage provisioner as you would +expect from a cloud provider. Instead, it simply creates PersistentVolumes for +all mounts under the host_dir of the specified storage class. +These storage classes are specified in the `local_volume_provisioner_storage_classes` nested dictionary. +Example: + +```yaml +local_volume_provisioner_storage_classes: + local-storage: + host_dir: /mnt/disks + mount_dir: /mnt/disks + fast-disks: + host_dir: /mnt/fast-disks + mount_dir: /mnt/fast-disks + block_cleaner_command: + - "/scripts/shred.sh" + - "2" + volume_mode: Filesystem + fs_type: ext4 +``` + +For each key in `local_volume_provisioner_storage_classes` a storageClass with the +same name is created. The subkeys of each storage class are converted to camelCase and added +as attributes to the storageClass. +The result of the above example is: + +```yaml +data: + storageClassMap: | + local-storage: + hostDir: /mnt/disks + mountDir: /mnt/disks + fast-disks: + hostDir: /mnt/fast-disks + mountDir: /mnt/fast-disks + blockCleanerCommand: + - "/scripts/shred.sh" + - "2" + volumeMode: Filesystem + fsType: ext4 +``` + +The default StorageClass is local-storage on /mnt/disks, +the rest of this doc will use that path as an example. + +## Examples to create local storage volumes + +1. tmpfs method: + +``` bash +for vol in vol1 vol2 vol3; do +mkdir /mnt/disks/$vol +mount -t tmpfs -o size=5G $vol /mnt/disks/$vol +done +``` + +The tmpfs method is not recommended for production because the mount is not +persistent and data will be deleted on reboot. + +1. Mount physical disks + +``` bash +mkdir /mnt/disks/ssd1 +mount /dev/vdb1 /mnt/disks/ssd1 +``` + +Physical disks are recommended for production environments because it offers +complete isolation in terms of I/O and capacity. + +1. Mount unpartitioned physical devices + +``` bash +for disk in /dev/sdc /dev/sdd /dev/sde; do + ln -s $disk /mnt/disks +done +``` + +This saves time of precreating filesystems. Note that your storageclass must have +volume_mode set to "Filesystem" and fs_type defined. If either is not set, the +disk will be added as a raw block device. + +1. File-backed sparsefile method + +``` bash +truncate /mnt/disks/disk5 --size 2G +mkfs.ext4 /mnt/disks/disk5 +mkdir /mnt/disks/vol5 +mount /mnt/disks/disk5 /mnt/disks/vol5 +``` + +If you have a development environment and only one disk, this is the best way +to limit the quota of persistent volumes. + +1. Simple directories + +In a development environment using `mount --bind` works also, but there is no capacity +management. + +1. Block volumeMode PVs + +Create a symbolic link under discovery directory to the block device on the node. To use +raw block devices in pods, volume_type should be set to "Block". + +## Usage notes + +Beta PV.NodeAffinity field is used by default. If running against an older K8s +version, the useAlphaAPI flag must be set in the configMap. + +The volume provisioner cannot calculate volume sizes correctly, so you should +delete the daemonset pod on the relevant host after creating volumes. The pod +will be recreated and read the size correctly. + +Make sure to make any mounts persist via /etc/fstab or with systemd mounts (for +Flatcar Container Linux). Pods with persistent volume claims will not be +able to start if the mounts become unavailable. + +## Further reading + +Refer to the upstream docs here: diff --git a/XTesting/kubespray/docs/kubernetes-apps/rbd_provisioner.md b/XTesting/kubespray/docs/kubernetes-apps/rbd_provisioner.md new file mode 100644 index 0000000..dcb883d --- /dev/null +++ b/XTesting/kubespray/docs/kubernetes-apps/rbd_provisioner.md @@ -0,0 +1,79 @@ +# RBD Volume Provisioner for Kubernetes 1.5+ + +`rbd-provisioner` is an out-of-tree dynamic provisioner for Kubernetes 1.5+. +You can use it quickly & easily deploy ceph RBD storage that works almost +anywhere. + +It works just like in-tree dynamic provisioner. For more information on how +dynamic provisioning works, see [the docs](http://kubernetes.io/docs/user-guide/persistent-volumes/) +or [this blog post](http://blog.kubernetes.io/2016/10/dynamic-provisioning-and-storage-in-kubernetes.html). + +## Development + +Compile the provisioner + +```console +make +``` + +Make the container image and push to the registry + +```console +make push +``` + +## Test instruction + +* Start Kubernetes local cluster + +See [Kubernetes](https://kubernetes.io/). + +* Create a Ceph admin secret + +```bash +ceph auth get client.admin 2>&1 |grep "key = " |awk '{print $3'} |xargs echo -n > /tmp/secret +kubectl create secret generic ceph-admin-secret --from-file=/tmp/secret --namespace=kube-system +``` + +* Create a Ceph pool and a user secret + +```bash +ceph osd pool create kube 8 8 +ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=kube' +ceph auth get-key client.kube > /tmp/secret +kubectl create secret generic ceph-secret --from-file=/tmp/secret --namespace=kube-system +``` + +* Start RBD provisioner + +The following example uses `rbd-provisioner-1` as the identity for the instance and assumes kubeconfig is at `/root/.kube`. The identity should remain the same if the provisioner restarts. If there are multiple provisioners, each should have a different identity. + +```bash +docker run -ti -v /root/.kube:/kube -v /var/run/kubernetes:/var/run/kubernetes --privileged --net=host quay.io/external_storage/rbd-provisioner /usr/local/bin/rbd-provisioner -master=http://127.0.0.1:8080 -kubeconfig=/kube/config -id=rbd-provisioner-1 +``` + +Alternatively, deploy it in kubernetes, see [deployment](deploy/README.md). + +* Create a RBD Storage Class + +Replace Ceph monitor's IP in [examples/class.yaml](examples/class.yaml) with your own and create storage class: + +```bash +kubectl create -f examples/class.yaml +``` + +* Create a claim + +```bash +kubectl create -f examples/claim.yaml +``` + +* Create a Pod using the claim + +```bash +kubectl create -f examples/test-pod.yaml +``` + +## Acknowledgements + +* This provisioner is extracted from [Kubernetes core](https://github.com/kubernetes/kubernetes) with some modifications for this project. diff --git a/XTesting/kubespray/docs/kubernetes-apps/registry.md b/XTesting/kubespray/docs/kubernetes-apps/registry.md new file mode 100644 index 0000000..6ca8140 --- /dev/null +++ b/XTesting/kubespray/docs/kubernetes-apps/registry.md @@ -0,0 +1,254 @@ +# Private Docker Registry in Kubernetes + +Kubernetes offers an optional private Docker registry addon, which you can turn +on when you bring up a cluster or install later. This gives you a place to +store truly private Docker images for your cluster. + +## How it works + +The private registry runs as a `Pod` in your cluster. It does not currently +support SSL or authentication, which triggers Docker's "insecure registry" +logic. To work around this, we run a proxy on each node in the cluster, +exposing a port onto the node (via a hostPort), which Docker accepts as +"secure", since it is accessed by `localhost`. + +## Turning it on + +Some cluster installs (e.g. GCE) support this as a cluster-birth flag. The +`ENABLE_CLUSTER_REGISTRY` variable in `cluster/gce/config-default.sh` governs +whether the registry is run or not. To set this flag, you can specify +`KUBE_ENABLE_CLUSTER_REGISTRY=true` when running `kube-up.sh`. If your cluster +does not include this flag, the following steps should work. Note that some of +this is cloud-provider specific, so you may have to customize it a bit. + +### Make some storage + +The primary job of the registry is to store data. To do that we have to decide +where to store it. For cloud environments that have networked storage, we can +use Kubernetes's `PersistentVolume` abstraction. The following template is +expanded by `salt` in the GCE cluster turnup, but can easily be adapted to +other situations: + + +``` yaml +kind: PersistentVolume +apiVersion: v1 +metadata: + name: kube-system-kube-registry-pv +spec: +{% if pillar.get('cluster_registry_disk_type', '') == 'gce' %} + capacity: + storage: {{ pillar['cluster_registry_disk_size'] }} + accessModes: + - ReadWriteOnce + gcePersistentDisk: + pdName: "{{ pillar['cluster_registry_disk_name'] }}" + fsType: "ext4" +{% endif %} +``` + + +If, for example, you wanted to use NFS you would just need to change the +`gcePersistentDisk` block to `nfs`. See +[here](https://kubernetes.io/docs/concepts/storage/volumes/) for more details on volumes. + +Note that in any case, the storage (in the case the GCE PersistentDisk) must be +created independently - this is not something Kubernetes manages for you (yet). + +### I don't want or don't have persistent storage + +If you are running in a place that doesn't have networked storage, or if you +just want to kick the tires on this without committing to it, you can easily +adapt the `ReplicationController` specification below to use a simple +`emptyDir` volume instead of a `persistentVolumeClaim`. + +## Claim the storage + +Now that the Kubernetes cluster knows that some storage exists, you can put a +claim on that storage. As with the `PersistentVolume` above, you can start +with the `salt` template: + + +``` yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: kube-registry-pvc + namespace: kube-system +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ pillar['cluster_registry_disk_size'] }} +``` + + +This tells Kubernetes that you want to use storage, and the `PersistentVolume` +you created before will be bound to this claim (unless you have other +`PersistentVolumes` in which case those might get bound instead). This claim +gives you the right to use this storage until you release the claim. + +## Run the registry + +Now we can run a Docker registry: + + +``` yaml +apiVersion: v1 +kind: ReplicationController +metadata: + name: kube-registry-v0 + namespace: kube-system + labels: + k8s-app: registry + version: v0 +spec: + replicas: 1 + selector: + k8s-app: registry + version: v0 + template: + metadata: + labels: + k8s-app: registry + version: v0 + spec: + containers: + - name: registry + image: registry:2 + resources: + limits: + cpu: 100m + memory: 100Mi + env: + - name: REGISTRY_HTTP_ADDR + value: :5000 + - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY + value: /var/lib/registry + volumeMounts: + - name: image-store + mountPath: /var/lib/registry + ports: + - containerPort: 5000 + name: registry + protocol: TCP + volumes: + - name: image-store + persistentVolumeClaim: + claimName: kube-registry-pvc +``` + + +*Note:* that if you have set multiple replicas, make sure your CSI driver has support for the `ReadWriteMany` accessMode. + +## Expose the registry in the cluster + +Now that we have a registry `Pod` running, we can expose it as a Service: + + +``` yaml +apiVersion: v1 +kind: Service +metadata: + name: kube-registry + namespace: kube-system + labels: + k8s-app: registry + kubernetes.io/name: "KubeRegistry" +spec: + selector: + k8s-app: registry + ports: + - name: registry + port: 5000 + protocol: TCP +``` + + +## Expose the registry on each node + +Now that we have a running `Service`, we need to expose it onto each Kubernetes +`Node` so that Docker will see it as `localhost`. We can load a `Pod` on every +node by creating following daemonset. + + +``` yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: kube-registry-proxy + namespace: kube-system + labels: + k8s-app: kube-registry-proxy + version: v0.4 +spec: + template: + metadata: + labels: + k8s-app: kube-registry-proxy + kubernetes.io/name: "kube-registry-proxy" + version: v0.4 + spec: + containers: + - name: kube-registry-proxy + image: gcr.io/google_containers/kube-registry-proxy:0.4 + resources: + limits: + cpu: 100m + memory: 50Mi + env: + - name: REGISTRY_HOST + value: kube-registry.kube-system.svc.cluster.local + - name: REGISTRY_PORT + value: "5000" + ports: + - name: registry + containerPort: 80 + hostPort: 5000 +``` + + +When modifying replication-controller, service and daemon-set definitions, take +care to ensure *unique* identifiers for the rc-svc couple and the daemon-set. +Failing to do so will have register the localhost proxy daemon-sets to the +upstream service. As a result they will then try to proxy themselves, which +will, for obvious reasons, not work. + +This ensures that port 5000 on each node is directed to the registry `Service`. +You should be able to verify that it is running by hitting port 5000 with a web +browser and getting a 404 error: + +``` console +$ curl localhost:5000 +404 page not found +``` + +## Using the registry + +To use an image hosted by this registry, simply say this in your `Pod`'s +`spec.containers[].image` field: + +``` yaml + image: localhost:5000/user/container +``` + +Before you can use the registry, you have to be able to get images into it, +though. If you are building an image on your Kubernetes `Node`, you can spell +out `localhost:5000` when you build and push. More likely, though, you are +building locally and want to push to your cluster. + +You can use `kubectl` to set up a port-forward from your local node to a +running Pod: + +``` console +$ POD=$(kubectl get pods --namespace kube-system -l k8s-app=registry \ + -o template --template '{{range .items}}{{.metadata.name}} {{.status.phase}}{{"\n"}}{{end}}' \ + | grep Running | head -1 | cut -f1 -d' ') + +$ kubectl port-forward --namespace kube-system $POD 5000:5000 & +``` + +Now you can build and push images on your local computer as +`localhost:5000/yourname/container` and those images will be available inside +your kubernetes cluster with the same name. diff --git a/XTesting/kubespray/docs/kubernetes-reliability.md b/XTesting/kubespray/docs/kubernetes-reliability.md new file mode 100644 index 0000000..149ec84 --- /dev/null +++ b/XTesting/kubespray/docs/kubernetes-reliability.md @@ -0,0 +1,108 @@ +# Overview + +Distributed system such as Kubernetes are designed to be resilient to the +failures. More details about Kubernetes High-Availability (HA) may be found at +[Building High-Availability Clusters](https://kubernetes.io/docs/admin/high-availability/) + +To have a simple view the most of parts of HA will be skipped to describe +Kubelet<->Controller Manager communication only. + +By default the normal behavior looks like: + +1. Kubelet updates it status to apiserver periodically, as specified by + `--node-status-update-frequency`. The default value is **10s**. + +2. Kubernetes controller manager checks the statuses of Kubelet every + `–-node-monitor-period`. The default value is **5s**. + +3. In case the status is updated within `--node-monitor-grace-period` of time, + Kubernetes controller manager considers healthy status of Kubelet. The + default value is **40s**. + +> Kubernetes controller manager and Kubelet work asynchronously. It means that +> the delay may include any network latency, API Server latency, etcd latency, +> latency caused by load on one's control plane nodes and so on. So if +> `--node-status-update-frequency` is set to 5s in reality it may appear in +> etcd in 6-7 seconds or even longer when etcd cannot commit data to quorum +> nodes. + +## Failure + +Kubelet will try to make `nodeStatusUpdateRetry` post attempts. Currently +`nodeStatusUpdateRetry` is constantly set to 5 in +[kubelet.go](https://github.com/kubernetes/kubernetes/blob/release-1.5/pkg/kubelet/kubelet.go#L102). + +Kubelet will try to update the status in +[tryUpdateNodeStatus](https://github.com/kubernetes/kubernetes/blob/release-1.5/pkg/kubelet/kubelet_node_status.go#L312) +function. Kubelet uses `http.Client()` Golang method, but has no specified +timeout. Thus there may be some glitches when API Server is overloaded while +TCP connection is established. + +So, there will be `nodeStatusUpdateRetry` * `--node-status-update-frequency` +attempts to set a status of node. + +At the same time Kubernetes controller manager will try to check +`nodeStatusUpdateRetry` times every `--node-monitor-period` of time. After +`--node-monitor-grace-period` it will consider node unhealthy. Pods will then be rescheduled based on the +[Taint Based Eviction](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions) +timers that you set on them individually, or the API Server's global timers:`--default-not-ready-toleration-seconds` & +``--default-unreachable-toleration-seconds``. + +Kube proxy has a watcher over API. Once pods are evicted, Kube proxy will +notice and will update iptables of the node. It will remove endpoints from +services so pods from failed node won't be accessible anymore. + +## Recommendations for different cases + +## Fast Update and Fast Reaction + +If `--node-status-update-frequency` is set to **4s** (10s is default). +`--node-monitor-period` to **2s** (5s is default). +`--node-monitor-grace-period` to **20s** (40s is default). +`--default-not-ready-toleration-seconds` and ``--default-unreachable-toleration-seconds`` are set to **30** +(300 seconds is default). Note these two values should be integers representing the number of seconds ("s" or "m" for +seconds\minutes are not specified). + +In such scenario, pods will be evicted in **50s** because the node will be +considered as down after **20s**, and `--default-not-ready-toleration-seconds` or +``--default-unreachable-toleration-seconds`` occur after **30s** more. However, this scenario creates an overhead on +etcd as every node will try to update its status every 2 seconds. + +If the environment has 1000 nodes, there will be 15000 node updates per +minute which may require large etcd containers or even dedicated nodes for etcd. + +> If we calculate the number of tries, the division will give 5, but in reality +> it will be from 3 to 5 with `nodeStatusUpdateRetry` attempts of each try. The +> total number of attempts will vary from 15 to 25 due to latency of all +> components. + +## Medium Update and Average Reaction + +Let's set `--node-status-update-frequency` to **20s** +`--node-monitor-grace-period` to **2m** and `--default-not-ready-toleration-seconds` and +``--default-unreachable-toleration-seconds`` to **60**. +In that case, Kubelet will try to update status every 20s. So, it will be 6 * 5 += 30 attempts before Kubernetes controller manager will consider unhealthy +status of node. After 1m it will evict all pods. The total time will be 3m +before eviction process. + +Such scenario is good for medium environments as 1000 nodes will require 3000 +etcd updates per minute. + +> In reality, there will be from 4 to 6 node update tries. The total number of +> of attempts will vary from 20 to 30. + +## Low Update and Slow reaction + +Let's set `--node-status-update-frequency` to **1m**. +`--node-monitor-grace-period` will set to **5m** and `--default-not-ready-toleration-seconds` and +``--default-unreachable-toleration-seconds`` to **60**. In this scenario, every kubelet will try to update the status +every minute. There will be 5 * 5 = 25 attempts before unhealthy status. After 5m, +Kubernetes controller manager will set unhealthy status. This means that pods +will be evicted after 1m after being marked unhealthy. (6m in total). + +> In reality, there will be from 3 to 5 tries. The total number of attempt will +> vary from 15 to 25. + +There can be different combinations such as Fast Update with Slow reaction to +satisfy specific cases. diff --git a/XTesting/kubespray/docs/kylinlinux.md b/XTesting/kubespray/docs/kylinlinux.md new file mode 100644 index 0000000..87dceff --- /dev/null +++ b/XTesting/kubespray/docs/kylinlinux.md @@ -0,0 +1,11 @@ +# Kylin Linux + +Kylin Linux is supported with docker and containerd runtimes. + +**Note:** that Kylin Linux is not currently covered in kubespray CI and +support for it is currently considered experimental. + +At present, only `Kylin Linux Advanced Server V10 (Sword)` has been adapted, which can support the deployment of aarch64 and x86_64 platforms. + +There are no special considerations for using Kylin Linux as the target OS +for Kubespray deployments. diff --git a/XTesting/kubespray/docs/large-deployments.md b/XTesting/kubespray/docs/large-deployments.md new file mode 100644 index 0000000..7acbff3 --- /dev/null +++ b/XTesting/kubespray/docs/large-deployments.md @@ -0,0 +1,52 @@ +Large deployments of K8s +======================== + +For a large scaled deployments, consider the following configuration changes: + +* Tune [ansible settings](https://docs.ansible.com/ansible/latest/intro_configuration.html) + for `forks` and `timeout` vars to fit large numbers of nodes being deployed. + +* Override containers' `foo_image_repo` vars to point to intranet registry. + +* Override the ``download_run_once: true`` and/or ``download_localhost: true``. + See download modes for details. + +* Adjust the `retry_stagger` global var as appropriate. It should provide sane + load on a delegate (the first K8s control plane node) then retrying failed + push or download operations. + +* Tune parameters for DNS related applications + Those are ``dns_replicas``, ``dns_cpu_limit``, + ``dns_cpu_requests``, ``dns_memory_limit``, ``dns_memory_requests``. + Please note that limits must always be greater than or equal to requests. + +* Tune CPU/memory limits and requests. Those are located in roles' defaults + and named like ``foo_memory_limit``, ``foo_memory_requests`` and + ``foo_cpu_limit``, ``foo_cpu_requests``. Note that 'Mi' memory units for K8s + will be submitted as 'M', if applied for ``docker run``, and cpu K8s units + will end up with the 'm' skipped for docker as well. This is required as + docker does not understand k8s units well. + +* Tune ``kubelet_status_update_frequency`` to increase reliability of kubelet. + ``kube_controller_node_monitor_grace_period``, + ``kube_controller_node_monitor_period``, + ``kube_apiserver_pod_eviction_not_ready_timeout_seconds`` & + ``kube_apiserver_pod_eviction_unreachable_timeout_seconds`` for better Kubernetes reliability. + Check out [Kubernetes Reliability](/docs/kubernetes-reliability.md) + +* Tune network prefix sizes. Those are ``kube_network_node_prefix``, + ``kube_service_addresses`` and ``kube_pods_subnet``. + +* Add calico_rr nodes if you are deploying with Calico or Canal. Nodes recover + from host/network interruption much quicker with calico_rr. + +* Check out the + [Inventory](/docs/getting-started.md#building-your-own-inventory) + section of the Getting started guide for tips on creating a large scale + Ansible inventory. + +* Override the ``etcd_events_cluster_setup: true`` store events in a separate + dedicated etcd instance. + +For example, when deploying 200 nodes, you may want to run ansible with +``--forks=50``, ``--timeout=600`` and define the ``retry_stagger: 60``. diff --git a/XTesting/kubespray/docs/macvlan.md b/XTesting/kubespray/docs/macvlan.md new file mode 100644 index 0000000..2d0de07 --- /dev/null +++ b/XTesting/kubespray/docs/macvlan.md @@ -0,0 +1,41 @@ +# Macvlan + +## How to use it + +* Enable macvlan in `group_vars/k8s_cluster/k8s_cluster.yml` + +```yml +... +kube_network_plugin: macvlan +... +``` + +* Adjust the `macvlan_interface` in `group_vars/k8s_cluster/k8s-net-macvlan.yml` or by host in the `host.yml` file: + +```yml +all: + hosts: + node1: + ip: 10.2.2.1 + access_ip: 10.2.2.1 + ansible_host: 10.2.2.1 + macvlan_interface: ens5 +``` + +## Issue encountered + +* Service DNS + +reply from unexpected source: + +add `kube_proxy_masquerade_all: true` in `group_vars/all/all.yml` + +* Disable nodelocaldns + +The nodelocal dns IP is not reacheable. + +Disable it in `sample/group_vars/k8s_cluster/k8s_cluster.yml` + +```yml +enable_nodelocaldns: false +``` diff --git a/XTesting/kubespray/docs/metallb.md b/XTesting/kubespray/docs/metallb.md new file mode 100644 index 0000000..7121f1e --- /dev/null +++ b/XTesting/kubespray/docs/metallb.md @@ -0,0 +1,106 @@ +# MetalLB + +MetalLB hooks into your Kubernetes cluster, and provides a network load-balancer implementation. +It allows you to create Kubernetes services of type "LoadBalancer" in clusters that don't run on a cloud provider, and thus cannot simply hook into 3rd party products to provide load-balancers. +The default operationg mode of MetalLB is in ["Layer2"](https://metallb.universe.tf/concepts/layer2/) but it can also operate in ["BGP"](https://metallb.universe.tf/concepts/bgp/) mode. + +## Prerequisites + +You have to configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface for MetalLB to work. + +```yaml +kube_proxy_strict_arp: true +``` + +## Install + +You have to explicitly enable the MetalLB extension and set an IP address range from which to allocate LoadBalancer IPs. + +```yaml +metallb_enabled: true +metallb_speaker_enabled: true +metallb_avoid_buggy_ips: true +metallb_ip_range: + - 10.5.0.0/16 +``` + +By default only the MetalLB BGP speaker is allowed to run on control plane nodes. If you have a single node cluster or a cluster where control plane are also worker nodes you may need to enable tolerations for the MetalLB controller: + +```yaml +metallb_controller_tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Equal" + value: "" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Equal" + value: "" + effect: "NoSchedule" +``` + +## BGP Mode + +When operating in BGP Mode MetalLB needs to have defined upstream peers: + +```yaml +metallb_protocol: bgp +metallb_ip_range: + - 10.5.0.0/16 +metallb_peers: + - peer_address: 192.0.2.1 + peer_asn: 64512 + my_asn: 4200000000 + - peer_address: 192.0.2.2 + peer_asn: 64513 + my_asn: 4200000000 +``` + +Some upstream BGP peers may require password authentication: + +```yaml +metallb_protocol: bgp +metallb_ip_range: + - 10.5.0.0/16 +metallb_peers: + - peer_address: 192.0.2.1 + peer_asn: 64512 + my_asn: 4200000000 + password: "changeme" +``` + +When using calico >= 3.18 you can replace MetalLB speaker by calico Service LoadBalancer IP advertisement. +See [calico service IPs advertisement documentation](https://docs.projectcalico.org/archive/v3.18/networking/advertise-service-ips#advertise-service-load-balancer-ip-addresses). +In this scenarion you should disable the MetalLB speaker and configure the `calico_advertise_service_loadbalancer_ips` to match your `metallb_ip_range` + +```yaml +metallb_speaker_enabled: false +metallb_avoid_buggy_ips: true +metallb_ip_range: + - 10.5.0.0/16 +calico_advertise_service_loadbalancer_ips: "{{ metallb_ip_range }}" +``` + +If you have additional loadbalancer IP pool in `metallb_additional_address_pools` , ensure to add them to the list. + +```yaml +metallb_speaker_enabled: false +metallb_ip_range: + - 10.5.0.0/16 +metallb_additional_address_pools: + kube_service_pool_1: + ip_range: + - 10.6.0.0/16 + protocol: "bgp" + auto_assign: false + avoid_buggy_ips: true + kube_service_pool_2: + ip_range: + - 10.10.0.0/16 + protocol: "bgp" + auto_assign: false + avoid_buggy_ips: true +calico_advertise_service_loadbalancer_ips: + - 10.5.0.0/16 + - 10.6.0.0/16 + - 10.10.0.0/16 +``` diff --git a/XTesting/kubespray/docs/mitogen.md b/XTesting/kubespray/docs/mitogen.md new file mode 100644 index 0000000..422d220 --- /dev/null +++ b/XTesting/kubespray/docs/mitogen.md @@ -0,0 +1,30 @@ +# Mitogen + +*Warning:* Mitogen support is now deprecated in kubespray due to upstream not releasing an updated version to support ansible 4.x (ansible-base 2.11.x) and above. The CI support has been stripped for mitogen and we are no longer validating any support or regressions for it. The supporting mitogen install playbook and integration documentation will be removed in a later version. + +[Mitogen for Ansible](https://mitogen.networkgenomics.com/ansible_detailed.html) allow a 1.25x - 7x speedup and a CPU usage reduction of at least 2x, depending on network conditions, modules executed, and time already spent by targets on useful work. Mitogen cannot improve a module once it is executing, it can only ensure the module executes as quickly as possible. + +## Install + +```ShellSession +ansible-playbook contrib/mitogen/mitogen.yml +``` + +The above playbook sets the ansible `strategy` and `strategy_plugins` in `ansible.cfg` but you can also enable them if you use your own `ansible.cfg` by setting the environment varialbles: + +```ShellSession +export ANSIBLE_STRATEGY=mitogen_linear +export ANSIBLE_STRATEGY_PLUGINS=plugins/mitogen/ansible_mitogen/plugins/strategy +``` + +... or `ansible.cfg` setup: + +```ini +[defaults] +strategy_plugins = plugins/mitogen/ansible_mitogen/plugins/strategy +strategy=mitogen_linear +``` + +## Limitation + +If you are experiencing problems, please see the [documentation](https://mitogen.networkgenomics.com/ansible_detailed.html#noteworthy-differences). diff --git a/XTesting/kubespray/docs/multus.md b/XTesting/kubespray/docs/multus.md new file mode 100644 index 0000000..fd3623d --- /dev/null +++ b/XTesting/kubespray/docs/multus.md @@ -0,0 +1,74 @@ +# Multus + +Multus is a meta CNI plugin that provides multiple network interface support to +pods. For each interface, Multus delegates CNI calls to secondary CNI plugins +such as Calico, macvlan, etc. + +See [multus documentation](https://github.com/intel/multus-cni). + +## Multus installation + +Since Multus itself does not implement networking, it requires a master plugin, which is specified through the variable `kube_network_plugin`. To enable Multus an additional variable `kube_network_plugin_multus` must be set to `true`. For example, + +```yml +kube_network_plugin: calico +kube_network_plugin_multus: true +``` + +will install Multus and Calico and configure Multus to use Calico as the primary network plugin. + +## Using Multus + +Once Multus is installed, you can create CNI configurations (as a CRD objects) for additional networks, in this case a macvlan CNI configuration is defined. You may replace the config field with any valid CNI configuration where the CNI binary is available on the nodes. + +```ShellSession +cat < diff --git a/XTesting/kubespray/docs/netcheck.md b/XTesting/kubespray/docs/netcheck.md new file mode 100644 index 0000000..6a1bf80 --- /dev/null +++ b/XTesting/kubespray/docs/netcheck.md @@ -0,0 +1,41 @@ +# Network Checker Application + +With the ``deploy_netchecker`` var enabled (defaults to false), Kubespray deploys a +Network Checker Application from the 3rd side `mirantis/k8s-netchecker` docker +images. It consists of the server and agents trying to reach the server by usual +for Kubernetes applications network connectivity meanings. Therefore, this +automatically verifies a pod to pod connectivity via the cluster IP and checks +if DNS resolve is functioning as well. + +The checks are run by agents on a periodic basis and cover standard and host network +pods as well. The history of performed checks may be found in the agents' application +logs. + +To get the most recent and cluster-wide network connectivity report, run from +any of the cluster nodes: + +```ShellSession +curl http://localhost:31081/api/v1/connectivity_check +``` + +Note that Kubespray does not invoke the check but only deploys the application, if +requested. + +There are related application specific variables: + +```yml +netchecker_port: 31081 +agent_report_interval: 15 +netcheck_namespace: default +``` + +Note that the application verifies DNS resolve for FQDNs comprising only the +combination of the ``netcheck_namespace.dns_domain`` vars, for example the +``netchecker-service.default.svc.cluster.local``. If you want to deploy the application +to the non default namespace, make sure as well to adjust the ``searchdomains`` var +so the resulting search domain records to contain that namespace, like: + +```yml +search: foospace.cluster.local default.cluster.local ... +nameserver: ... +``` diff --git a/XTesting/kubespray/docs/nodes.md b/XTesting/kubespray/docs/nodes.md new file mode 100644 index 0000000..2cd9e9a --- /dev/null +++ b/XTesting/kubespray/docs/nodes.md @@ -0,0 +1,182 @@ +# Adding/replacing a node + +Modified from [comments in #3471](https://github.com/kubernetes-sigs/kubespray/issues/3471#issuecomment-530036084) + +## Limitation: Removal of first kube_control_plane and etcd-master + +Currently you can't remove the first node in your kube_control_plane and etcd-master list. If you still want to remove this node you have to: + +### 1) Change order of current control planes + +Modify the order of your control plane list by pushing your first entry to any other position. E.g. if you want to remove `node-1` of the following example: + +```yaml + children: + kube_control_plane: + hosts: + node-1: + node-2: + node-3: + kube_node: + hosts: + node-1: + node-2: + node-3: + etcd: + hosts: + node-1: + node-2: + node-3: +``` + +change your inventory to: + +```yaml + children: + kube_control_plane: + hosts: + node-2: + node-3: + node-1: + kube_node: + hosts: + node-2: + node-3: + node-1: + etcd: + hosts: + node-2: + node-3: + node-1: +``` + +## 2) Upgrade the cluster + +run `upgrade-cluster.yml` or `cluster.yml`. Now you are good to go on with the removal. + +## Adding/replacing a worker node + +This should be the easiest. + +### 1) Add new node to the inventory + +### 2) Run `scale.yml` + +You can use `--limit=NODE_NAME` to limit Kubespray to avoid disturbing other nodes in the cluster. + +Before using `--limit` run playbook `facts.yml` without the limit to refresh facts cache for all nodes. + +### 3) Remove an old node with remove-node.yml + +With the old node still in the inventory, run `remove-node.yml`. You need to pass `-e node=NODE_NAME` to the playbook to limit the execution to the node being removed. + +If the node you want to remove is not online, you should add `reset_nodes=false` and `allow_ungraceful_removal=true` to your extra-vars: `-e node=NODE_NAME -e reset_nodes=false -e allow_ungraceful_removal=true`. +Use this flag even when you remove other types of nodes like a control plane or etcd nodes. + +### 4) Remove the node from the inventory + +That's it. + +## Adding/replacing a control plane node + +### 1) Run `cluster.yml` + +Append the new host to the inventory and run `cluster.yml`. You can NOT use `scale.yml` for that. + +### 2) Restart kube-system/nginx-proxy + +In all hosts, restart nginx-proxy pod. This pod is a local proxy for the apiserver. Kubespray will update its static config, but it needs to be restarted in order to reload. + +```sh +# run in every host +docker ps | grep k8s_nginx-proxy_nginx-proxy | awk '{print $1}' | xargs docker restart +``` + +### 3) Remove old control plane nodes + +With the old node still in the inventory, run `remove-node.yml`. You need to pass `-e node=NODE_NAME` to the playbook to limit the execution to the node being removed. +If the node you want to remove is not online, you should add `reset_nodes=false` and `allow_ungraceful_removal=true` to your extra-vars. + +## Replacing a first control plane node + +### 1) Change control plane nodes order in inventory + +from + +```ini +[kube_control_plane] + node-1 + node-2 + node-3 +``` + +to + +```ini +[kube_control_plane] + node-2 + node-3 + node-1 +``` + +### 2) Remove old first control plane node from cluster + +With the old node still in the inventory, run `remove-node.yml`. You need to pass `-e node=node-1` to the playbook to limit the execution to the node being removed. +If the node you want to remove is not online, you should add `reset_nodes=false` and `allow_ungraceful_removal=true` to your extra-vars. + +### 3) Edit cluster-info configmap in kube-public namespace + +`kubectl edit cm -n kube-public cluster-info` + +Change ip of old kube_control_plane node with ip of live kube_control_plane node (`server` field). Also, update `certificate-authority-data` field if you changed certs. + +### 4) Add new control plane node + +Update inventory (if needed) + +Run `cluster.yml` with `--limit=kube_control_plane` + +## Adding an etcd node + +You need to make sure there are always an odd number of etcd nodes in the cluster. In such a way, this is always a replace or scale up operation. Either add two new nodes or remove an old one. + +### 1) Add the new node running cluster.yml + +Update the inventory and run `cluster.yml` passing `--limit=etcd,kube_control_plane -e ignore_assert_errors=yes`. +If the node you want to add as an etcd node is already a worker or control plane node in your cluster, you have to remove him first using `remove-node.yml`. + +Run `upgrade-cluster.yml` also passing `--limit=etcd,kube_control_plane -e ignore_assert_errors=yes`. This is necessary to update all etcd configuration in the cluster. + +At this point, you will have an even number of nodes. +Everything should still be working, and you should only have problems if the cluster decides to elect a new etcd leader before you remove a node. +Even so, running applications should continue to be available. + +If you add multiple etcd nodes with one run, you might want to append `-e etcd_retries=10` to increase the amount of retries between each etcd node join. +Otherwise the etcd cluster might still be processing the first join and fail on subsequent nodes. `etcd_retries=10` might work to join 3 new nodes. + +### 2) Add the new node to apiserver config + +In every control plane node, edit `/etc/kubernetes/manifests/kube-apiserver.yaml`. Make sure the new etcd nodes are present in the apiserver command line parameter `--etcd-servers=...`. + +## Removing an etcd node + +### 1) Remove an old etcd node + +With the node still in the inventory, run `remove-node.yml` passing `-e node=NODE_NAME` as the name of the node that should be removed. +If the node you want to remove is not online, you should add `reset_nodes=false` and `allow_ungraceful_removal=true` to your extra-vars. + +### 2) Make sure only remaining nodes are in your inventory + +Remove `NODE_NAME` from your inventory file. + +### 3) Update kubernetes and network configuration files with the valid list of etcd members + +Run `cluster.yml` to regenerate the configuration files on all remaining nodes. + +### 4) Remove the old etcd node from apiserver config + +In every control plane node, edit `/etc/kubernetes/manifests/kube-apiserver.yaml`. Make sure only active etcd nodes are still present in the apiserver command line parameter `--etcd-servers=...`. + +### 5) Shutdown the old instance + +That's it. diff --git a/XTesting/kubespray/docs/ntp.md b/XTesting/kubespray/docs/ntp.md new file mode 100644 index 0000000..efa40b9 --- /dev/null +++ b/XTesting/kubespray/docs/ntp.md @@ -0,0 +1,41 @@ +# NTP synchronization + +The Network Time Protocol (NTP) is a networking protocol for clock synchronization between computer systems. Time synchronization is important to Kubernetes and Etcd. + +## Enable the NTP + +To start the ntpd(or chrony) service and enable it at system boot. There are related specific variables: + +```ShellSession +ntp_enabled: true +``` + +The NTP service would be enabled and sync time automatically. + +## Custimize the NTP configure file + +In the Air-Gap environment, the node cannot access the NTP server by internet. So the node can use the customized ntp server by configuring ntp file. + +```ShellSession +ntp_enabled: true +ntp_manage_config: true +ntp_servers: + - "0.your-ntp-server.org iburst" + - "1.your-ntp-server.org iburst" + - "2.your-ntp-server.org iburst" + - "3.your-ntp-server.org iburst" +``` + +## Advanced Configure + +Enable `tinker panic` is useful when running NTP in a VM environment to avoiding clock drift on VMs. It only takes effect when ntp_manage_config is true. + +```ShellSession +ntp_tinker_panic: true +``` + +Force sync time immediately by NTP after the ntp installed, which is useful in newly installed system. + +```ShellSession +ntp_force_sync_immediately: true +``` diff --git a/XTesting/kubespray/docs/offline-environment.md b/XTesting/kubespray/docs/offline-environment.md new file mode 100644 index 0000000..5e6e707 --- /dev/null +++ b/XTesting/kubespray/docs/offline-environment.md @@ -0,0 +1,119 @@ +# Offline environment + +In case your servers don't have access to internet (for example when deploying on premises with security constraints), you need to setup: + +* a HTTP reverse proxy/cache/mirror to serve some static files (zips and binaries) +* an internal Yum/Deb repository for OS packages +* an internal container image registry that need to be populated with all container images used by Kubespray. Exhaustive list depends on your setup +* [Optional] an internal PyPi server for kubespray python packages (only required if your OS doesn't provide all python packages/versions listed in `requirements.txt`) +* [Optional] an internal Helm registry (only required if `helm_enabled=true`) + +## Configure Inventory + +Once all artifacts are accessible from your internal network, **adjust** the following variables in [your inventory](/inventory/sample/group_vars/all/offline.yml) to match your environment: + +```yaml +# Registry overrides +kube_image_repo: "{{ registry_host }}" +gcr_image_repo: "{{ registry_host }}" +docker_image_repo: "{{ registry_host }}" +quay_image_repo: "{{ registry_host }}" + +kubeadm_download_url: "{{ files_repo }}/kubernetes/{{ kube_version }}/kubeadm" +kubectl_download_url: "{{ files_repo }}/kubernetes/{{ kube_version }}/kubectl" +kubelet_download_url: "{{ files_repo }}/kubernetes/{{ kube_version }}/kubelet" +# etcd is optional if you **DON'T** use etcd_deployment=host +etcd_download_url: "{{ files_repo }}/kubernetes/etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz" +cni_download_url: "{{ files_repo }}/kubernetes/cni/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz" +crictl_download_url: "{{ files_repo }}/kubernetes/cri-tools/crictl-{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" +# If using Calico +calicoctl_download_url: "{{ files_repo }}/kubernetes/calico/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}" +# If using Calico with kdd +calico_crds_download_url: "{{ files_repo }}/kubernetes/calico/{{ calico_version }}.tar.gz" +# Containerd +containerd_download_url: "{{ files_repo }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz" +runc_download_url: "{{ files_repo }}/runc.{{ image_arch }}" +nerdctl_download_url: "{{ files_repo }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" +# Insecure registries for containerd +containerd_insecure_registries: + - "{{ registry_host }}" + +# CentOS/Redhat/AlmaLinux/Rocky Linux +## Docker / Containerd +docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch" +docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" + +# Fedora +## Docker +docker_fedora_repo_base_url: "{{ yum_repo }}/docker-ce/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}" +docker_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" +## Containerd +containerd_fedora_repo_base_url: "{{ yum_repo }}/containerd" +containerd_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" + +# Debian +## Docker +docker_debian_repo_base_url: "{{ debian_repo }}/docker-ce" +docker_debian_repo_gpgkey: "{{ debian_repo }}/docker-ce/gpg" +## Containerd +containerd_debian_repo_base_url: "{{ ubuntu_repo }}/containerd" +containerd_debian_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg" +containerd_debian_repo_repokey: 'YOURREPOKEY' + +# Ubuntu +## Docker +docker_ubuntu_repo_base_url: "{{ ubuntu_repo }}/docker-ce" +docker_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/docker-ce/gpg" +## Containerd +containerd_ubuntu_repo_base_url: "{{ ubuntu_repo }}/containerd" +containerd_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg" +containerd_ubuntu_repo_repokey: 'YOURREPOKEY' +``` + +For the OS specific settings, just define the one matching your OS. +If you use the settings like the one above, you'll need to define in your inventory the following variables: + +* `registry_host`: Container image registry. If you _don't_ use the same repository path for the container images that the ones defined in [Download's role defaults](https://github.com/kubernetes-sigs/kubespray/blob/master/roles/download/defaults/main.yml), you need to override the `*_image_repo` for these container images. If you want to make your life easier, use the same repository path, you won't have to override anything else. +* `files_repo`: HTTP webserver or reverse proxy that is able to serve the files listed above. Path is not important, you can store them anywhere as long as it's accessible by kubespray. It's recommended to use `*_version` in the path so that you don't need to modify this setting everytime kubespray upgrades one of these components. +* `yum_repo`/`debian_repo`/`ubuntu_repo`: OS package repository depending of your OS, should point to your internal repository. Adjust the path accordingly. + +## Install Kubespray Python Packages + +### Recommended way: Kubespray Container Image + +The easiest way is to use [kubespray container image](https://quay.io/kubespray/kubespray) as all the required packages are baked in the image. +Just copy the container image in your private container image registry and you are all set! + +### Manual installation + +Look at the `requirements.txt` file and check if your OS provides all packages out-of-the-box (Using the OS package manager). For those missing, you need to either use a proxy that has Internet access (typically from a DMZ) or setup a PyPi server in your network that will host these packages. + +If you're using a HTTP(S) proxy to download your python packages: + +```bash +sudo pip install --proxy=https://[username:password@]proxyserver:port -r requirements.txt +``` + +When using an internal PyPi server: + +```bash +# If you host all required packages +pip install -i https://pypiserver/pypi -r requirements.txt + +# If you only need the ones missing from the OS package manager +pip install -i https://pypiserver/pypi package_you_miss +``` + +## Run Kubespray as usual + +Once all artifacts are in place and your inventory properly set up, you can run kubespray with the regular `cluster.yaml` command: + +```bash +ansible-playbook -i inventory/my_airgap_cluster/hosts.yaml -b cluster.yml +``` + +If you use [Kubespray Container Image](#recommended-way:-kubespray-container-image), you can mount your inventory inside the container: + +```bash +docker run --rm -it -v path_to_inventory/my_airgap_cluster:inventory/my_airgap_cluster myprivateregisry.com/kubespray/kubespray:v2.14.0 ansible-playbook -i inventory/my_airgap_cluster/hosts.yaml -b cluster.yml +``` diff --git a/XTesting/kubespray/docs/openstack.md b/XTesting/kubespray/docs/openstack.md new file mode 100644 index 0000000..f176329 --- /dev/null +++ b/XTesting/kubespray/docs/openstack.md @@ -0,0 +1,158 @@ + +# OpenStack + +## Known compatible public clouds + +Kubespray has been tested on a number of OpenStack Public Clouds including (in alphabetical order): + +- [Auro](https://auro.io/) +- [Betacloud](https://www.betacloud.io/) +- [CityCloud](https://www.citycloud.com/) +- [DreamHost](https://www.dreamhost.com/cloud/computing/) +- [ELASTX](https://elastx.se/) +- [EnterCloudSuite](https://www.entercloudsuite.com/) +- [FugaCloud](https://fuga.cloud/) +- [Infomaniak](https://infomaniak.com) +- [Open Telekom Cloud](https://cloud.telekom.de/) : requires to set the variable `wait_for_floatingip = "true"` in your cluster.tfvars +- [OVHcloud](https://www.ovhcloud.com/) +- [Rackspace](https://www.rackspace.com/) +- [Ultimum](https://ultimum.io/) +- [VexxHost](https://vexxhost.com/) +- [Zetta](https://www.zetta.io/) + +## The in-tree cloud provider + +To deploy Kubespray on [OpenStack](https://www.openstack.org/) uncomment the `cloud_provider` option in `group_vars/all/all.yml` and set it to `openstack`. + +After that make sure to source in your OpenStack credentials like you would do when using `nova-client` or `neutron-client` by using `source path/to/your/openstack-rc` or `. path/to/your/openstack-rc`. + +For those who prefer to pass the OpenStack CA certificate as a string, one can +base64 encode the cacert file and store it in the variable `openstack_cacert`. + +The next step is to make sure the hostnames in your `inventory` file are identical to your instance names in OpenStack. +Otherwise [cinder](https://wiki.openstack.org/wiki/Cinder) won't work as expected. + +Unless you are using calico or kube-router you can now run the playbook. + +**Additional step needed when using calico or kube-router:** + +Being L3 CNI, calico and kube-router do not encapsulate all packages with the hosts' ip addresses. Instead the packets will be routed with the PODs ip addresses directly. + +OpenStack will filter and drop all packets from ips it does not know to prevent spoofing. + +In order to make L3 CNIs work on OpenStack you will need to tell OpenStack to allow pods packets by allowing the network they use. + +First you will need the ids of your OpenStack instances that will run kubernetes: + + ```bash + openstack server list --project YOUR_PROJECT + +--------------------------------------+--------+----------------------------------+--------+-------------+ + | ID | Name | Tenant ID | Status | Power State | + +--------------------------------------+--------+----------------------------------+--------+-------------+ + | e1f48aad-df96-4bce-bf61-62ae12bf3f95 | k8s-1 | fba478440cb2444a9e5cf03717eb5d6f | ACTIVE | Running | + | 725cd548-6ea3-426b-baaa-e7306d3c8052 | k8s-2 | fba478440cb2444a9e5cf03717eb5d6f | ACTIVE | Running | + ``` + +Then you can use the instance ids to find the connected [neutron](https://wiki.openstack.org/wiki/Neutron) ports (though they are now configured through using OpenStack): + + ```bash + openstack port list -c id -c device_id --project YOUR_PROJECT + +--------------------------------------+--------------------------------------+ + | id | device_id | + +--------------------------------------+--------------------------------------+ + | 5662a4e0-e646-47f0-bf88-d80fbd2d99ef | e1f48aad-df96-4bce-bf61-62ae12bf3f95 | + | e5ae2045-a1e1-4e99-9aac-4353889449a7 | 725cd548-6ea3-426b-baaa-e7306d3c8052 | + ``` + +Given the port ids on the left, you can set the two `allowed-address`(es) in OpenStack. Note that you have to allow both `kube_service_addresses` (default `10.233.0.0/18`) and `kube_pods_subnet` (default `10.233.64.0/18`.) + + ```bash + # allow kube_service_addresses and kube_pods_subnet network + openstack port set 5662a4e0-e646-47f0-bf88-d80fbd2d99ef --allowed-address ip-address=10.233.0.0/18 --allowed-address ip-address=10.233.64.0/18 + openstack port set e5ae2045-a1e1-4e99-9aac-4353889449a7 --allowed-address ip-address=10.233.0.0/18 --allowed-address ip-address=10.233.64.0/18 + ``` + +If all the VMs in the tenant correspond to Kubespray deployment, you can "sweep run" above with: + + ```bash + openstack port list --device-owner=compute:nova -c ID -f value | xargs -tI@ openstack port set @ --allowed-address ip-address=10.233.0.0/18 --allowed-address ip-address=10.233.64.0/18 + ``` + +Now you can finally run the playbook. + +## The external cloud provider + +The in-tree cloud provider is deprecated and will be removed in a future version of Kubernetes. The target release for removing all remaining in-tree cloud providers is set to 1.21. + +The new cloud provider is configured to have Octavia by default in Kubespray. + +- Enable the new external cloud provider in `group_vars/all/all.yml`: + + ```yaml + cloud_provider: external + external_cloud_provider: openstack + ``` + +- Enable Cinder CSI in `group_vars/all/openstack.yml`: + + ```yaml + cinder_csi_enabled: true + ``` + +- Enable topology support (optional), if your openstack provider has custom Zone names you can override the default "nova" zone by setting the variable `cinder_topology_zones` + + ```yaml + cinder_topology: true + ``` + +- Enabling `cinder_csi_ignore_volume_az: true`, ignores volumeAZ and schedules on any of the available node AZ. + + ```yaml + cinder_csi_ignore_volume_az: true + ``` + +- If you are using OpenStack loadbalancer(s) replace the `openstack_lbaas_subnet_id` with the new `external_openstack_lbaas_subnet_id`. **Note** The new cloud provider is using Octavia instead of Neutron LBaaS by default! +- Enable 3 feature gates to allow migration of all volumes and storage classes (if you have any feature gates already set just add the 3 listed below): + + ```yaml + kube_feature_gates: + - CSIMigration=true + - CSIMigrationOpenStack=true + - ExpandCSIVolumes=true + ``` + +- If you are in a case of a multi-nic OpenStack VMs (see [kubernetes/cloud-provider-openstack#407](https://github.com/kubernetes/cloud-provider-openstack/issues/407) and [#6083](https://github.com/kubernetes-sigs/kubespray/issues/6083) for explanation), you should override the default OpenStack networking configuration: + + ```yaml + external_openstack_network_ipv6_disabled: false + external_openstack_network_internal_networks: [] + external_openstack_network_public_networks: [] + ``` + +- You can override the default OpenStack metadata configuration (see [#6338](https://github.com/kubernetes-sigs/kubespray/issues/6338) for explanation): + + ```yaml + external_openstack_metadata_search_order: "configDrive,metadataService" + ``` + +- Available variables for configuring lbaas: + + ```yaml + external_openstack_lbaas_create_monitor: false + external_openstack_lbaas_monitor_delay: "1m" + external_openstack_lbaas_monitor_timeout: "30s" + external_openstack_lbaas_monitor_max_retries: "3" + external_openstack_lbaas_provider: octavia + external_openstack_lbaas_use_octavia: false + external_openstack_lbaas_network_id: "Neutron network ID to create LBaaS VIP" + external_openstack_lbaas_subnet_id: "Neutron subnet ID to create LBaaS VIP" + external_openstack_lbaas_floating_network_id: "Neutron network ID to get floating IP from" + external_openstack_lbaas_floating_subnet_id: "Neutron subnet ID to get floating IP from" + external_openstack_lbaas_method: "ROUND_ROBIN" + external_openstack_lbaas_manage_security_groups: false + external_openstack_lbaas_internal_lb: false + + ``` + +- Run `source path/to/your/openstack-rc` to read your OpenStack credentials like `OS_AUTH_URL`, `OS_USERNAME`, `OS_PASSWORD`, etc. Those variables are used for accessing OpenStack from the external cloud provider. +- Run the `cluster.yml` playbook diff --git a/XTesting/kubespray/docs/opensuse.md b/XTesting/kubespray/docs/opensuse.md new file mode 100644 index 0000000..47b01f0 --- /dev/null +++ b/XTesting/kubespray/docs/opensuse.md @@ -0,0 +1,17 @@ +# openSUSE Leap 15.3 and Tumbleweed + +openSUSE Leap installation Notes: + +- Install Ansible + + ```ShellSession + sudo zypper ref + sudo zypper -n install ansible + + ``` + +- Install Jinja2 and Python-Netaddr + + ```sudo zypper -n install python-Jinja2 python-netaddr``` + +Now you can continue with [Preparing your deployment](getting-started.md#starting-custom-deployment) diff --git a/XTesting/kubespray/docs/proxy.md b/XTesting/kubespray/docs/proxy.md new file mode 100644 index 0000000..9c72019 --- /dev/null +++ b/XTesting/kubespray/docs/proxy.md @@ -0,0 +1,23 @@ +# Setting up Environment Proxy + +If you set http and https proxy, all nodes and loadbalancer will be excluded from proxy with generating no_proxy variable in `roles/kubespray-defaults/tasks/no_proxy.yml`, if you have additional resources for exclude add them to `additional_no_proxy` variable. If you want fully override your `no_proxy` setting, then fill in just `no_proxy` and no nodes or loadbalancer addresses will be added to no_proxy. + +## Set proxy for http and https + + `http_proxy:"http://example.proxy.tld:port"` + `https_proxy:"http://example.proxy.tld:port"` + +## Set default no_proxy (this will override default no_proxy generation) + +`no_proxy: "node1,node1_ip,node2,node2_ip...additional_host"` + +## Set additional addresses to default no_proxy (all cluster nodes and loadbalancer) + +`additional_no_proxy: "additional_host1,additional_host2"` + +## Exclude workers from no_proxy + +Since workers are included in the no_proxy variable, by default, docker engine will be restarted on all nodes (all +pods will restart) when adding or removing workers. To override this behaviour by only including control plane nodes in the +no_proxy variable, set: +`no_proxy_exclude_workers: true` diff --git a/XTesting/kubespray/docs/recover-control-plane.md b/XTesting/kubespray/docs/recover-control-plane.md new file mode 100644 index 0000000..0b80da2 --- /dev/null +++ b/XTesting/kubespray/docs/recover-control-plane.md @@ -0,0 +1,42 @@ + +# Recovering the control plane + +To recover from broken nodes in the control plane use the "recover\-control\-plane.yml" playbook. + +* Backup what you can +* Provision new nodes to replace the broken ones +* Place the surviving nodes of the control plane first in the "etcd" and "kube\_control\_plane" groups +* Add the new nodes below the surviving control plane nodes in the "etcd" and "kube\_control\_plane" groups + +Examples of what broken means in this context: + +* One or more bare metal node(s) suffer from unrecoverable hardware failure +* One or more node(s) fail during patching or upgrading +* Etcd database corruption +* Other node related failures leaving your control plane degraded or nonfunctional + +__Note that you need at least one functional node to be able to recover using this method.__ + +## Runbook + +* Move any broken etcd nodes into the "broken\_etcd" group, make sure the "etcd\_member\_name" variable is set. +* Move any broken control plane nodes into the "broken\_kube\_control\_plane" group. + +Then run the playbook with ```--limit etcd,kube_control_plane``` and increase the number of ETCD retries by setting ```-e etcd_retries=10``` or something even larger. The amount of retries required is difficult to predict. + +When finished you should have a fully working control plane again. + +## Recover from lost quorum + +The playbook attempts to figure out it the etcd quorum is intact. If quorum is lost it will attempt to take a snapshot from the first node in the "etcd" group and restore from that. If you would like to restore from an alternate snapshot set the path to that snapshot in the "etcd\_snapshot" variable. + +```-e etcd_snapshot=/tmp/etcd_snapshot``` + +## Caveats + +* The playbook has only been tested with fairly small etcd databases. +* If your new control plane nodes have new ip addresses you may have to change settings in various places. +* There may be disruptions while running the playbook. +* There are absolutely no guarantees. + +If possible try to break a cluster in the same way that your target cluster is broken and test to recover that before trying on the real target cluster. diff --git a/XTesting/kubespray/docs/rhel.md b/XTesting/kubespray/docs/rhel.md new file mode 100644 index 0000000..b9f302e --- /dev/null +++ b/XTesting/kubespray/docs/rhel.md @@ -0,0 +1,38 @@ +# Red Hat Enterprise Linux (RHEL) + +## RHEL Support Subscription Registration + +In order to install packages via yum or dnf, RHEL 7/8 hosts are required to be registered for a valid Red Hat support subscription. + +You can apply for a 1-year Development support subscription by creating a [Red Hat Developers](https://developers.redhat.com/) account. Be aware though that as the Red Hat Developers subscription is limited to only 1 year, it should not be used to register RHEL 7/8 hosts provisioned in Production environments. + +Once you have a Red Hat support account, simply add the credentials to the Ansible inventory parameters `rh_subscription_username` and `rh_subscription_password` prior to deploying Kubespray. If your company has a Corporate Red Hat support account, then obtain an **Organization ID** and **Activation Key**, and add these to the Ansible inventory parameters `rh_subscription_org_id` and `rh_subscription_activation_key` instead of using your Red Hat support account credentials. + +```ini +rh_subscription_username: "" +rh_subscription_password: "" +# rh_subscription_org_id: "" +# rh_subscription_activation_key: "" +``` + +Either the Red Hat support account username/password, or Organization ID/Activation Key combination must be specified in the Ansible inventory in order for the Red Hat subscription registration to complete successfully during the deployment of Kubespray. + +Update the Ansible inventory parameters `rh_subscription_usage`, `rh_subscription_role` and `rh_subscription_sla` if necessary to suit your specific requirements. + +```ini +rh_subscription_usage: "Development" +rh_subscription_role: "Red Hat Enterprise Server" +rh_subscription_sla: "Self-Support" +``` + +If the RHEL 7/8 hosts are already registered to a valid Red Hat support subscription via an alternative configuration management approach prior to the deployment of Kubespray, the successful RHEL `subscription-manager` status check will simply result in the RHEL subscription registration tasks being skipped. + +## RHEL 8 + +RHEL 8 ships only with iptables-nft (ie without iptables-legacy) +The only tested configuration for now is using Calico CNI +You need to use K8S 1.17+ and to add `calico_iptables_backend: "NFT"` to your configuration + +If you have containers that are using iptables in the host network namespace (`hostNetwork=true`), +you need to ensure they are using iptables-nft. +An example how k8s do the autodetection can be found [in this PR](https://github.com/kubernetes/kubernetes/pull/82966) diff --git a/XTesting/kubespray/docs/roadmap.md b/XTesting/kubespray/docs/roadmap.md new file mode 100644 index 0000000..78166b8 --- /dev/null +++ b/XTesting/kubespray/docs/roadmap.md @@ -0,0 +1,3 @@ +# Kubespray's roadmap + +We are tracking the evolution towards Kubespray 3.0 in [#6400](https://github.com/kubernetes-sigs/kubespray/issues/6400) as well as in other open issue in our [github issues](https://github.com/kubernetes-sigs/kubespray/issues/) section. diff --git a/XTesting/kubespray/docs/setting-up-your-first-cluster.md b/XTesting/kubespray/docs/setting-up-your-first-cluster.md new file mode 100644 index 0000000..0a41e5a --- /dev/null +++ b/XTesting/kubespray/docs/setting-up-your-first-cluster.md @@ -0,0 +1,646 @@ +# Setting up your first cluster with Kubespray + +This tutorial walks you through the detailed steps for setting up Kubernetes +with [Kubespray](https://kubespray.io/). + +The guide is inspired on the tutorial [Kubernetes The Hard Way](https://github.com/kelseyhightower/kubernetes-the-hard-way), with the +difference that here we want to showcase how to spin up a Kubernetes cluster +in a more managed fashion with Kubespray. + +## Target Audience + +The target audience for this tutorial is someone looking for a +hands-on guide to get started with Kubespray. + +## Cluster Details + +* [kubespray](https://github.com/kubernetes-sigs/kubespray) v2.17.x +* [kubernetes](https://github.com/kubernetes/kubernetes) v1.17.9 + +## Prerequisites + +* Google Cloud Platform: This tutorial leverages the [Google Cloud Platform](https://cloud.google.com/) to streamline provisioning of the compute infrastructure required to bootstrap a Kubernetes cluster from the ground up. [Sign up](https://cloud.google.com/free/) for $300 in free credits. +* Google Cloud Platform SDK: Follow the Google Cloud SDK [documentation](https://cloud.google.com/sdk/) to install and configure the `gcloud` command + line utility. Make sure to set a default compute region and compute zone. +* The [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) command line utility is used to interact with the Kubernetes + API Server. +* Linux or Mac environment with Python 3 + +## Provisioning Compute Resources + +Kubernetes requires a set of machines to host the Kubernetes control plane and the worker nodes where containers are ultimately run. In this lab you will provision the compute resources required for running a secure and highly available Kubernetes cluster across a single [compute zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones). + +### Networking + +The Kubernetes [networking model](https://kubernetes.io/docs/concepts/cluster-administration/networking/#kubernetes-model) assumes a flat network in which containers and nodes can communicate with each other. In cases where this is not desired [network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/) can limit how groups of containers are allowed to communicate with each other and external network endpoints. + +> Setting up network policies is out of scope for this tutorial. + +#### Virtual Private Cloud Network + +In this section a dedicated [Virtual Private Cloud](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) (VPC) network will be setup to host the Kubernetes cluster. + +Create the `kubernetes-the-kubespray-way` custom VPC network: + +```ShellSession +gcloud compute networks create kubernetes-the-kubespray-way --subnet-mode custom +``` + +A [subnet](https://cloud.google.com/compute/docs/vpc/#vpc_networks_and_subnets) must be provisioned with an IP address range large enough to assign a private IP address to each node in the Kubernetes cluster. + +Create the `kubernetes` subnet in the `kubernetes-the-kubespray-way` VPC network: + +```ShellSession +gcloud compute networks subnets create kubernetes \ + --network kubernetes-the-kubespray-way \ + --range 10.240.0.0/24 + ``` + +> The `10.240.0.0/24` IP address range can host up to 254 compute instances. + +#### Firewall Rules + +Create a firewall rule that allows internal communication across all protocols. +It is important to note that the vxlan protocol has to be allowed in order for +the calico (see later) networking plugin to work. + +```ShellSession +gcloud compute firewall-rules create kubernetes-the-kubespray-way-allow-internal \ + --allow tcp,udp,icmp,vxlan \ + --network kubernetes-the-kubespray-way \ + --source-ranges 10.240.0.0/24 +``` + +Create a firewall rule that allows external SSH, ICMP, and HTTPS: + +```ShellSession +gcloud compute firewall-rules create kubernetes-the-kubespray-way-allow-external \ + --allow tcp:80,tcp:6443,tcp:443,tcp:22,icmp \ + --network kubernetes-the-kubespray-way \ + --source-ranges 0.0.0.0/0 +``` + +It is not feasible to restrict the firewall to a specific IP address from +where you are accessing the cluster as the nodes also communicate over the public internet and would otherwise run into +this firewall. Technically you could limit the firewall to the (fixed) IP +addresses of the cluster nodes and the remote IP addresses for accessing the +cluster. + +### Compute Instances + +The compute instances in this lab will be provisioned using [Ubuntu Server](https://www.ubuntu.com/server) 18.04. +Each compute instance will be provisioned with a fixed private IP address and + a public IP address (that can be fixed - see [guide](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address)). +Using fixed public IP addresses has the advantage that our cluster node +configuration does not need to be updated with new public IP addresses every +time the machines are shut down and later on restarted. + +Create three compute instances which will host the Kubernetes control plane: + +```ShellSession +for i in 0 1 2; do + gcloud compute instances create controller-${i} \ + --async \ + --boot-disk-size 200GB \ + --can-ip-forward \ + --image-family ubuntu-1804-lts \ + --image-project ubuntu-os-cloud \ + --machine-type e2-standard-2 \ + --private-network-ip 10.240.0.1${i} \ + --scopes compute-rw,storage-ro,service-management,service-control,logging-write,monitoring \ + --subnet kubernetes \ + --tags kubernetes-the-kubespray-way,controller +done +``` + +> Do not forget to fix the IP addresses if you plan on re-using the cluster +after temporarily shutting down the VMs - see [guide](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address) + +Create three compute instances which will host the Kubernetes worker nodes: + +```ShellSession +for i in 0 1 2; do + gcloud compute instances create worker-${i} \ + --async \ + --boot-disk-size 200GB \ + --can-ip-forward \ + --image-family ubuntu-1804-lts \ + --image-project ubuntu-os-cloud \ + --machine-type e2-standard-2 \ + --private-network-ip 10.240.0.2${i} \ + --scopes compute-rw,storage-ro,service-management,service-control,logging-write,monitoring \ + --subnet kubernetes \ + --tags kubernetes-the-kubespray-way,worker +done +``` + +> Do not forget to fix the IP addresses if you plan on re-using the cluster +after temporarily shutting down the VMs - see [guide](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address) + +List the compute instances in your default compute zone: + +```ShellSession +gcloud compute instances list --filter="tags.items=kubernetes-the-kubespray-way" +``` + +> Output + +```ShellSession +NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS +controller-0 us-west1-c e2-standard-2 10.240.0.10 XX.XX.XX.XXX RUNNING +controller-1 us-west1-c e2-standard-2 10.240.0.11 XX.XXX.XXX.XX RUNNING +controller-2 us-west1-c e2-standard-2 10.240.0.12 XX.XXX.XX.XXX RUNNING +worker-0 us-west1-c e2-standard-2 10.240.0.20 XX.XX.XXX.XXX RUNNING +worker-1 us-west1-c e2-standard-2 10.240.0.21 XX.XX.XX.XXX RUNNING +worker-2 us-west1-c e2-standard-2 10.240.0.22 XX.XXX.XX.XX RUNNING +``` + +### Configuring SSH Access + +Kubespray is relying on SSH to configure the controller and worker instances. + +Test SSH access to the `controller-0` compute instance: + +```ShellSession +IP_CONTROLLER_0=$(gcloud compute instances list --filter="tags.items=kubernetes-the-kubespray-way AND name:controller-0" --format="value(EXTERNAL_IP)") +USERNAME=$(whoami) +ssh $USERNAME@$IP_CONTROLLER_0 +``` + +If this is your first time connecting to a compute instance SSH keys will be +generated for you. In this case you will need to enter a passphrase at the +prompt to continue. + +> If you get a 'Remote host identification changed!' warning, you probably +already connected to that IP address in the past with another host key. You +can remove the old host key by running `ssh-keygen -R $IP_CONTROLLER_0` + +Please repeat this procedure for all the controller and worker nodes, to +ensure that SSH access is properly functioning for all nodes. + +## Set-up Kubespray + +The following set of instruction is based on the [Quick Start](https://github.com/kubernetes-sigs/kubespray) but slightly altered for our +set-up. + +As Ansible is a python application, we will create a fresh virtual +environment to install the dependencies for the Kubespray playbook: + +```ShellSession +python3 -m venv venv +source venv/bin/activate +``` + +Next, we will git clone the Kubespray code into our working directory: + +```ShellSession +git clone https://github.com/kubernetes-sigs/kubespray.git +cd kubespray +git checkout release-2.17 +``` + +Now we need to install the dependencies for Ansible to run the Kubespray +playbook: + +```ShellSession +pip install -r requirements.txt +``` + +Copy ``inventory/sample`` as ``inventory/mycluster``: + +```ShellSession +cp -rfp inventory/sample inventory/mycluster +``` + +Update Ansible inventory file with inventory builder: + +```ShellSession +declare -a IPS=($(gcloud compute instances list --filter="tags.items=kubernetes-the-kubespray-way" --format="value(EXTERNAL_IP)" | tr '\n' ' ')) +CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]} +``` + +Open the generated `inventory/mycluster/hosts.yaml` file and adjust it so +that controller-0, controller-1 and controller-2 are control plane nodes and +worker-0, worker-1 and worker-2 are worker nodes. Also update the `ip` to the respective local VPC IP and +remove the `access_ip`. + +The main configuration for the cluster is stored in +`inventory/mycluster/group_vars/k8s_cluster/k8s_cluster.yml`. In this file we + will update the `supplementary_addresses_in_ssl_keys` with a list of the IP + addresses of the controller nodes. In that way we can access the + kubernetes API server as an administrator from outside the VPC network. You + can also see that the `kube_network_plugin` is by default set to 'calico'. + If you set this to 'cloud', it did not work on GCP at the time of testing. + +Kubespray also offers to easily enable popular kubernetes add-ons. You can +modify the +list of add-ons in `inventory/mycluster/group_vars/k8s_cluster/addons.yml`. +Let's enable the metrics server as this is a crucial monitoring element for +the kubernetes cluster, just change the 'false' to 'true' for +`metrics_server_enabled`. + +Now we will deploy the configuration: + +```ShellSession +ansible-playbook -i inventory/mycluster/hosts.yaml -u $USERNAME -b -v --private-key=~/.ssh/id_rsa cluster.yml +``` + +Ansible will now execute the playbook, this can take up to 20 minutes. + +## Access the kubernetes cluster + +We will leverage a kubeconfig file from one of the controller nodes to access + the cluster as administrator from our local workstation. + +> In this simplified set-up, we did not include a load balancer that usually + sits on top of the +three controller nodes for a high available API server endpoint. In this + simplified tutorial we connect directly to one of the three + controllers. + +First, we need to edit the permission of the kubeconfig file on one of the +controller nodes: + +```ShellSession +ssh $USERNAME@$IP_CONTROLLER_0 +USERNAME=$(whoami) +sudo chown -R $USERNAME:$USERNAME /etc/kubernetes/admin.conf +exit +``` + +Now we will copy over the kubeconfig file: + +```ShellSession +scp $USERNAME@$IP_CONTROLLER_0:/etc/kubernetes/admin.conf kubespray-do.conf +``` + +This kubeconfig file uses the internal IP address of the controller node to +access the API server. This kubeconfig file will thus not work of from +outside of the VPC network. We will need to change the API server IP address +to the controller node his external IP address. The external IP address will be +accepted in the +TLS negotiation as we added the controllers external IP addresses in the SSL +certificate configuration. +Open the file and modify the server IP address from the local IP to the +external IP address of controller-0, as stored in $IP_CONTROLLER_0. + +> Example + +```ShellSession +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: XXX + server: https://35.205.205.80:6443 + name: cluster.local +... +``` + +Now, we load the configuration for `kubectl`: + +```ShellSession +export KUBECONFIG=$PWD/kubespray-do.conf +``` + +We should be all set to communicate with our cluster from our local workstation: + +```ShellSession +kubectl get nodes +``` + +> Output + +```ShellSession +NAME STATUS ROLES AGE VERSION +controller-0 Ready master 47m v1.17.9 +controller-1 Ready master 46m v1.17.9 +controller-2 Ready master 46m v1.17.9 +worker-0 Ready 45m v1.17.9 +worker-1 Ready 45m v1.17.9 +worker-2 Ready 45m v1.17.9 +``` + +## Smoke tests + +### Metrics + +Verify if the metrics server addon was correctly installed and works: + +```ShellSession +kubectl top nodes +``` + +> Output + +```ShellSession +NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% +controller-0 191m 10% 1956Mi 26% +controller-1 190m 10% 1828Mi 24% +controller-2 182m 10% 1839Mi 24% +worker-0 87m 4% 1265Mi 16% +worker-1 102m 5% 1268Mi 16% +worker-2 108m 5% 1299Mi 17% +``` + +Please note that metrics might not be available at first and need a couple of + minutes before you can actually retrieve them. + +### Network + +Let's verify if the network layer is properly functioning and pods can reach +each other: + +```ShellSession +kubectl run myshell1 -it --rm --image busybox -- sh +hostname -i +# launch myshell2 in separate terminal (see next code block) and ping the hostname of myshell2 +ping +``` + +```ShellSession +kubectl run myshell2 -it --rm --image busybox -- sh +hostname -i +ping +``` + +> Output + +```ShellSession +PING 10.233.108.2 (10.233.108.2): 56 data bytes +64 bytes from 10.233.108.2: seq=0 ttl=62 time=2.876 ms +64 bytes from 10.233.108.2: seq=1 ttl=62 time=0.398 ms +64 bytes from 10.233.108.2: seq=2 ttl=62 time=0.378 ms +^C +--- 10.233.108.2 ping statistics --- +3 packets transmitted, 3 packets received, 0% packet loss +round-trip min/avg/max = 0.378/1.217/2.876 ms +``` + +### Deployments + +In this section you will verify the ability to create and manage [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/). + +Create a deployment for the [nginx](https://nginx.org/en/) web server: + +```ShellSession +kubectl create deployment nginx --image=nginx +``` + +List the pod created by the `nginx` deployment: + +```ShellSession +kubectl get pods -l app=nginx +``` + +> Output + +```ShellSession +NAME READY STATUS RESTARTS AGE +nginx-86c57db685-bmtt8 1/1 Running 0 18s +``` + +#### Port Forwarding + +In this section you will verify the ability to access applications remotely using [port forwarding](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/). + +Retrieve the full name of the `nginx` pod: + +```ShellSession +POD_NAME=$(kubectl get pods -l app=nginx -o jsonpath="{.items[0].metadata.name}") +``` + +Forward port `8080` on your local machine to port `80` of the `nginx` pod: + +```ShellSession +kubectl port-forward $POD_NAME 8080:80 +``` + +> Output + +```ShellSession +Forwarding from 127.0.0.1:8080 -> 80 +Forwarding from [::1]:8080 -> 80 +``` + +In a new terminal make an HTTP request using the forwarding address: + +```ShellSession +curl --head http://127.0.0.1:8080 +``` + +> Output + +```ShellSession +HTTP/1.1 200 OK +Server: nginx/1.19.1 +Date: Thu, 13 Aug 2020 11:12:04 GMT +Content-Type: text/html +Content-Length: 612 +Last-Modified: Tue, 07 Jul 2020 15:52:25 GMT +Connection: keep-alive +ETag: "5f049a39-264" +Accept-Ranges: bytes +``` + +Switch back to the previous terminal and stop the port forwarding to the `nginx` pod: + +```ShellSession +Forwarding from 127.0.0.1:8080 -> 80 +Forwarding from [::1]:8080 -> 80 +Handling connection for 8080 +^C +``` + +#### Logs + +In this section you will verify the ability to [retrieve container logs](https://kubernetes.io/docs/concepts/cluster-administration/logging/). + +Print the `nginx` pod logs: + +```ShellSession +kubectl logs $POD_NAME +``` + +> Output + +```ShellSession +... +127.0.0.1 - - [13/Aug/2020:11:12:04 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.64.1" "-" +``` + +#### Exec + +In this section you will verify the ability to [execute commands in a container](https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/#running-individual-commands-in-a-container). + +Print the nginx version by executing the `nginx -v` command in the `nginx` container: + +```ShellSession +kubectl exec -ti $POD_NAME -- nginx -v +``` + +> Output + +```ShellSession +nginx version: nginx/1.19.1 +``` + +### Kubernetes services + +#### Expose outside of the cluster + +In this section you will verify the ability to expose applications using a [Service](https://kubernetes.io/docs/concepts/services-networking/service/). + +Expose the `nginx` deployment using a [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport) service: + +```ShellSession +kubectl expose deployment nginx --port 80 --type NodePort +``` + +> The LoadBalancer service type can not be used because your cluster is not configured with [cloud provider integration](https://kubernetes.io/docs/getting-started-guides/scratch/#cloud-provider). Setting up cloud provider integration is out of scope for this tutorial. + +Retrieve the node port assigned to the `nginx` service: + +```ShellSession +NODE_PORT=$(kubectl get svc nginx \ + --output=jsonpath='{range .spec.ports[0]}{.nodePort}') +``` + +Create a firewall rule that allows remote access to the `nginx` node port: + +```ShellSession +gcloud compute firewall-rules create kubernetes-the-kubespray-way-allow-nginx-service \ + --allow=tcp:${NODE_PORT} \ + --network kubernetes-the-kubespray-way +``` + +Retrieve the external IP address of a worker instance: + +```ShellSession +EXTERNAL_IP=$(gcloud compute instances describe worker-0 \ + --format 'value(networkInterfaces[0].accessConfigs[0].natIP)') +``` + +Make an HTTP request using the external IP address and the `nginx` node port: + +```ShellSession +curl -I http://${EXTERNAL_IP}:${NODE_PORT} +``` + +> Output + +```ShellSession +HTTP/1.1 200 OK +Server: nginx/1.19.1 +Date: Thu, 13 Aug 2020 11:15:02 GMT +Content-Type: text/html +Content-Length: 612 +Last-Modified: Tue, 07 Jul 2020 15:52:25 GMT +Connection: keep-alive +ETag: "5f049a39-264" +Accept-Ranges: bytes +``` + +#### Local DNS + +We will now also verify that kubernetes built-in DNS works across namespaces. +Create a namespace: + +```ShellSession +kubectl create namespace dev +``` + +Create an nginx deployment and expose it within the cluster: + +```ShellSession +kubectl create deployment nginx --image=nginx -n dev +kubectl expose deployment nginx --port 80 --type ClusterIP -n dev +``` + +Run a temporary container to see if we can reach the service from the default +namespace: + +```ShellSession +kubectl run curly -it --rm --image curlimages/curl:7.70.0 -- /bin/sh +curl --head http://nginx.dev:80 +``` + +> Output + +```ShellSession +HTTP/1.1 200 OK +Server: nginx/1.19.1 +Date: Thu, 13 Aug 2020 11:15:59 GMT +Content-Type: text/html +Content-Length: 612 +Last-Modified: Tue, 07 Jul 2020 15:52:25 GMT +Connection: keep-alive +ETag: "5f049a39-264" +Accept-Ranges: bytes +``` + +Type `exit` to leave the shell. + +## Cleaning Up + +### Kubernetes resources + +Delete the dev namespace, the nginx deployment and service: + +```ShellSession +kubectl delete namespace dev +kubectl delete deployment nginx +kubectl delete svc/nginx +``` + +### Kubernetes state + +Note: you can skip this step if you want to entirely remove the machines. + +If you want to keep the VMs and just remove the cluster state, you can simply + run another Ansible playbook: + +```ShellSession +ansible-playbook -i inventory/mycluster/hosts.yaml -u $USERNAME -b -v --private-key=~/.ssh/id_rsa reset.yml +``` + +Resetting the cluster to the VMs original state usually takes about a couple +of minutes. + +### Compute instances + +Delete the controller and worker compute instances: + +```ShellSession +gcloud -q compute instances delete \ + controller-0 controller-1 controller-2 \ + worker-0 worker-1 worker-2 \ + --zone $(gcloud config get-value compute/zone) + ``` + + +### Network + + +Delete the fixed IP addresses (assuming you named them equal to the VM names), +if any: + +```ShellSession +gcloud -q compute addresses delete controller-0 controller-1 controller-2 \ + worker-0 worker-1 worker-2 +``` + +Delete the `kubernetes-the-kubespray-way` firewall rules: + +```ShellSession +gcloud -q compute firewall-rules delete \ + kubernetes-the-kubespray-way-allow-nginx-service \ + kubernetes-the-kubespray-way-allow-internal \ + kubernetes-the-kubespray-way-allow-external +``` + +Delete the `kubernetes-the-kubespray-way` network VPC: + +```ShellSession +gcloud -q compute networks subnets delete kubernetes +gcloud -q compute networks delete kubernetes-the-kubespray-way +``` diff --git a/XTesting/kubespray/docs/test_cases.md b/XTesting/kubespray/docs/test_cases.md new file mode 100644 index 0000000..1fdce68 --- /dev/null +++ b/XTesting/kubespray/docs/test_cases.md @@ -0,0 +1,33 @@ +# Node Layouts + +There are four node layout types: `default`, `separate`, `ha`, and `scale`. + +`default` is a non-HA two nodes setup with one separate `kube_node` +and the `etcd` group merged with the `kube_control_plane`. + +`separate` layout is when there is only node of each type, which includes + a kube_control_plane, kube_node, and etcd cluster member. + +`ha` layout consists of two etcd nodes, two control planes and a single worker node, +with role intersection. + +`scale` layout can be combined with above layouts (`ha-scale`, `separate-scale`). It includes 200 fake hosts +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. + +Note, the canal network plugin deploys flannel as well plus calico policy controller. + +## Test cases + +The [CI Matrix](/docs/ci.md) displays OS, Network Plugin and Container Manager tested. + +All tests are breakdown into 3 "stages" ("Stage" means a build step of the build pipeline) as follows: + +- _unit_tests_: Linting, markdown, vagrant & terraform validation etc... +- _part1_: Molecule and AIO tests +- _part2_: Standard tests with different layouts and OS/Runtime/Network +- _part3_: Upgrade jobs, terraform jobs and recover control plane tests +- _special_: Other jobs (manuals) + +The steps are ordered as `unit_tests->part1->part2->part3->special`. diff --git a/XTesting/kubespray/docs/upgrades.md b/XTesting/kubespray/docs/upgrades.md new file mode 100644 index 0000000..22d81d5 --- /dev/null +++ b/XTesting/kubespray/docs/upgrades.md @@ -0,0 +1,401 @@ +# Upgrading Kubernetes in Kubespray + +Kubespray handles upgrades the same way it handles initial deployment. That is to +say that each component is laid down in a fixed order. + +You can also individually control versions of components by explicitly defining their +versions. Here are all version vars for each component: + +* docker_version +* docker_containerd_version (relevant when `container_manager` == `docker`) +* containerd_version (relevant when `container_manager` == `containerd`) +* kube_version +* etcd_version +* calico_version +* calico_cni_version +* weave_version +* flannel_version +* kubedns_version + +:warning: [Attempting to upgrade from an older release straight to the latest release is unsupported and likely to break something](https://github.com/kubernetes-sigs/kubespray/issues/3849#issuecomment-451386515) :warning: + +See [Multiple Upgrades](#multiple-upgrades) for how to upgrade from older Kubespray release to the latest release + +## Unsafe upgrade example + +If you wanted to upgrade just kube_version from v1.18.10 to v1.19.7, you could +deploy the following way: + +```ShellSession +ansible-playbook cluster.yml -i inventory/sample/hosts.ini -e kube_version=v1.18.10 -e upgrade_cluster_setup=true +``` + +And then repeat with v1.19.7 as kube_version: + +```ShellSession +ansible-playbook cluster.yml -i inventory/sample/hosts.ini -e kube_version=v1.19.7 -e upgrade_cluster_setup=true +``` + +The var ```-e upgrade_cluster_setup=true``` is needed to be set in order to migrate the deploys of e.g kube-apiserver inside the cluster immediately which is usually only done in the graceful upgrade. (Refer to [#4139](https://github.com/kubernetes-sigs/kubespray/issues/4139) and [#4736](https://github.com/kubernetes-sigs/kubespray/issues/4736)) + +## Graceful upgrade + +Kubespray also supports cordon, drain and uncordoning of nodes when performing +a cluster upgrade. There is a separate playbook used for this purpose. It is +important to note that upgrade-cluster.yml can only be used for upgrading an +existing cluster. That means there must be at least 1 kube_control_plane already +deployed. + +```ShellSession +ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=v1.19.7 +``` + +After a successful upgrade, the Server Version should be updated: + +```ShellSession +$ kubectl version +Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:23:52Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"} +Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:15:20Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"} +``` + +### Pausing the upgrade + +If you want to manually control the upgrade procedure, you can set some variables to pause the upgrade playbook. Pausing *before* upgrading each upgrade may be useful for inspecting pods running on that node, or performing manual actions on the node: + +* `upgrade_node_confirm: true` - This will pause the playbook execution prior to upgrading each node. The play will resume when manually approved by typing "yes" at the terminal. +* `upgrade_node_pause_seconds: 60` - This will pause the playbook execution for 60 seconds prior to upgrading each node. The play will resume automatically after 60 seconds. + +Pausing *after* upgrading each node may be useful for rebooting the node to apply kernel updates, or testing the still-cordoned node: + +* `upgrade_node_post_upgrade_confirm: true` - This will pause the playbook execution after upgrading each node, but before the node is uncordoned. The play will resume when manually approved by typing "yes" at the terminal. +* `upgrade_node_post_upgrade_pause_seconds: 60` - This will pause the playbook execution for 60 seconds after upgrading each node, but before the node is uncordoned. The play will resume automatically after 60 seconds. + +## Node-based upgrade + +If you don't want to upgrade all nodes in one run, you can use `--limit` [patterns](https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html#patterns-and-ansible-playbook-flags). + +Before using `--limit` run playbook `facts.yml` without the limit to refresh facts cache for all nodes: + +```ShellSession +ansible-playbook facts.yml -b -i inventory/sample/hosts.ini +``` + +After this upgrade control plane and etcd groups [#5147](https://github.com/kubernetes-sigs/kubespray/issues/5147): + +```ShellSession +ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=v1.20.7 --limit "kube_control_plane:etcd" +``` + +Now you can upgrade other nodes in any order and quantity: + +```ShellSession +ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=v1.20.7 --limit "node4:node6:node7:node12" +ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=v1.20.7 --limit "node5*" +``` + +## Multiple upgrades + +:warning: [Do not skip releases when upgrading--upgrade by one tag at a time.](https://github.com/kubernetes-sigs/kubespray/issues/3849#issuecomment-451386515) :warning: + +For instance, if you're on v2.6.0, then check out v2.7.0, run the upgrade, check out the next tag, and run the next upgrade, etc. + +Assuming you don't explicitly define a kubernetes version in your k8s_cluster.yml, you simply check out the next tag and run the upgrade-cluster.yml playbook + +* If you do define kubernetes version in your inventory (e.g. group_vars/k8s_cluster.yml) then either make sure to update it before running upgrade-cluster, or specify the new version you're upgrading to: `ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml -e kube_version=v1.11.3` + + Otherwise, the upgrade will leave your cluster at the same k8s version defined in your inventory vars. + +The below example shows taking a cluster that was set up for v2.6.0 up to v2.10.0 + +```ShellSession +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 1h v1.10.4 +boomer Ready master,node 42m v1.10.4 +caprica Ready master,node 42m v1.10.4 + +$ git describe --tags +v2.6.0 + +$ git tag +... +v2.6.0 +v2.7.0 +v2.8.0 +v2.8.1 +v2.8.2 +... + +$ git checkout v2.7.0 +Previous HEAD position was 8b3ce6e4 bump upgrade tests to v2.5.0 commit (#3087) +HEAD is now at 05dabb7e Fix Bionic networking restart error #3430 (#3431) + +# NOTE: May need to `pip3 install -r requirements.txt` when upgrading. + +ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml + +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 1h v1.11.3 +boomer Ready master,node 1h v1.11.3 +caprica Ready master,node 1h v1.11.3 + +$ git checkout v2.8.0 +Previous HEAD position was 05dabb7e Fix Bionic networking restart error #3430 (#3431) +HEAD is now at 9051aa52 Fix ubuntu-contiv test failed (#3808) +``` + +:info: NOTE: Review changes between the sample inventory and your inventory when upgrading versions. :info: + +Some deprecations between versions that mean you can't just upgrade straight from 2.7.0 to 2.8.0 if you started with the sample inventory. + +In this case, I set "kubeadm_enabled" to false, knowing that it is deprecated and removed by 2.9.0, to delay converting the cluster to kubeadm as long as I could. + +```ShellSession +$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml +... + "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." +... +Are you sure you want to deploy cluster using the deprecated non-kubeadm mode. (output is hidden): +yes +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 114m v1.12.3 +boomer Ready master,node 114m v1.12.3 +caprica Ready master,node 114m v1.12.3 + +$ git checkout v2.8.1 +Previous HEAD position was 9051aa52 Fix ubuntu-contiv test failed (#3808) +HEAD is now at 2ac1c756 More Feature/2.8 backports for 2.8.1 (#3911) + +$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml +... + "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." +... +Are you sure you want to deploy cluster using the deprecated non-kubeadm mode. (output is hidden): +yes +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 2h36m v1.12.4 +boomer Ready master,node 2h36m v1.12.4 +caprica Ready master,node 2h36m v1.12.4 + +$ git checkout v2.8.2 +Previous HEAD position was 2ac1c756 More Feature/2.8 backports for 2.8.1 (#3911) +HEAD is now at 4167807f Upgrade to 1.12.5 (#4066) + +$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml +... + "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." +... +Are you sure you want to deploy cluster using the deprecated non-kubeadm mode. (output is hidden): +yes +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 3h3m v1.12.5 +boomer Ready master,node 3h3m v1.12.5 +caprica Ready master,node 3h3m v1.12.5 + +$ git checkout v2.8.3 +Previous HEAD position was 4167807f Upgrade to 1.12.5 (#4066) +HEAD is now at ea41fc5e backport cve-2019-5736 to release-2.8 (#4234) + +$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml +... + "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." +... +Are you sure you want to deploy cluster using the deprecated non-kubeadm mode. (output is hidden): +yes +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 5h18m v1.12.5 +boomer Ready master,node 5h18m v1.12.5 +caprica Ready master,node 5h18m v1.12.5 + +$ git checkout v2.8.4 +Previous HEAD position was ea41fc5e backport cve-2019-5736 to release-2.8 (#4234) +HEAD is now at 3901480b go to k8s 1.12.7 (#4400) + +$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml +... + "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." +... +Are you sure you want to deploy cluster using the deprecated non-kubeadm mode. (output is hidden): +yes +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 5h37m v1.12.7 +boomer Ready master,node 5h37m v1.12.7 +caprica Ready master,node 5h37m v1.12.7 + +$ git checkout v2.8.5 +Previous HEAD position was 3901480b go to k8s 1.12.7 (#4400) +HEAD is now at 6f97687d Release 2.8 robust san handling (#4478) + +$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml +... + "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." +... +Are you sure you want to deploy cluster using the deprecated non-kubeadm mode. (output is hidden): +yes +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 5h45m v1.12.7 +boomer Ready master,node 5h45m v1.12.7 +caprica Ready master,node 5h45m v1.12.7 + +$ git checkout v2.9.0 +Previous HEAD position was 6f97687d Release 2.8 robust san handling (#4478) +HEAD is now at a4e65c7c Upgrade to Ansible >2.7.0 (#4471) +``` + +:warning: IMPORTANT: Some of the variable formats changed in the k8s_cluster.yml between 2.8.5 and 2.9.0 :warning: + +If you do not keep your inventory copy up to date, **your upgrade will fail** and your first master will be left non-functional until fixed and re-run. + +It is at this point the cluster was upgraded from non-kubeadm to kubeadm as per the deprecation warning. + +```ShellSession +ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml + +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 6h54m v1.13.5 +boomer Ready master,node 6h55m v1.13.5 +caprica Ready master,node 6h54m v1.13.5 + +# Watch out: 2.10.0 is hiding between 2.1.2 and 2.2.0 + +$ git tag +... +v2.1.0 +v2.1.1 +v2.1.2 +v2.10.0 +v2.2.0 +... + +$ git checkout v2.10.0 +Previous HEAD position was a4e65c7c Upgrade to Ansible >2.7.0 (#4471) +HEAD is now at dcd9c950 Add etcd role dependency on kube user to avoid etcd role failure when running scale.yml with a fresh node. (#3240) (#4479) + +ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml + +... + +$ kubectl get node +NAME STATUS ROLES AGE VERSION +apollo Ready master,node 7h40m v1.14.1 +boomer Ready master,node 7h40m v1.14.1 +caprica Ready master,node 7h40m v1.14.1 + + +``` + +## Upgrading to v2.19 + +`etcd_kubeadm_enabled` is being deprecated at v2.19. The same functionality is achievable by setting `etcd_deployment_type` to `kubeadm`. +Deploying etcd using kubeadm is experimental and is only available for either new or deployments where `etcd_kubeadm_enabled` was set to `true` while deploying the cluster. + +From 2.19 and onward `etcd_deployment_type` variable will be placed in `group_vars/all/etcd.yml` instead of `group_vars/etcd.yml`, due to scope issues. +The placement of the variable is only important for `etcd_deployment_type: kubeadm` right now. However, since this might change in future updates, it is recommended to move the variable. + +Upgrading is straightforward; no changes are required if `etcd_kubeadm_enabled` was not set to `true` when deploying. + +If you have a cluster where `etcd` was deployed using `kubeadm`, you will need to remove `etcd_kubeadm_enabled` the variable. Then move `etcd_deployment_type` variable from `group_vars/etcd.yml` to `group_vars/all/etcd.yml` due to scope issues and set `etcd_deployment_type` to `kubeadm`. + +## Upgrade order + +As mentioned above, components are upgraded in the order in which they were +installed in the Ansible playbook. The order of component installation is as +follows: + +* Docker +* Containerd +* etcd +* kubelet and kube-proxy +* network_plugin (such as Calico or Weave) +* kube-apiserver, kube-scheduler, and kube-controller-manager +* Add-ons (such as KubeDNS) + +### Component-based upgrades + +A deployer may want to upgrade specific components in order to minimize risk +or save time. This strategy is not covered by CI as of this writing, so it is +not guaranteed to work. + +These commands are useful only for upgrading fully-deployed, healthy, existing +hosts. This will definitely not work for undeployed or partially deployed +hosts. + +Upgrade docker: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=docker +``` + +Upgrade etcd: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=etcd +``` + +Upgrade etcd without rotating etcd certs: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=etcd --limit=etcd --skip-tags=etcd-secrets +``` + +Upgrade kubelet: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=node --skip-tags=k8s-gen-certs,k8s-gen-tokens +``` + +Upgrade Kubernetes master components: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=master +``` + +Upgrade network plugins: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=network +``` + +Upgrade all add-ons: + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=apps +``` + +Upgrade just helm (assuming `helm_enabled` is true): + +```ShellSession +ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=helm +``` + +## Migrate from Docker to Containerd + +Please note that **migrating container engines is not officially supported by Kubespray**. While this procedure can be used to migrate your cluster, it applies to one particular scenario and will likely evolve over time. At the moment, they are intended as an additional resource to provide insight into how these steps can be officially integrated into the Kubespray playbooks. + +As of Kubespray 2.18.0, containerd is already the default container engine. If you have the chance, it is advisable and safer to reset and redeploy the entire cluster with a new container engine. + +* [Migrating from Docker do Containerd](upgrades/migrate_docker2containerd.md) diff --git a/XTesting/kubespray/docs/upgrades/migrate_docker2containerd.md b/XTesting/kubespray/docs/upgrades/migrate_docker2containerd.md new file mode 100644 index 0000000..df2e06c --- /dev/null +++ b/XTesting/kubespray/docs/upgrades/migrate_docker2containerd.md @@ -0,0 +1,106 @@ +# Migrating from Docker to Containerd + +❗MAKE SURE YOU READ BEFORE PROCEEDING❗ + +**Migrating container engines is not officially supported by Kubespray**. The following procedure covers one particular scenario and involves manual steps, along with multiple runs of `cluster.yml`. It provides no guarantees that it will actually work or that any further action is needed. Please, consider these instructions as experimental guidelines. While they can be used to migrate your cluster, they will likely evolve over time. At the moment, they are intended as an additional resource to provide insight into how these steps can be officially integrated into the Kubespray playbooks. + +As of Kubespray 2.18.0, containerd is already the default container engine. If you have the chance, it is still advisable and safer to reset and redeploy the entire cluster with a new container engine. + +Input and feedback are always appreciated. + +## Tested environment + +Nodes: Ubuntu 18.04 LTS\ +Cloud Provider: None (baremetal or VMs)\ +Kubernetes version: 1.21.5\ +Kubespray version: 2.18.0 + +## Important considerations + +If you require minimum downtime, nodes need to be cordoned and drained before being processed, one by one. If you wish to run `cluster.yml` only once and get it all done in one swoop, downtime will be significantly higher. Docker will need to be manually removed from all nodes before the playbook runs (see [#8431](https://github.com/kubernetes-sigs/kubespray/issues/8431)). For minimum downtime, the following steps will be executed multiple times, once for each node. + +Processing nodes one by one also means you will not be able to update any other cluster configuration using Kubespray before this procedure is finished and the cluster is fully migrated. + +Everything done here requires full root access to every node. + +## Migration steps + +Before you begin, adjust your inventory: + +```yaml +# Filename: k8s_cluster/k8s-cluster.yml +resolvconf_mode: host_resolvconf +container_manager: containerd + +# Filename: etcd.yml +etcd_deployment_type: host +``` + +### 1) Pick one or more nodes for processing + +It is still unclear how the order might affect this procedure. So, to be sure, it might be best to start with the control plane and etcd nodes all together, followed by each worker node individually. + +### 2) Cordon and drain the node + +... because, downtime. + +### 3) Stop docker and kubelet daemons + +```commandline +service kubelet stop +service docker stop +``` + +### 4) Uninstall docker + dependencies + +```commandline +apt-get remove -y --allow-change-held-packages containerd.io docker-ce docker-ce-cli docker-ce-rootless-extras +``` + +In some cases, there might a `pigz` missing dependency. Some image layers need this to be extracted. + +```shell +apt-get install pigz +``` + +### 5) Run `cluster.yml` playbook with `--limit` + +```commandline +ansible-playbook cluster.yml -i inventory/sample/hosts.ini cluster.yml --limit=NODENAME +``` + +This effectively reinstalls containerd and seems to place all config files in the right place. When this completes, kubelet will immediately pick up the new container engine and start spinning up DaemonSets and kube-system Pods. + +Optionally, if you feel confident, you can remove `/var/lib/docker` anytime after this step. + +```commandline +rm -fr /var/lib/docker +``` + +You can watch new containers using `crictl`. + +```commandline +crictl ps -a +``` + +### 6) Replace the cri-socket node annotation + +Node annotations need to be adjusted. Kubespray will not do this, but a simple kubectl is enough. + +```commandline +kubectl annotate node NODENAME --overwrite kubeadm.alpha.kubernetes.io/cri-socket=/var/run/containerd/containerd.sock +``` + +The annotation is required by kubeadm to follow through future cluster upgrades. + +### 7) Reboot the node + +Reboot, just to make sure everything restarts fresh before the node is uncordoned. + +## After thoughts + +If your cluster runs a log aggregator, like fluentd+Graylog, you will likely need to adjust collection filters and parsers. While docker generates Json logs, containerd has its own space delimited format. Example: + +```text +2020-01-10T18:10:40.01576219Z stdout F application log message... +``` diff --git a/XTesting/kubespray/docs/vagrant.md b/XTesting/kubespray/docs/vagrant.md new file mode 100644 index 0000000..452b677 --- /dev/null +++ b/XTesting/kubespray/docs/vagrant.md @@ -0,0 +1,164 @@ +# Vagrant + +Assuming you have Vagrant 2.0+ installed with virtualbox, libvirt/qemu or +vmware, but is untested) you should be able to launch a 3 node Kubernetes +cluster by simply running `vagrant up`. + +This will spin up 3 VMs and install kubernetes on them. +Once they are completed you can connect to any of them by running `vagrant ssh k8s-[1..3]`. + +To give an estimate of the expected duration of a provisioning run: +On a dual core i5-6300u laptop with an SSD, provisioning takes around 13 +to 15 minutes, once the container images and other files are cached. +Note that libvirt/qemu is recommended over virtualbox as it is quite a bit +faster, especially during boot-up time. + +For proper performance a minimum of 12GB RAM is recommended. +It is possible to run a 3 node cluster on a laptop with 8GB of RAM using +the default Vagrantfile, provided you have 8GB zram swap configured and +not much more than a browser and a mail client running. +If you decide to run on such a machine, then also make sure that any tmpfs +devices, that are mounted, are mostly empty and disable any swapfiles +mounted on HDD/SSD or you will be in for some serious swap-madness. +Things can get a bit sluggish during provisioning, but when that's done, +the system will actually be able to perform quite well. + +## Customize Vagrant + +You can override the default settings in the `Vagrantfile` either by +directly modifying the `Vagrantfile` or through an override file. +In the same directory as the `Vagrantfile`, create a folder called +`vagrant` and create `config.rb` file in it. +An example of how to configure this file is given below. + +## Use alternative OS for Vagrant + +By default, Vagrant uses Ubuntu 18.04 box to provision a local cluster. +You may use an alternative supported operating system for your local cluster. + +Customize `$os` variable in `Vagrantfile` or as override, e.g.,: + +```ShellSession +echo '$os = "flatcar-stable"' >> vagrant/config.rb +``` + +The supported operating systems for vagrant are defined in the `SUPPORTED_OS` +constant in the `Vagrantfile`. + +## File and image caching + +Kubespray can take quite a while to start on a laptop. To improve provisioning +speed, the variable 'download_run_once' is set. This will make kubespray +download all files and containers just once and then redistributes them to +the other nodes and as a bonus, also cache all downloads locally and re-use +them on the next provisioning run. For more information on download settings +see [download documentation](/docs/downloads.md). + +## Example use of Vagrant + +The following is an example of setting up and running kubespray using `vagrant`. +For repeated runs, you could save the script to a file in the root of the +kubespray and run it by executing 'source . + +```ShellSession +# use virtualenv to install all python requirements +VENVDIR=venv +virtualenv --python=/usr/bin/python3.7 $VENVDIR +source $VENVDIR/bin/activate +pip install -r requirements.txt + +# prepare an inventory to test with +INV=inventory/my_lab +rm -rf ${INV}.bak &> /dev/null +mv ${INV} ${INV}.bak &> /dev/null +cp -a inventory/sample ${INV} +rm -f ${INV}/hosts.ini + +# customize the vagrant environment +mkdir vagrant +cat << EOF > vagrant/config.rb +\$instance_name_prefix = "kub" +\$vm_cpus = 1 +\$num_instances = 3 +\$os = "centos-bento" +\$subnet = "10.0.20" +\$network_plugin = "flannel" +\$inventory = "$INV" +\$shared_folders = { 'temp/docker_rpms' => "/var/cache/yum/x86_64/7/docker-ce/packages" } +EOF + +# make the rpm cache +mkdir -p temp/docker_rpms + +vagrant up + +# make a copy of the downloaded docker rpm, to speed up the next provisioning run +scp kub-1:/var/cache/yum/x86_64/7/docker-ce/packages/* temp/docker_rpms/ + +# copy kubectl access configuration in place +mkdir $HOME/.kube/ &> /dev/null +ln -s $PWD/$INV/artifacts/admin.conf $HOME/.kube/config +# make the kubectl binary available +sudo ln -s $PWD/$INV/artifacts/kubectl /usr/local/bin/kubectl +#or +export PATH=$PATH:$PWD/$INV/artifacts +``` + +If a vagrant run failed and you've made some changes to fix the issue causing +the fail, here is how you would re-run ansible: + +```ShellSession +ansible-playbook -vvv -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory cluster.yml +``` + +If all went well, you check if it's all working as expected: + +```ShellSession +kubectl get nodes +``` + +The output should look like this: + +```ShellSession +$ kubectl get nodes +NAME STATUS ROLES AGE VERSION +kub-1 Ready control-plane,master 4m37s v1.22.5 +kub-2 Ready control-plane,master 4m7s v1.22.5 +kub-3 Ready 3m7s v1.22.5 +``` + +Another nice test is the following: + +```ShellSession +kubectl get pods --all-namespaces -o wide +``` + +Which should yield something like the following: + +```ShellSession +$ kubectl get pods --all-namespaces -o wide +NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +kube-system coredns-8474476ff8-m2469 1/1 Running 0 2m45s 10.233.65.2 kub-2 +kube-system coredns-8474476ff8-v5wzj 1/1 Running 0 2m41s 10.233.64.3 kub-1 +kube-system dns-autoscaler-5ffdc7f89d-76tnv 1/1 Running 0 2m43s 10.233.64.2 kub-1 +kube-system kube-apiserver-kub-1 1/1 Running 1 4m54s 10.0.20.101 kub-1 +kube-system kube-apiserver-kub-2 1/1 Running 1 4m33s 10.0.20.102 kub-2 +kube-system kube-controller-manager-kub-1 1/1 Running 1 5m1s 10.0.20.101 kub-1 +kube-system kube-controller-manager-kub-2 1/1 Running 1 4m33s 10.0.20.102 kub-2 +kube-system kube-flannel-9xgf5 1/1 Running 0 3m10s 10.0.20.102 kub-2 +kube-system kube-flannel-l8jbl 1/1 Running 0 3m10s 10.0.20.101 kub-1 +kube-system kube-flannel-zss4t 1/1 Running 0 3m10s 10.0.20.103 kub-3 +kube-system kube-multus-ds-amd64-bhpc9 1/1 Running 0 3m2s 10.0.20.103 kub-3 +kube-system kube-multus-ds-amd64-n6vl8 1/1 Running 0 3m2s 10.0.20.102 kub-2 +kube-system kube-multus-ds-amd64-qttgs 1/1 Running 0 3m2s 10.0.20.101 kub-1 +kube-system kube-proxy-2x4jl 1/1 Running 0 3m33s 10.0.20.101 kub-1 +kube-system kube-proxy-d48r7 1/1 Running 0 3m33s 10.0.20.103 kub-3 +kube-system kube-proxy-f45lp 1/1 Running 0 3m33s 10.0.20.102 kub-2 +kube-system kube-scheduler-kub-1 1/1 Running 1 4m54s 10.0.20.101 kub-1 +kube-system kube-scheduler-kub-2 1/1 Running 1 4m33s 10.0.20.102 kub-2 +kube-system nginx-proxy-kub-3 1/1 Running 0 3m33s 10.0.20.103 kub-3 +kube-system nodelocaldns-cg9tz 1/1 Running 0 2m41s 10.0.20.102 kub-2 +kube-system nodelocaldns-htswt 1/1 Running 0 2m41s 10.0.20.103 kub-3 +kube-system nodelocaldns-nsp7s 1/1 Running 0 2m41s 10.0.20.101 kub-1 +local-path-storage local-path-provisioner-66df45bfdd-km4zg 1/1 Running 0 2m54s 10.233.66.2 kub-3 +``` diff --git a/XTesting/kubespray/docs/vars.md b/XTesting/kubespray/docs/vars.md new file mode 100644 index 0000000..6dc552d --- /dev/null +++ b/XTesting/kubespray/docs/vars.md @@ -0,0 +1,283 @@ +# Configurable Parameters in Kubespray + +## Generic Ansible variables + +You can view facts gathered by Ansible automatically +[here](https://docs.ansible.com/ansible/latest/user_guide/playbooks_vars_facts.html#ansible-facts). + +Some variables of note include: + +* *ansible_user*: user to connect to via SSH +* *ansible_default_ipv4.address*: IP address Ansible automatically chooses. + Generated based on the output from the command ``ip -4 route get 8.8.8.8`` + +## Common vars that are used in Kubespray + +* *calico_version* - Specify version of Calico to use +* *calico_cni_version* - Specify version of Calico CNI plugin to use +* *docker_version* - Specify version of Docker to use (should be quoted + string). Must match one of the keys defined for *docker_versioned_pkg* + in `roles/container-engine/docker/vars/*.yml`. +* *containerd_version* - Specify version of containerd to use when setting `container_manager` to `containerd` +* *docker_containerd_version* - Specify which version of containerd to use when setting `container_manager` to `docker` +* *etcd_version* - Specify version of ETCD to use +* *calico_ipip_mode* - Configures Calico ipip encapsulation - valid values are 'Never', 'Always' and 'CrossSubnet' (default 'Never') +* *calico_vxlan_mode* - Configures Calico vxlan encapsulation - valid values are 'Never', 'Always' and 'CrossSubnet' (default 'Always') +* *calico_network_backend* - Configures Calico network backend - valid values are 'none', 'bird' and 'vxlan' (default 'vxlan') +* *kube_network_plugin* - Sets k8s network plugin (default Calico) +* *kube_proxy_mode* - Changes k8s proxy mode to iptables mode +* *kube_version* - Specify a given Kubernetes version +* *searchdomains* - Array of DNS domains to search when looking up hostnames +* *nameservers* - Array of nameservers to use for DNS lookup +* *preinstall_selinux_state* - Set selinux state, permitted values are permissive, enforcing and disabled. + +## Addressing variables + +* *ip* - IP to use for binding services (host var) +* *access_ip* - IP for other hosts to use to connect to. Often required when + deploying from a cloud, such as OpenStack or GCE and you have separate + public/floating and private IPs. +* *ansible_default_ipv4.address* - Not Kubespray-specific, but it is used if ip + and access_ip are undefined +* *ip6* - IPv6 address to use for binding services. (host var) + If *enable_dual_stack_networks* is set to ``true`` and *ip6* is defined, + kubelet's ``--node-ip`` and node's ``InternalIP`` will be the combination of *ip* and *ip6*. +* *loadbalancer_apiserver* - If defined, all hosts will connect to this + address instead of localhost for kube_control_planes and kube_control_plane[0] for + kube_nodes. See more details in the + [HA guide](/docs/ha-mode.md). +* *loadbalancer_apiserver_localhost* - makes all hosts to connect to + the apiserver internally load balanced endpoint. Mutual exclusive to the + `loadbalancer_apiserver`. See more details in the + [HA guide](/docs/ha-mode.md). + +## Cluster variables + +Kubernetes needs some parameters in order to get deployed. These are the +following default cluster parameters: + +* *cluster_name* - Name of cluster (default is cluster.local) + +* *container_manager* - Container Runtime to install in the nodes (default is containerd) + +* *image_command_tool* - Tool used to pull images (default depends on `container_manager` + and is `nerdctl` for `containerd`, `crictl` for `crio`, `docker` for `docker`) + +* *image_command_tool_on_localhost* - Tool used to pull images on localhost + (default is equal to `image_command_tool`) + +* *dns_domain* - Name of cluster DNS domain (default is cluster.local) + +* *kube_network_plugin* - Plugin to use for container networking + +* *kube_service_addresses* - Subnet for cluster IPs (default is + 10.233.0.0/18). Must not overlap with kube_pods_subnet + +* *kube_pods_subnet* - Subnet for Pod IPs (default is 10.233.64.0/18). Must not + overlap with kube_service_addresses. + +* *kube_network_node_prefix* - Subnet allocated per-node for pod IPs. Remaining + bits in kube_pods_subnet dictates how many kube_nodes can be in cluster. Setting this > 25 will + raise an assertion in playbooks if the `kubelet_max_pods` var also isn't adjusted accordingly + (assertion not applicable to calico which doesn't use this as a hard limit, see + [Calico IP block sizes](https://docs.projectcalico.org/reference/resources/ippool#block-sizes). + +* *enable_dual_stack_networks* - Setting this to true will provision both IPv4 and IPv6 networking for pods and services. + +* *kube_service_addresses_ipv6* - Subnet for cluster IPv6 IPs (default is ``fd85:ee78:d8a6:8607::1000/116``). Must not overlap with ``kube_pods_subnet_ipv6``. + +* *kube_pods_subnet_ipv6* - Subnet for Pod IPv6 IPs (default is ``fd85:ee78:d8a6:8607::1:0000/112``). Must not overlap with ``kube_service_addresses_ipv6``. + +* *kube_network_node_prefix_ipv6* - Subnet allocated per-node for pod IPv6 IPs. Remaining bits in ``kube_pods_subnet_ipv6`` dictates how many kube_nodes can be in cluster. + +* *skydns_server* - Cluster IP for DNS (default is 10.233.0.3) + +* *skydns_server_secondary* - Secondary Cluster IP for CoreDNS used with coredns_dual deployment (default is 10.233.0.4) + +* *enable_coredns_k8s_external* - If enabled, it configures the [k8s_external plugin](https://coredns.io/plugins/k8s_external/) + on the CoreDNS service. + +* *coredns_k8s_external_zone* - Zone that will be used when CoreDNS k8s_external plugin is enabled + (default is k8s_external.local) + +* *enable_coredns_k8s_endpoint_pod_names* - If enabled, it configures endpoint_pod_names option for kubernetes plugin. + on the CoreDNS service. + +* *cloud_provider* - Enable extra Kubelet option if operating inside GCE or + OpenStack (default is unset) + +* *kube_feature_gates* - A list of key=value pairs that describe feature gates for + alpha/experimental Kubernetes features. (defaults is `[]`). + Additionally, you can use also the following variables to individually customize your kubernetes components installation (they works exactly like `kube_feature_gates`): + * *kube_apiserver_feature_gates* + * *kube_controller_feature_gates* + * *kube_scheduler_feature_gates* + * *kube_proxy_feature_gates* + * *kubelet_feature_gates* + +* *kubeadm_feature_gates* - A list of key=value pairs that describe feature gates for + alpha/experimental Kubeadm features. (defaults is `[]`) + +* *authorization_modes* - A list of [authorization mode]( + https://kubernetes.io/docs/admin/authorization/#using-flags-for-your-authorization-module) + that the cluster should be configured for. Defaults to `['Node', 'RBAC']` + (Node and RBAC authorizers). + Note: `Node` and `RBAC` are enabled by default. Previously deployed clusters can be + converted to RBAC mode. However, your apps which rely on Kubernetes API will + require a service account and cluster role bindings. You can override this + setting by setting authorization_modes to `[]`. + +* *kube_apiserver_admission_control_config_file* - Enable configuration for `kube-apiserver` admission plugins. + Currently this variable allow you to configure the `EventRateLimit` admission plugin. + + To configure the **EventRateLimit** plugin you have to define a data structure like this: + +```yml +kube_apiserver_admission_event_rate_limits: + limit_1: + type: Namespace + qps: 50 + burst: 100 + cache_size: 2000 + limit_2: + type: User + qps: 50 + burst: 100 + ... +``` + +* *kube_apiserver_service_account_lookup* - Enable validation service account before validating token. Default `true`. + +Note, if cloud providers have any use of the ``10.233.0.0/16``, like instances' +private addresses, make sure to pick another values for ``kube_service_addresses`` +and ``kube_pods_subnet``, for example from the ``172.18.0.0/16``. + +## Enabling Dual Stack (IPV4 + IPV6) networking + +If *enable_dual_stack_networks* is set to ``true``, Dual Stack networking will be enabled in the cluster. This will use the default IPv4 and IPv6 subnets specified in the defaults file in the ``kubespray-defaults`` role, unless overridden of course. The default config will give you room for up to 256 nodes with 126 pods per node, and up to 4096 services. + +## DNS variables + +By default, hosts are set up with 8.8.8.8 as an upstream DNS server and all +other settings from your existing /etc/resolv.conf are lost. Set the following +variables to match your requirements. + +* *upstream_dns_servers* - Array of upstream DNS servers configured on host in + addition to Kubespray deployed DNS +* *nameservers* - Array of DNS servers configured for use by hosts +* *searchdomains* - Array of up to 4 search domains +* *dns_etchosts* - Content of hosts file for coredns and nodelocaldns + +For more information, see [DNS +Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.md). + +## Other service variables + +* *docker_options* - Commonly used to set + ``--insecure-registry=myregistry.mydomain:5000`` +* *docker_plugins* - This list can be used to define [Docker plugins](https://docs.docker.com/engine/extend/) to install. +* *containerd_default_runtime* - If defined, changes the default Containerd runtime used by the Kubernetes CRI plugin. +* *containerd_additional_runtimes* - Sets the additional Containerd runtimes used by the Kubernetes CRI plugin. + [Default config](https://github.com/kubernetes-sigs/kubespray/blob/master/roles/container-engine/containerd/defaults/main.yml) can be overriden in inventory vars. +* *http_proxy/https_proxy/no_proxy/no_proxy_exclude_workers/additional_no_proxy* - Proxy variables for deploying behind a + proxy. Note that no_proxy defaults to all internal cluster IPs and hostnames + that correspond to each node. +* *kubelet_cgroup_driver* - Allows manual override of the cgroup-driver option for Kubelet. + By default autodetection is used to match container manager configuration. + `systemd` is the preferred driver for `containerd` though it can have issues with `cgroups v1` and `kata-containers` in which case you may want to change to `cgroupfs`. +* *kubelet_rotate_certificates* - Auto rotate the kubelet client certificates by requesting new certificates + from the kube-apiserver when the certificate expiration approaches. +* *kubelet_rotate_server_certificates* - Auto rotate the kubelet server certificates by requesting new certificates + from the kube-apiserver when the certificate expiration approaches. + **Note** that server certificates are **not** approved automatically. Approve them manually + (`kubectl get csr`, `kubectl certificate approve`) or implement custom approving controller like + [kubelet-rubber-stamp](https://github.com/kontena/kubelet-rubber-stamp). +* *kubelet_streaming_connection_idle_timeout* - Set the maximum time a streaming connection can be idle before the connection is automatically closed. +* *kubelet_make_iptables_util_chains* - If `true`, causes the kubelet ensures a set of `iptables` rules are present on host. +* *node_labels* - Labels applied to nodes via kubelet --node-labels parameter. + For example, labels can be set in the inventory as variables or more widely in group_vars. + *node_labels* can only be defined as a dict: + +```yml +node_labels: + label1_name: label1_value + label2_name: label2_value +``` + +* *node_taints* - Taints applied to nodes via kubelet --register-with-taints parameter. + For example, taints can be set in the inventory as variables or more widely in group_vars. + *node_taints* has to be defined as a list of strings in format `key=value:effect`, e.g.: + +```yml +node_taints: + - "node.example.com/external=true:NoSchedule" +``` + +* *podsecuritypolicy_enabled* - When set to `true`, enables the PodSecurityPolicy admission controller and defines two policies `privileged` (applying to all resources in `kube-system` namespace and kubelet) and `restricted` (applying all other namespaces). + Addons deployed in kube-system namespaces are handled. +* *kubernetes_audit* - When set to `true`, enables Auditing. + The auditing parameters can be tuned via the following variables (which default values are shown below): + * `audit_log_path`: /var/log/audit/kube-apiserver-audit.log + * `audit_log_maxage`: 30 + * `audit_log_maxbackups`: 1 + * `audit_log_maxsize`: 100 + * `audit_policy_file`: "{{ kube_config_dir }}/audit-policy/apiserver-audit-policy.yaml" + + By default, the `audit_policy_file` contains [default rules](https://github.com/kubernetes-sigs/kubespray/blob/master/roles/kubernetes/control-plane/templates/apiserver-audit-policy.yaml.j2) that can be overridden with the `audit_policy_custom_rules` variable. +* *kubernetes_audit_webhook* - When set to `true`, enables the webhook audit backend. + The webhook parameters can be tuned via the following variables (which default values are shown below): + * `audit_webhook_config_file`: "{{ kube_config_dir }}/audit-policy/apiserver-audit-webhook-config.yaml" + * `audit_webhook_server_url`: `"https://audit.app"` + * `audit_webhook_server_extra_args`: {} + * `audit_webhook_mode`: batch + * `audit_webhook_batch_max_size`: 100 + * `audit_webhook_batch_max_wait`: 1s + +### Custom flags for Kube Components + +For all kube components, custom flags can be passed in. This allows for edge cases where users need changes to the default deployment that may not be applicable to all deployments. + +Extra flags for the kubelet can be specified using these variables, +in the form of dicts of key-value pairs of configuration parameters that will be inserted into the kubelet YAML config file. The `kubelet_node_config_extra_args` apply kubelet settings only to nodes and not control planes. Example: + +```yml +kubelet_config_extra_args: + evictionHard: + memory.available: "100Mi" + evictionSoftGracePeriod: + memory.available: "30s" + evictionSoft: + memory.available: "300Mi" +``` + +The possible vars are: + +* *kubelet_config_extra_args* +* *kubelet_node_config_extra_args* + +Previously, the same parameters could be passed as flags to kubelet binary with the following vars: + +* *kubelet_custom_flags* +* *kubelet_node_custom_flags* + +The `kubelet_node_custom_flags` apply kubelet settings only to nodes and not control planes. Example: + +```yml +kubelet_custom_flags: + - "--eviction-hard=memory.available<100Mi" + - "--eviction-soft-grace-period=memory.available=30s" + - "--eviction-soft=memory.available<300Mi" +``` + +This alternative is deprecated and will remain until the flags are completely removed from kubelet + +Extra flags for the API server, controller, and scheduler components can be specified using these variables, +in the form of dicts of key-value pairs of configuration parameters that will be inserted into the kubeadm YAML config file: + +* *kube_kubeadm_apiserver_extra_args* +* *kube_kubeadm_controller_extra_args* +* *kube_kubeadm_scheduler_extra_args* + +## App variables + +* *helm_version* - Only supports v3.x. Existing v2 installs (with Tiller) will not be modified and need to be removed manually. diff --git a/XTesting/kubespray/docs/vsphere-csi.md b/XTesting/kubespray/docs/vsphere-csi.md new file mode 100644 index 0000000..d312bf3 --- /dev/null +++ b/XTesting/kubespray/docs/vsphere-csi.md @@ -0,0 +1,101 @@ +# vSphere CSI Driver + +vSphere CSI driver allows you to provision volumes over a vSphere deployment. The Kubernetes historic in-tree cloud provider is deprecated and will be removed in future versions. + +## Prerequisites + +The vSphere user for CSI driver requires a set of privileges to perform Cloud Native Storage operations. Follow the [official guide](https://vsphere-csi-driver.sigs.k8s.io/driver-deployment/prerequisites.html#roles_and_privileges) to configure those. + +## Kubespray configuration + +To enable vSphere CSI driver, uncomment the `vsphere_csi_enabled` option in `group_vars/all/vsphere.yml` and set it to `true`. + +To set the number of replicas for the vSphere CSI controller, you can change `vsphere_csi_controller_replicas` option in `group_vars/all/vsphere.yml`. + +You need to source the vSphere credentials you use to deploy your machines that will host Kubernetes. + +| Variable | Required | Type | Choices | Default | Comment | +|---------------------------------------------|----------|---------|----------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------| +| external_vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | +| external_vsphere_vcenter_port | TRUE | string | | "443" | Port of the vCenter API | +| external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert | +| external_vsphere_user | TRUE | string | | | User name for vCenter with required privileges (Can also be specified with the `VSPHERE_USER` environment variable) | +| external_vsphere_password | TRUE | string | | | Password for vCenter (Can also be specified with the `VSPHERE_PASSWORD` environment variable) | +| external_vsphere_datacenter | TRUE | string | | | Datacenter name to use | +| external_vsphere_kubernetes_cluster_id | TRUE | string | | "kubernetes-cluster-id" | Kubernetes cluster ID to use | +| external_vsphere_version | TRUE | string | | "6.7u3" | Vmware Vsphere version where located all VMs | +| external_vsphere_cloud_controller_image_tag | TRUE | string | | "latest" | Kubernetes cluster ID to use | +| vsphere_syncer_image_tag | TRUE | string | | "v2.2.1" | Syncer image tag to use | +| vsphere_csi_attacher_image_tag | TRUE | string | | "v3.1.0" | CSI attacher image tag to use | +| vsphere_csi_controller | TRUE | string | | "v2.2.1" | CSI controller image tag to use | +| vsphere_csi_controller_replicas | TRUE | integer | | 1 | Number of pods Kubernetes should deploy for the CSI controller | +| vsphere_csi_liveness_probe_image_tag | TRUE | string | | "v2.2.0" | CSI liveness probe image tag to use | +| vsphere_csi_provisioner_image_tag | TRUE | string | | "v2.1.0" | CSI provisioner image tag to use | +| vsphere_csi_node_driver_registrar_image_tag | TRUE | string | | "v1.1.0" | CSI node driver registrar image tag to use | +| vsphere_csi_driver_image_tag | TRUE | string | | "v1.0.2" | CSI driver image tag to use | +| vsphere_csi_resizer_tag | TRUE | string | | "v1.1.0" | CSI resizer image tag to use +| vsphere_csi_aggressive_node_drain | FALSE | boolean | | false | Enable aggressive node drain strategy | +| vsphere_csi_aggressive_node_unreachable_timeout | FALSE | int | 300 | | Timeout till node will be drained when it in an unreachable state | +| vsphere_csi_aggressive_node_not_ready_timeout | FALSE | int | 300 | | Timeout till node will be drained when it in not-ready state | + +## Usage example + +To test the dynamic provisioning using vSphere CSI driver, make sure to create a [storage policy](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/docs/book/tutorials/kubernetes-on-vsphere-with-kubeadm.md#create-a-storage-policy) and [storage class](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/docs/book/tutorials/kubernetes-on-vsphere-with-kubeadm.md#create-a-storageclass), then apply the following manifest: + +```yml +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: csi-pvc-vsphere +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: Space-Efficient + +--- +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - image: nginx + imagePullPolicy: IfNotPresent + name: nginx + ports: + - containerPort: 80 + protocol: TCP + volumeMounts: + - mountPath: /usr/share/nginx/html + name: csi-data-vsphere + volumes: + - name: csi-data-vsphere + persistentVolumeClaim: + claimName: csi-pvc-vsphere + readOnly: false +``` + +Apply this conf to your cluster: ```kubectl apply -f nginx.yml``` + +You should see the PVC provisioned and bound: + +```ShellSession +$ kubectl get pvc +NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE +csi-pvc-vsphere Bound pvc-dc7b1d21-ee41-45e1-98d9-e877cc1533ac 1Gi RWO Space-Efficient 10s +``` + +And the volume mounted to the Nginx Pod (wait until the Pod is Running): + +```ShellSession +kubectl exec -it nginx -- df -h | grep /usr/share/nginx/html +/dev/sdb 976M 2.6M 907M 1% /usr/share/nginx/html +``` + +## More info + +For further information about the vSphere CSI Driver, you can refer to the official [vSphere Cloud Provider documentation](https://cloud-provider-vsphere.sigs.k8s.io/container_storage_interface.html). diff --git a/XTesting/kubespray/docs/vsphere.md b/XTesting/kubespray/docs/vsphere.md new file mode 100644 index 0000000..f331f6f --- /dev/null +++ b/XTesting/kubespray/docs/vsphere.md @@ -0,0 +1,134 @@ +# vSphere + +Kubespray can be deployed with vSphere as Cloud provider. This feature supports: + +- Volumes +- Persistent Volumes +- Storage Classes and provisioning of volumes +- vSphere Storage Policy Based Management for Containers orchestrated by Kubernetes + +## Out-of-tree vSphere cloud provider + +### Prerequisites + +You need at first to configure your vSphere environment by following the [official documentation](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/docs/book/tutorials/kubernetes-on-vsphere-with-kubeadm.md#prerequisites). + +After this step you should have: + +- vSphere upgraded to 6.7 U3 or later +- VM hardware upgraded to version 15 or higher +- UUID activated for each VM where Kubernetes will be deployed + +### Kubespray configuration + +First in `inventory/sample/group_vars/all.yml` you must set the cloud provider to `external` and external_cloud_provider to `external_cloud_provider`. + +```yml +cloud_provider: "external" +external_cloud_provider: "vsphere" +``` + +Then, `inventory/sample/group_vars/vsphere.yml`, you need to declare your vCenter credentials and enable the vSphere CSI following the description below. + +| Variable | Required | Type | Choices | Default | Comment | +|----------------------------------------|----------|---------|----------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------| +| external_vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | +| external_vsphere_vcenter_port | TRUE | string | | "443" | Port of the vCenter API | +| external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert | +| external_vsphere_user | TRUE | string | | | User name for vCenter with required privileges (Can also be specified with the `VSPHERE_USER` environment variable) | +| external_vsphere_password | TRUE | string | | | Password for vCenter (Can also be specified with the `VSPHERE_PASSWORD` environment variable) | +| external_vsphere_datacenter | TRUE | string | | | Datacenter name to use | +| external_vsphere_kubernetes_cluster_id | TRUE | string | | "kubernetes-cluster-id" | Kubernetes cluster ID to use | +| vsphere_csi_enabled | TRUE | boolean | | false | Enable vSphere CSI | + +Example configuration: + +```yml +external_vsphere_vcenter_ip: "myvcenter.domain.com" +external_vsphere_vcenter_port: "443" +external_vsphere_insecure: "true" +external_vsphere_user: "administrator@vsphere.local" +external_vsphere_password: "K8s_admin" +external_vsphere_datacenter: "DATACENTER_name" +external_vsphere_kubernetes_cluster_id: "kubernetes-cluster-id" +vsphere_csi_enabled: true +``` + +For a more fine-grained CSI setup, refer to the [vsphere-csi](/docs/vsphere-csi.md) documentation. + +### Deployment + +Once the configuration is set, you can execute the playbook again to apply the new configuration: + +```ShellSession +cd kubespray +ansible-playbook -i inventory/sample/hosts.ini -b -v cluster.yml +``` + +You'll find some useful examples [here](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/docs/book/tutorials/kubernetes-on-vsphere-with-kubeadm.md#sample-manifests-to-test-csi-driver-functionality) to test your configuration. + +## In-tree vSphere cloud provider ([deprecated](https://cloud-provider-vsphere.sigs.k8s.io/concepts/in_tree_vs_out_of_tree.html)) + +### Prerequisites (deprecated) + +You need at first to configure your vSphere environment by following the [official documentation](https://kubernetes.io/docs/getting-started-guides/vsphere/#vsphere-cloud-provider). + +After this step you should have: + +- UUID activated for each VM where Kubernetes will be deployed +- A vSphere account with required privileges + +If you intend to leverage the [zone and region node labeling](https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/#failure-domain-beta-kubernetes-io-region), create a tag category for both the zone and region in vCenter. The tags can then be applied at the host, cluster, datacenter, or folder level, and the cloud provider will walk the hierarchy to extract and apply the labels to the Kubernetes nodes. + +### Kubespray configuration (deprecated) + +First you must define the cloud provider in `inventory/sample/group_vars/all.yml` and set it to `vsphere`. + +```yml +cloud_provider: vsphere +``` + +Then, in the same file, you need to declare your vCenter credentials following the description below. + +| Variable | Required | Type | Choices | Default | Comment | +|------------------------------|----------|---------|----------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | +| vsphere_vcenter_port | TRUE | integer | | | Port of the vCenter API. Commonly 443 | +| vsphere_insecure | TRUE | integer | 1, 0 | | set to 1 if the host above uses a self-signed cert | +| vsphere_user | TRUE | string | | | User name for vCenter with required privileges | +| vsphere_password | TRUE | string | | | Password for vCenter | +| vsphere_datacenter | TRUE | string | | | Datacenter name to use | +| vsphere_datastore | TRUE | string | | | Datastore name to use | +| vsphere_working_dir | TRUE | string | | | Working directory from the view "VMs and template" in the vCenter where VM are placed | +| vsphere_scsi_controller_type | TRUE | string | buslogic, pvscsi, parallel | pvscsi | SCSI controller name. Commonly "pvscsi". | +| vsphere_vm_uuid | FALSE | string | | | VM Instance UUID of virtual machine that host K8s master. Can be retrieved from instanceUuid property in VmConfigInfo, or as vc.uuid in VMX file or in `/sys/class/dmi/id/product_serial` (Optional, only used for Kubernetes <= 1.9.2) | +| vsphere_public_network | FALSE | string | | Blank | Name of the network the VMs are joined to | +| vsphere_resource_pool | FALSE | string | | Blank | Name of the Resource pool where the VMs are located (Optional, only used for Kubernetes >= 1.9.2) | +| vsphere_zone_category | FALSE | string | | | Name of the tag category used to set the `failure-domain.beta.kubernetes.io/zone` label on nodes (Optional, only used for Kubernetes >= 1.12.0) | +| vsphere_region_category | FALSE | string | | | Name of the tag category used to set the `failure-domain.beta.kubernetes.io/region` label on nodes (Optional, only used for Kubernetes >= 1.12.0) | + +Example configuration: + +```yml +vsphere_vcenter_ip: "myvcenter.domain.com" +vsphere_vcenter_port: 443 +vsphere_insecure: 1 +vsphere_user: "k8s@vsphere.local" +vsphere_password: "K8s_admin" +vsphere_datacenter: "DATACENTER_name" +vsphere_datastore: "DATASTORE_name" +vsphere_working_dir: "Docker_hosts" +vsphere_scsi_controller_type: "pvscsi" +vsphere_resource_pool: "K8s-Pool" +``` + +### Deployment (deprecated) + +Once the configuration is set, you can execute the playbook again to apply the new configuration: + +```ShellSession +cd kubespray +ansible-playbook -i inventory/sample/hosts.ini -b -v cluster.yml +``` + +You'll find some useful examples [here](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) to test your configuration. diff --git a/XTesting/kubespray/docs/weave.md b/XTesting/kubespray/docs/weave.md new file mode 100644 index 0000000..30fa494 --- /dev/null +++ b/XTesting/kubespray/docs/weave.md @@ -0,0 +1,79 @@ +# Weave + +Weave 2.0.1 is supported by kubespray + +Weave uses [**consensus**](https://www.weave.works/docs/net/latest/ipam/##consensus) mode (default mode) and [**seed**](https://www.weave.works/docs/net/latest/ipam/#seed) mode. + +`Consensus` mode is best to use on static size cluster and `seed` mode is best to use on dynamic size cluster + +Weave encryption is supported for all communication + +* To use Weave encryption, specify a strong password (if no password, no encryption) + +```ShellSession +# In file ./inventory/sample/group_vars/k8s_cluster.yml +weave_password: EnterPasswordHere +``` + +This password is used to set an environment variable inside weave container. + +Weave is deployed by kubespray using a daemonSet + +* Check the status of Weave containers + +```ShellSession +# From client +kubectl -n kube-system get pods | grep weave +# output +weave-net-50wd2 2/2 Running 0 2m +weave-net-js9rb 2/2 Running 0 2m +``` + +There must be as many pods as nodes (here kubernetes have 2 nodes so there are 2 weave pods). + +* Check status of weave (connection,encryption ...) for each node + +```ShellSession +# On nodes +curl http://127.0.0.1:6784/status +# output on node1 +Version: 2.0.1 (up to date; next check at 2017/08/01 13:51:34) + + Service: router + Protocol: weave 1..2 + Name: fa:16:3e:b3:d6:b2(node1) + Encryption: enabled + PeerDiscovery: enabled + Targets: 2 + Connections: 2 (1 established, 1 failed) + Peers: 2 (with 2 established connections) + TrustedSubnets: none + + Service: ipam + Status: ready + Range: 10.233.64.0/18 + DefaultSubnet: 10.233.64.0/18 +``` + +* Check parameters of weave for each node + +```ShellSession +# On nodes +ps -aux | grep weaver +# output on node1 (here its use seed mode) +root 8559 0.2 3.0 365280 62700 ? Sl 08:25 0:00 /home/weave/weaver --name=fa:16:3e:b3:d6:b2 --port=6783 --datapath=datapath --host-root=/host --http-addr=127.0.0.1:6784 --status-addr=0.0.0.0:6782 --docker-api= --no-dns --db-prefix=/weavedb/weave-net --ipalloc-range=10.233.64.0/18 --nickname=node1 --ipalloc-init seed=fa:16:3e:b3:d6:b2,fa:16:3e:f0:50:53 --conn-limit=30 --expect-npc 192.168.208.28 192.168.208.19 +``` + +## Consensus mode (default mode) + +This mode is best to use on static size cluster + +### Seed mode + +This mode is best to use on dynamic size cluster + +The seed mode also allows multi-clouds and hybrid on-premise/cloud clusters deployment. + +* Switch from consensus mode to seed/Observation mode + +See [weave ipam documentation](https://www.weave.works/docs/net/latest/tasks/ipam/ipam/) and use `weave_extra_args` to enable. diff --git a/XTesting/kubespray/extra_playbooks.tar.gz b/XTesting/kubespray/extra_playbooks.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..eb72126a450bd65420d3ce47d478359ea2290daf GIT binary patch literal 439618 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≤VE%fKIJk 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 + + + + Kubespray - Deploy a Production Ready Kubernetes Cluster + + + + + + +

+ + + + + + + diff --git a/XTesting/kubespray/inventory/local/group_vars/all/all.yml b/XTesting/kubespray/inventory/local/group_vars/all/all.yml new file mode 100644 index 0000000..5b0ca47 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/all.yml @@ -0,0 +1,135 @@ +--- +## Directory where the binaries will be installed +bin_dir: /usr/local/bin + +## The access_ip variable is used to define how other nodes should access +## the node. This is used in flannel to allow other flannel nodes to see +## this node for example. The access_ip is really useful AWS and Google +## environments where the nodes are accessed remotely by the "public" ip, +## but don't know about that address themselves. +# access_ip: 1.1.1.1 + + +## External LB example config +## apiserver_loadbalancer_domain_name: "elb.some.domain" +# loadbalancer_apiserver: +# address: 1.2.3.4 +# port: 1234 + +## Internal loadbalancers for apiservers +# loadbalancer_apiserver_localhost: true +# valid options are "nginx" or "haproxy" +# loadbalancer_apiserver_type: nginx # valid values "nginx" or "haproxy" + +## If the cilium is going to be used in strict mode, we can use the +## localhost connection and not use the external LB. If this parameter is +## not specified, the first node to connect to kubeapi will be used. +# use_localhost_as_kubeapi_loadbalancer: true + +## Local loadbalancer should use this port +## And must be set port 6443 +loadbalancer_apiserver_port: 6443 + +## If loadbalancer_apiserver_healthcheck_port variable defined, enables proxy liveness check for nginx. +loadbalancer_apiserver_healthcheck_port: 8081 + +### OTHER OPTIONAL VARIABLES + +## Upstream dns servers +# upstream_dns_servers: +# - 8.8.8.8 +# - 8.8.4.4 + +## There are some changes specific to the cloud providers +## for instance we need to encapsulate packets with some network plugins +## If set the possible values are either 'gce', 'aws', 'azure', 'openstack', 'vsphere', 'oci', or 'external' +## When openstack is used make sure to source in the openstack credentials +## like you would do when using openstack-client before starting the playbook. +# cloud_provider: + +## When cloud_provider is set to 'external', you can set the cloud controller to deploy +## Supported cloud controllers are: 'openstack', 'vsphere' and 'hcloud' +## When openstack or vsphere are used make sure to source in the required fields +# external_cloud_provider: + +## Set these proxy values in order to update package manager and docker daemon to use proxies +# http_proxy: "" +# https_proxy: "" + +## Refer to roles/kubespray-defaults/defaults/main.yml before modifying no_proxy +# no_proxy: "" + +## Some problems may occur when downloading files over https proxy due to ansible bug +## https://github.com/ansible/ansible/issues/32750. Set this variable to False to disable +## SSL validation of get_url module. Note that kubespray will still be performing checksum validation. +# download_validate_certs: False + +## If you need exclude all cluster nodes from proxy and other resources, add other resources here. +# additional_no_proxy: "" + +## If you need to disable proxying of os package repositories but are still behind an http_proxy set +## skip_http_proxy_on_os_packages to true +## This will cause kubespray not to set proxy environment in /etc/yum.conf for centos and in /etc/apt/apt.conf for debian/ubuntu +## Special information for debian/ubuntu - you have to set the no_proxy variable, then apt package will install from your source of wish +# skip_http_proxy_on_os_packages: false + +## Since workers are included in the no_proxy variable by default, docker engine will be restarted on all nodes (all +## pods will restart) when adding or removing workers. To override this behaviour by only including master nodes in the +## no_proxy variable, set below to true: +no_proxy_exclude_workers: false + +## Certificate Management +## This setting determines whether certs are generated via scripts. +## Chose 'none' if you provide your own certificates. +## Option is "script", "none" +# cert_management: script + +## Set to true to allow pre-checks to fail and continue deployment +# ignore_assert_errors: false + +## The read-only port for the Kubelet to serve on with no authentication/authorization. Uncomment to enable. +# kube_read_only_port: 10255 + +## Set true to download and cache container +# download_container: true + +## Deploy container engine +# Set false if you want to deploy container engine manually. +# deploy_container_engine: true + +## Red Hat Enterprise Linux subscription registration +## Add either RHEL subscription Username/Password or Organization ID/Activation Key combination +## Update RHEL subscription purpose usage, role and SLA if necessary +# rh_subscription_username: "" +# rh_subscription_password: "" +# rh_subscription_org_id: "" +# rh_subscription_activation_key: "" +# rh_subscription_usage: "Development" +# rh_subscription_role: "Red Hat Enterprise Server" +# rh_subscription_sla: "Self-Support" + +## Check if access_ip responds to ping. Set false if your firewall blocks ICMP. +# ping_access_ip: true + +# sysctl_file_path to add sysctl conf to +# sysctl_file_path: "/etc/sysctl.d/99-sysctl.conf" + +## Variables for webhook token auth https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication +kube_webhook_token_auth: false +kube_webhook_token_auth_url_skip_tls_verify: false +# kube_webhook_token_auth_url: https://... +## base64-encoded string of the webhook's CA certificate +# kube_webhook_token_auth_ca_data: "LS0t..." + +## NTP Settings +# Start the ntpd or chrony service and enable it at system boot. +ntp_enabled: false +ntp_manage_config: false +ntp_servers: + - "0.pool.ntp.org iburst" + - "1.pool.ntp.org iburst" + - "2.pool.ntp.org iburst" + - "3.pool.ntp.org iburst" + +## Used to control no_log attribute +unsafe_show_logs: false diff --git a/XTesting/kubespray/inventory/local/group_vars/all/aws.yml b/XTesting/kubespray/inventory/local/group_vars/all/aws.yml new file mode 100644 index 0000000..dab674e --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/aws.yml @@ -0,0 +1,9 @@ +## To use AWS EBS CSI Driver to provision volumes, uncomment the first value +## and configure the parameters below +# aws_ebs_csi_enabled: true +# aws_ebs_csi_enable_volume_scheduling: true +# aws_ebs_csi_enable_volume_snapshot: false +# aws_ebs_csi_enable_volume_resizing: false +# aws_ebs_csi_controller_replicas: 1 +# aws_ebs_csi_plugin_image_tag: latest +# aws_ebs_csi_extra_volume_tags: "Owner=owner,Team=team,Environment=environment' diff --git a/XTesting/kubespray/inventory/local/group_vars/all/azure.yml b/XTesting/kubespray/inventory/local/group_vars/all/azure.yml new file mode 100644 index 0000000..176b0f1 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/azure.yml @@ -0,0 +1,40 @@ +## When azure is used, you need to also set the following variables. +## see docs/azure.md for details on how to get these values + +# azure_cloud: +# azure_tenant_id: +# azure_subscription_id: +# azure_aad_client_id: +# azure_aad_client_secret: +# azure_resource_group: +# azure_location: +# azure_subnet_name: +# azure_security_group_name: +# azure_security_group_resource_group: +# azure_vnet_name: +# azure_vnet_resource_group: +# azure_route_table_name: +# azure_route_table_resource_group: +# supported values are 'standard' or 'vmss' +# azure_vmtype: standard + +## Azure Disk CSI credentials and parameters +## see docs/azure-csi.md for details on how to get these values + +# azure_csi_tenant_id: +# azure_csi_subscription_id: +# azure_csi_aad_client_id: +# azure_csi_aad_client_secret: +# azure_csi_location: +# azure_csi_resource_group: +# azure_csi_vnet_name: +# azure_csi_vnet_resource_group: +# azure_csi_subnet_name: +# azure_csi_security_group_name: +# azure_csi_use_instance_metadata: +# azure_csi_tags: "Owner=owner,Team=team,Environment=environment' + +## To enable Azure Disk CSI, uncomment below +# azure_csi_enabled: true +# azure_csi_controller_replicas: 1 +# azure_csi_plugin_image_tag: latest diff --git a/XTesting/kubespray/inventory/local/group_vars/all/containerd.yml b/XTesting/kubespray/inventory/local/group_vars/all/containerd.yml new file mode 100644 index 0000000..78ed663 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/containerd.yml @@ -0,0 +1,50 @@ +--- +# Please see roles/container-engine/containerd/defaults/main.yml for more configuration options + +# containerd_storage_dir: "/var/lib/containerd" +# containerd_state_dir: "/run/containerd" +# containerd_oom_score: 0 + +# containerd_default_runtime: "runc" +# containerd_snapshotter: "native" + +# containerd_runc_runtime: +# name: runc +# type: "io.containerd.runc.v2" +# engine: "" +# root: "" + +# containerd_additional_runtimes: +# Example for Kata Containers as additional runtime: +# - name: kata +# type: "io.containerd.kata.v2" +# engine: "" +# root: "" + +# containerd_grpc_max_recv_message_size: 16777216 +# containerd_grpc_max_send_message_size: 16777216 + +# containerd_debug_level: "info" + +# containerd_metrics_address: "" + +# containerd_metrics_grpc_histogram: false + +## An obvious use case is allowing insecure-registry access to self hosted registries. +## Can be ipaddress and domain_name. +## example define mirror.registry.io or 172.19.16.11:5000 +## set "name": "url". insecure url must be started http:// +## Port number is also needed if the default HTTPS port is not used. +# containerd_insecure_registries: +# "localhost": "http://127.0.0.1" +# "172.19.16.11:5000": "http://172.19.16.11:5000" + +# containerd_registries: +# "docker.io": "https://registry-1.docker.io" + +# containerd_max_container_log_line_size: -1 + +# containerd_registry_auth: +# - registry: 10.0.0.2:5000 +# username: user +# password: pass diff --git a/XTesting/kubespray/inventory/local/group_vars/all/coreos.yml b/XTesting/kubespray/inventory/local/group_vars/all/coreos.yml new file mode 100644 index 0000000..22c2166 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/coreos.yml @@ -0,0 +1,2 @@ +## Does coreos need auto upgrade, default is true +# coreos_auto_upgrade: true diff --git a/XTesting/kubespray/inventory/local/group_vars/all/cri-o.yml b/XTesting/kubespray/inventory/local/group_vars/all/cri-o.yml new file mode 100644 index 0000000..3e6e4ee --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/cri-o.yml @@ -0,0 +1,6 @@ +# crio_insecure_registries: +# - 10.0.0.2:5000 +# crio_registry_auth: +# - registry: 10.0.0.2:5000 +# username: user +# password: pass diff --git a/XTesting/kubespray/inventory/local/group_vars/all/docker.yml b/XTesting/kubespray/inventory/local/group_vars/all/docker.yml new file mode 100644 index 0000000..4e968c3 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/docker.yml @@ -0,0 +1,59 @@ +--- +## Uncomment this if you want to force overlay/overlay2 as docker storage driver +## Please note that overlay2 is only supported on newer kernels +# docker_storage_options: -s overlay2 + +## Enable docker_container_storage_setup, it will configure devicemapper driver on Centos7 or RedHat7. +docker_container_storage_setup: false + +## It must be define a disk path for docker_container_storage_setup_devs. +## Otherwise docker-storage-setup will be executed incorrectly. +# docker_container_storage_setup_devs: /dev/vdb + +## Uncomment this if you want to change the Docker Cgroup driver (native.cgroupdriver) +## Valid options are systemd or cgroupfs, default is systemd +# docker_cgroup_driver: systemd + +## Only set this if you have more than 3 nameservers: +## If true Kubespray will only use the first 3, otherwise it will fail +docker_dns_servers_strict: false + +# Path used to store Docker data +docker_daemon_graph: "/var/lib/docker" + +## Used to set docker daemon iptables options to true +docker_iptables_enabled: "false" + +# Docker log options +# Rotate container stderr/stdout logs at 50m and keep last 5 +docker_log_opts: "--log-opt max-size=50m --log-opt max-file=5" + +# define docker bin_dir +docker_bin_dir: "/usr/bin" + +# keep docker packages after installation; speeds up repeated ansible provisioning runs when '1' +# kubespray deletes the docker package on each run, so caching the package makes sense +docker_rpm_keepcache: 1 + +## An obvious use case is allowing insecure-registry access to self hosted registries. +## Can be ipaddress and domain_name. +## example define 172.19.16.11 or mirror.registry.io +# docker_insecure_registries: +# - mirror.registry.io +# - 172.19.16.11 + +## Add other registry,example China registry mirror. +# docker_registry_mirrors: +# - https://registry.docker-cn.com +# - https://mirror.aliyuncs.com + +## If non-empty will override default system MountFlags value. +## This option takes a mount propagation flag: shared, slave +## or private, which control whether mounts in the file system +## namespace set up for docker will receive or propagate mounts +## and unmounts. Leave empty for system default +# docker_mount_flags: + +## A string of extra options to pass to the docker daemon. +## This string should be exactly as you wish it to appear. +# docker_options: "" diff --git a/XTesting/kubespray/inventory/local/group_vars/all/etcd.yml b/XTesting/kubespray/inventory/local/group_vars/all/etcd.yml new file mode 100644 index 0000000..7206a06 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/etcd.yml @@ -0,0 +1,16 @@ +--- +## Directory where etcd data stored +etcd_data_dir: /var/lib/etcd + +## Container runtime +## docker for docker, crio for cri-o and containerd for containerd. +## Additionally you can set this to kubeadm if you want to install etcd using kubeadm +## Kubeadm etcd deployment is experimental and only available for new deployments +## If this is not set, container manager will be inherited from the Kubespray defaults +## and not from k8s_cluster/k8s-cluster.yml, which might not be what you want. +## Also this makes possible to use different container manager for etcd nodes. +# container_manager: containerd + +## Settings for etcd deployment type +# Set this to docker if you are using container_manager: docker +etcd_deployment_type: host \ No newline at end of file diff --git a/XTesting/kubespray/inventory/local/group_vars/all/gcp.yml b/XTesting/kubespray/inventory/local/group_vars/all/gcp.yml new file mode 100644 index 0000000..49eb5c0 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/gcp.yml @@ -0,0 +1,10 @@ +## GCP compute Persistent Disk CSI Driver credentials and parameters +## See docs/gcp-pd-csi.md for information about the implementation + +## Specify the path to the file containing the service account credentials +# gcp_pd_csi_sa_cred_file: "/my/safe/credentials/directory/cloud-sa.json" + +## To enable GCP Persistent Disk CSI driver, uncomment below +# gcp_pd_csi_enabled: true +# gcp_pd_csi_controller_replicas: 1 +# gcp_pd_csi_driver_image_tag: "v0.7.0-gke.0" diff --git a/XTesting/kubespray/inventory/local/group_vars/all/hcloud.yml b/XTesting/kubespray/inventory/local/group_vars/all/hcloud.yml new file mode 100644 index 0000000..c27035c --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/hcloud.yml @@ -0,0 +1,14 @@ +## Values for the external Hcloud Cloud Controller +# external_hcloud_cloud: +# hcloud_api_token: "" +# token_secret_name: hcloud +# with_networks: false # Use the hcloud controller-manager with networks support https://github.com/hetznercloud/hcloud-cloud-controller-manager#networks-support +# service_account_name: cloud-controller-manager +# +# controller_image_tag: "latest" +# ## A dictionary of extra arguments to add to the openstack cloud controller manager daemonset +# ## Format: +# ## external_hcloud_cloud.controller_extra_args: +# ## arg1: "value1" +# ## arg2: "value2" +# controller_extra_args: {} diff --git a/XTesting/kubespray/inventory/local/group_vars/all/oci.yml b/XTesting/kubespray/inventory/local/group_vars/all/oci.yml new file mode 100644 index 0000000..541d0e6 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/oci.yml @@ -0,0 +1,28 @@ +## When Oracle Cloud Infrastructure is used, set these variables +# oci_private_key: +# oci_region_id: +# oci_tenancy_id: +# oci_user_id: +# oci_user_fingerprint: +# oci_compartment_id: +# oci_vnc_id: +# oci_subnet1_id: +# oci_subnet2_id: +## Override these default/optional behaviors if you wish +# oci_security_list_management: All +## If you would like the controller to manage specific lists per subnet. This is a mapping of subnet ocids to security list ocids. Below are examples. +# oci_security_lists: +# ocid1.subnet.oc1.phx.aaaaaaaasa53hlkzk6nzksqfccegk2qnkxmphkblst3riclzs4rhwg7rg57q: ocid1.securitylist.oc1.iad.aaaaaaaaqti5jsfvyw6ejahh7r4okb2xbtuiuguswhs746mtahn72r7adt7q +# ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq: ocid1.securitylist.oc1.iad.aaaaaaaaqti5jsfvyw6ejahh7r4okb2xbtuiuguswhs746mtahn72r7adt7q +## If oci_use_instance_principals is true, you do not need to set the region, tenancy, user, key, passphrase, or fingerprint +# oci_use_instance_principals: false +# oci_cloud_controller_version: 0.6.0 +## If you would like to control OCI query rate limits for the controller +# oci_rate_limit: +# rate_limit_qps_read: +# rate_limit_qps_write: +# rate_limit_bucket_read: +# rate_limit_bucket_write: +## Other optional variables +# oci_cloud_controller_pull_source: (default iad.ocir.io/oracle/cloud-provider-oci) +# oci_cloud_controller_pull_secret: (name of pull secret to use if you define your own mirror above) diff --git a/XTesting/kubespray/inventory/local/group_vars/all/offline.yml b/XTesting/kubespray/inventory/local/group_vars/all/offline.yml new file mode 100644 index 0000000..42c7e69 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/offline.yml @@ -0,0 +1,96 @@ +--- +## Global Offline settings +### Private Container Image Registry +# registry_host: "myprivateregisry.com" +# files_repo: "http://myprivatehttpd" +### If using CentOS, RedHat, AlmaLinux or Fedora +# yum_repo: "http://myinternalyumrepo" +### If using Debian +# debian_repo: "http://myinternaldebianrepo" +### If using Ubuntu +# ubuntu_repo: "http://myinternalubunturepo" + +## Container Registry overrides +# kube_image_repo: "{{ registry_host }}" +# gcr_image_repo: "{{ registry_host }}" +# github_image_repo: "{{ registry_host }}" +# docker_image_repo: "{{ registry_host }}" +# quay_image_repo: "{{ registry_host }}" + +## Kubernetes components +# kubeadm_download_url: "{{ files_repo }}/storage.googleapis.com/kubernetes-release/release/{{ kubeadm_version }}/bin/linux/{{ image_arch }}/kubeadm" +# kubectl_download_url: "{{ files_repo }}/storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubectl" +# kubelet_download_url: "{{ files_repo }}/storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubelet" + +## CNI Plugins +# cni_download_url: "{{ files_repo }}/github.com/containernetworking/plugins/releases/download/{{ cni_version }}/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz" + +## cri-tools +# crictl_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/cri-tools/releases/download/{{ crictl_version }}/crictl-{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" + +## [Optional] etcd: only if you **DON'T** use etcd_deployment=host +# etcd_download_url: "{{ files_repo }}/github.com/etcd-io/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-{{ image_arch }}.tar.gz" + +# [Optional] Calico: If using Calico network plugin +# calicoctl_download_url: "{{ files_repo }}/github.com/projectcalico/calico/releases/download/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}" +# calicoctl_alternate_download_url: "{{ files_repo }}/github.com/projectcalico/calicoctl/releases/download/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}" +# [Optional] Calico with kdd: If using Calico network plugin with kdd datastore +# calico_crds_download_url: "{{ files_repo }}/github.com/projectcalico/calico/archive/{{ calico_version }}.tar.gz" + +# [Optional] Flannel: If using Falnnel network plugin +# flannel_cni_download_url: "{{ files_repo }}/kubernetes/flannel/{{ flannel_cni_version }}/flannel-{{ image_arch }}" + +# [Optional] helm: only if you set helm_enabled: true +# helm_download_url: "{{ files_repo }}/get.helm.sh/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz" + +# [Optional] crun: only if you set crun_enabled: true +# crun_download_url: "{{ files_repo }}/github.com/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}" + +# [Optional] kata: only if you set kata_containers_enabled: true +# kata_containers_download_url: "{{ files_repo }}/github.com/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ ansible_architecture }}.tar.xz" + +# [Optional] cri-dockerd: only if you set container_manager: docker +# cri_dockerd_download_url: "{{ files_repo }}/github.com/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz" + +# [Optional] cri-o: only if you set container_manager: crio +# crio_download_base: "download.opensuse.org/repositories/devel:kubic:libcontainers:stable" +# crio_download_crio: "http://{{ crio_download_base }}:/cri-o:/" + +# [Optional] runc,containerd: only if you set container_runtime: containerd +# runc_download_url: "{{ files_repo }}/github.com/opencontainers/runc/releases/download/{{ runc_version }}/runc.{{ image_arch }}" +# containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz" +# nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" + +## CentOS/Redhat/AlmaLinux +### For EL7, base and extras repo must be available, for EL8, baseos and appstream +### By default we enable those repo automatically +# rhel_enable_repos: false +### Docker / Containerd +# docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch" +# docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" + +## Fedora +### Docker +# docker_fedora_repo_base_url: "{{ yum_repo }}/docker-ce/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}" +# docker_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" +### Containerd +# containerd_fedora_repo_base_url: "{{ yum_repo }}/containerd" +# containerd_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" + +## Debian +### Docker +# docker_debian_repo_base_url: "{{ debian_repo }}/docker-ce" +# docker_debian_repo_gpgkey: "{{ debian_repo }}/docker-ce/gpg" +### Containerd +# containerd_debian_repo_base_url: "{{ ubuntu_repo }}/containerd" +# containerd_debian_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg" +# containerd_debian_repo_repokey: 'YOURREPOKEY' + +## Ubuntu +### Docker +# docker_ubuntu_repo_base_url: "{{ ubuntu_repo }}/docker-ce" +# docker_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/docker-ce/gpg" +### Containerd +# containerd_ubuntu_repo_base_url: "{{ ubuntu_repo }}/containerd" +# containerd_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg" +# containerd_ubuntu_repo_repokey: 'YOURREPOKEY' diff --git a/XTesting/kubespray/inventory/local/group_vars/all/openstack.yml b/XTesting/kubespray/inventory/local/group_vars/all/openstack.yml new file mode 100644 index 0000000..7835664 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/openstack.yml @@ -0,0 +1,49 @@ +## When OpenStack is used, Cinder version can be explicitly specified if autodetection fails (Fixed in 1.9: https://github.com/kubernetes/kubernetes/issues/50461) +# openstack_blockstorage_version: "v1/v2/auto (default)" +# openstack_blockstorage_ignore_volume_az: yes +## When OpenStack is used, if LBaaSv2 is available you can enable it with the following 2 variables. +# openstack_lbaas_enabled: True +# openstack_lbaas_subnet_id: "Neutron subnet ID (not network ID) to create LBaaS VIP" +## To enable automatic floating ip provisioning, specify a subnet. +# openstack_lbaas_floating_network_id: "Neutron network ID (not subnet ID) to get floating IP from, disabled by default" +## Override default LBaaS behavior +# openstack_lbaas_use_octavia: False +# openstack_lbaas_method: "ROUND_ROBIN" +# openstack_lbaas_provider: "haproxy" +# openstack_lbaas_create_monitor: "yes" +# openstack_lbaas_monitor_delay: "1m" +# openstack_lbaas_monitor_timeout: "30s" +# openstack_lbaas_monitor_max_retries: "3" + +## Values for the external OpenStack Cloud Controller +# external_openstack_lbaas_network_id: "Neutron network ID to create LBaaS VIP" +# external_openstack_lbaas_subnet_id: "Neutron subnet ID to create LBaaS VIP" +# external_openstack_lbaas_floating_network_id: "Neutron network ID to get floating IP from" +# external_openstack_lbaas_floating_subnet_id: "Neutron subnet ID to get floating IP from" +# external_openstack_lbaas_method: "ROUND_ROBIN" +# external_openstack_lbaas_provider: "octavia" +# external_openstack_lbaas_create_monitor: false +# external_openstack_lbaas_monitor_delay: "1m" +# external_openstack_lbaas_monitor_timeout: "30s" +# external_openstack_lbaas_monitor_max_retries: "3" +# external_openstack_lbaas_manage_security_groups: false +# external_openstack_lbaas_internal_lb: false +# external_openstack_network_ipv6_disabled: false +# external_openstack_network_internal_networks: [] +# external_openstack_network_public_networks: [] +# external_openstack_metadata_search_order: "configDrive,metadataService" + +## Application credentials to authenticate against Keystone API +## Those settings will take precedence over username and password that might be set your environment +## All of them are required +# external_openstack_application_credential_name: +# external_openstack_application_credential_id: +# external_openstack_application_credential_secret: + +## The tag of the external OpenStack Cloud Controller image +# external_openstack_cloud_controller_image_tag: "latest" + +## To use Cinder CSI plugin to provision volumes set this value to true +## Make sure to source in the openstack credentials +# cinder_csi_enabled: true +# cinder_csi_controller_replicas: 1 diff --git a/XTesting/kubespray/inventory/local/group_vars/all/upcloud.yml b/XTesting/kubespray/inventory/local/group_vars/all/upcloud.yml new file mode 100644 index 0000000..16e6e6f --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/upcloud.yml @@ -0,0 +1,19 @@ +## Repo for UpClouds csi-driver: https://github.com/UpCloudLtd/upcloud-csi +## To use UpClouds CSI plugin to provision volumes set this value to true +## Remember to set UPCLOUD_USERNAME and UPCLOUD_PASSWORD +# upcloud_csi_enabled: true +# upcloud_csi_controller_replicas: 1 +## Override used image tags +# upcloud_csi_provisioner_image_tag: "v3.1.0" +# upcloud_csi_attacher_image_tag: "v3.4.0" +# upcloud_csi_resizer_image_tag: "v1.4.0" +# upcloud_csi_plugin_image_tag: "v0.2.1" +# upcloud_csi_node_image_tag: "v2.5.0" +# upcloud_tolerations: [] +## Storage class options +# expand_persistent_volumes: true +# parameters: +# tier: maxiops # or hdd +# storage_classes: +# - name: standard +# is_default: true diff --git a/XTesting/kubespray/inventory/local/group_vars/all/vsphere.yml b/XTesting/kubespray/inventory/local/group_vars/all/vsphere.yml new file mode 100644 index 0000000..af3cfbe --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/all/vsphere.yml @@ -0,0 +1,32 @@ +## Values for the external vSphere Cloud Provider +# external_vsphere_vcenter_ip: "myvcenter.domain.com" +# external_vsphere_vcenter_port: "443" +# external_vsphere_insecure: "true" +# external_vsphere_user: "administrator@vsphere.local" # Can also be set via the `VSPHERE_USER` environment variable +# external_vsphere_password: "K8s_admin" # Can also be set via the `VSPHERE_PASSWORD` environment variable +# external_vsphere_datacenter: "DATACENTER_name" +# external_vsphere_kubernetes_cluster_id: "kubernetes-cluster-id" + +## Vsphere version where located VMs +# external_vsphere_version: "6.7u3" + +## Tags for the external vSphere Cloud Provider images +## gcr.io/cloud-provider-vsphere/cpi/release/manager +# external_vsphere_cloud_controller_image_tag: "latest" +## gcr.io/cloud-provider-vsphere/csi/release/syncer +# vsphere_syncer_image_tag: "v2.5.1" +## registry.k8s.io/sig-storage/csi-attacher +# vsphere_csi_attacher_image_tag: "v3.4.0" +## gcr.io/cloud-provider-vsphere/csi/release/driver +# vsphere_csi_controller: "v2.5.1" +## registry.k8s.io/sig-storage/livenessprobe +# vsphere_csi_liveness_probe_image_tag: "v2.6.0" +## registry.k8s.io/sig-storage/csi-provisioner +# vsphere_csi_provisioner_image_tag: "v3.1.0" +## registry.k8s.io/sig-storage/csi-resizer +## makes sense only for vSphere version >=7.0 +# vsphere_csi_resizer_tag: "v1.3.0" + +## To use vSphere CSI plugin to provision volumes set this value to true +# vsphere_csi_enabled: true +# vsphere_csi_controller_replicas: 1 diff --git a/XTesting/kubespray/inventory/local/group_vars/etcd.yml b/XTesting/kubespray/inventory/local/group_vars/etcd.yml new file mode 100644 index 0000000..f07c720 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/etcd.yml @@ -0,0 +1,26 @@ +--- +## Etcd auto compaction retention for mvcc key value store in hour +# etcd_compaction_retention: 0 + +## Set level of detail for etcd exported metrics, specify 'extensive' to include histogram metrics. +# etcd_metrics: basic + +## Etcd is restricted by default to 512M on systems under 4GB RAM, 512MB is not enough for much more than testing. +## Set this if your etcd nodes have less than 4GB but you want more RAM for etcd. Set to 0 for unrestricted RAM. +## This value is only relevant when deploying etcd with `etcd_deployment_type: docker` +# etcd_memory_limit: "512M" + +## Etcd has a default of 2G for its space quota. If you put a value in etcd_memory_limit which is less than +## etcd_quota_backend_bytes, you may encounter out of memory terminations of the etcd cluster. Please check +## etcd documentation for more information. +# 8G is a suggested maximum size for normal environments and etcd warns at startup if the configured value exceeds it. +# etcd_quota_backend_bytes: "2147483648" + +# Maximum client request size in bytes the server will accept. +# etcd is designed to handle small key value pairs typical for metadata. +# Larger requests will work, but may increase the latency of other requests +# etcd_max_request_bytes: "1572864" + +### ETCD: disable peer client cert authentication. +# This affects ETCD_PEER_CLIENT_CERT_AUTH variable +# etcd_peer_client_auth: true diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/addons.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/addons.yml new file mode 100644 index 0000000..a392319 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/addons.yml @@ -0,0 +1,226 @@ +--- +# Kubernetes dashboard +# RBAC required. see docs/getting-started.md for access details. +# dashboard_enabled: false + +# Helm deployment +helm_enabled: false + +# Registry deployment +registry_enabled: false +# registry_namespace: kube-system +# registry_storage_class: "" +# registry_disk_size: "10Gi" + +# Metrics Server deployment +metrics_server_enabled: false +# metrics_server_container_port: 4443 +# metrics_server_kubelet_insecure_tls: true +# metrics_server_metric_resolution: 15s +# metrics_server_kubelet_preferred_address_types: "InternalIP,ExternalIP,Hostname" + +# Rancher Local Path Provisioner +local_path_provisioner_enabled: false +# local_path_provisioner_namespace: "local-path-storage" +# local_path_provisioner_storage_class: "local-path" +# local_path_provisioner_reclaim_policy: Delete +# local_path_provisioner_claim_root: /opt/local-path-provisioner/ +# local_path_provisioner_debug: false +# local_path_provisioner_image_repo: "rancher/local-path-provisioner" +# local_path_provisioner_image_tag: "v0.0.22" +# local_path_provisioner_helper_image_repo: "busybox" +# local_path_provisioner_helper_image_tag: "latest" + +# Local volume provisioner deployment +local_volume_provisioner_enabled: false +# local_volume_provisioner_namespace: kube-system +# local_volume_provisioner_nodelabels: +# - kubernetes.io/hostname +# - topology.kubernetes.io/region +# - topology.kubernetes.io/zone +# local_volume_provisioner_storage_classes: +# local-storage: +# host_dir: /mnt/disks +# mount_dir: /mnt/disks +# volume_mode: Filesystem +# fs_type: ext4 +# fast-disks: +# host_dir: /mnt/fast-disks +# mount_dir: /mnt/fast-disks +# block_cleaner_command: +# - "/scripts/shred.sh" +# - "2" +# volume_mode: Filesystem +# fs_type: ext4 +# local_volume_provisioner_tolerations: +# - effect: NoSchedule +# operator: Exists + +# CSI Volume Snapshot Controller deployment, set this to true if your CSI is able to manage snapshots +# currently, setting cinder_csi_enabled=true would automatically enable the snapshot controller +# Longhorn is an extenal CSI that would also require setting this to true but it is not included in kubespray +# csi_snapshot_controller_enabled: false +# csi snapshot namespace +# snapshot_controller_namespace: kube-system + +# CephFS provisioner deployment +cephfs_provisioner_enabled: false +# cephfs_provisioner_namespace: "cephfs-provisioner" +# cephfs_provisioner_cluster: ceph +# cephfs_provisioner_monitors: "172.24.0.1:6789,172.24.0.2:6789,172.24.0.3:6789" +# cephfs_provisioner_admin_id: admin +# cephfs_provisioner_secret: secret +# cephfs_provisioner_storage_class: cephfs +# cephfs_provisioner_reclaim_policy: Delete +# cephfs_provisioner_claim_root: /volumes +# cephfs_provisioner_deterministic_names: true + +# RBD provisioner deployment +rbd_provisioner_enabled: false +# rbd_provisioner_namespace: rbd-provisioner +# rbd_provisioner_replicas: 2 +# rbd_provisioner_monitors: "172.24.0.1:6789,172.24.0.2:6789,172.24.0.3:6789" +# rbd_provisioner_pool: kube +# rbd_provisioner_admin_id: admin +# rbd_provisioner_secret_name: ceph-secret-admin +# rbd_provisioner_secret: ceph-key-admin +# rbd_provisioner_user_id: kube +# rbd_provisioner_user_secret_name: ceph-secret-user +# rbd_provisioner_user_secret: ceph-key-user +# rbd_provisioner_user_secret_namespace: rbd-provisioner +# rbd_provisioner_fs_type: ext4 +# rbd_provisioner_image_format: "2" +# rbd_provisioner_image_features: layering +# rbd_provisioner_storage_class: rbd +# rbd_provisioner_reclaim_policy: Delete + +# Nginx ingress controller deployment +ingress_nginx_enabled: false +# ingress_nginx_host_network: false +ingress_publish_status_address: "" +# ingress_nginx_nodeselector: +# kubernetes.io/os: "linux" +# ingress_nginx_tolerations: +# - key: "node-role.kubernetes.io/master" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# - key: "node-role.kubernetes.io/control-plane" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# ingress_nginx_namespace: "ingress-nginx" +# ingress_nginx_insecure_port: 80 +# ingress_nginx_secure_port: 443 +# ingress_nginx_configmap: +# map-hash-bucket-size: "128" +# ssl-protocols: "TLSv1.2 TLSv1.3" +# ingress_nginx_configmap_tcp_services: +# 9000: "default/example-go:8080" +# ingress_nginx_configmap_udp_services: +# 53: "kube-system/coredns:53" +# ingress_nginx_extra_args: +# - --default-ssl-certificate=default/foo-tls +# ingress_nginx_termination_grace_period_seconds: 300 +# ingress_nginx_class: nginx + +# ALB ingress controller deployment +ingress_alb_enabled: false +# alb_ingress_aws_region: "us-east-1" +# alb_ingress_restrict_scheme: "false" +# Enables logging on all outbound requests sent to the AWS API. +# If logging is desired, set to true. +# alb_ingress_aws_debug: "false" + +# Cert manager deployment +cert_manager_enabled: false +# cert_manager_namespace: "cert-manager" +# cert_manager_tolerations: +# - key: node-role.kubernetes.io/master +# effect: NoSchedule +# - key: node-role.kubernetes.io/control-plane +# effect: NoSchedule +# cert_manager_affinity: +# nodeAffinity: +# preferredDuringSchedulingIgnoredDuringExecution: +# - weight: 100 +# preference: +# matchExpressions: +# - key: node-role.kubernetes.io/control-plane +# operator: In +# values: +# - "" +# cert_manager_nodeselector: +# kubernetes.io/os: "linux" + +# cert_manager_trusted_internal_ca: | +# -----BEGIN CERTIFICATE----- +# [REPLACE with your CA certificate] +# -----END CERTIFICATE----- +# cert_manager_leader_election_namespace: kube-system + +# MetalLB deployment +metallb_enabled: false +metallb_speaker_enabled: true +# metallb_ip_range: +# - "10.5.0.50-10.5.0.99" +# metallb_pool_name: "loadbalanced" +# metallb_auto_assign: true +# metallb_avoid_buggy_ips: false +# metallb_speaker_nodeselector: +# kubernetes.io/os: "linux" +# metallb_controller_nodeselector: +# kubernetes.io/os: "linux" +# metallb_speaker_tolerations: +# - key: "node-role.kubernetes.io/master" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# - key: "node-role.kubernetes.io/control-plane" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# metallb_controller_tolerations: +# - key: "node-role.kubernetes.io/master" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# - key: "node-role.kubernetes.io/control-plane" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# metallb_version: v0.12.1 +# metallb_protocol: "layer2" +# metallb_port: "7472" +# metallb_memberlist_port: "7946" +# metallb_additional_address_pools: +# kube_service_pool: +# ip_range: +# - "10.5.1.50-10.5.1.99" +# protocol: "layer2" +# auto_assign: false +# avoid_buggy_ips: false +# metallb_protocol: "bgp" +# metallb_peers: +# - peer_address: 192.0.2.1 +# peer_asn: 64512 +# my_asn: 4200000000 +# - peer_address: 192.0.2.2 +# peer_asn: 64513 +# my_asn: 4200000000 + +argocd_enabled: false +# argocd_version: v2.4.7 +# argocd_namespace: argocd +# Default password: +# - https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli +# --- +# The initial password is autogenerated to be the pod name of the Argo CD API server. This can be retrieved with the command: +# kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2 +# --- +# Use the following var to set admin password +# argocd_admin_password: "password" + +# The plugin manager for kubectl +krew_enabled: false +krew_root_dir: "/usr/local/krew" diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-cluster.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-cluster.yml new file mode 100644 index 0000000..2714667 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-cluster.yml @@ -0,0 +1,326 @@ +--- +# Kubernetes configuration dirs and system namespace. +# Those are where all the additional config stuff goes +# the kubernetes normally puts in /srv/kubernetes. +# This puts them in a sane location and namespace. +# Editing those values will almost surely break something. +kube_config_dir: /etc/kubernetes +kube_script_dir: "{{ bin_dir }}/kubernetes-scripts" +kube_manifest_dir: "{{ kube_config_dir }}/manifests" + +# This is where all the cert scripts and certs will be located +kube_cert_dir: "{{ kube_config_dir }}/ssl" + +# This is where all of the bearer tokens will be stored +kube_token_dir: "{{ kube_config_dir }}/tokens" + +kube_api_anonymous_auth: true + +## Change this to use another Kubernetes version, e.g. a current beta release +kube_version: v1.24.4 + +# Where the binaries will be downloaded. +# Note: ensure that you've enough disk space (about 1G) +local_release_dir: "/tmp/releases" +# Random shifts for retrying failed ops like pushing/downloading +retry_stagger: 5 + +# This is the user that owns tha cluster installation. +kube_owner: kube + +# This is the group that the cert creation scripts chgrp the +# cert files to. Not really changeable... +kube_cert_group: kube-cert + +# Cluster Loglevel configuration +kube_log_level: 2 + +# Directory where credentials will be stored +credentials_dir: "{{ inventory_dir }}/credentials" + +## It is possible to activate / deactivate selected authentication methods (oidc, static token auth) +# kube_oidc_auth: false +# kube_token_auth: false + + +## Variables for OpenID Connect Configuration https://kubernetes.io/docs/admin/authentication/ +## To use OpenID you have to deploy additional an OpenID Provider (e.g Dex, Keycloak, ...) + +# kube_oidc_url: https:// ... +# kube_oidc_client_id: kubernetes +## Optional settings for OIDC +# kube_oidc_ca_file: "{{ kube_cert_dir }}/ca.pem" +# kube_oidc_username_claim: sub +# kube_oidc_username_prefix: 'oidc:' +# kube_oidc_groups_claim: groups +# kube_oidc_groups_prefix: 'oidc:' + +## Variables to control webhook authn/authz +# kube_webhook_token_auth: false +# kube_webhook_token_auth_url: https://... +# kube_webhook_token_auth_url_skip_tls_verify: false + +## For webhook authorization, authorization_modes must include Webhook +# kube_webhook_authorization: false +# kube_webhook_authorization_url: https://... +# kube_webhook_authorization_url_skip_tls_verify: false + +# Choose network plugin (cilium, calico, kube-ovn, weave or flannel. Use cni for generic cni plugin) +# Can also be set to 'cloud', which lets the cloud provider setup appropriate routing +kube_network_plugin: calico + +# Setting multi_networking to true will install Multus: https://github.com/intel/multus-cni +kube_network_plugin_multus: false + +# Kubernetes internal network for services, unused block of space. +kube_service_addresses: 10.233.0.0/18 + +# internal network. When used, it will assign IP +# addresses from this range to individual pods. +# This network must be unused in your network infrastructure! +kube_pods_subnet: 10.233.64.0/18 + +# internal network node size allocation (optional). This is the size allocated +# to each node for pod IP address allocation. Note that the number of pods per node is +# also limited by the kubelet_max_pods variable which defaults to 110. +# +# Example: +# Up to 64 nodes and up to 254 or kubelet_max_pods (the lowest of the two) pods per node: +# - kube_pods_subnet: 10.233.64.0/18 +# - kube_network_node_prefix: 24 +# - kubelet_max_pods: 110 +# +# Example: +# Up to 128 nodes and up to 126 or kubelet_max_pods (the lowest of the two) pods per node: +# - kube_pods_subnet: 10.233.64.0/18 +# - kube_network_node_prefix: 25 +# - kubelet_max_pods: 110 +kube_network_node_prefix: 24 + +# Configure Dual Stack networking (i.e. both IPv4 and IPv6) +enable_dual_stack_networks: false + +# Kubernetes internal network for IPv6 services, unused block of space. +# This is only used if enable_dual_stack_networks is set to true +# This provides 4096 IPv6 IPs +kube_service_addresses_ipv6: fd85:ee78:d8a6:8607::1000/116 + +# Internal network. When used, it will assign IPv6 addresses from this range to individual pods. +# This network must not already be in your network infrastructure! +# This is only used if enable_dual_stack_networks is set to true. +# This provides room for 256 nodes with 254 pods per node. +kube_pods_subnet_ipv6: fd85:ee78:d8a6:8607::1:0000/112 + +# IPv6 subnet size allocated to each for pods. +# This is only used if enable_dual_stack_networks is set to true +# This provides room for 254 pods per node. +kube_network_node_prefix_ipv6: 120 + +# The port the API Server will be listening on. +kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}" +kube_apiserver_port: 6443 # (https) + +# Kube-proxy proxyMode configuration. +# Can be ipvs, iptables +kube_proxy_mode: ipvs + +# configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface +# must be set to true for MetalLB to work +kube_proxy_strict_arp: false + +# A string slice of values which specify the addresses to use for NodePorts. +# Values may be valid IP blocks (e.g. 1.2.3.0/24, 1.2.3.4/32). +# The default empty string slice ([]) means to use all local addresses. +# kube_proxy_nodeport_addresses_cidr is retained for legacy config +kube_proxy_nodeport_addresses: >- + {%- if kube_proxy_nodeport_addresses_cidr is defined -%} + [{{ kube_proxy_nodeport_addresses_cidr }}] + {%- else -%} + [] + {%- endif -%} + +# If non-empty, will use this string as identification instead of the actual hostname +# kube_override_hostname: >- +# {%- if cloud_provider is defined and cloud_provider in [ 'aws' ] -%} +# {%- else -%} +# {{ inventory_hostname }} +# {%- endif -%} + +## Encrypting Secret Data at Rest +kube_encrypt_secret_data: false + +# Graceful Node Shutdown (Kubernetes >= 1.21.0), see https://kubernetes.io/blog/2021/04/21/graceful-node-shutdown-beta/ +# kubelet_shutdown_grace_period had to be greater than kubelet_shutdown_grace_period_critical_pods to allow +# non-critical podsa to also terminate gracefully +# kubelet_shutdown_grace_period: 60s +# kubelet_shutdown_grace_period_critical_pods: 20s + +# DNS configuration. +# Kubernetes cluster name, also will be used as DNS domain +cluster_name: cluster.local +# Subdomains of DNS domain to be resolved via /etc/resolv.conf for hostnet pods +ndots: 2 +# Can be coredns, coredns_dual, manual or none +dns_mode: coredns +# Set manual server if using a custom cluster DNS server +# manual_dns_server: 10.x.x.x +# Enable nodelocal dns cache +enable_nodelocaldns: true +enable_nodelocaldns_secondary: false +nodelocaldns_ip: 169.254.25.10 +nodelocaldns_health_port: 9254 +nodelocaldns_second_health_port: 9256 +nodelocaldns_bind_metrics_host_ip: false +nodelocaldns_secondary_skew_seconds: 5 +# nodelocaldns_external_zones: +# - zones: +# - example.com +# - example.io:1053 +# nameservers: +# - 1.1.1.1 +# - 2.2.2.2 +# cache: 5 +# - zones: +# - https://mycompany.local:4453 +# nameservers: +# - 192.168.0.53 +# cache: 0 +# Enable k8s_external plugin for CoreDNS +enable_coredns_k8s_external: false +coredns_k8s_external_zone: k8s_external.local +# Enable endpoint_pod_names option for kubernetes plugin +enable_coredns_k8s_endpoint_pod_names: false + +# Can be docker_dns, host_resolvconf or none +resolvconf_mode: host_resolvconf +# Deploy netchecker app to verify DNS resolve as an HTTP service +deploy_netchecker: false +# Ip address of the kubernetes skydns service +skydns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(3)|ipaddr('address') }}" +skydns_server_secondary: "{{ kube_service_addresses|ipaddr('net')|ipaddr(4)|ipaddr('address') }}" +dns_domain: "{{ cluster_name }}" + +## Container runtime +## docker for docker, crio for cri-o and containerd for containerd. +## Default: containerd +container_manager: containerd + +# Additional container runtimes +kata_containers_enabled: false + +kubeadm_certificate_key: "{{ lookup('password', credentials_dir + '/kubeadm_certificate_key.creds length=64 chars=hexdigits') | lower }}" + +# K8s image pull policy (imagePullPolicy) +k8s_image_pull_policy: IfNotPresent + +# audit log for kubernetes +kubernetes_audit: false + +# define kubelet config dir for dynamic kubelet +# kubelet_config_dir: +default_kubelet_config_dir: "{{ kube_config_dir }}/dynamic_kubelet_dir" + +# pod security policy (RBAC must be enabled either by having 'RBAC' in authorization_modes or kubeadm enabled) +podsecuritypolicy_enabled: false + +# Custom PodSecurityPolicySpec for restricted policy +# podsecuritypolicy_restricted_spec: {} + +# Custom PodSecurityPolicySpec for privileged policy +# podsecuritypolicy_privileged_spec: {} + +# Make a copy of kubeconfig on the host that runs Ansible in {{ inventory_dir }}/artifacts +# kubeconfig_localhost: false +# Use ansible_host as external api ip when copying over kubeconfig. +# kubeconfig_localhost_ansible_host: false +# Download kubectl onto the host that runs Ansible in {{ bin_dir }} +# kubectl_localhost: false + +# A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. +# Acceptable options are 'pods', 'system-reserved', 'kube-reserved' and ''. Default is "". +# kubelet_enforce_node_allocatable: pods + +## Optionally reserve resources for OS system daemons. +# system_reserved: true +## Uncomment to override default values +# system_memory_reserved: 512Mi +# system_cpu_reserved: 500m +# system_ephemeral_storage_reserved: 2Gi +## Reservation for master hosts +# system_master_memory_reserved: 256Mi +# system_master_cpu_reserved: 250m +# system_master_ephemeral_storage_reserved: 2Gi + +## Eviction Thresholds to avoid system OOMs +# https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds +# eviction_hard: {} +# eviction_hard_control_plane: {} + +# An alternative flexvolume plugin directory +# kubelet_flexvolumes_plugins_dir: /usr/libexec/kubernetes/kubelet-plugins/volume/exec + +## Supplementary addresses that can be added in kubernetes ssl keys. +## That can be useful for example to setup a keepalived virtual IP +# supplementary_addresses_in_ssl_keys: [10.0.0.1, 10.0.0.2, 10.0.0.3] + +## Running on top of openstack vms with cinder enabled may lead to unschedulable pods due to NoVolumeZoneConflict restriction in kube-scheduler. +## See https://github.com/kubernetes-sigs/kubespray/issues/2141 +## Set this variable to true to get rid of this issue +volume_cross_zone_attachment: false +## Add Persistent Volumes Storage Class for corresponding cloud provider (supported: in-tree OpenStack, Cinder CSI, +## AWS EBS CSI, Azure Disk CSI, GCP Persistent Disk CSI) +persistent_volumes_enabled: false + +## Container Engine Acceleration +## Enable container acceleration feature, for example use gpu acceleration in containers +# nvidia_accelerator_enabled: true +## Nvidia GPU driver install. Install will by done by a (init) pod running as a daemonset. +## Important: if you use Ubuntu then you should set in all.yml 'docker_storage_options: -s overlay2' +## Array with nvida_gpu_nodes, leave empty or comment if you don't want to install drivers. +## Labels and taints won't be set to nodes if they are not in the array. +# nvidia_gpu_nodes: +# - kube-gpu-001 +# nvidia_driver_version: "384.111" +## flavor can be tesla or gtx +# nvidia_gpu_flavor: gtx +## NVIDIA driver installer images. Change them if you have trouble accessing gcr.io. +# nvidia_driver_install_centos_container: atzedevries/nvidia-centos-driver-installer:2 +# nvidia_driver_install_ubuntu_container: gcr.io/google-containers/ubuntu-nvidia-driver-installer@sha256:7df76a0f0a17294e86f691c81de6bbb7c04a1b4b3d4ea4e7e2cccdc42e1f6d63 +## NVIDIA GPU device plugin image. +# nvidia_gpu_device_plugin_container: "registry.k8s.io/nvidia-gpu-device-plugin@sha256:0842734032018be107fa2490c98156992911e3e1f2a21e059ff0105b07dd8e9e" + +## Support tls min version, Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. +# tls_min_version: "" + +## Support tls cipher suites. +# tls_cipher_suites: {} +# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA +# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 +# - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 +# - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA +# - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 +# - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 +# - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA +# - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA +# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA +# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 +# - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 +# - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA +# - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 +# - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 +# - TLS_ECDHE_RSA_WITH_RC4_128_SHA +# - TLS_RSA_WITH_3DES_EDE_CBC_SHA +# - TLS_RSA_WITH_AES_128_CBC_SHA +# - TLS_RSA_WITH_AES_128_CBC_SHA256 +# - TLS_RSA_WITH_AES_128_GCM_SHA256 +# - TLS_RSA_WITH_AES_256_CBC_SHA +# - TLS_RSA_WITH_AES_256_GCM_SHA384 +# - TLS_RSA_WITH_RC4_128_SHA + +## Amount of time to retain events. (default 1h0m0s) +event_ttl_duration: "1h0m0s" + +## Automatically renew K8S control plane certificates on first Monday of each month +auto_renew_certificates: false +# First Monday of each month +# auto_renew_certificates_systemd_calendar: "Mon *-*-1,2,3,4,5,6,7 03:{{ groups['kube_control_plane'].index(inventory_hostname) }}0:00" diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-calico.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-calico.yml new file mode 100644 index 0000000..553e48b --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-calico.yml @@ -0,0 +1,127 @@ +--- +# see roles/network_plugin/calico/defaults/main.yml + +# the default value of name +calico_cni_name: k8s-pod-network + +## With calico it is possible to distributed routes with border routers of the datacenter. +## Warning : enabling router peering will disable calico's default behavior ('node mesh'). +## The subnets of each nodes will be distributed by the datacenter router +# peer_with_router: false + +# Enables Internet connectivity from containers +# nat_outgoing: true + +# Enables Calico CNI "host-local" IPAM plugin +# calico_ipam_host_local: true + +# add default ippool name +# calico_pool_name: "default-pool" + +# add default ippool blockSize (defaults kube_network_node_prefix) +calico_pool_blocksize: 26 + +# add default ippool CIDR (must be inside kube_pods_subnet, defaults to kube_pods_subnet otherwise) +# calico_pool_cidr: 1.2.3.4/5 + +# add default ippool CIDR to CNI config +# calico_cni_pool: true + +# Add default IPV6 IPPool CIDR. Must be inside kube_pods_subnet_ipv6. Defaults to kube_pods_subnet_ipv6 if not set. +# calico_pool_cidr_ipv6: fd85:ee78:d8a6:8607::1:0000/112 + +# Add default IPV6 IPPool CIDR to CNI config +# calico_cni_pool_ipv6: true + +# Global as_num (/calico/bgp/v1/global/as_num) +# global_as_num: "64512" + +# If doing peering with node-assigned asn where the globas does not match your nodes, you want this +# to be true. All other cases, false. +# calico_no_global_as_num: false + +# You can set MTU value here. If left undefined or empty, it will +# not be specified in calico CNI config, so Calico will use built-in +# defaults. The value should be a number, not a string. +# calico_mtu: 1500 + +# Configure the MTU to use for workload interfaces and tunnels. +# - If Wireguard is enabled, subtract 60 from your network MTU (i.e 1500-60=1440) +# - Otherwise, if VXLAN or BPF mode is enabled, subtract 50 from your network MTU (i.e. 1500-50=1450) +# - Otherwise, if IPIP is enabled, subtract 20 from your network MTU (i.e. 1500-20=1480) +# - Otherwise, if not using any encapsulation, set to your network MTU (i.e. 1500) +# calico_veth_mtu: 1440 + +# Advertise Cluster IPs +# calico_advertise_cluster_ips: true + +# Advertise Service External IPs +# calico_advertise_service_external_ips: +# - x.x.x.x/24 +# - y.y.y.y/32 + +# Adveritse Service LoadBalancer IPs +# calico_advertise_service_loadbalancer_ips: +# - x.x.x.x/24 +# - y.y.y.y/16 + +# Choose data store type for calico: "etcd" or "kdd" (kubernetes datastore) +# calico_datastore: "kdd" + +# Choose Calico iptables backend: "Legacy", "Auto" or "NFT" +# calico_iptables_backend: "Auto" + +# Use typha (only with kdd) +# typha_enabled: false + +# Generate TLS certs for secure typha<->calico-node communication +# typha_secure: false + +# Scaling typha: 1 replica per 100 nodes is adequate +# Number of typha replicas +# typha_replicas: 1 + +# Set max typha connections +# typha_max_connections_lower_limit: 300 + +# Set calico network backend: "bird", "vxlan" or "none" +# bird enable BGP routing, required for ipip and no encapsulation modes +# calico_network_backend: vxlan + +# IP in IP and VXLAN is mutualy exclusive modes. +# set IP in IP encapsulation mode: "Always", "CrossSubnet", "Never" +# calico_ipip_mode: 'Never' + +# set VXLAN encapsulation mode: "Always", "CrossSubnet", "Never" +# calico_vxlan_mode: 'Always' + +# set VXLAN port and VNI +# calico_vxlan_vni: 4096 +# calico_vxlan_port: 4789 + +# Cenable eBPF mode +# calico_bpf_enabled: false + +# If you want to use non default IP_AUTODETECTION_METHOD, IP6_AUTODETECTION_METHOD for calico node set this option to one of: +# * can-reach=DESTINATION +# * interface=INTERFACE-REGEX +# see https://docs.projectcalico.org/reference/node/configuration +# calico_ip_auto_method: "interface=eth.*" +# calico_ip6_auto_method: "interface=eth.*" + +# Choose the iptables insert mode for Calico: "Insert" or "Append". +# calico_felix_chaininsertmode: Insert + +# If you want use the default route interface when you use multiple interface with dynamique route (iproute2) +# see https://docs.projectcalico.org/reference/node/configuration : FELIX_DEVICEROUTESOURCEADDRESS +# calico_use_default_route_src_ipaddr: false + +# Enable calico traffic encryption with wireguard +# calico_wireguard_enabled: false + +# Under certain situations liveness and readiness probes may need tunning +# calico_node_livenessprobe_timeout: 10 +# calico_node_readinessprobe_timeout: 10 + +# Calico apiserver (only with kdd) +# calico_apiserver_enabled: false diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-canal.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-canal.yml new file mode 100644 index 0000000..60b9da7 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-canal.yml @@ -0,0 +1,10 @@ +# see roles/network_plugin/canal/defaults/main.yml + +# The interface used by canal for host <-> host communication. +# If left blank, then the interface is choosing using the node's +# default route. +# canal_iface: "" + +# Whether or not to masquerade traffic to destinations not within +# the pod network. +# canal_masquerade: "true" diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-cilium.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-cilium.yml new file mode 100644 index 0000000..e82b761 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-cilium.yml @@ -0,0 +1,244 @@ +--- +# cilium_version: "v1.11.7" + +# Log-level +# cilium_debug: false + +# cilium_mtu: "" +# cilium_enable_ipv4: true +# cilium_enable_ipv6: false + +# Cilium agent health port +# cilium_agent_health_port: "9879" + +# Identity allocation mode selects how identities are shared between cilium +# nodes by setting how they are stored. The options are "crd" or "kvstore". +# - "crd" stores identities in kubernetes as CRDs (custom resource definition). +# These can be queried with: +# `kubectl get ciliumid` +# - "kvstore" stores identities in an etcd kvstore. +# - In order to support External Workloads, "crd" is required +# - Ref: https://docs.cilium.io/en/stable/gettingstarted/external-workloads/#setting-up-support-for-external-workloads-beta +# - KVStore operations are only required when cilium-operator is running with any of the below options: +# - --synchronize-k8s-services +# - --synchronize-k8s-nodes +# - --identity-allocation-mode=kvstore +# - Ref: https://docs.cilium.io/en/stable/internals/cilium_operator/#kvstore-operations +# cilium_identity_allocation_mode: kvstore + +# Etcd SSL dirs +# cilium_cert_dir: /etc/cilium/certs +# kube_etcd_cacert_file: ca.pem +# kube_etcd_cert_file: cert.pem +# kube_etcd_key_file: cert-key.pem + +# Limits for apps +# cilium_memory_limit: 500M +# cilium_cpu_limit: 500m +# cilium_memory_requests: 64M +# cilium_cpu_requests: 100m + +# Overlay Network Mode +# cilium_tunnel_mode: vxlan +# Optional features +# cilium_enable_prometheus: false +# Enable if you want to make use of hostPort mappings +# cilium_enable_portmap: false +# Monitor aggregation level (none/low/medium/maximum) +# cilium_monitor_aggregation: medium +# The monitor aggregation flags determine which TCP flags which, upon the +# first observation, cause monitor notifications to be generated. +# +# Only effective when monitor aggregation is set to "medium" or higher. +# cilium_monitor_aggregation_flags: "all" +# Kube Proxy Replacement mode (strict/probe/partial) +# cilium_kube_proxy_replacement: probe + +# If upgrading from Cilium < 1.5, you may want to override some of these options +# to prevent service disruptions. See also: +# http://docs.cilium.io/en/stable/install/upgrade/#changes-that-may-require-action +# cilium_preallocate_bpf_maps: false + +# `cilium_tofqdns_enable_poller` is deprecated in 1.8, removed in 1.9 +# cilium_tofqdns_enable_poller: false + +# `cilium_enable_legacy_services` is deprecated in 1.6, removed in 1.9 +# cilium_enable_legacy_services: false + +# Unique ID of the cluster. Must be unique across all conneted clusters and +# in the range of 1 and 255. Only relevant when building a mesh of clusters. +# This value is not defined by default +# cilium_cluster_id: + +# Deploy cilium even if kube_network_plugin is not cilium. +# This enables to deploy cilium alongside another CNI to replace kube-proxy. +# cilium_deploy_additionally: false + +# Auto direct nodes routes can be used to advertise pods routes in your cluster +# without any tunelling (with `cilium_tunnel_mode` sets to `disabled`). +# This works only if you have a L2 connectivity between all your nodes. +# You wil also have to specify the variable `cilium_native_routing_cidr` to +# make this work. Please refer to the cilium documentation for more +# information about this kind of setups. +# cilium_auto_direct_node_routes: false + +# Allows to explicitly specify the IPv4 CIDR for native routing. +# When specified, Cilium assumes networking for this CIDR is preconfigured and +# hands traffic destined for that range to the Linux network stack without +# applying any SNAT. +# Generally speaking, specifying a native routing CIDR implies that Cilium can +# depend on the underlying networking stack to route packets to their +# destination. To offer a concrete example, if Cilium is configured to use +# direct routing and the Kubernetes CIDR is included in the native routing CIDR, +# the user must configure the routes to reach pods, either manually or by +# setting the auto-direct-node-routes flag. +# cilium_native_routing_cidr: "" + +# Allows to explicitly specify the IPv6 CIDR for native routing. +# cilium_native_routing_cidr_ipv6: "" + +# Enable transparent network encryption. +# cilium_encryption_enabled: false + +# Encryption method. Can be either ipsec or wireguard. +# Only effective when `cilium_encryption_enabled` is set to true. +# cilium_encryption_type: "ipsec" + +# Enable encryption for pure node to node traffic. +# This option is only effective when `cilium_encryption_type` is set to `ipsec`. +# cilium_ipsec_node_encryption: false + +# If your kernel or distribution does not support WireGuard, Cilium agent can be configured to fall back on the user-space implementation. +# When this flag is enabled and Cilium detects that the kernel has no native support for WireGuard, +# it will fallback on the wireguard-go user-space implementation of WireGuard. +# This option is only effective when `cilium_encryption_type` is set to `wireguard`. +# cilium_wireguard_userspace_fallback: false + +# IP Masquerade Agent +# https://docs.cilium.io/en/stable/concepts/networking/masquerading/ +# By default, all packets from a pod destined to an IP address outside of the cilium_native_routing_cidr range are masqueraded +# cilium_ip_masq_agent_enable: false +### A packet sent from a pod to a destination which belongs to any CIDR from the nonMasqueradeCIDRs is not going to be masqueraded +# cilium_non_masquerade_cidrs: +# - 10.0.0.0/8 +# - 172.16.0.0/12 +# - 192.168.0.0/16 +# - 100.64.0.0/10 +# - 192.0.0.0/24 +# - 192.0.2.0/24 +# - 192.88.99.0/24 +# - 198.18.0.0/15 +# - 198.51.100.0/24 +# - 203.0.113.0/24 +# - 240.0.0.0/4 +### Indicates whether to masquerade traffic to the link local prefix. +### If the masqLinkLocal is not set or set to false, then 169.254.0.0/16 is appended to the non-masquerade CIDRs list. +# cilium_masq_link_local: false +### A time interval at which the agent attempts to reload config from disk +# cilium_ip_masq_resync_interval: 60s + +# Hubble +### Enable Hubble without install +# cilium_enable_hubble: false +### Enable Hubble Metrics +# cilium_enable_hubble_metrics: false +### if cilium_enable_hubble_metrics: true +# cilium_hubble_metrics: {} +# - dns +# - drop +# - tcp +# - flow +# - icmp +# - http +### Enable Hubble install +# cilium_hubble_install: false +### Enable auto generate certs if cilium_hubble_install: true +# cilium_hubble_tls_generate: false + +# IP address management mode for v1.9+. +# https://docs.cilium.io/en/v1.9/concepts/networking/ipam/ +# cilium_ipam_mode: kubernetes + +# Extra arguments for the Cilium agent +# cilium_agent_custom_args: [] + +# For adding and mounting extra volumes to the cilium agent +# cilium_agent_extra_volumes: [] +# cilium_agent_extra_volume_mounts: [] + +# cilium_agent_extra_env_vars: [] + +# cilium_operator_replicas: 2 + +# The address at which the cillium operator bind health check api +# cilium_operator_api_serve_addr: "127.0.0.1:9234" + +## A dictionary of extra config variables to add to cilium-config, formatted like: +## cilium_config_extra_vars: +## var1: "value1" +## var2: "value2" +# cilium_config_extra_vars: {} + +# For adding and mounting extra volumes to the cilium operator +# cilium_operator_extra_volumes: [] +# cilium_operator_extra_volume_mounts: [] + +# Extra arguments for the Cilium Operator +# cilium_operator_custom_args: [] + +# Name of the cluster. Only relevant when building a mesh of clusters. +# cilium_cluster_name: default + +# Make Cilium take ownership over the `/etc/cni/net.d` directory on the node, renaming all non-Cilium CNI configurations to `*.cilium_bak`. +# This ensures no Pods can be scheduled using other CNI plugins during Cilium agent downtime. +# Available for Cilium v1.10 and up. +# cilium_cni_exclusive: true + +# Configure the log file for CNI logging with retention policy of 7 days. +# Disable CNI file logging by setting this field to empty explicitly. +# Available for Cilium v1.12 and up. +# cilium_cni_log_file: "/var/run/cilium/cilium-cni.log" + +# -- Configure cgroup related configuration +# -- Enable auto mount of cgroup2 filesystem. +# When `cilium_cgroup_auto_mount` is enabled, cgroup2 filesystem is mounted at +# `cilium_cgroup_host_root` path on the underlying host and inside the cilium agent pod. +# If users disable `cilium_cgroup_auto_mount`, it's expected that users have mounted +# cgroup2 filesystem at the specified `cilium_cgroup_auto_mount` volume, and then the +# volume will be mounted inside the cilium agent pod at the same path. +# Available for Cilium v1.11 and up +# cilium_cgroup_auto_mount: true +# -- Configure cgroup root where cgroup2 filesystem is mounted on the host +# cilium_cgroup_host_root: "/run/cilium/cgroupv2" + +# Specifies the ratio (0.0-1.0) of total system memory to use for dynamic +# sizing of the TCP CT, non-TCP CT, NAT and policy BPF maps. +# cilium_bpf_map_dynamic_size_ratio: "0.0" + +# -- Enables masquerading of IPv4 traffic leaving the node from endpoints. +# Available for Cilium v1.10 and up +# cilium_enable_ipv4_masquerade: true +# -- Enables masquerading of IPv6 traffic leaving the node from endpoints. +# Available for Cilium v1.10 and up +# cilium_enable_ipv6_masquerade: true + +# -- Enable native IP masquerade support in eBPF +# cilium_enable_bpf_masquerade: false + +# -- Configure whether direct routing mode should route traffic via +# host stack (true) or directly and more efficiently out of BPF (false) if +# the kernel supports it. The latter has the implication that it will also +# bypass netfilter in the host namespace. +# cilium_enable_host_legacy_routing: true + +# -- Enable use of the remote node identity. +# ref: https://docs.cilium.io/en/v1.7/install/upgrade/#configmap-remote-node-identity +# cilium_enable_remote_node_identity: true + +# -- Enable the use of well-known identities. +# cilium_enable_well_known_identities: false + +# cilium_enable_bpf_clock_probe: true + +# -- Whether to enable CNP status updates. +# cilium_disable_cnp_status_updates: true diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-flannel.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-flannel.yml new file mode 100644 index 0000000..a42c5b3 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-flannel.yml @@ -0,0 +1,18 @@ +# see roles/network_plugin/flannel/defaults/main.yml + +## interface that should be used for flannel operations +## This is actually an inventory cluster-level item +# flannel_interface: + +## Select interface that should be used for flannel operations by regexp on Name or IP +## This is actually an inventory cluster-level item +## example: select interface with ip from net 10.0.0.0/23 +## single quote and escape backslashes +# flannel_interface_regexp: '10\\.0\\.[0-2]\\.\\d{1,3}' + +# You can choose what type of flannel backend to use: 'vxlan' or 'host-gw' +# for experimental backend +# please refer to flannel's docs : https://github.com/coreos/flannel/blob/master/README.md +# flannel_backend_type: "vxlan" +# flannel_vxlan_vni: 1 +# flannel_vxlan_port: 8472 diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-ovn.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-ovn.yml new file mode 100644 index 0000000..d580e15 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-ovn.yml @@ -0,0 +1,57 @@ +--- + +# geneve or vlan +kube_ovn_network_type: geneve + +# geneve, vxlan or stt. ATTENTION: some networkpolicy cannot take effect when using vxlan and stt need custom compile ovs kernel module +kube_ovn_tunnel_type: geneve + +## The nic to support container network can be a nic name or a group of regex separated by comma e.g: 'enp6s0f0,eth.*', if empty will use the nic that the default route use. +# kube_ovn_iface: eth1 +## The MTU used by pod iface in overlay networks (default iface MTU - 100) +# kube_ovn_mtu: 1333 + +## Enable hw-offload, disable traffic mirror and set the iface to the physical port. Make sure that there is an IP address bind to the physical port. +kube_ovn_hw_offload: false +# traffic mirror +kube_ovn_traffic_mirror: false + +# kube_ovn_pool_cidr_ipv6: fd85:ee78:d8a6:8607::1:0000/112 +# kube_ovn_default_interface_name: eth0 + +kube_ovn_external_address: 8.8.8.8 +kube_ovn_external_address_ipv6: 2400:3200::1 +kube_ovn_external_dns: alauda.cn + +# kube_ovn_default_gateway: 10.233.64.1,fd85:ee78:d8a6:8607::1:0 +kube_ovn_default_gateway_check: true +kube_ovn_default_logical_gateway: false +# kube_ovn_default_exclude_ips: 10.16.0.1 +kube_ovn_node_switch_cidr: 100.64.0.0/16 +kube_ovn_node_switch_cidr_ipv6: fd00:100:64::/64 + +## vlan config, set default interface name and vlan id +# kube_ovn_default_interface_name: eth0 +kube_ovn_default_vlan_id: 100 +kube_ovn_vlan_name: product + +## pod nic type, support: veth-pair or internal-port +kube_ovn_pod_nic_type: veth_pair + +## Enable load balancer +kube_ovn_enable_lb: true + +## Enable network policy support +kube_ovn_enable_np: true + +## Enable external vpc support +kube_ovn_enable_external_vpc: true + +## Enable checksum +kube_ovn_encap_checksum: true + +## enable ssl +kube_ovn_enable_ssl: false + +## dpdk +kube_ovn_dpdk_enabled: false diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-router.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-router.yml new file mode 100644 index 0000000..e969633 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-kube-router.yml @@ -0,0 +1,64 @@ +# See roles/network_plugin/kube-router//defaults/main.yml + +# Enables Pod Networking -- Advertises and learns the routes to Pods via iBGP +# kube_router_run_router: true + +# Enables Network Policy -- sets up iptables to provide ingress firewall for pods +# kube_router_run_firewall: true + +# Enables Service Proxy -- sets up IPVS for Kubernetes Services +# see docs/kube-router.md "Caveats" section +# kube_router_run_service_proxy: false + +# Add Cluster IP of the service to the RIB so that it gets advertises to the BGP peers. +# kube_router_advertise_cluster_ip: false + +# Add External IP of service to the RIB so that it gets advertised to the BGP peers. +# kube_router_advertise_external_ip: false + +# Add LoadbBalancer IP of service status as set by the LB provider to the RIB so that it gets advertised to the BGP peers. +# kube_router_advertise_loadbalancer_ip: false + +# Adjust manifest of kube-router daemonset template with DSR needed changes +# kube_router_enable_dsr: false + +# Array of arbitrary extra arguments to kube-router, see +# https://github.com/cloudnativelabs/kube-router/blob/master/docs/user-guide.md +# kube_router_extra_args: [] + +# ASN number of the cluster, used when communicating with external BGP routers +# kube_router_cluster_asn: ~ + +# ASN numbers of the BGP peer to which cluster nodes will advertise cluster ip and node's pod cidr. +# kube_router_peer_router_asns: ~ + +# The ip address of the external router to which all nodes will peer and advertise the cluster ip and pod cidr's. +# kube_router_peer_router_ips: ~ + +# The remote port of the external BGP to which all nodes will peer. If not set, default BGP port (179) will be used. +# kube_router_peer_router_ports: ~ + +# Setups node CNI to allow hairpin mode, requires node reboots, see +# https://github.com/cloudnativelabs/kube-router/blob/master/docs/user-guide.md#hairpin-mode +# kube_router_support_hairpin_mode: false + +# Select DNS Policy ClusterFirstWithHostNet, ClusterFirst, etc. +# kube_router_dns_policy: ClusterFirstWithHostNet + +# Array of annotations for master +# kube_router_annotations_master: [] + +# Array of annotations for every node +# kube_router_annotations_node: [] + +# Array of common annotations for every node +# kube_router_annotations_all: [] + +# Enables scraping kube-router metrics with Prometheus +# kube_router_enable_metrics: false + +# Path to serve Prometheus metrics on +# kube_router_metrics_path: /metrics + +# Prometheus metrics port to use +# kube_router_metrics_port: 9255 diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-macvlan.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-macvlan.yml new file mode 100644 index 0000000..d2534e7 --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-macvlan.yml @@ -0,0 +1,6 @@ +--- +# private interface, on a l2-network +macvlan_interface: "eth1" + +# Enable nat in default gateway network interface +enable_nat_default_gateway: true diff --git a/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-weave.yml b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-weave.yml new file mode 100644 index 0000000..269a77c --- /dev/null +++ b/XTesting/kubespray/inventory/local/group_vars/k8s_cluster/k8s-net-weave.yml @@ -0,0 +1,64 @@ +# see roles/network_plugin/weave/defaults/main.yml + +# Weave's network password for encryption, if null then no network encryption. +# weave_password: ~ + +# If set to 1, disable checking for new Weave Net versions (default is blank, +# i.e. check is enabled) +# weave_checkpoint_disable: false + +# Soft limit on the number of connections between peers. Defaults to 100. +# weave_conn_limit: 100 + +# Weave Net defaults to enabling hairpin on the bridge side of the veth pair +# for containers attached. If you need to disable hairpin, e.g. your kernel is +# one of those that can panic if hairpin is enabled, then you can disable it by +# setting `HAIRPIN_MODE=false`. +# weave_hairpin_mode: true + +# The range of IP addresses used by Weave Net and the subnet they are placed in +# (CIDR format; default 10.32.0.0/12) +# weave_ipalloc_range: "{{ kube_pods_subnet }}" + +# Set to 0 to disable Network Policy Controller (default is on) +# weave_expect_npc: "{{ enable_network_policy }}" + +# List of addresses of peers in the Kubernetes cluster (default is to fetch the +# list from the api-server) +# weave_kube_peers: ~ + +# Set the initialization mode of the IP Address Manager (defaults to consensus +# amongst the KUBE_PEERS) +# weave_ipalloc_init: ~ + +# Set the IP address used as a gateway from the Weave network to the host +# network - this is useful if you are configuring the addon as a static pod. +# weave_expose_ip: ~ + +# Address and port that the Weave Net daemon will serve Prometheus-style +# metrics on (defaults to 0.0.0.0:6782) +# weave_metrics_addr: ~ + +# Address and port that the Weave Net daemon will serve status requests on +# (defaults to disabled) +# weave_status_addr: ~ + +# Weave Net defaults to 1376 bytes, but you can set a smaller size if your +# underlying network has a tighter limit, or set a larger size for better +# performance if your network supports jumbo frames (e.g. 8916) +# weave_mtu: 1376 + +# Set to 1 to preserve the client source IP address when accessing Service +# annotated with `service.spec.externalTrafficPolicy=Local`. The feature works +# only with Weave IPAM (default). +# weave_no_masq_local: true + +# set to nft to use nftables backend for iptables (default is iptables) +# weave_iptables_backend: iptables + +# Extra variables that passing to launch.sh, useful for enabling seed mode, see +# https://www.weave.works/docs/net/latest/tasks/ipam/ipam/ +# weave_extra_args: ~ + +# Extra variables for weave_npc that passing to launch.sh, useful for change log level, ex --log-level=error +# weave_npc_extra_args: ~ diff --git a/XTesting/kubespray/inventory/local/hosts.ini b/XTesting/kubespray/inventory/local/hosts.ini new file mode 100644 index 0000000..4a6197e --- /dev/null +++ b/XTesting/kubespray/inventory/local/hosts.ini @@ -0,0 +1,14 @@ +node1 ansible_connection=local local_release_dir={{ansible_env.HOME}}/releases + +[kube_control_plane] +node1 + +[etcd] +node1 + +[kube_node] +node1 + +[k8s_cluster:children] +kube_node +kube_control_plane diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/all.yml b/XTesting/kubespray/inventory/sample/group_vars/all/all.yml new file mode 100644 index 0000000..5b0ca47 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/all.yml @@ -0,0 +1,135 @@ +--- +## Directory where the binaries will be installed +bin_dir: /usr/local/bin + +## The access_ip variable is used to define how other nodes should access +## the node. This is used in flannel to allow other flannel nodes to see +## this node for example. The access_ip is really useful AWS and Google +## environments where the nodes are accessed remotely by the "public" ip, +## but don't know about that address themselves. +# access_ip: 1.1.1.1 + + +## External LB example config +## apiserver_loadbalancer_domain_name: "elb.some.domain" +# loadbalancer_apiserver: +# address: 1.2.3.4 +# port: 1234 + +## Internal loadbalancers for apiservers +# loadbalancer_apiserver_localhost: true +# valid options are "nginx" or "haproxy" +# loadbalancer_apiserver_type: nginx # valid values "nginx" or "haproxy" + +## If the cilium is going to be used in strict mode, we can use the +## localhost connection and not use the external LB. If this parameter is +## not specified, the first node to connect to kubeapi will be used. +# use_localhost_as_kubeapi_loadbalancer: true + +## Local loadbalancer should use this port +## And must be set port 6443 +loadbalancer_apiserver_port: 6443 + +## If loadbalancer_apiserver_healthcheck_port variable defined, enables proxy liveness check for nginx. +loadbalancer_apiserver_healthcheck_port: 8081 + +### OTHER OPTIONAL VARIABLES + +## Upstream dns servers +# upstream_dns_servers: +# - 8.8.8.8 +# - 8.8.4.4 + +## There are some changes specific to the cloud providers +## for instance we need to encapsulate packets with some network plugins +## If set the possible values are either 'gce', 'aws', 'azure', 'openstack', 'vsphere', 'oci', or 'external' +## When openstack is used make sure to source in the openstack credentials +## like you would do when using openstack-client before starting the playbook. +# cloud_provider: + +## When cloud_provider is set to 'external', you can set the cloud controller to deploy +## Supported cloud controllers are: 'openstack', 'vsphere' and 'hcloud' +## When openstack or vsphere are used make sure to source in the required fields +# external_cloud_provider: + +## Set these proxy values in order to update package manager and docker daemon to use proxies +# http_proxy: "" +# https_proxy: "" + +## Refer to roles/kubespray-defaults/defaults/main.yml before modifying no_proxy +# no_proxy: "" + +## Some problems may occur when downloading files over https proxy due to ansible bug +## https://github.com/ansible/ansible/issues/32750. Set this variable to False to disable +## SSL validation of get_url module. Note that kubespray will still be performing checksum validation. +# download_validate_certs: False + +## If you need exclude all cluster nodes from proxy and other resources, add other resources here. +# additional_no_proxy: "" + +## If you need to disable proxying of os package repositories but are still behind an http_proxy set +## skip_http_proxy_on_os_packages to true +## This will cause kubespray not to set proxy environment in /etc/yum.conf for centos and in /etc/apt/apt.conf for debian/ubuntu +## Special information for debian/ubuntu - you have to set the no_proxy variable, then apt package will install from your source of wish +# skip_http_proxy_on_os_packages: false + +## Since workers are included in the no_proxy variable by default, docker engine will be restarted on all nodes (all +## pods will restart) when adding or removing workers. To override this behaviour by only including master nodes in the +## no_proxy variable, set below to true: +no_proxy_exclude_workers: false + +## Certificate Management +## This setting determines whether certs are generated via scripts. +## Chose 'none' if you provide your own certificates. +## Option is "script", "none" +# cert_management: script + +## Set to true to allow pre-checks to fail and continue deployment +# ignore_assert_errors: false + +## The read-only port for the Kubelet to serve on with no authentication/authorization. Uncomment to enable. +# kube_read_only_port: 10255 + +## Set true to download and cache container +# download_container: true + +## Deploy container engine +# Set false if you want to deploy container engine manually. +# deploy_container_engine: true + +## Red Hat Enterprise Linux subscription registration +## Add either RHEL subscription Username/Password or Organization ID/Activation Key combination +## Update RHEL subscription purpose usage, role and SLA if necessary +# rh_subscription_username: "" +# rh_subscription_password: "" +# rh_subscription_org_id: "" +# rh_subscription_activation_key: "" +# rh_subscription_usage: "Development" +# rh_subscription_role: "Red Hat Enterprise Server" +# rh_subscription_sla: "Self-Support" + +## Check if access_ip responds to ping. Set false if your firewall blocks ICMP. +# ping_access_ip: true + +# sysctl_file_path to add sysctl conf to +# sysctl_file_path: "/etc/sysctl.d/99-sysctl.conf" + +## Variables for webhook token auth https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication +kube_webhook_token_auth: false +kube_webhook_token_auth_url_skip_tls_verify: false +# kube_webhook_token_auth_url: https://... +## base64-encoded string of the webhook's CA certificate +# kube_webhook_token_auth_ca_data: "LS0t..." + +## NTP Settings +# Start the ntpd or chrony service and enable it at system boot. +ntp_enabled: false +ntp_manage_config: false +ntp_servers: + - "0.pool.ntp.org iburst" + - "1.pool.ntp.org iburst" + - "2.pool.ntp.org iburst" + - "3.pool.ntp.org iburst" + +## Used to control no_log attribute +unsafe_show_logs: false diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/aws.yml b/XTesting/kubespray/inventory/sample/group_vars/all/aws.yml new file mode 100644 index 0000000..dab674e --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/aws.yml @@ -0,0 +1,9 @@ +## To use AWS EBS CSI Driver to provision volumes, uncomment the first value +## and configure the parameters below +# aws_ebs_csi_enabled: true +# aws_ebs_csi_enable_volume_scheduling: true +# aws_ebs_csi_enable_volume_snapshot: false +# aws_ebs_csi_enable_volume_resizing: false +# aws_ebs_csi_controller_replicas: 1 +# aws_ebs_csi_plugin_image_tag: latest +# aws_ebs_csi_extra_volume_tags: "Owner=owner,Team=team,Environment=environment' diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/azure.yml b/XTesting/kubespray/inventory/sample/group_vars/all/azure.yml new file mode 100644 index 0000000..176b0f1 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/azure.yml @@ -0,0 +1,40 @@ +## When azure is used, you need to also set the following variables. +## see docs/azure.md for details on how to get these values + +# azure_cloud: +# azure_tenant_id: +# azure_subscription_id: +# azure_aad_client_id: +# azure_aad_client_secret: +# azure_resource_group: +# azure_location: +# azure_subnet_name: +# azure_security_group_name: +# azure_security_group_resource_group: +# azure_vnet_name: +# azure_vnet_resource_group: +# azure_route_table_name: +# azure_route_table_resource_group: +# supported values are 'standard' or 'vmss' +# azure_vmtype: standard + +## Azure Disk CSI credentials and parameters +## see docs/azure-csi.md for details on how to get these values + +# azure_csi_tenant_id: +# azure_csi_subscription_id: +# azure_csi_aad_client_id: +# azure_csi_aad_client_secret: +# azure_csi_location: +# azure_csi_resource_group: +# azure_csi_vnet_name: +# azure_csi_vnet_resource_group: +# azure_csi_subnet_name: +# azure_csi_security_group_name: +# azure_csi_use_instance_metadata: +# azure_csi_tags: "Owner=owner,Team=team,Environment=environment' + +## To enable Azure Disk CSI, uncomment below +# azure_csi_enabled: true +# azure_csi_controller_replicas: 1 +# azure_csi_plugin_image_tag: latest diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/containerd.yml b/XTesting/kubespray/inventory/sample/group_vars/all/containerd.yml new file mode 100644 index 0000000..78ed663 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/containerd.yml @@ -0,0 +1,50 @@ +--- +# Please see roles/container-engine/containerd/defaults/main.yml for more configuration options + +# containerd_storage_dir: "/var/lib/containerd" +# containerd_state_dir: "/run/containerd" +# containerd_oom_score: 0 + +# containerd_default_runtime: "runc" +# containerd_snapshotter: "native" + +# containerd_runc_runtime: +# name: runc +# type: "io.containerd.runc.v2" +# engine: "" +# root: "" + +# containerd_additional_runtimes: +# Example for Kata Containers as additional runtime: +# - name: kata +# type: "io.containerd.kata.v2" +# engine: "" +# root: "" + +# containerd_grpc_max_recv_message_size: 16777216 +# containerd_grpc_max_send_message_size: 16777216 + +# containerd_debug_level: "info" + +# containerd_metrics_address: "" + +# containerd_metrics_grpc_histogram: false + +## An obvious use case is allowing insecure-registry access to self hosted registries. +## Can be ipaddress and domain_name. +## example define mirror.registry.io or 172.19.16.11:5000 +## set "name": "url". insecure url must be started http:// +## Port number is also needed if the default HTTPS port is not used. +# containerd_insecure_registries: +# "localhost": "http://127.0.0.1" +# "172.19.16.11:5000": "http://172.19.16.11:5000" + +# containerd_registries: +# "docker.io": "https://registry-1.docker.io" + +# containerd_max_container_log_line_size: -1 + +# containerd_registry_auth: +# - registry: 10.0.0.2:5000 +# username: user +# password: pass diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/coreos.yml b/XTesting/kubespray/inventory/sample/group_vars/all/coreos.yml new file mode 100644 index 0000000..22c2166 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/coreos.yml @@ -0,0 +1,2 @@ +## Does coreos need auto upgrade, default is true +# coreos_auto_upgrade: true diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/cri-o.yml b/XTesting/kubespray/inventory/sample/group_vars/all/cri-o.yml new file mode 100644 index 0000000..3e6e4ee --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/cri-o.yml @@ -0,0 +1,6 @@ +# crio_insecure_registries: +# - 10.0.0.2:5000 +# crio_registry_auth: +# - registry: 10.0.0.2:5000 +# username: user +# password: pass diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/docker.yml b/XTesting/kubespray/inventory/sample/group_vars/all/docker.yml new file mode 100644 index 0000000..4e968c3 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/docker.yml @@ -0,0 +1,59 @@ +--- +## Uncomment this if you want to force overlay/overlay2 as docker storage driver +## Please note that overlay2 is only supported on newer kernels +# docker_storage_options: -s overlay2 + +## Enable docker_container_storage_setup, it will configure devicemapper driver on Centos7 or RedHat7. +docker_container_storage_setup: false + +## It must be define a disk path for docker_container_storage_setup_devs. +## Otherwise docker-storage-setup will be executed incorrectly. +# docker_container_storage_setup_devs: /dev/vdb + +## Uncomment this if you want to change the Docker Cgroup driver (native.cgroupdriver) +## Valid options are systemd or cgroupfs, default is systemd +# docker_cgroup_driver: systemd + +## Only set this if you have more than 3 nameservers: +## If true Kubespray will only use the first 3, otherwise it will fail +docker_dns_servers_strict: false + +# Path used to store Docker data +docker_daemon_graph: "/var/lib/docker" + +## Used to set docker daemon iptables options to true +docker_iptables_enabled: "false" + +# Docker log options +# Rotate container stderr/stdout logs at 50m and keep last 5 +docker_log_opts: "--log-opt max-size=50m --log-opt max-file=5" + +# define docker bin_dir +docker_bin_dir: "/usr/bin" + +# keep docker packages after installation; speeds up repeated ansible provisioning runs when '1' +# kubespray deletes the docker package on each run, so caching the package makes sense +docker_rpm_keepcache: 1 + +## An obvious use case is allowing insecure-registry access to self hosted registries. +## Can be ipaddress and domain_name. +## example define 172.19.16.11 or mirror.registry.io +# docker_insecure_registries: +# - mirror.registry.io +# - 172.19.16.11 + +## Add other registry,example China registry mirror. +# docker_registry_mirrors: +# - https://registry.docker-cn.com +# - https://mirror.aliyuncs.com + +## If non-empty will override default system MountFlags value. +## This option takes a mount propagation flag: shared, slave +## or private, which control whether mounts in the file system +## namespace set up for docker will receive or propagate mounts +## and unmounts. Leave empty for system default +# docker_mount_flags: + +## A string of extra options to pass to the docker daemon. +## This string should be exactly as you wish it to appear. +# docker_options: "" diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/etcd.yml b/XTesting/kubespray/inventory/sample/group_vars/all/etcd.yml new file mode 100644 index 0000000..7206a06 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/etcd.yml @@ -0,0 +1,16 @@ +--- +## Directory where etcd data stored +etcd_data_dir: /var/lib/etcd + +## Container runtime +## docker for docker, crio for cri-o and containerd for containerd. +## Additionally you can set this to kubeadm if you want to install etcd using kubeadm +## Kubeadm etcd deployment is experimental and only available for new deployments +## If this is not set, container manager will be inherited from the Kubespray defaults +## and not from k8s_cluster/k8s-cluster.yml, which might not be what you want. +## Also this makes possible to use different container manager for etcd nodes. +# container_manager: containerd + +## Settings for etcd deployment type +# Set this to docker if you are using container_manager: docker +etcd_deployment_type: host \ No newline at end of file diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/gcp.yml b/XTesting/kubespray/inventory/sample/group_vars/all/gcp.yml new file mode 100644 index 0000000..49eb5c0 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/gcp.yml @@ -0,0 +1,10 @@ +## GCP compute Persistent Disk CSI Driver credentials and parameters +## See docs/gcp-pd-csi.md for information about the implementation + +## Specify the path to the file containing the service account credentials +# gcp_pd_csi_sa_cred_file: "/my/safe/credentials/directory/cloud-sa.json" + +## To enable GCP Persistent Disk CSI driver, uncomment below +# gcp_pd_csi_enabled: true +# gcp_pd_csi_controller_replicas: 1 +# gcp_pd_csi_driver_image_tag: "v0.7.0-gke.0" diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/hcloud.yml b/XTesting/kubespray/inventory/sample/group_vars/all/hcloud.yml new file mode 100644 index 0000000..c27035c --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/hcloud.yml @@ -0,0 +1,14 @@ +## Values for the external Hcloud Cloud Controller +# external_hcloud_cloud: +# hcloud_api_token: "" +# token_secret_name: hcloud +# with_networks: false # Use the hcloud controller-manager with networks support https://github.com/hetznercloud/hcloud-cloud-controller-manager#networks-support +# service_account_name: cloud-controller-manager +# +# controller_image_tag: "latest" +# ## A dictionary of extra arguments to add to the openstack cloud controller manager daemonset +# ## Format: +# ## external_hcloud_cloud.controller_extra_args: +# ## arg1: "value1" +# ## arg2: "value2" +# controller_extra_args: {} diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/oci.yml b/XTesting/kubespray/inventory/sample/group_vars/all/oci.yml new file mode 100644 index 0000000..541d0e6 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/oci.yml @@ -0,0 +1,28 @@ +## When Oracle Cloud Infrastructure is used, set these variables +# oci_private_key: +# oci_region_id: +# oci_tenancy_id: +# oci_user_id: +# oci_user_fingerprint: +# oci_compartment_id: +# oci_vnc_id: +# oci_subnet1_id: +# oci_subnet2_id: +## Override these default/optional behaviors if you wish +# oci_security_list_management: All +## If you would like the controller to manage specific lists per subnet. This is a mapping of subnet ocids to security list ocids. Below are examples. +# oci_security_lists: +# ocid1.subnet.oc1.phx.aaaaaaaasa53hlkzk6nzksqfccegk2qnkxmphkblst3riclzs4rhwg7rg57q: ocid1.securitylist.oc1.iad.aaaaaaaaqti5jsfvyw6ejahh7r4okb2xbtuiuguswhs746mtahn72r7adt7q +# ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq: ocid1.securitylist.oc1.iad.aaaaaaaaqti5jsfvyw6ejahh7r4okb2xbtuiuguswhs746mtahn72r7adt7q +## If oci_use_instance_principals is true, you do not need to set the region, tenancy, user, key, passphrase, or fingerprint +# oci_use_instance_principals: false +# oci_cloud_controller_version: 0.6.0 +## If you would like to control OCI query rate limits for the controller +# oci_rate_limit: +# rate_limit_qps_read: +# rate_limit_qps_write: +# rate_limit_bucket_read: +# rate_limit_bucket_write: +## Other optional variables +# oci_cloud_controller_pull_source: (default iad.ocir.io/oracle/cloud-provider-oci) +# oci_cloud_controller_pull_secret: (name of pull secret to use if you define your own mirror above) diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/offline.yml b/XTesting/kubespray/inventory/sample/group_vars/all/offline.yml new file mode 100644 index 0000000..42c7e69 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/offline.yml @@ -0,0 +1,96 @@ +--- +## Global Offline settings +### Private Container Image Registry +# registry_host: "myprivateregisry.com" +# files_repo: "http://myprivatehttpd" +### If using CentOS, RedHat, AlmaLinux or Fedora +# yum_repo: "http://myinternalyumrepo" +### If using Debian +# debian_repo: "http://myinternaldebianrepo" +### If using Ubuntu +# ubuntu_repo: "http://myinternalubunturepo" + +## Container Registry overrides +# kube_image_repo: "{{ registry_host }}" +# gcr_image_repo: "{{ registry_host }}" +# github_image_repo: "{{ registry_host }}" +# docker_image_repo: "{{ registry_host }}" +# quay_image_repo: "{{ registry_host }}" + +## Kubernetes components +# kubeadm_download_url: "{{ files_repo }}/storage.googleapis.com/kubernetes-release/release/{{ kubeadm_version }}/bin/linux/{{ image_arch }}/kubeadm" +# kubectl_download_url: "{{ files_repo }}/storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubectl" +# kubelet_download_url: "{{ files_repo }}/storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/{{ image_arch }}/kubelet" + +## CNI Plugins +# cni_download_url: "{{ files_repo }}/github.com/containernetworking/plugins/releases/download/{{ cni_version }}/cni-plugins-linux-{{ image_arch }}-{{ cni_version }}.tgz" + +## cri-tools +# crictl_download_url: "{{ files_repo }}/github.com/kubernetes-sigs/cri-tools/releases/download/{{ crictl_version }}/crictl-{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" + +## [Optional] etcd: only if you **DON'T** use etcd_deployment=host +# etcd_download_url: "{{ files_repo }}/github.com/etcd-io/etcd/releases/download/{{ etcd_version }}/etcd-{{ etcd_version }}-linux-{{ image_arch }}.tar.gz" + +# [Optional] Calico: If using Calico network plugin +# calicoctl_download_url: "{{ files_repo }}/github.com/projectcalico/calico/releases/download/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}" +# calicoctl_alternate_download_url: "{{ files_repo }}/github.com/projectcalico/calicoctl/releases/download/{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}" +# [Optional] Calico with kdd: If using Calico network plugin with kdd datastore +# calico_crds_download_url: "{{ files_repo }}/github.com/projectcalico/calico/archive/{{ calico_version }}.tar.gz" + +# [Optional] Flannel: If using Falnnel network plugin +# flannel_cni_download_url: "{{ files_repo }}/kubernetes/flannel/{{ flannel_cni_version }}/flannel-{{ image_arch }}" + +# [Optional] helm: only if you set helm_enabled: true +# helm_download_url: "{{ files_repo }}/get.helm.sh/helm-{{ helm_version }}-linux-{{ image_arch }}.tar.gz" + +# [Optional] crun: only if you set crun_enabled: true +# crun_download_url: "{{ files_repo }}/github.com/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}" + +# [Optional] kata: only if you set kata_containers_enabled: true +# kata_containers_download_url: "{{ files_repo }}/github.com/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ ansible_architecture }}.tar.xz" + +# [Optional] cri-dockerd: only if you set container_manager: docker +# cri_dockerd_download_url: "{{ files_repo }}/github.com/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz" + +# [Optional] cri-o: only if you set container_manager: crio +# crio_download_base: "download.opensuse.org/repositories/devel:kubic:libcontainers:stable" +# crio_download_crio: "http://{{ crio_download_base }}:/cri-o:/" + +# [Optional] runc,containerd: only if you set container_runtime: containerd +# runc_download_url: "{{ files_repo }}/github.com/opencontainers/runc/releases/download/{{ runc_version }}/runc.{{ image_arch }}" +# containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz" +# nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" + +## CentOS/Redhat/AlmaLinux +### For EL7, base and extras repo must be available, for EL8, baseos and appstream +### By default we enable those repo automatically +# rhel_enable_repos: false +### Docker / Containerd +# docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch" +# docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" + +## Fedora +### Docker +# docker_fedora_repo_base_url: "{{ yum_repo }}/docker-ce/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}" +# docker_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" +### Containerd +# containerd_fedora_repo_base_url: "{{ yum_repo }}/containerd" +# containerd_fedora_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg" + +## Debian +### Docker +# docker_debian_repo_base_url: "{{ debian_repo }}/docker-ce" +# docker_debian_repo_gpgkey: "{{ debian_repo }}/docker-ce/gpg" +### Containerd +# containerd_debian_repo_base_url: "{{ ubuntu_repo }}/containerd" +# containerd_debian_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg" +# containerd_debian_repo_repokey: 'YOURREPOKEY' + +## Ubuntu +### Docker +# docker_ubuntu_repo_base_url: "{{ ubuntu_repo }}/docker-ce" +# docker_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/docker-ce/gpg" +### Containerd +# containerd_ubuntu_repo_base_url: "{{ ubuntu_repo }}/containerd" +# containerd_ubuntu_repo_gpgkey: "{{ ubuntu_repo }}/containerd/gpg" +# containerd_ubuntu_repo_repokey: 'YOURREPOKEY' diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/openstack.yml b/XTesting/kubespray/inventory/sample/group_vars/all/openstack.yml new file mode 100644 index 0000000..7835664 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/openstack.yml @@ -0,0 +1,49 @@ +## When OpenStack is used, Cinder version can be explicitly specified if autodetection fails (Fixed in 1.9: https://github.com/kubernetes/kubernetes/issues/50461) +# openstack_blockstorage_version: "v1/v2/auto (default)" +# openstack_blockstorage_ignore_volume_az: yes +## When OpenStack is used, if LBaaSv2 is available you can enable it with the following 2 variables. +# openstack_lbaas_enabled: True +# openstack_lbaas_subnet_id: "Neutron subnet ID (not network ID) to create LBaaS VIP" +## To enable automatic floating ip provisioning, specify a subnet. +# openstack_lbaas_floating_network_id: "Neutron network ID (not subnet ID) to get floating IP from, disabled by default" +## Override default LBaaS behavior +# openstack_lbaas_use_octavia: False +# openstack_lbaas_method: "ROUND_ROBIN" +# openstack_lbaas_provider: "haproxy" +# openstack_lbaas_create_monitor: "yes" +# openstack_lbaas_monitor_delay: "1m" +# openstack_lbaas_monitor_timeout: "30s" +# openstack_lbaas_monitor_max_retries: "3" + +## Values for the external OpenStack Cloud Controller +# external_openstack_lbaas_network_id: "Neutron network ID to create LBaaS VIP" +# external_openstack_lbaas_subnet_id: "Neutron subnet ID to create LBaaS VIP" +# external_openstack_lbaas_floating_network_id: "Neutron network ID to get floating IP from" +# external_openstack_lbaas_floating_subnet_id: "Neutron subnet ID to get floating IP from" +# external_openstack_lbaas_method: "ROUND_ROBIN" +# external_openstack_lbaas_provider: "octavia" +# external_openstack_lbaas_create_monitor: false +# external_openstack_lbaas_monitor_delay: "1m" +# external_openstack_lbaas_monitor_timeout: "30s" +# external_openstack_lbaas_monitor_max_retries: "3" +# external_openstack_lbaas_manage_security_groups: false +# external_openstack_lbaas_internal_lb: false +# external_openstack_network_ipv6_disabled: false +# external_openstack_network_internal_networks: [] +# external_openstack_network_public_networks: [] +# external_openstack_metadata_search_order: "configDrive,metadataService" + +## Application credentials to authenticate against Keystone API +## Those settings will take precedence over username and password that might be set your environment +## All of them are required +# external_openstack_application_credential_name: +# external_openstack_application_credential_id: +# external_openstack_application_credential_secret: + +## The tag of the external OpenStack Cloud Controller image +# external_openstack_cloud_controller_image_tag: "latest" + +## To use Cinder CSI plugin to provision volumes set this value to true +## Make sure to source in the openstack credentials +# cinder_csi_enabled: true +# cinder_csi_controller_replicas: 1 diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/upcloud.yml b/XTesting/kubespray/inventory/sample/group_vars/all/upcloud.yml new file mode 100644 index 0000000..16e6e6f --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/upcloud.yml @@ -0,0 +1,19 @@ +## Repo for UpClouds csi-driver: https://github.com/UpCloudLtd/upcloud-csi +## To use UpClouds CSI plugin to provision volumes set this value to true +## Remember to set UPCLOUD_USERNAME and UPCLOUD_PASSWORD +# upcloud_csi_enabled: true +# upcloud_csi_controller_replicas: 1 +## Override used image tags +# upcloud_csi_provisioner_image_tag: "v3.1.0" +# upcloud_csi_attacher_image_tag: "v3.4.0" +# upcloud_csi_resizer_image_tag: "v1.4.0" +# upcloud_csi_plugin_image_tag: "v0.2.1" +# upcloud_csi_node_image_tag: "v2.5.0" +# upcloud_tolerations: [] +## Storage class options +# expand_persistent_volumes: true +# parameters: +# tier: maxiops # or hdd +# storage_classes: +# - name: standard +# is_default: true diff --git a/XTesting/kubespray/inventory/sample/group_vars/all/vsphere.yml b/XTesting/kubespray/inventory/sample/group_vars/all/vsphere.yml new file mode 100644 index 0000000..af3cfbe --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/all/vsphere.yml @@ -0,0 +1,32 @@ +## Values for the external vSphere Cloud Provider +# external_vsphere_vcenter_ip: "myvcenter.domain.com" +# external_vsphere_vcenter_port: "443" +# external_vsphere_insecure: "true" +# external_vsphere_user: "administrator@vsphere.local" # Can also be set via the `VSPHERE_USER` environment variable +# external_vsphere_password: "K8s_admin" # Can also be set via the `VSPHERE_PASSWORD` environment variable +# external_vsphere_datacenter: "DATACENTER_name" +# external_vsphere_kubernetes_cluster_id: "kubernetes-cluster-id" + +## Vsphere version where located VMs +# external_vsphere_version: "6.7u3" + +## Tags for the external vSphere Cloud Provider images +## gcr.io/cloud-provider-vsphere/cpi/release/manager +# external_vsphere_cloud_controller_image_tag: "latest" +## gcr.io/cloud-provider-vsphere/csi/release/syncer +# vsphere_syncer_image_tag: "v2.5.1" +## registry.k8s.io/sig-storage/csi-attacher +# vsphere_csi_attacher_image_tag: "v3.4.0" +## gcr.io/cloud-provider-vsphere/csi/release/driver +# vsphere_csi_controller: "v2.5.1" +## registry.k8s.io/sig-storage/livenessprobe +# vsphere_csi_liveness_probe_image_tag: "v2.6.0" +## registry.k8s.io/sig-storage/csi-provisioner +# vsphere_csi_provisioner_image_tag: "v3.1.0" +## registry.k8s.io/sig-storage/csi-resizer +## makes sense only for vSphere version >=7.0 +# vsphere_csi_resizer_tag: "v1.3.0" + +## To use vSphere CSI plugin to provision volumes set this value to true +# vsphere_csi_enabled: true +# vsphere_csi_controller_replicas: 1 diff --git a/XTesting/kubespray/inventory/sample/group_vars/etcd.yml b/XTesting/kubespray/inventory/sample/group_vars/etcd.yml new file mode 100644 index 0000000..f07c720 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/etcd.yml @@ -0,0 +1,26 @@ +--- +## Etcd auto compaction retention for mvcc key value store in hour +# etcd_compaction_retention: 0 + +## Set level of detail for etcd exported metrics, specify 'extensive' to include histogram metrics. +# etcd_metrics: basic + +## Etcd is restricted by default to 512M on systems under 4GB RAM, 512MB is not enough for much more than testing. +## Set this if your etcd nodes have less than 4GB but you want more RAM for etcd. Set to 0 for unrestricted RAM. +## This value is only relevant when deploying etcd with `etcd_deployment_type: docker` +# etcd_memory_limit: "512M" + +## Etcd has a default of 2G for its space quota. If you put a value in etcd_memory_limit which is less than +## etcd_quota_backend_bytes, you may encounter out of memory terminations of the etcd cluster. Please check +## etcd documentation for more information. +# 8G is a suggested maximum size for normal environments and etcd warns at startup if the configured value exceeds it. +# etcd_quota_backend_bytes: "2147483648" + +# Maximum client request size in bytes the server will accept. +# etcd is designed to handle small key value pairs typical for metadata. +# Larger requests will work, but may increase the latency of other requests +# etcd_max_request_bytes: "1572864" + +### ETCD: disable peer client cert authentication. +# This affects ETCD_PEER_CLIENT_CERT_AUTH variable +# etcd_peer_client_auth: true diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/addons.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/addons.yml new file mode 100644 index 0000000..a392319 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/addons.yml @@ -0,0 +1,226 @@ +--- +# Kubernetes dashboard +# RBAC required. see docs/getting-started.md for access details. +# dashboard_enabled: false + +# Helm deployment +helm_enabled: false + +# Registry deployment +registry_enabled: false +# registry_namespace: kube-system +# registry_storage_class: "" +# registry_disk_size: "10Gi" + +# Metrics Server deployment +metrics_server_enabled: false +# metrics_server_container_port: 4443 +# metrics_server_kubelet_insecure_tls: true +# metrics_server_metric_resolution: 15s +# metrics_server_kubelet_preferred_address_types: "InternalIP,ExternalIP,Hostname" + +# Rancher Local Path Provisioner +local_path_provisioner_enabled: false +# local_path_provisioner_namespace: "local-path-storage" +# local_path_provisioner_storage_class: "local-path" +# local_path_provisioner_reclaim_policy: Delete +# local_path_provisioner_claim_root: /opt/local-path-provisioner/ +# local_path_provisioner_debug: false +# local_path_provisioner_image_repo: "rancher/local-path-provisioner" +# local_path_provisioner_image_tag: "v0.0.22" +# local_path_provisioner_helper_image_repo: "busybox" +# local_path_provisioner_helper_image_tag: "latest" + +# Local volume provisioner deployment +local_volume_provisioner_enabled: false +# local_volume_provisioner_namespace: kube-system +# local_volume_provisioner_nodelabels: +# - kubernetes.io/hostname +# - topology.kubernetes.io/region +# - topology.kubernetes.io/zone +# local_volume_provisioner_storage_classes: +# local-storage: +# host_dir: /mnt/disks +# mount_dir: /mnt/disks +# volume_mode: Filesystem +# fs_type: ext4 +# fast-disks: +# host_dir: /mnt/fast-disks +# mount_dir: /mnt/fast-disks +# block_cleaner_command: +# - "/scripts/shred.sh" +# - "2" +# volume_mode: Filesystem +# fs_type: ext4 +# local_volume_provisioner_tolerations: +# - effect: NoSchedule +# operator: Exists + +# CSI Volume Snapshot Controller deployment, set this to true if your CSI is able to manage snapshots +# currently, setting cinder_csi_enabled=true would automatically enable the snapshot controller +# Longhorn is an extenal CSI that would also require setting this to true but it is not included in kubespray +# csi_snapshot_controller_enabled: false +# csi snapshot namespace +# snapshot_controller_namespace: kube-system + +# CephFS provisioner deployment +cephfs_provisioner_enabled: false +# cephfs_provisioner_namespace: "cephfs-provisioner" +# cephfs_provisioner_cluster: ceph +# cephfs_provisioner_monitors: "172.24.0.1:6789,172.24.0.2:6789,172.24.0.3:6789" +# cephfs_provisioner_admin_id: admin +# cephfs_provisioner_secret: secret +# cephfs_provisioner_storage_class: cephfs +# cephfs_provisioner_reclaim_policy: Delete +# cephfs_provisioner_claim_root: /volumes +# cephfs_provisioner_deterministic_names: true + +# RBD provisioner deployment +rbd_provisioner_enabled: false +# rbd_provisioner_namespace: rbd-provisioner +# rbd_provisioner_replicas: 2 +# rbd_provisioner_monitors: "172.24.0.1:6789,172.24.0.2:6789,172.24.0.3:6789" +# rbd_provisioner_pool: kube +# rbd_provisioner_admin_id: admin +# rbd_provisioner_secret_name: ceph-secret-admin +# rbd_provisioner_secret: ceph-key-admin +# rbd_provisioner_user_id: kube +# rbd_provisioner_user_secret_name: ceph-secret-user +# rbd_provisioner_user_secret: ceph-key-user +# rbd_provisioner_user_secret_namespace: rbd-provisioner +# rbd_provisioner_fs_type: ext4 +# rbd_provisioner_image_format: "2" +# rbd_provisioner_image_features: layering +# rbd_provisioner_storage_class: rbd +# rbd_provisioner_reclaim_policy: Delete + +# Nginx ingress controller deployment +ingress_nginx_enabled: false +# ingress_nginx_host_network: false +ingress_publish_status_address: "" +# ingress_nginx_nodeselector: +# kubernetes.io/os: "linux" +# ingress_nginx_tolerations: +# - key: "node-role.kubernetes.io/master" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# - key: "node-role.kubernetes.io/control-plane" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# ingress_nginx_namespace: "ingress-nginx" +# ingress_nginx_insecure_port: 80 +# ingress_nginx_secure_port: 443 +# ingress_nginx_configmap: +# map-hash-bucket-size: "128" +# ssl-protocols: "TLSv1.2 TLSv1.3" +# ingress_nginx_configmap_tcp_services: +# 9000: "default/example-go:8080" +# ingress_nginx_configmap_udp_services: +# 53: "kube-system/coredns:53" +# ingress_nginx_extra_args: +# - --default-ssl-certificate=default/foo-tls +# ingress_nginx_termination_grace_period_seconds: 300 +# ingress_nginx_class: nginx + +# ALB ingress controller deployment +ingress_alb_enabled: false +# alb_ingress_aws_region: "us-east-1" +# alb_ingress_restrict_scheme: "false" +# Enables logging on all outbound requests sent to the AWS API. +# If logging is desired, set to true. +# alb_ingress_aws_debug: "false" + +# Cert manager deployment +cert_manager_enabled: false +# cert_manager_namespace: "cert-manager" +# cert_manager_tolerations: +# - key: node-role.kubernetes.io/master +# effect: NoSchedule +# - key: node-role.kubernetes.io/control-plane +# effect: NoSchedule +# cert_manager_affinity: +# nodeAffinity: +# preferredDuringSchedulingIgnoredDuringExecution: +# - weight: 100 +# preference: +# matchExpressions: +# - key: node-role.kubernetes.io/control-plane +# operator: In +# values: +# - "" +# cert_manager_nodeselector: +# kubernetes.io/os: "linux" + +# cert_manager_trusted_internal_ca: | +# -----BEGIN CERTIFICATE----- +# [REPLACE with your CA certificate] +# -----END CERTIFICATE----- +# cert_manager_leader_election_namespace: kube-system + +# MetalLB deployment +metallb_enabled: false +metallb_speaker_enabled: true +# metallb_ip_range: +# - "10.5.0.50-10.5.0.99" +# metallb_pool_name: "loadbalanced" +# metallb_auto_assign: true +# metallb_avoid_buggy_ips: false +# metallb_speaker_nodeselector: +# kubernetes.io/os: "linux" +# metallb_controller_nodeselector: +# kubernetes.io/os: "linux" +# metallb_speaker_tolerations: +# - key: "node-role.kubernetes.io/master" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# - key: "node-role.kubernetes.io/control-plane" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# metallb_controller_tolerations: +# - key: "node-role.kubernetes.io/master" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# - key: "node-role.kubernetes.io/control-plane" +# operator: "Equal" +# value: "" +# effect: "NoSchedule" +# metallb_version: v0.12.1 +# metallb_protocol: "layer2" +# metallb_port: "7472" +# metallb_memberlist_port: "7946" +# metallb_additional_address_pools: +# kube_service_pool: +# ip_range: +# - "10.5.1.50-10.5.1.99" +# protocol: "layer2" +# auto_assign: false +# avoid_buggy_ips: false +# metallb_protocol: "bgp" +# metallb_peers: +# - peer_address: 192.0.2.1 +# peer_asn: 64512 +# my_asn: 4200000000 +# - peer_address: 192.0.2.2 +# peer_asn: 64513 +# my_asn: 4200000000 + +argocd_enabled: false +# argocd_version: v2.4.7 +# argocd_namespace: argocd +# Default password: +# - https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli +# --- +# The initial password is autogenerated to be the pod name of the Argo CD API server. This can be retrieved with the command: +# kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2 +# --- +# Use the following var to set admin password +# argocd_admin_password: "password" + +# The plugin manager for kubectl +krew_enabled: false +krew_root_dir: "/usr/local/krew" diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml new file mode 100644 index 0000000..2714667 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml @@ -0,0 +1,326 @@ +--- +# Kubernetes configuration dirs and system namespace. +# Those are where all the additional config stuff goes +# the kubernetes normally puts in /srv/kubernetes. +# This puts them in a sane location and namespace. +# Editing those values will almost surely break something. +kube_config_dir: /etc/kubernetes +kube_script_dir: "{{ bin_dir }}/kubernetes-scripts" +kube_manifest_dir: "{{ kube_config_dir }}/manifests" + +# This is where all the cert scripts and certs will be located +kube_cert_dir: "{{ kube_config_dir }}/ssl" + +# This is where all of the bearer tokens will be stored +kube_token_dir: "{{ kube_config_dir }}/tokens" + +kube_api_anonymous_auth: true + +## Change this to use another Kubernetes version, e.g. a current beta release +kube_version: v1.24.4 + +# Where the binaries will be downloaded. +# Note: ensure that you've enough disk space (about 1G) +local_release_dir: "/tmp/releases" +# Random shifts for retrying failed ops like pushing/downloading +retry_stagger: 5 + +# This is the user that owns tha cluster installation. +kube_owner: kube + +# This is the group that the cert creation scripts chgrp the +# cert files to. Not really changeable... +kube_cert_group: kube-cert + +# Cluster Loglevel configuration +kube_log_level: 2 + +# Directory where credentials will be stored +credentials_dir: "{{ inventory_dir }}/credentials" + +## It is possible to activate / deactivate selected authentication methods (oidc, static token auth) +# kube_oidc_auth: false +# kube_token_auth: false + + +## Variables for OpenID Connect Configuration https://kubernetes.io/docs/admin/authentication/ +## To use OpenID you have to deploy additional an OpenID Provider (e.g Dex, Keycloak, ...) + +# kube_oidc_url: https:// ... +# kube_oidc_client_id: kubernetes +## Optional settings for OIDC +# kube_oidc_ca_file: "{{ kube_cert_dir }}/ca.pem" +# kube_oidc_username_claim: sub +# kube_oidc_username_prefix: 'oidc:' +# kube_oidc_groups_claim: groups +# kube_oidc_groups_prefix: 'oidc:' + +## Variables to control webhook authn/authz +# kube_webhook_token_auth: false +# kube_webhook_token_auth_url: https://... +# kube_webhook_token_auth_url_skip_tls_verify: false + +## For webhook authorization, authorization_modes must include Webhook +# kube_webhook_authorization: false +# kube_webhook_authorization_url: https://... +# kube_webhook_authorization_url_skip_tls_verify: false + +# Choose network plugin (cilium, calico, kube-ovn, weave or flannel. Use cni for generic cni plugin) +# Can also be set to 'cloud', which lets the cloud provider setup appropriate routing +kube_network_plugin: calico + +# Setting multi_networking to true will install Multus: https://github.com/intel/multus-cni +kube_network_plugin_multus: false + +# Kubernetes internal network for services, unused block of space. +kube_service_addresses: 10.233.0.0/18 + +# internal network. When used, it will assign IP +# addresses from this range to individual pods. +# This network must be unused in your network infrastructure! +kube_pods_subnet: 10.233.64.0/18 + +# internal network node size allocation (optional). This is the size allocated +# to each node for pod IP address allocation. Note that the number of pods per node is +# also limited by the kubelet_max_pods variable which defaults to 110. +# +# Example: +# Up to 64 nodes and up to 254 or kubelet_max_pods (the lowest of the two) pods per node: +# - kube_pods_subnet: 10.233.64.0/18 +# - kube_network_node_prefix: 24 +# - kubelet_max_pods: 110 +# +# Example: +# Up to 128 nodes and up to 126 or kubelet_max_pods (the lowest of the two) pods per node: +# - kube_pods_subnet: 10.233.64.0/18 +# - kube_network_node_prefix: 25 +# - kubelet_max_pods: 110 +kube_network_node_prefix: 24 + +# Configure Dual Stack networking (i.e. both IPv4 and IPv6) +enable_dual_stack_networks: false + +# Kubernetes internal network for IPv6 services, unused block of space. +# This is only used if enable_dual_stack_networks is set to true +# This provides 4096 IPv6 IPs +kube_service_addresses_ipv6: fd85:ee78:d8a6:8607::1000/116 + +# Internal network. When used, it will assign IPv6 addresses from this range to individual pods. +# This network must not already be in your network infrastructure! +# This is only used if enable_dual_stack_networks is set to true. +# This provides room for 256 nodes with 254 pods per node. +kube_pods_subnet_ipv6: fd85:ee78:d8a6:8607::1:0000/112 + +# IPv6 subnet size allocated to each for pods. +# This is only used if enable_dual_stack_networks is set to true +# This provides room for 254 pods per node. +kube_network_node_prefix_ipv6: 120 + +# The port the API Server will be listening on. +kube_apiserver_ip: "{{ kube_service_addresses|ipaddr('net')|ipaddr(1)|ipaddr('address') }}" +kube_apiserver_port: 6443 # (https) + +# Kube-proxy proxyMode configuration. +# Can be ipvs, iptables +kube_proxy_mode: ipvs + +# configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface +# must be set to true for MetalLB to work +kube_proxy_strict_arp: false + +# A string slice of values which specify the addresses to use for NodePorts. +# Values may be valid IP blocks (e.g. 1.2.3.0/24, 1.2.3.4/32). +# The default empty string slice ([]) means to use all local addresses. +# kube_proxy_nodeport_addresses_cidr is retained for legacy config +kube_proxy_nodeport_addresses: >- + {%- if kube_proxy_nodeport_addresses_cidr is defined -%} + [{{ kube_proxy_nodeport_addresses_cidr }}] + {%- else -%} + [] + {%- endif -%} + +# If non-empty, will use this string as identification instead of the actual hostname +# kube_override_hostname: >- +# {%- if cloud_provider is defined and cloud_provider in [ 'aws' ] -%} +# {%- else -%} +# {{ inventory_hostname }} +# {%- endif -%} + +## Encrypting Secret Data at Rest +kube_encrypt_secret_data: false + +# Graceful Node Shutdown (Kubernetes >= 1.21.0), see https://kubernetes.io/blog/2021/04/21/graceful-node-shutdown-beta/ +# kubelet_shutdown_grace_period had to be greater than kubelet_shutdown_grace_period_critical_pods to allow +# non-critical podsa to also terminate gracefully +# kubelet_shutdown_grace_period: 60s +# kubelet_shutdown_grace_period_critical_pods: 20s + +# DNS configuration. +# Kubernetes cluster name, also will be used as DNS domain +cluster_name: cluster.local +# Subdomains of DNS domain to be resolved via /etc/resolv.conf for hostnet pods +ndots: 2 +# Can be coredns, coredns_dual, manual or none +dns_mode: coredns +# Set manual server if using a custom cluster DNS server +# manual_dns_server: 10.x.x.x +# Enable nodelocal dns cache +enable_nodelocaldns: true +enable_nodelocaldns_secondary: false +nodelocaldns_ip: 169.254.25.10 +nodelocaldns_health_port: 9254 +nodelocaldns_second_health_port: 9256 +nodelocaldns_bind_metrics_host_ip: false +nodelocaldns_secondary_skew_seconds: 5 +# nodelocaldns_external_zones: +# - zones: +# - example.com +# - example.io:1053 +# nameservers: +# - 1.1.1.1 +# - 2.2.2.2 +# cache: 5 +# - zones: +# - https://mycompany.local:4453 +# nameservers: +# - 192.168.0.53 +# cache: 0 +# Enable k8s_external plugin for CoreDNS +enable_coredns_k8s_external: false +coredns_k8s_external_zone: k8s_external.local +# Enable endpoint_pod_names option for kubernetes plugin +enable_coredns_k8s_endpoint_pod_names: false + +# Can be docker_dns, host_resolvconf or none +resolvconf_mode: host_resolvconf +# Deploy netchecker app to verify DNS resolve as an HTTP service +deploy_netchecker: false +# Ip address of the kubernetes skydns service +skydns_server: "{{ kube_service_addresses|ipaddr('net')|ipaddr(3)|ipaddr('address') }}" +skydns_server_secondary: "{{ kube_service_addresses|ipaddr('net')|ipaddr(4)|ipaddr('address') }}" +dns_domain: "{{ cluster_name }}" + +## Container runtime +## docker for docker, crio for cri-o and containerd for containerd. +## Default: containerd +container_manager: containerd + +# Additional container runtimes +kata_containers_enabled: false + +kubeadm_certificate_key: "{{ lookup('password', credentials_dir + '/kubeadm_certificate_key.creds length=64 chars=hexdigits') | lower }}" + +# K8s image pull policy (imagePullPolicy) +k8s_image_pull_policy: IfNotPresent + +# audit log for kubernetes +kubernetes_audit: false + +# define kubelet config dir for dynamic kubelet +# kubelet_config_dir: +default_kubelet_config_dir: "{{ kube_config_dir }}/dynamic_kubelet_dir" + +# pod security policy (RBAC must be enabled either by having 'RBAC' in authorization_modes or kubeadm enabled) +podsecuritypolicy_enabled: false + +# Custom PodSecurityPolicySpec for restricted policy +# podsecuritypolicy_restricted_spec: {} + +# Custom PodSecurityPolicySpec for privileged policy +# podsecuritypolicy_privileged_spec: {} + +# Make a copy of kubeconfig on the host that runs Ansible in {{ inventory_dir }}/artifacts +# kubeconfig_localhost: false +# Use ansible_host as external api ip when copying over kubeconfig. +# kubeconfig_localhost_ansible_host: false +# Download kubectl onto the host that runs Ansible in {{ bin_dir }} +# kubectl_localhost: false + +# A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. +# Acceptable options are 'pods', 'system-reserved', 'kube-reserved' and ''. Default is "". +# kubelet_enforce_node_allocatable: pods + +## Optionally reserve resources for OS system daemons. +# system_reserved: true +## Uncomment to override default values +# system_memory_reserved: 512Mi +# system_cpu_reserved: 500m +# system_ephemeral_storage_reserved: 2Gi +## Reservation for master hosts +# system_master_memory_reserved: 256Mi +# system_master_cpu_reserved: 250m +# system_master_ephemeral_storage_reserved: 2Gi + +## Eviction Thresholds to avoid system OOMs +# https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds +# eviction_hard: {} +# eviction_hard_control_plane: {} + +# An alternative flexvolume plugin directory +# kubelet_flexvolumes_plugins_dir: /usr/libexec/kubernetes/kubelet-plugins/volume/exec + +## Supplementary addresses that can be added in kubernetes ssl keys. +## That can be useful for example to setup a keepalived virtual IP +# supplementary_addresses_in_ssl_keys: [10.0.0.1, 10.0.0.2, 10.0.0.3] + +## Running on top of openstack vms with cinder enabled may lead to unschedulable pods due to NoVolumeZoneConflict restriction in kube-scheduler. +## See https://github.com/kubernetes-sigs/kubespray/issues/2141 +## Set this variable to true to get rid of this issue +volume_cross_zone_attachment: false +## Add Persistent Volumes Storage Class for corresponding cloud provider (supported: in-tree OpenStack, Cinder CSI, +## AWS EBS CSI, Azure Disk CSI, GCP Persistent Disk CSI) +persistent_volumes_enabled: false + +## Container Engine Acceleration +## Enable container acceleration feature, for example use gpu acceleration in containers +# nvidia_accelerator_enabled: true +## Nvidia GPU driver install. Install will by done by a (init) pod running as a daemonset. +## Important: if you use Ubuntu then you should set in all.yml 'docker_storage_options: -s overlay2' +## Array with nvida_gpu_nodes, leave empty or comment if you don't want to install drivers. +## Labels and taints won't be set to nodes if they are not in the array. +# nvidia_gpu_nodes: +# - kube-gpu-001 +# nvidia_driver_version: "384.111" +## flavor can be tesla or gtx +# nvidia_gpu_flavor: gtx +## NVIDIA driver installer images. Change them if you have trouble accessing gcr.io. +# nvidia_driver_install_centos_container: atzedevries/nvidia-centos-driver-installer:2 +# nvidia_driver_install_ubuntu_container: gcr.io/google-containers/ubuntu-nvidia-driver-installer@sha256:7df76a0f0a17294e86f691c81de6bbb7c04a1b4b3d4ea4e7e2cccdc42e1f6d63 +## NVIDIA GPU device plugin image. +# nvidia_gpu_device_plugin_container: "registry.k8s.io/nvidia-gpu-device-plugin@sha256:0842734032018be107fa2490c98156992911e3e1f2a21e059ff0105b07dd8e9e" + +## Support tls min version, Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13. +# tls_min_version: "" + +## Support tls cipher suites. +# tls_cipher_suites: {} +# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA +# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 +# - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 +# - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA +# - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 +# - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 +# - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA +# - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA +# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA +# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 +# - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 +# - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA +# - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 +# - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 +# - TLS_ECDHE_RSA_WITH_RC4_128_SHA +# - TLS_RSA_WITH_3DES_EDE_CBC_SHA +# - TLS_RSA_WITH_AES_128_CBC_SHA +# - TLS_RSA_WITH_AES_128_CBC_SHA256 +# - TLS_RSA_WITH_AES_128_GCM_SHA256 +# - TLS_RSA_WITH_AES_256_CBC_SHA +# - TLS_RSA_WITH_AES_256_GCM_SHA384 +# - TLS_RSA_WITH_RC4_128_SHA + +## Amount of time to retain events. (default 1h0m0s) +event_ttl_duration: "1h0m0s" + +## Automatically renew K8S control plane certificates on first Monday of each month +auto_renew_certificates: false +# First Monday of each month +# auto_renew_certificates_systemd_calendar: "Mon *-*-1,2,3,4,5,6,7 03:{{ groups['kube_control_plane'].index(inventory_hostname) }}0:00" diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-calico.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-calico.yml new file mode 100644 index 0000000..553e48b --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-calico.yml @@ -0,0 +1,127 @@ +--- +# see roles/network_plugin/calico/defaults/main.yml + +# the default value of name +calico_cni_name: k8s-pod-network + +## With calico it is possible to distributed routes with border routers of the datacenter. +## Warning : enabling router peering will disable calico's default behavior ('node mesh'). +## The subnets of each nodes will be distributed by the datacenter router +# peer_with_router: false + +# Enables Internet connectivity from containers +# nat_outgoing: true + +# Enables Calico CNI "host-local" IPAM plugin +# calico_ipam_host_local: true + +# add default ippool name +# calico_pool_name: "default-pool" + +# add default ippool blockSize (defaults kube_network_node_prefix) +calico_pool_blocksize: 26 + +# add default ippool CIDR (must be inside kube_pods_subnet, defaults to kube_pods_subnet otherwise) +# calico_pool_cidr: 1.2.3.4/5 + +# add default ippool CIDR to CNI config +# calico_cni_pool: true + +# Add default IPV6 IPPool CIDR. Must be inside kube_pods_subnet_ipv6. Defaults to kube_pods_subnet_ipv6 if not set. +# calico_pool_cidr_ipv6: fd85:ee78:d8a6:8607::1:0000/112 + +# Add default IPV6 IPPool CIDR to CNI config +# calico_cni_pool_ipv6: true + +# Global as_num (/calico/bgp/v1/global/as_num) +# global_as_num: "64512" + +# If doing peering with node-assigned asn where the globas does not match your nodes, you want this +# to be true. All other cases, false. +# calico_no_global_as_num: false + +# You can set MTU value here. If left undefined or empty, it will +# not be specified in calico CNI config, so Calico will use built-in +# defaults. The value should be a number, not a string. +# calico_mtu: 1500 + +# Configure the MTU to use for workload interfaces and tunnels. +# - If Wireguard is enabled, subtract 60 from your network MTU (i.e 1500-60=1440) +# - Otherwise, if VXLAN or BPF mode is enabled, subtract 50 from your network MTU (i.e. 1500-50=1450) +# - Otherwise, if IPIP is enabled, subtract 20 from your network MTU (i.e. 1500-20=1480) +# - Otherwise, if not using any encapsulation, set to your network MTU (i.e. 1500) +# calico_veth_mtu: 1440 + +# Advertise Cluster IPs +# calico_advertise_cluster_ips: true + +# Advertise Service External IPs +# calico_advertise_service_external_ips: +# - x.x.x.x/24 +# - y.y.y.y/32 + +# Adveritse Service LoadBalancer IPs +# calico_advertise_service_loadbalancer_ips: +# - x.x.x.x/24 +# - y.y.y.y/16 + +# Choose data store type for calico: "etcd" or "kdd" (kubernetes datastore) +# calico_datastore: "kdd" + +# Choose Calico iptables backend: "Legacy", "Auto" or "NFT" +# calico_iptables_backend: "Auto" + +# Use typha (only with kdd) +# typha_enabled: false + +# Generate TLS certs for secure typha<->calico-node communication +# typha_secure: false + +# Scaling typha: 1 replica per 100 nodes is adequate +# Number of typha replicas +# typha_replicas: 1 + +# Set max typha connections +# typha_max_connections_lower_limit: 300 + +# Set calico network backend: "bird", "vxlan" or "none" +# bird enable BGP routing, required for ipip and no encapsulation modes +# calico_network_backend: vxlan + +# IP in IP and VXLAN is mutualy exclusive modes. +# set IP in IP encapsulation mode: "Always", "CrossSubnet", "Never" +# calico_ipip_mode: 'Never' + +# set VXLAN encapsulation mode: "Always", "CrossSubnet", "Never" +# calico_vxlan_mode: 'Always' + +# set VXLAN port and VNI +# calico_vxlan_vni: 4096 +# calico_vxlan_port: 4789 + +# Cenable eBPF mode +# calico_bpf_enabled: false + +# If you want to use non default IP_AUTODETECTION_METHOD, IP6_AUTODETECTION_METHOD for calico node set this option to one of: +# * can-reach=DESTINATION +# * interface=INTERFACE-REGEX +# see https://docs.projectcalico.org/reference/node/configuration +# calico_ip_auto_method: "interface=eth.*" +# calico_ip6_auto_method: "interface=eth.*" + +# Choose the iptables insert mode for Calico: "Insert" or "Append". +# calico_felix_chaininsertmode: Insert + +# If you want use the default route interface when you use multiple interface with dynamique route (iproute2) +# see https://docs.projectcalico.org/reference/node/configuration : FELIX_DEVICEROUTESOURCEADDRESS +# calico_use_default_route_src_ipaddr: false + +# Enable calico traffic encryption with wireguard +# calico_wireguard_enabled: false + +# Under certain situations liveness and readiness probes may need tunning +# calico_node_livenessprobe_timeout: 10 +# calico_node_readinessprobe_timeout: 10 + +# Calico apiserver (only with kdd) +# calico_apiserver_enabled: false diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-canal.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-canal.yml new file mode 100644 index 0000000..60b9da7 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-canal.yml @@ -0,0 +1,10 @@ +# see roles/network_plugin/canal/defaults/main.yml + +# The interface used by canal for host <-> host communication. +# If left blank, then the interface is choosing using the node's +# default route. +# canal_iface: "" + +# Whether or not to masquerade traffic to destinations not within +# the pod network. +# canal_masquerade: "true" diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-cilium.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-cilium.yml new file mode 100644 index 0000000..e82b761 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-cilium.yml @@ -0,0 +1,244 @@ +--- +# cilium_version: "v1.11.7" + +# Log-level +# cilium_debug: false + +# cilium_mtu: "" +# cilium_enable_ipv4: true +# cilium_enable_ipv6: false + +# Cilium agent health port +# cilium_agent_health_port: "9879" + +# Identity allocation mode selects how identities are shared between cilium +# nodes by setting how they are stored. The options are "crd" or "kvstore". +# - "crd" stores identities in kubernetes as CRDs (custom resource definition). +# These can be queried with: +# `kubectl get ciliumid` +# - "kvstore" stores identities in an etcd kvstore. +# - In order to support External Workloads, "crd" is required +# - Ref: https://docs.cilium.io/en/stable/gettingstarted/external-workloads/#setting-up-support-for-external-workloads-beta +# - KVStore operations are only required when cilium-operator is running with any of the below options: +# - --synchronize-k8s-services +# - --synchronize-k8s-nodes +# - --identity-allocation-mode=kvstore +# - Ref: https://docs.cilium.io/en/stable/internals/cilium_operator/#kvstore-operations +# cilium_identity_allocation_mode: kvstore + +# Etcd SSL dirs +# cilium_cert_dir: /etc/cilium/certs +# kube_etcd_cacert_file: ca.pem +# kube_etcd_cert_file: cert.pem +# kube_etcd_key_file: cert-key.pem + +# Limits for apps +# cilium_memory_limit: 500M +# cilium_cpu_limit: 500m +# cilium_memory_requests: 64M +# cilium_cpu_requests: 100m + +# Overlay Network Mode +# cilium_tunnel_mode: vxlan +# Optional features +# cilium_enable_prometheus: false +# Enable if you want to make use of hostPort mappings +# cilium_enable_portmap: false +# Monitor aggregation level (none/low/medium/maximum) +# cilium_monitor_aggregation: medium +# The monitor aggregation flags determine which TCP flags which, upon the +# first observation, cause monitor notifications to be generated. +# +# Only effective when monitor aggregation is set to "medium" or higher. +# cilium_monitor_aggregation_flags: "all" +# Kube Proxy Replacement mode (strict/probe/partial) +# cilium_kube_proxy_replacement: probe + +# If upgrading from Cilium < 1.5, you may want to override some of these options +# to prevent service disruptions. See also: +# http://docs.cilium.io/en/stable/install/upgrade/#changes-that-may-require-action +# cilium_preallocate_bpf_maps: false + +# `cilium_tofqdns_enable_poller` is deprecated in 1.8, removed in 1.9 +# cilium_tofqdns_enable_poller: false + +# `cilium_enable_legacy_services` is deprecated in 1.6, removed in 1.9 +# cilium_enable_legacy_services: false + +# Unique ID of the cluster. Must be unique across all conneted clusters and +# in the range of 1 and 255. Only relevant when building a mesh of clusters. +# This value is not defined by default +# cilium_cluster_id: + +# Deploy cilium even if kube_network_plugin is not cilium. +# This enables to deploy cilium alongside another CNI to replace kube-proxy. +# cilium_deploy_additionally: false + +# Auto direct nodes routes can be used to advertise pods routes in your cluster +# without any tunelling (with `cilium_tunnel_mode` sets to `disabled`). +# This works only if you have a L2 connectivity between all your nodes. +# You wil also have to specify the variable `cilium_native_routing_cidr` to +# make this work. Please refer to the cilium documentation for more +# information about this kind of setups. +# cilium_auto_direct_node_routes: false + +# Allows to explicitly specify the IPv4 CIDR for native routing. +# When specified, Cilium assumes networking for this CIDR is preconfigured and +# hands traffic destined for that range to the Linux network stack without +# applying any SNAT. +# Generally speaking, specifying a native routing CIDR implies that Cilium can +# depend on the underlying networking stack to route packets to their +# destination. To offer a concrete example, if Cilium is configured to use +# direct routing and the Kubernetes CIDR is included in the native routing CIDR, +# the user must configure the routes to reach pods, either manually or by +# setting the auto-direct-node-routes flag. +# cilium_native_routing_cidr: "" + +# Allows to explicitly specify the IPv6 CIDR for native routing. +# cilium_native_routing_cidr_ipv6: "" + +# Enable transparent network encryption. +# cilium_encryption_enabled: false + +# Encryption method. Can be either ipsec or wireguard. +# Only effective when `cilium_encryption_enabled` is set to true. +# cilium_encryption_type: "ipsec" + +# Enable encryption for pure node to node traffic. +# This option is only effective when `cilium_encryption_type` is set to `ipsec`. +# cilium_ipsec_node_encryption: false + +# If your kernel or distribution does not support WireGuard, Cilium agent can be configured to fall back on the user-space implementation. +# When this flag is enabled and Cilium detects that the kernel has no native support for WireGuard, +# it will fallback on the wireguard-go user-space implementation of WireGuard. +# This option is only effective when `cilium_encryption_type` is set to `wireguard`. +# cilium_wireguard_userspace_fallback: false + +# IP Masquerade Agent +# https://docs.cilium.io/en/stable/concepts/networking/masquerading/ +# By default, all packets from a pod destined to an IP address outside of the cilium_native_routing_cidr range are masqueraded +# cilium_ip_masq_agent_enable: false +### A packet sent from a pod to a destination which belongs to any CIDR from the nonMasqueradeCIDRs is not going to be masqueraded +# cilium_non_masquerade_cidrs: +# - 10.0.0.0/8 +# - 172.16.0.0/12 +# - 192.168.0.0/16 +# - 100.64.0.0/10 +# - 192.0.0.0/24 +# - 192.0.2.0/24 +# - 192.88.99.0/24 +# - 198.18.0.0/15 +# - 198.51.100.0/24 +# - 203.0.113.0/24 +# - 240.0.0.0/4 +### Indicates whether to masquerade traffic to the link local prefix. +### If the masqLinkLocal is not set or set to false, then 169.254.0.0/16 is appended to the non-masquerade CIDRs list. +# cilium_masq_link_local: false +### A time interval at which the agent attempts to reload config from disk +# cilium_ip_masq_resync_interval: 60s + +# Hubble +### Enable Hubble without install +# cilium_enable_hubble: false +### Enable Hubble Metrics +# cilium_enable_hubble_metrics: false +### if cilium_enable_hubble_metrics: true +# cilium_hubble_metrics: {} +# - dns +# - drop +# - tcp +# - flow +# - icmp +# - http +### Enable Hubble install +# cilium_hubble_install: false +### Enable auto generate certs if cilium_hubble_install: true +# cilium_hubble_tls_generate: false + +# IP address management mode for v1.9+. +# https://docs.cilium.io/en/v1.9/concepts/networking/ipam/ +# cilium_ipam_mode: kubernetes + +# Extra arguments for the Cilium agent +# cilium_agent_custom_args: [] + +# For adding and mounting extra volumes to the cilium agent +# cilium_agent_extra_volumes: [] +# cilium_agent_extra_volume_mounts: [] + +# cilium_agent_extra_env_vars: [] + +# cilium_operator_replicas: 2 + +# The address at which the cillium operator bind health check api +# cilium_operator_api_serve_addr: "127.0.0.1:9234" + +## A dictionary of extra config variables to add to cilium-config, formatted like: +## cilium_config_extra_vars: +## var1: "value1" +## var2: "value2" +# cilium_config_extra_vars: {} + +# For adding and mounting extra volumes to the cilium operator +# cilium_operator_extra_volumes: [] +# cilium_operator_extra_volume_mounts: [] + +# Extra arguments for the Cilium Operator +# cilium_operator_custom_args: [] + +# Name of the cluster. Only relevant when building a mesh of clusters. +# cilium_cluster_name: default + +# Make Cilium take ownership over the `/etc/cni/net.d` directory on the node, renaming all non-Cilium CNI configurations to `*.cilium_bak`. +# This ensures no Pods can be scheduled using other CNI plugins during Cilium agent downtime. +# Available for Cilium v1.10 and up. +# cilium_cni_exclusive: true + +# Configure the log file for CNI logging with retention policy of 7 days. +# Disable CNI file logging by setting this field to empty explicitly. +# Available for Cilium v1.12 and up. +# cilium_cni_log_file: "/var/run/cilium/cilium-cni.log" + +# -- Configure cgroup related configuration +# -- Enable auto mount of cgroup2 filesystem. +# When `cilium_cgroup_auto_mount` is enabled, cgroup2 filesystem is mounted at +# `cilium_cgroup_host_root` path on the underlying host and inside the cilium agent pod. +# If users disable `cilium_cgroup_auto_mount`, it's expected that users have mounted +# cgroup2 filesystem at the specified `cilium_cgroup_auto_mount` volume, and then the +# volume will be mounted inside the cilium agent pod at the same path. +# Available for Cilium v1.11 and up +# cilium_cgroup_auto_mount: true +# -- Configure cgroup root where cgroup2 filesystem is mounted on the host +# cilium_cgroup_host_root: "/run/cilium/cgroupv2" + +# Specifies the ratio (0.0-1.0) of total system memory to use for dynamic +# sizing of the TCP CT, non-TCP CT, NAT and policy BPF maps. +# cilium_bpf_map_dynamic_size_ratio: "0.0" + +# -- Enables masquerading of IPv4 traffic leaving the node from endpoints. +# Available for Cilium v1.10 and up +# cilium_enable_ipv4_masquerade: true +# -- Enables masquerading of IPv6 traffic leaving the node from endpoints. +# Available for Cilium v1.10 and up +# cilium_enable_ipv6_masquerade: true + +# -- Enable native IP masquerade support in eBPF +# cilium_enable_bpf_masquerade: false + +# -- Configure whether direct routing mode should route traffic via +# host stack (true) or directly and more efficiently out of BPF (false) if +# the kernel supports it. The latter has the implication that it will also +# bypass netfilter in the host namespace. +# cilium_enable_host_legacy_routing: true + +# -- Enable use of the remote node identity. +# ref: https://docs.cilium.io/en/v1.7/install/upgrade/#configmap-remote-node-identity +# cilium_enable_remote_node_identity: true + +# -- Enable the use of well-known identities. +# cilium_enable_well_known_identities: false + +# cilium_enable_bpf_clock_probe: true + +# -- Whether to enable CNP status updates. +# cilium_disable_cnp_status_updates: true diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-flannel.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-flannel.yml new file mode 100644 index 0000000..a42c5b3 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-flannel.yml @@ -0,0 +1,18 @@ +# see roles/network_plugin/flannel/defaults/main.yml + +## interface that should be used for flannel operations +## This is actually an inventory cluster-level item +# flannel_interface: + +## Select interface that should be used for flannel operations by regexp on Name or IP +## This is actually an inventory cluster-level item +## example: select interface with ip from net 10.0.0.0/23 +## single quote and escape backslashes +# flannel_interface_regexp: '10\\.0\\.[0-2]\\.\\d{1,3}' + +# You can choose what type of flannel backend to use: 'vxlan' or 'host-gw' +# for experimental backend +# please refer to flannel's docs : https://github.com/coreos/flannel/blob/master/README.md +# flannel_backend_type: "vxlan" +# flannel_vxlan_vni: 1 +# flannel_vxlan_port: 8472 diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-ovn.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-ovn.yml new file mode 100644 index 0000000..d580e15 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-ovn.yml @@ -0,0 +1,57 @@ +--- + +# geneve or vlan +kube_ovn_network_type: geneve + +# geneve, vxlan or stt. ATTENTION: some networkpolicy cannot take effect when using vxlan and stt need custom compile ovs kernel module +kube_ovn_tunnel_type: geneve + +## The nic to support container network can be a nic name or a group of regex separated by comma e.g: 'enp6s0f0,eth.*', if empty will use the nic that the default route use. +# kube_ovn_iface: eth1 +## The MTU used by pod iface in overlay networks (default iface MTU - 100) +# kube_ovn_mtu: 1333 + +## Enable hw-offload, disable traffic mirror and set the iface to the physical port. Make sure that there is an IP address bind to the physical port. +kube_ovn_hw_offload: false +# traffic mirror +kube_ovn_traffic_mirror: false + +# kube_ovn_pool_cidr_ipv6: fd85:ee78:d8a6:8607::1:0000/112 +# kube_ovn_default_interface_name: eth0 + +kube_ovn_external_address: 8.8.8.8 +kube_ovn_external_address_ipv6: 2400:3200::1 +kube_ovn_external_dns: alauda.cn + +# kube_ovn_default_gateway: 10.233.64.1,fd85:ee78:d8a6:8607::1:0 +kube_ovn_default_gateway_check: true +kube_ovn_default_logical_gateway: false +# kube_ovn_default_exclude_ips: 10.16.0.1 +kube_ovn_node_switch_cidr: 100.64.0.0/16 +kube_ovn_node_switch_cidr_ipv6: fd00:100:64::/64 + +## vlan config, set default interface name and vlan id +# kube_ovn_default_interface_name: eth0 +kube_ovn_default_vlan_id: 100 +kube_ovn_vlan_name: product + +## pod nic type, support: veth-pair or internal-port +kube_ovn_pod_nic_type: veth_pair + +## Enable load balancer +kube_ovn_enable_lb: true + +## Enable network policy support +kube_ovn_enable_np: true + +## Enable external vpc support +kube_ovn_enable_external_vpc: true + +## Enable checksum +kube_ovn_encap_checksum: true + +## enable ssl +kube_ovn_enable_ssl: false + +## dpdk +kube_ovn_dpdk_enabled: false diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-router.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-router.yml new file mode 100644 index 0000000..e969633 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-kube-router.yml @@ -0,0 +1,64 @@ +# See roles/network_plugin/kube-router//defaults/main.yml + +# Enables Pod Networking -- Advertises and learns the routes to Pods via iBGP +# kube_router_run_router: true + +# Enables Network Policy -- sets up iptables to provide ingress firewall for pods +# kube_router_run_firewall: true + +# Enables Service Proxy -- sets up IPVS for Kubernetes Services +# see docs/kube-router.md "Caveats" section +# kube_router_run_service_proxy: false + +# Add Cluster IP of the service to the RIB so that it gets advertises to the BGP peers. +# kube_router_advertise_cluster_ip: false + +# Add External IP of service to the RIB so that it gets advertised to the BGP peers. +# kube_router_advertise_external_ip: false + +# Add LoadbBalancer IP of service status as set by the LB provider to the RIB so that it gets advertised to the BGP peers. +# kube_router_advertise_loadbalancer_ip: false + +# Adjust manifest of kube-router daemonset template with DSR needed changes +# kube_router_enable_dsr: false + +# Array of arbitrary extra arguments to kube-router, see +# https://github.com/cloudnativelabs/kube-router/blob/master/docs/user-guide.md +# kube_router_extra_args: [] + +# ASN number of the cluster, used when communicating with external BGP routers +# kube_router_cluster_asn: ~ + +# ASN numbers of the BGP peer to which cluster nodes will advertise cluster ip and node's pod cidr. +# kube_router_peer_router_asns: ~ + +# The ip address of the external router to which all nodes will peer and advertise the cluster ip and pod cidr's. +# kube_router_peer_router_ips: ~ + +# The remote port of the external BGP to which all nodes will peer. If not set, default BGP port (179) will be used. +# kube_router_peer_router_ports: ~ + +# Setups node CNI to allow hairpin mode, requires node reboots, see +# https://github.com/cloudnativelabs/kube-router/blob/master/docs/user-guide.md#hairpin-mode +# kube_router_support_hairpin_mode: false + +# Select DNS Policy ClusterFirstWithHostNet, ClusterFirst, etc. +# kube_router_dns_policy: ClusterFirstWithHostNet + +# Array of annotations for master +# kube_router_annotations_master: [] + +# Array of annotations for every node +# kube_router_annotations_node: [] + +# Array of common annotations for every node +# kube_router_annotations_all: [] + +# Enables scraping kube-router metrics with Prometheus +# kube_router_enable_metrics: false + +# Path to serve Prometheus metrics on +# kube_router_metrics_path: /metrics + +# Prometheus metrics port to use +# kube_router_metrics_port: 9255 diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-macvlan.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-macvlan.yml new file mode 100644 index 0000000..d2534e7 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-macvlan.yml @@ -0,0 +1,6 @@ +--- +# private interface, on a l2-network +macvlan_interface: "eth1" + +# Enable nat in default gateway network interface +enable_nat_default_gateway: true diff --git a/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-weave.yml b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-weave.yml new file mode 100644 index 0000000..269a77c --- /dev/null +++ b/XTesting/kubespray/inventory/sample/group_vars/k8s_cluster/k8s-net-weave.yml @@ -0,0 +1,64 @@ +# see roles/network_plugin/weave/defaults/main.yml + +# Weave's network password for encryption, if null then no network encryption. +# weave_password: ~ + +# If set to 1, disable checking for new Weave Net versions (default is blank, +# i.e. check is enabled) +# weave_checkpoint_disable: false + +# Soft limit on the number of connections between peers. Defaults to 100. +# weave_conn_limit: 100 + +# Weave Net defaults to enabling hairpin on the bridge side of the veth pair +# for containers attached. If you need to disable hairpin, e.g. your kernel is +# one of those that can panic if hairpin is enabled, then you can disable it by +# setting `HAIRPIN_MODE=false`. +# weave_hairpin_mode: true + +# The range of IP addresses used by Weave Net and the subnet they are placed in +# (CIDR format; default 10.32.0.0/12) +# weave_ipalloc_range: "{{ kube_pods_subnet }}" + +# Set to 0 to disable Network Policy Controller (default is on) +# weave_expect_npc: "{{ enable_network_policy }}" + +# List of addresses of peers in the Kubernetes cluster (default is to fetch the +# list from the api-server) +# weave_kube_peers: ~ + +# Set the initialization mode of the IP Address Manager (defaults to consensus +# amongst the KUBE_PEERS) +# weave_ipalloc_init: ~ + +# Set the IP address used as a gateway from the Weave network to the host +# network - this is useful if you are configuring the addon as a static pod. +# weave_expose_ip: ~ + +# Address and port that the Weave Net daemon will serve Prometheus-style +# metrics on (defaults to 0.0.0.0:6782) +# weave_metrics_addr: ~ + +# Address and port that the Weave Net daemon will serve status requests on +# (defaults to disabled) +# weave_status_addr: ~ + +# Weave Net defaults to 1376 bytes, but you can set a smaller size if your +# underlying network has a tighter limit, or set a larger size for better +# performance if your network supports jumbo frames (e.g. 8916) +# weave_mtu: 1376 + +# Set to 1 to preserve the client source IP address when accessing Service +# annotated with `service.spec.externalTrafficPolicy=Local`. The feature works +# only with Weave IPAM (default). +# weave_no_masq_local: true + +# set to nft to use nftables backend for iptables (default is iptables) +# weave_iptables_backend: iptables + +# Extra variables that passing to launch.sh, useful for enabling seed mode, see +# https://www.weave.works/docs/net/latest/tasks/ipam/ipam/ +# weave_extra_args: ~ + +# Extra variables for weave_npc that passing to launch.sh, useful for change log level, ex --log-level=error +# weave_npc_extra_args: ~ diff --git a/XTesting/kubespray/inventory/sample/inventory.ini b/XTesting/kubespray/inventory/sample/inventory.ini new file mode 100644 index 0000000..99a6309 --- /dev/null +++ b/XTesting/kubespray/inventory/sample/inventory.ini @@ -0,0 +1,38 @@ +# ## Configure 'ip' variable to bind kubernetes services on a +# ## different ip than the default iface +# ## We should set etcd_member_name for etcd cluster. The node that is not a etcd member do not need to set the value, or can set the empty string value. +[all] +# node1 ansible_host=95.54.0.12 # ip=10.3.0.1 etcd_member_name=etcd1 +# node2 ansible_host=95.54.0.13 # ip=10.3.0.2 etcd_member_name=etcd2 +# node3 ansible_host=95.54.0.14 # ip=10.3.0.3 etcd_member_name=etcd3 +# node4 ansible_host=95.54.0.15 # ip=10.3.0.4 etcd_member_name=etcd4 +# node5 ansible_host=95.54.0.16 # ip=10.3.0.5 etcd_member_name=etcd5 +# node6 ansible_host=95.54.0.17 # ip=10.3.0.6 etcd_member_name=etcd6 + +# ## configure a bastion host if your nodes are not directly reachable +# [bastion] +# bastion ansible_host=x.x.x.x ansible_user=some_user + +[kube_control_plane] +# node1 +# node2 +# node3 + +[etcd] +# node1 +# node2 +# node3 + +[kube_node] +# node2 +# node3 +# node4 +# node5 +# node6 + +[calico_rr] + +[k8s_cluster:children] +kube_control_plane +kube_node +calico_rr diff --git a/XTesting/kubespray/legacy_groups.yml b/XTesting/kubespray/legacy_groups.yml new file mode 100644 index 0000000..0d01710 --- /dev/null +++ b/XTesting/kubespray/legacy_groups.yml @@ -0,0 +1,47 @@ +--- +# This is an inventory compatibility playbook to ensure we keep compatibility with old style group names + +- name: Add kube-master nodes to kube_control_plane + hosts: kube-master + gather_facts: false + tags: always + tasks: + - name: add nodes to kube_control_plane group + group_by: + key: 'kube_control_plane' + +- name: Add kube-node nodes to kube_node + hosts: kube-node + gather_facts: false + tags: always + tasks: + - name: add nodes to kube_node group + group_by: + key: 'kube_node' + +- name: Add k8s-cluster nodes to k8s_cluster + hosts: k8s-cluster + gather_facts: false + tags: always + tasks: + - name: add nodes to k8s_cluster group + group_by: + key: 'k8s_cluster' + +- name: Add calico-rr nodes to calico_rr + hosts: calico-rr + gather_facts: false + tags: always + tasks: + - name: add nodes to calico_rr group + group_by: + key: 'calico_rr' + +- name: Add no-floating nodes to no_floating + hosts: no-floating + gather_facts: false + tags: always + tasks: + - name: add nodes to no-floating group + group_by: + key: 'no_floating' diff --git a/XTesting/kubespray/library/kube.py b/XTesting/kubespray/library/kube.py new file mode 100644 index 0000000..cb9f4f0 --- /dev/null +++ b/XTesting/kubespray/library/kube.py @@ -0,0 +1,357 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +DOCUMENTATION = """ +--- +module: kube +short_description: Manage Kubernetes Cluster +description: + - Create, replace, remove, and stop resources within a Kubernetes Cluster +version_added: "2.0" +options: + name: + required: false + default: null + description: + - The name associated with resource + filename: + required: false + default: null + description: + - The path and filename of the resource(s) definition file(s). + - To operate on several files this can accept a comma separated list of files or a list of files. + aliases: [ 'files', 'file', 'filenames' ] + kubectl: + required: false + default: null + description: + - The path to the kubectl bin + namespace: + required: false + default: null + description: + - The namespace associated with the resource(s) + resource: + required: false + default: null + description: + - The resource to perform an action on. pods (po), replicationControllers (rc), services (svc) + label: + required: false + default: null + description: + - The labels used to filter specific resources. + server: + required: false + default: null + description: + - The url for the API server that commands are executed against. + force: + required: false + default: false + description: + - A flag to indicate to force delete, replace, or stop. + wait: + required: false + default: false + description: + - A flag to indicate to wait for resources to be created before continuing to the next step + all: + required: false + default: false + description: + - A flag to indicate delete all, stop all, or all namespaces when checking exists. + log_level: + required: false + default: 0 + description: + - Indicates the level of verbosity of logging by kubectl. + state: + required: false + choices: ['present', 'absent', 'latest', 'reloaded', 'stopped'] + default: present + description: + - present handles checking existence or creating if definition file provided, + absent handles deleting resource(s) based on other options, + latest handles creating or updating based on existence, + reloaded handles updating resource(s) definition using definition file, + stopped handles stopping resource(s) based on other options. + recursive: + required: false + default: false + description: + - Process the directory used in -f, --filename recursively. + Useful when you want to manage related manifests organized + within the same directory. +requirements: + - kubectl +author: "Kenny Jones (@kenjones-cisco)" +""" + +EXAMPLES = """ +- name: test nginx is present + kube: name=nginx resource=rc state=present + +- name: test nginx is stopped + kube: name=nginx resource=rc state=stopped + +- name: test nginx is absent + kube: name=nginx resource=rc state=absent + +- name: test nginx is present + kube: filename=/tmp/nginx.yml + +- name: test nginx and postgresql are present + kube: files=/tmp/nginx.yml,/tmp/postgresql.yml + +- name: test nginx and postgresql are present + kube: + files: + - /tmp/nginx.yml + - /tmp/postgresql.yml +""" + + +class KubeManager(object): + + def __init__(self, module): + + self.module = module + + self.kubectl = module.params.get('kubectl') + if self.kubectl is None: + self.kubectl = module.get_bin_path('kubectl', True) + self.base_cmd = [self.kubectl] + + if module.params.get('server'): + self.base_cmd.append('--server=' + module.params.get('server')) + + if module.params.get('log_level'): + self.base_cmd.append('--v=' + str(module.params.get('log_level'))) + + if module.params.get('namespace'): + self.base_cmd.append('--namespace=' + module.params.get('namespace')) + + + self.all = module.params.get('all') + self.force = module.params.get('force') + self.wait = module.params.get('wait') + self.name = module.params.get('name') + self.filename = [f.strip() for f in module.params.get('filename') or []] + self.resource = module.params.get('resource') + self.label = module.params.get('label') + self.recursive = module.params.get('recursive') + + def _execute(self, cmd): + args = self.base_cmd + cmd + try: + rc, out, err = self.module.run_command(args) + if rc != 0: + self.module.fail_json( + msg='error running kubectl (%s) command (rc=%d), out=\'%s\', err=\'%s\'' % (' '.join(args), rc, out, err)) + except Exception as exc: + self.module.fail_json( + msg='error running kubectl (%s) command: %s' % (' '.join(args), str(exc))) + return out.splitlines() + + def _execute_nofail(self, cmd): + args = self.base_cmd + cmd + rc, out, err = self.module.run_command(args) + if rc != 0: + return None + return out.splitlines() + + def create(self, check=True, force=True): + if check and self.exists(): + return [] + + cmd = ['apply'] + + if force: + cmd.append('--force') + + if self.wait: + cmd.append('--wait') + + if self.recursive: + cmd.append('--recursive={}'.format(self.recursive)) + + if not self.filename: + self.module.fail_json(msg='filename required to create') + + cmd.append('--filename=' + ','.join(self.filename)) + + return self._execute(cmd) + + def replace(self, force=True): + + cmd = ['apply'] + + if force: + cmd.append('--force') + + if self.wait: + cmd.append('--wait') + + if self.recursive: + cmd.append('--recursive={}'.format(self.recursive)) + + if not self.filename: + self.module.fail_json(msg='filename required to reload') + + cmd.append('--filename=' + ','.join(self.filename)) + + return self._execute(cmd) + + def delete(self): + + if not self.force and not self.exists(): + return [] + + cmd = ['delete'] + + if self.filename: + cmd.append('--filename=' + ','.join(self.filename)) + if self.recursive: + cmd.append('--recursive={}'.format(self.recursive)) + else: + if not self.resource: + self.module.fail_json(msg='resource required to delete without filename') + + cmd.append(self.resource) + + if self.name: + cmd.append(self.name) + + if self.label: + cmd.append('--selector=' + self.label) + + if self.all: + cmd.append('--all') + + if self.force: + cmd.append('--ignore-not-found') + + if self.recursive: + cmd.append('--recursive={}'.format(self.recursive)) + + return self._execute(cmd) + + def exists(self): + cmd = ['get'] + + if self.filename: + cmd.append('--filename=' + ','.join(self.filename)) + if self.recursive: + cmd.append('--recursive={}'.format(self.recursive)) + else: + if not self.resource: + self.module.fail_json(msg='resource required without filename') + + cmd.append(self.resource) + + if self.name: + cmd.append(self.name) + + if self.label: + cmd.append('--selector=' + self.label) + + if self.all: + cmd.append('--all-namespaces') + + cmd.append('--no-headers') + + result = self._execute_nofail(cmd) + if not result: + return False + return True + + # TODO: This is currently unused, perhaps convert to 'scale' with a replicas param? + def stop(self): + + if not self.force and not self.exists(): + return [] + + cmd = ['stop'] + + if self.filename: + cmd.append('--filename=' + ','.join(self.filename)) + if self.recursive: + cmd.append('--recursive={}'.format(self.recursive)) + else: + if not self.resource: + self.module.fail_json(msg='resource required to stop without filename') + + cmd.append(self.resource) + + if self.name: + cmd.append(self.name) + + if self.label: + cmd.append('--selector=' + self.label) + + if self.all: + cmd.append('--all') + + if self.force: + cmd.append('--ignore-not-found') + + return self._execute(cmd) + + +def main(): + + module = AnsibleModule( + argument_spec=dict( + name=dict(), + filename=dict(type='list', aliases=['files', 'file', 'filenames']), + namespace=dict(), + resource=dict(), + label=dict(), + server=dict(), + kubectl=dict(), + force=dict(default=False, type='bool'), + wait=dict(default=False, type='bool'), + all=dict(default=False, type='bool'), + log_level=dict(default=0, type='int'), + state=dict(default='present', choices=['present', 'absent', 'latest', 'reloaded', 'stopped', 'exists']), + recursive=dict(default=False, type='bool'), + ), + mutually_exclusive=[['filename', 'list']] + ) + + changed = False + + manager = KubeManager(module) + state = module.params.get('state') + if state == 'present': + result = manager.create(check=False) + + elif state == 'absent': + result = manager.delete() + + elif state == 'reloaded': + result = manager.replace() + + elif state == 'stopped': + result = manager.stop() + + elif state == 'latest': + result = manager.replace() + + elif state == 'exists': + result = manager.exists() + module.exit_json(changed=changed, + msg='%s' % result) + + else: + module.fail_json(msg='Unrecognized state %s.' % state) + + module.exit_json(changed=changed, + msg='success: %s' % (' '.join(result)) + ) + + +from ansible.module_utils.basic import * # noqa +if __name__ == '__main__': + main() diff --git a/XTesting/kubespray/logo.tar.gz b/XTesting/kubespray/logo.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..863777d02f7810db03ad301de0ef353dc669e63d GIT binary patch literal 311951 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 z z|HEnk`OIwOeYXE~Y~;0D|1i7pdwfF3XTbO$hbMU#0Q|#XLCA3@gdALu@)<7ja{Ips zjJ)E1-IvflOqBh@fI-SJ7$o4GC&@=qYuUU6lNx|O&3Q7(rs1zC{KY$`Xv9kOOiZ~^se7moj-UkKwJ1D-S;BNs1 zkP8ZY{%{}pDYnnopvX@|Ge5m{%+H`8<|m?=pSFVMXHXDwi6#|C%nzU-dS3@vl3b{Hsst`G=oQp7%7sd<2aAei-1l4vn`* zvgE@Z^k01>%h!I>#XlPu;!Tv+r5 z7T=tReIMhk(2FfVzsD3b!u~XRPT3TY#Yu7641UNTO`$c7yJcO{B3`}SMt4*@0EP7(K=umP8c@jltf8nO3pt# zA!j>63Wb1vc0g-(BPf*(q|kC|#pbd!R7vhHA}D}}Jtmvk2AdkOS`ct}GD<`7crpOs z2^buqAr9BDF;)zlY|!T`03koBKZTg95wyWZnC~`w&<^mO&LH|gAjIQO!Q*por=?-v zMJ55X06T(k6$pgD=+9h5j^20^75Ef9@ojky+I;l365k1z0=&J3ayO#_M%rOfYKK+A z5u`)TB`@qpY`J>HOk4{2ZCS0q~LQ!uu8wp z_4&^JK4yOm8SRfDBG_#~tf+E4j*^!479S;f1MX_h552yo zOt;00ACw!#srci0M}xML(^K{^)23#adfqOxWbd28w3*H^H~gxz-OgucckWT^ILxmY zjYOVjV=wjd{P5eoer;Yo{MGyN#`S(RUbUU}{K^99n-{xp-`~DjdNEnrE1Xg2H^1T4 zti*n`=Xid2IidD%PcI$E7Vf^gO|=oy=9Q|h>7Ux5*5vMKx3O)e9NKn>SmtKRB3_lr z4`;V{nB*Bas7~pd+74O%r3!!VX0wx}bBHhQ@XC{S_^0>3Z|yv0N&ocSZ;IYqKXdni zP;lj{o!2HPgIgcpU>|xQT3vSEKM-!-_t&DwC)%`DNcf+W+Rq{{bu+kOg>pKNGWWyhTkqge?| zq|VF})7mbPbXc;x#)4zB=E{I0%`HWj3p1NlJA3C?+qv$MWA|>_$?P@u$3utdbu8hP z!X*pw%*2PQYCKpNw6?s~t^9&5Ej#NUr{7&)Xz_!}caQy4XSeAgPMWdL`TX>d)%S$UQ@WwhKaQwHJn(R zu`qV@=NCPjKQ7#?CwLFX7}je|zeH2HIy;6Yn&=5Wdcv#phjo;@io)xGrY|}V=(*A9 z9bWpD%GnlMvlipWHIC8~5+X^pyVj_=r+JG#WlG-I`XI4n%XtZ>w`V;Vp7^|MomZ8* zY;V=Fcl$1q4L$pm5uEAOXHA7t%Sx4c*r3wYLZ!G?s9McXTgcJib5;z@*~;*OfB zXHzo82b>v#=La+PrR^B3D3LT;xaMBVE3>*XYjdfuI`$?GX;Nfk$MO%2cUv`>n0k3_ zgNeTsIV@W@Zq8V}2I*S3<>^t&OSOnLM7Ck3ZTFOzWLt5z;G_#1?T%Gz`${^ty*a}? z;o2no#8}6&lP+0SkLOIQdBJY16a(yTG4p<}@!K!h$B*cEd|~KHgL_+tY$!{4*vv;9 zB6)LPd45aPIrFe*f9(5gajAsVi^=x}6}jo?s4Ty1uy+38(wnD0cs}t;iLHMSy4zWKnx z#jBJPP4kQK^}n8ck^Uxw1ea!H6g}$D8BS)|lN#-+Sg=-+QvKBxMZKc~PanVCP`H0t zq*tlllX?^7{r8O<=~G*lue(CrrmnfP&If##Io8RMw7}?vaTEfyrJGWJE?KWJd_G^*7bx*ew-Ug;w?5Zz{gNN1(GFS7d zr>jTO+u1djx(|&VS9Ixxon99|bb#HH==zW z3FB3;W~xKxAkXl~bOXX|dCqlTB$t1WDLvdFgi%VxP}nAR?s!@gQElCdwPg4sIR1WLve=Ve5M~OFzb5 za(&*IIuti!dJ*T~Et!46h0I35gT<1C(Otm|%;MjMG`Kpx+p5FoODUD`V`r@A18aj_ z*_V5Fn>DBLwky z^IboyYg*aG=9&iVXjZg+`lL0o-pjH~(+IxZFBGlnwcKhLv@3l@mo7s?EnSgj>1!X3 z*Oa$j+UhH+!d#x$f8QyA{`DRFE~XPZzVgk+^n*Je*Y6bT`7p5FzK_#Lwz~TKc{Tfy zrZOUaGim&k2`hV+t&my1UZcWZU6b+zXmk&ysVI%Jlvj01#;d7SoRu!So-R1NX42S3 zRm4RaE{zsStiPhuQx>zGeZ7cNJ;hU(X*}v4^roxe*>rZ{7eky)7ak;~{tU0GcGNm| z!jROne)74ghG`qR_Ppk(mU^%+W>Z`C4`urHFf=K!Uss{@xr1VcmmK6&I&bJn?J~cb z%KJ>cV{i|ar&!vtGv`*GA!0cR;xU?nds`LnU1rpV{=2U)>&Sa@T5lE(PMbXXG(2?w zuZ|t-dRW`e=~1Lv$^fK9e>im&(pYu7)Xz}z3un(kv9$4{S5<|_+RF}}#4oW$U#RYx z*u=TyRV6X!s#QC4XbX34g&l{AO*#u|5B4}dYERL?&0@RHI(aoIuEb4!x(gY5__FbB z25b^^d8%qLb@B7Dn@ZlFy_nHpVW;1KC&?RoZfbIW+TuI(Zkd{w^L{$2c{=2YDlxL4 zX*W@)hpuj!EuzUSqdPIto#7j*=&TJT9ntz5H%!mm6tncqbeC$nw&9W^LsM$`FILn> z8!x$4w9ueC0;rD!>N9IwwawkS3`jmzUO1HBG>RRN46eEO^6JVR11a@R&AL|b>g0O^ zo4)X7)OQR~ovMbpcv6dKjF}SStd7P$F_x+4fkf?_Vs$Z>D(h^`mffLeWS*)!XiQy9 z&5>F}VLZ99+WaTg=Kpk5>&qxyuGpe#9m*{AkEq?p=&=Y-fAer}f=#m@<2*=)?i%k>zpc{uP7T}0ApZG=t7OwomVyLK2r z=r~|m*ZTXe3r1yTHX4MHRnkmvx{#&2$I{K&D_FdD?r{@x)U*<_Zre*bqpUAFgOZ_2 zYq)fDdT7B6{SdbU81%H`QqD&0HKQSWu3Fe{g??J5diwz%cmAx^!|lVK`;U1_OqhGE z-}MRD)lVn9I``5w@0aj#&$P$?z-$$*B4W>My|}7F)M4(xvbIiuopDl z+I!}0>Z*8pd46B4FxwO-kFxhiYn*qakBh*xPlcAJHCe-P|2H<@y+l5zX! ze#ffL0SH4~cz4CKm!_Y*z9uk}1D!2BWzniG8@m-exWx5Kkg?NvpxT^*tg2gTg{zM4 z^zT&HHW} zdscMvO#jS_XD|%DhS_Dqrv7aQcQ5$dq7Ie!XSNBZeGhAho?KiJS^hEX{$xnj$gE!Gu#?kLB^H6dm~!$wuz%9*viPIV59 zA8~r;bf{26U5kjTZ0ca{g9xtw-QUg!1l^w7CH=b@i%ppELvxOB6Y)H=LGne1P! zQ@7NqHsT;Bn>&44N_wVsi?g8lZktMF2G%-*i`8no{Ys^!Q|q*5Fee=WYfr25x~e;2 za3EHy%n!dduk(7uqovIs9%iTew`8myzvEKvgxG+I2fHJ^Is?eHom0-Fq+jT>*n8*N z>YqDj;7M6cYyTMN6}>khWrTSVkH|V!GNVPgO2NLo7*0F0O)Krp`s8L_fGdpF8En`` zDcEF;(*A|XYcMf1(ff$L?I^SN$lB#4lM`;b?p7=| z<;;%>ZoyL^)Um>$@RrAzE3X=Eee7D-xTY*6B3OInTJg&-G6Q9yIkk33Vij6G(ij@f zSSDD&T@qNMYj%b|Y>A@b-B*pFUtgJJj4JPD`)etsLbAc4wK;-VSdr&AV5)AFSHDtIaZ1x968?WDGqo@QfurlzARj zOEgtonw44f^u8w7sge)iOI@vX#VBZkbN2b4R}H_OPVbR)PD8krd?GQ)(WCd3y{n8w z??lC=XAkD5P8>^}&&}mqa_j-p)deZ7#uqv_{X(xd6SpQ!Y1nCNbx<_zW=5k<^fk=o z*9f%Ik6qVRmOs;J-RsE){PQkX(i@IK3D=8BDUNaV2Q2GX^p4H9dis@-?Av7C_W2_k zBwpM*`lr4o+L+^jFL@%jX`%gNlu2_P7qx7ACbLt|(F4~FUFa&-nwPb4T;uVVuDuxH zzd7iqW2lAcHE||TsNCr-$pcIoO;>L)%{wI8GctW}((0@NaMen~OO8mI0B_jVZf27Q z-M6!}j=9g)VW&=Acjn-#qO5)cs+_-4{#hky>Xx=UkKW0oHtb*I_}0^nIoMivFUdrW zDxEZJUS2=joPJ)^zgd-y6s4uBQ0!=4sC4p^jvaevxGr@2(OL*Uc1Pz%Kj~hT znsp|A+RrZegSc1^bNK>O zN^{XG_Rv1+82E#DsQgZv3zoySmE8o8J?fF-mbjxhNPSAW@y)jKk2sL|E zFXyebcVdlMFn#`}#188QE{e=p_o&IbJ5AOho-+OV7Uhj>QlR{~B!+%}H`=PXOP?@? z%u)@>R1Mi%5E$(_p-)tijwjC$ z&bJ?b=EQ({+oIPfCxK}T<*FHA;+jqJt4ZT3P1&m*M5-nMfoGMFEdxLe!AB3*uq1{nn{i| zTe16`*pgl8*C7$%ponmJr273$3oovUT{_uroyzmF_0!puJIxk85|`b#I`wXUa;1gU zRIjcKT{5!xwnd_Ci=J!}wCpfz(r;1QY4@xS>oY^`D%}&dj5f(WS2z1ylWh49bF+uy z+7Ax)A9Uc}(TkP4yr7sH=<;}m^)Vjt* zZ#2X?ENl4Otxntw&zka`d89(UFLzx@V0!9CkF{)HZN`KPWe%=uxQL+}+u(|ZadNEu zY1!*7RE>Lj&G7S-%M)GmgQBqm))jm+uHiiW>`5z3`Hp-0)-1iD=@w?e>SxWQqb0`Ip1m>Froz3U1y~;IsA=|A z7x~REG_Gk0VffGXnsxMd0iFeqq=Ks8+?=G63RlhIc%mP!>O_qwMQ#^O8s>qw4 zT^W0(y>~(T)@4Vot~bV8W_Q~Is}8$g;wzThbotGu(0Lh!Tq?{xa4g+8Hq|Ukah=+o zR5h#PzUhWu4O^}_SfIWVKN+cBerd7wzb%oSI9h5rvFXo8>Xa&0rIKSba|fj6H zpPh81U?P?2o5U>0HrdJJWRw-or^N}4oy?MLpv%47Pj4JvqsHvKG+)uV@9nbnXM2W~ z>Ql8uY*?w1DF=E&1j@)B!Y(GVqtwAAznm$(zDlDWKb<9nqDmV|s#m2BQfyP=0Wq za2kXojw8-4Jf!x>XSWMZo)9Kge2LpqvO$r)1CEyD4?J75?e6mDm)0ZeChkAC)pk_X z?8%R}hnwuQwj`#a->Rw$jy$B6Bzc~BC+ZHbYj>ter$LWrlgEiGC!H~4#Ox5u|R7RPl%by(V?A&#&)&$6NFPxYq=`dhf*wFkG z+j07qw}xX`pN2_O1|N&0Jh%U}V6h_HbbX010XO_szpe|Cf*pnoth7#Ex?9cqL{ate z72V}p4jqtvX~7sutSPsA@7Jx1VhePiwKICEUgU@HwP6eH)Y`y}{aj#V>*Mw1y|ue4 z6yZ1I?JY5ecl>FSMBLzth5{KKr!?5!7$+(T&C)6AyHBsXKV;!P`Sr z#AM;gV#zDo){Jy~IxoWtUoI`3OEOQWLr#|YMj*Fzof;n{O4j$O-oM1clCvBR_R7p* zb9-No8N1J?T;n>bC($c8&m|1$(NS)%!f5MTe_m;u)M|HuhSl3Ifn!Zp&009S%iI~~ zE>dpQ61^rcM3=9&e5un_xjr*2yr&fQpStr2Je)BBTOBBzHtsBLaj{!9NXh#$q=l)x^b|L5HPSc9lmhXVj?CE^Yt)>2rk9?cK{FwdWci zEWdQW@ZNe|cj&TLTs^$$b(s#u3B2id!|Zu$e^&P}5AVI854K~_n?9c}<(&$H+@+1j zZkxEgz|gi#zd9|6=UYa9zHl!g%Az(c87v`8_<`fT+nuB+#h#LNR8)sJh}?4jk=@mX zE#EyrsVH^kQ)y(CG2h{R;Yxiz(05B*o+GlR7$)iZfb^>wOXe)D-g|K4!(ppx#xMS1cPh>X zQ)sF7wJpcH>P+l{Pq-R6xvxv{b_;GZMceDw72YZ=pEHyOEZag|ca2n~*OCLBPqVKE z5JP8Ao#KAmhGV5OZ%OyKnHv@sf4UOvU|w0e-}E;Aggf>QipOjBB&K7s+Tmil4VmV_ z7Y`CVqj;jz>X*AmExY){b4Po3Fln``O#5?>!dv*;D=vWT6RzI7H^4Xpx)m5w(Jd-R zJ2_ysdy!BrX<6M?@wF%>UY#8x#snoDPe977a*iUjDYVknqw6k|bklE4xWB4(zUb+q+tH0v%NuRRWvLYD`7Vf+_?a}I+^fHT2hg-H@{<5^V`fr5> zUmoZlO+2^${;hFCCMuS#So!EoL~(oK>jC%9OxAASba2>)M$Vz9I;+IoYjZ8a=83e* zGaIekS-g*Y#Q8H5;n~v5vS7vw5o6~O2#`Fp%w>;FX@QxiXo?8c0 zXjjdoE}fAqQ{GG{vG2*W)F)4;+)D3c>W$p2wTLgb;kp%gPy&956s$%yxDGw+5#G@A z3}MQ>R%!E|RwK2`Ua2mz|3<&8apMY`L)7|(jSowVTDrE(_~lQQa8mou5YI35m`OZ? z*}d{o+g|52uSS4BWF~cF&alrk92_bWtS#31{QbGVLd$EkR<~-Hb>WV?bmp{$v*8Mt zC-r)j+s$peu+0_4-Ct9>>aLl7DO1h2YDwjbZDr-X1$8`{~cU@Ab|&o>Vq^+1-V%+b>P!kW!Dd zO0Qk)G+4TX@ZjjjI#K6?Nko3h~VJkj_qUb_SfiZ|;IHGUS|b00dDKDjNaWxMO_)teUXM|O)D zBPJGLwHYZoGtoB}Y&VcM@9DDwUAoj>y1u4r*`}L>g*xHr^6e|11!_-gzkK(~J4*}H zw>3Z7?>6^(yNwSChtDYXR_(ngJGsJ~F2lyg79>6%dEqQjtaTsJ&FceCrPbY(P#Rda zr|Fi#8ISj101mk|`uNB|-az)%aPiC;BV8Dq zXkgLx&c_M*pZDMVIRu)DE=FuE6q^qm>63D9(dp7B`c@zzCzp(9uRKYve?3W_&=t!& zcw)-sloqwyBu#qGellj|*=8%BmAG|M^QHi@$GM?LEq?a`uhloEZf}=~?RBPI!$l?b zrj<(bwcfi)I%<<^`-4_z=4gyNd*RzWyhUm2@sA!m%kaF}l*nXYZh@En*CW~%ntbGH zVTOg2k$L=Ot(FBEmAiMMS!LDgnbU@Ex;HJkN2JJ@Zdky&_0jnH?I%5Q@i56R_UYD4 zTYjq5(kfN%^mAmfCAEpmpnAoFI zr^ITBn}1%v+)drzTD9kLpkv1QM)x}u2{$^r#xnHc;39L^Gg^$8xMY2e{XYiYR2e$y zWT(0H&fmS#68Q0lH^q_7M_1oDKH0i{b*a$Q#0$WW14g9eo$B9b&IiVUS_K)-X} z_c?e!Pv6hy`99bGfBmlOckA5KUVHDgUVH7e)?PYWRy1pTX|MZmv-5W+h4eOM%565L z*gYFh#3(ayD4%+heAlVf_SD;ix0?-<4S!2vgS2Hsf0V!mmM`5B%4bvdDXrNhZyxuF z>(;@m29?ELa(SQM2~6S0l$cNNEX53kpNMIseswzY>A}OcEY_G1dy$6mXMJj~bEK7atlC=7*?#ita@l+!f3pNi`GQVPr0QE4YXk9g7S?aF!_%3~ zNAF(Rb>WhFg6wjbrf^VvNs3KPB>(4SLTf{-75ll7qqhdX{?PHMINQx@Lp)K$oH@QF zv-B!+jmP|P(U*t^1^6*C?sFqbyWB4!Dn~R==!|hmUFd0fQ9UPYm)}WTd3gZ$I@4Y%%7YKrnXuC$u$`p zP~8YWzHg%kE`RcYc-rm-neWnOkrOWZNo?J1X;I%;2BdT}J2l5d$A0m*9Tu<1>9XH? znB`nV{Z>!urRuQa=MNu}KZnM=mg&hh`8n}z!?7-+Qqhm04)^3ibdT$H@383uEnEg9A@fU)RUMq{j5)@ z`QH!jo>W)2P>9~~kWa$p^8jo+v&nXvFSmpgSGYkJcD;+J0KPuNY)QZN%}XD??mK_8>9;avcPQGmZK_5(?bZIg(o^Fr zUZ2jv^|CjFcddN%GSp^0`ovZ(zm+TQR%mZ3cjWUk;lHL5k8ZZpEUG?;TQ%<9vT3UhO!R_zC73{t8K|hGkLy$=Bq7dvEHpYzG&(YD$M@?f6rQ zPFp=%srzjodjFTzShiv2eaF|WuarC#Qv!)wE{xuuecIEYc;ms(oc7Cd(kH@hkA552 zFmUc{j5T#6?`CJa{Ht^$d1J?bFwW3-myyzYVl{8ujXUWn+6}CG^Fo*?P*9pIMwgby0EfHonQV#WS|Y zyD*T9y18d!+gsf{+^q4|=a+7Ier-72b?L)v%ZBUB4_uA@T>DdE$fVG+vrc8p>k)o- z{lPC4X{D!AM{oDGeQ%~JF|%G^))$J5CN5AzZmS!-xOjzMh{JnB?!6nsI?gwoa@k66 z$Z6DP_QmA~%7v;HK0W{A(yfFH`qVFC(xR_<8 zrVcJsF=pvRLF>h;5+z>a3U^&<<4@jd>AHAty>Is_GB$hcFn~Mci`t@7nD>`%Wh#oW z(6>!gYGn&-_vp^G9QJ=+Whd<#EpgN0&5Ht^Cs^OELZXVzck@L*tvk!-KAKIpU4LXc zojPQ`(D~CUC<&)>&*AgFjL2wpQ+9o9F=8ban)hA_23eIellF{YIVa9*U_cJ%XkWx?_QFtcxRVBsc7r> zo&Y!B(T`{Dzm?DXmHt-pM7MP<+XBh_+S0w=vVEC{N)Y*6-IoNk({$xrhQD1XNHeI* z75s&NOIMcOV^X52*RweBt25=#pV|_5jo0!#}k|@0YW_)z6^L zB=au!>+GHVU1cQHB3w04dE^?VM%s$SqwZG2g$$Cx#0maSj*nW@INwLa1U=& zBv-hrLM5c;&b4czR*qJEks7Y9JJj18FIZ{@hP-4iJa4=tap+x!u7>zGX*+F)LL07h zw4L#*gNH3145w^vDEmT?R(esS#wo^a67P8@-uMqneoXjXZ?&qB$ggjG7QVRWX0>(*5**8&?yy&KxB&lA|F zJLa%m20`yq=2D`R#kPfZ?XtY_fK9=)ch9bKN4EX?&SL-kbiUyIrkyHG54IG0MV{^} zV!0tz^I`15qe)2(V`m&2yLrK%u{Y(1=0j2^w_P%U+j?9%t#s7?LQXV-^^#Aw-`JHP z!`B*UQ%x84Xr{@5CQ6aW`Qqb-#}I6tYzx>Yk!afD@d9iApJVRo{*z8uM-wCMM>Jxq zayJ|J?cgRIX1fwTVp`?vQ+@i;Lo4|um}pz&%j5f;E*%}+eLnK+CExaMPn^WIUOwH* zU6`Lp@J(a7kD;4q@iR=-ILK1Sa%-09ZZjL&! zx|<66MsBwqtJtKl^3DBjBSoP^dT2UdyTLjHfK{x`dat!<8Aj;h4? zI4V{vqFoGRkDSbW{f(-F?Gl8YH2sKX(KFk#_sZN0zb`8K>@D&>1Ls|H(jWL~?#XPo z_^A~u^WmT-Rke9~=VwcGM9XcAHj`kR*Q?yYcw}r)0ZUmkGt)f$)GN-L}exs_K#I`)F1oa)D==G^IF@8RAW&2+_@7N{-7-l#_nTaqv#*E$7`u%v_kv(dR@3fcr-7pt5|6LG4itOC zEmLlEz+#`Lh*a&fA3JhW%4=R#^_iHdD>d2LWwdx%yUUGJkWmi594TfIe*Fi^X>)gG zQ+D@{t~VZ2ieWo#_g>aKqtRD%0^QYPn%^agzP+`(^C$DK>5Gfg<6ax&6)LzMD;5eP z4@d7lPFh*8e01IZPHs};`JPYXb*Mqw!ZE8#JgmGT%;N6g@;>T z`o#V7$d%FL$jPfN@z08jRXTp{7g^{QD2w=2R`w@}=T0-FuR-JEJrv7UpUbXsC3y;; zh_hzNy;DbU3a>9!-(RglIp}R%*P5kXVso~>J3pC%>t9-eZYk7O6?Zb~YY_(X-rxXiLse}w%(1XkW{a$=Xd zJNUjoN8G?->d02!jI;0LD2+!u4de;D9@|4R#jgEem3xjxcR#%~d=Xozv1MlGqx9_HEB1Zx;}O{(m5)VmKmBub zTgSDQ=UJ1AeXk9!EblDqYp&`Um`X)V@Y@JKn6TeXj(PRTH|Ih?iFDk(0&7zK-OifD zqn8?jrW_keo1!&q`hW4O!VYb3Psb=m{5cx%Vs^Oz-ot4;zT+AGWU%rM&L0l@yPwa6 zbuJG6I;0f&G>&@OYDbyGi)EF3m1sOF>~7H1`N~~VZimMYDt~;r|3QFHMfR{qT`~JU zw`B!p9R-2Yd&L}XA8!=dNQL!B1#BMubklWLasQQ_BW(}edxZMW7Cd@CABs$QU5ocm z*n39E>5odzZ&-$|Z(oL7hnl9GxOY4Z?q0v^D91C?DjpuO9?eq*iGlia2lk{M=f)hl zS0S_W&yI_JIjMf}p~pvsE9?d0(q%VL#m<+=Hd7Up1eoQqMdh!VWYmZTWwOZS3*upw zrqsBmUNURn_<^@p z*j8?U&AN7!(3Qqou>anP%fb;C_%)x`4HHg4MR%t#h0 z$%I$?_NAmKG4U|YCr(}1ob92L@MGoY{G~&;C?&9PhSc8s^>tIrN%ILq_tT0Qo(1s2 z@+(JX2umC+rG?&~E40sjc|snOC~w?%EN=1WJ%eR-?xOjh>>uw1s?S!>v3z`FHp6o3 z(F#j1(OEfpPeLs3^35)dgxk}lntT}(7~Fm9VYF4s6MP>^s)2^*n|pBK(p ziTj2vE^Kkx=>6l!N82%u5||o=&*Zki3x|_!Dn(w8DU?$@Oxc)dSlCL?NP7C&aGp}8 zhsE_p6#cu~_SK}c_vjAo8q7`_ZxFpZyi6S5HnG=?c#?x84xIH>8fv}j6on*#5S^S_ZARTo$e2y}6TKBsBu7oXG z)E};#O#D1Wo9yychcu?5Jx7BwqbufaPqdzCFntxd_0!w;V+Di?6m!v6jxn7e*PahH z-1$=-XFr#%h)EBd@0q{U{C$W=Xyszo*Zw_qjxQ5znXWv0GN810%?-Xc-zH>BW;AO? zsn5G75zBf%d^F}h9JwP|-FaZE!`Cm&NPHeZ=tf>CWBa zPjTb1rY_%%m=^6mO}Qp;7`4sq_b91N;~h+Q+&$*aw;-FTCO9(iWj9~D%&h*?S6xA~ z`b71ns#Es!pFS48?&2R}6aQnr0oM~8GjJIHay&N-6>V$mhOBDh zr*Food#!qMnngGBf0T_HPzX=RHXPD4)Yy`7kf)44EeLz$dsIX3t3vBMn?X5B*!>x{ z(}F4ah;4Q4`VR{v5>NOvN#4LNZmDT(7tU91o;Nr(wvw5&SrSEQ?nmdLh3$;o@9g=p z)wFiyX%*_O(eDYK1jpQtd!74*^qx$LEw@G8?hia$@mTLfxE)b?u!7(1`K-s&z-5uk zHa$`2jh1+bFGFkIBscPlKWM9bj`=Ko zdtXRna5>+?F&&TVA)8{C*-{S#N8Fy(+urRK$DMYpRq=$mROJfcFkFo5bl3Ftg6mO@ z$|)HyE*xH7EVd+f_m*>4&lu!N6gq9~oK8obJ6o9O**^QZYd5b{;k)Cv!b87L-Ko?g z^xVy^_RI1cy5De)1l9VyZ*RoyK!0x7l|DH6weZp9jeNyV6^RpT~ z9-|uXnsTO7a6?n~5tfW@uP@I{{QNBQI>$C6q!bYRKK@>BS}<2mM%@2CwY_Tp=+S%M zTQqnwy0^w3t7|##s%o>{L9y-k(U1g!ZDr%vk>lMj>NlJ{Mft87I&Kp0apmQXnJ^u- zo+Fi2JL@BwUJWAdG<#HM-Y!r3p(r*ct&JIWcPP29Qn9npx$+M2$$+?Zz$#zk% z@rPax@-1_BlxMf}u(;)oZJ#>y=U|Y`7HH{JfB9&_Z)qF5A{#4D>S1(Mv!-zgj4 z46lS2JvM!75f_2Yn7!MlcfHhocuHSp&U|tDnXsF$bk=%Z%CN9q`K+8&y&MVq$gfCGwDd;WVl?+Z{9q=Y!S|B)CI^qU;$X%bw)ZI#{?kEB*9fPK{kU%qz25sM zsm)?b)x@bc0+HkV!lXE-{qhJCF1`24CebM8Z@)J9s@-Zok({M>{L@TBvX7dFxnsoe zw&m-cJGZ}hg#Iw^a^HJf@lCh6$+-9DBn~;Mnm>JZT@XHX@SN^_W}6QLIla1ze;W8q zu7s!l)UFYH_hL`UJ;Ro+)N`oTmLJmlRiB^Y6EDhi&MDg7s!f@{A$&?M{GE(;uPgw1G=U_9Z$x%eR#9Pf{ixvU{c}FkQ^79{* zs3I!XCW_Y?EGA@qTKvLYzgh1_WTUZh-SCA;8f6%#2Hsadig7>@+>f^Lo%RA>jEi0>)3Zz$9x4CUQam(_6CI8vX z4`w`{C)5`cIHXSfSZZ}~`q7-4uesFb^XKBAM*qW|OH_>=vwlA-h1qwdTC`5z-Y^uu zr%dKMFIT#cMoGlYq3MM%+(^vEqmo84aj@`n;o@(uvJVJ;eX+faHSzNK)ZeEcq+X^@ zR}#6byK-;@9bLiUF`FlxpC-dZUT&A%d8gW9Wlr-Mc}8IXlW$ zoOo^aDlb(zdA!b@E#exhVw_@v)2A7%pS_j$c7*Ks7xhGg@b?C0+U2?_SBZ0#d_KDU${5sE1hfBQohu$%DW)u$=u)?r&Ry? ziD~kk=KAh_fhRn3IUnmDMv6C8O`EiBOYA(FdD^&AyWZlYkG}bQ)1!x2xh26^rv-l! zrAzCoee8T%@ALBSI-7R7@YT4>E;V)xyxTVVwehNMf7{^oONJdsW8K6vV#CjDY%p@# zZ7J;inC(;U!cy&4UEL=qe)P=zEG3wsbEmErn~I-LG)sIg-`oE^@wNG%5&lhQScERH zZg%5$*>Ko4FH3Fexa?8HlWM`VU0!e1<%5}sNePa2s<9Ykce48FH)5Fm?;n>bDF+)& zRms`(pJ_g;!S39(vzhf;!sg}AyFcZ!-Zy;6p<{KVmE&$lu8L3vikx6aVOiXA0o79U z1S9pxmP0FUc&i`BK_` zjv^-Wcr^Fh8RR1^uJ1+sN!pg@%!p^r2VOkjVf~e2U%4B1HTPOPi$lO(yOx&n3%|RD zKL(%MQ@2mPO!K(s*23RtlaRts`XBVgY)%&XPgw`o2JICz%NpwM=?=)fGWM{_u1>-` zUoXjJ=k9>=>~rOB14`L?Yc1R+Z@0^}wzLqZi{5=?3$3^9+^-#kR(``frP z5EB=7qOnPF;VV%u{qPbwwsQB-u+uWSM}ww6~D=)yUGv!XRbZLx1ZfS z#riZoOL?xqw)B@DT&Xq=jVye89)Z5$M6}P7zGCTm`|GKF3jKz<)D8!Cy?w8ozvPZ6 zagIds?(Ews6P#9@HQplM9_~~QfbA!%SItJ^StwB5$4p_Dx8MV^C}`P_Cluut%ZJ+eA<70 zmh^bT*Y6U7);+;av)d<~UTB6{G^jNBYO?z*A2Gf(o0@$$`#>SA?9%eJH^GrXf@}CjZ`GO=wP6o$>hfl|K%ON+^Z$#DlyheVfEv<3#;mX~Hky<*38S zY?j+f63orwpI#`I6nG;QhbL9%-uE}T6}O{}?UQ?+())TLCb46DPwsZ?m95ypw}B&p zdX;Af@@PH#aW+rS-K+zdd(+?b*f5PYPY3)tTRG9xrEE_a-z~6xIDbqp`xSq(`(yoF zoqH|^`7Fm4_e82!CLGIk49O&=b70zgDkD@+q(wL1OTNteVYh>6L*u~km+GBXX9Z;* zT#d3hN%(Q^$SiAqQ&7%u!yQhGaeu^g+CV{A{hp?0$BeYg>_%_7bs1Ug=Q?%mfLvC1 zEe$s zCAiBvz1*`$rD(~0`WCAvRwT`JzgU{y$>2*m4&Ale`@8RlB7Q0kq&XF^Vp<$bIwx;z zwUrj>^$m^ZANNxDvY5hGku)OknX}pWtwpwsrB&$W&Nh}qWtALVKU=80b7>C@!hfs2 zX?-v470dE^G(VPQ{6bW~)s_MKeLOoyt|^DKy8W~|dxU%F;`uGEL&#v=kKxWir}Rq> zMi;%TqKY<+G3ENV9f2G7eI#Vo2uW03M~}hqFu zuLOOW@ZC#WOn$s$N6E52;#T78y=wRP^R1@WEmh|qh;aA5JJFDFEwGZazExPRWENlT z<^O2t3fm;_TyVE+E^?;k0Y?)amUr!gMbG)@4wKI%s>P=to!L`ZeouL~`hr4pnezOe zs({H8o75@K-dg?Ur7*n}kb4yo;(x@sTxeF>ciCgw^W~#xA+~p!CpI4u#qlt0;Cbij z{lLO=){1Doxuvi@+cBBzg$2@{g4(Hbumr72-B@tl;rBLqbJ0)R3Vh%OmBnScg zm4AeeA}+>S3XL@-6Pfvc9@J%RnTQSbcJa*p-CY&+thVk}KiNtAWXw}0`+~6__tVnD zcDd|i5+SwwYHT*WC7rP1rEZU7#eQeApJw48HF+dFXv8~Z2rDK>?-VNM7bx3tLV$SE zWV3_j6RpajE5qTxquJ*#ClLmwcZUu5OWr_)Fkgr`#LN-iVCk6q5w>E!$wqvXn_6<|QbP`g zh|^CW?&G^K%g&nm>!8BscY3u~vxu-~%~{$a=2Q0G-w{Jf93oG*D{OmuJ(nE*TGD8D zfy^@%v%t$5XVUtzeRrkx@$lvr>7lkuu@vXRYofIjGGyi7aq4)Zc71st6DaR*>gVo~ z_bVd3bK3*ierbQT!?#7p=0@Ls|C#{;C$-GK z4fO9r7L*om`8Hj+m{gc1vUFFa#pu=d)TFSbrPH#9R$`7%M81xV80a|6yoKot^7Z^* z_C)}9A7E^ZU=GuwMtHkXfgQtOx}qKwzfdYnpMEumS%gpmLW6)U2Hc|7zH<+LSD)U3 zrgvDV2{nWm=pPgq0PIA7hk?6WnFmqasGN~=8 zsNSAlVWJoU<2(Bp6ar@L?GAizSy;(X10?W9Zd7=HxeHm&TiaVI6v=`0 zv#>Sta#J?f(Y3cVwIYj??Ic|YXpE1z2N@e~;^1sygEF>K!`oR|?l;qLG(m)bu%U$RMmE73b`4rsEr6W{p$BBa!xsx;ROkg?g}uyr-OmRlYOY2eVg{Oa z8i;*j0ZJrY4@+rZe2A)!m!hvY5Prgqtr?TE)`E-3YHD?qcHLFHhC=RdqD7 zsG7q5!yI9In9AM<2puj-1TA;41pOT%WnqP>Nm#>uv z#RrLkkwR@z@>+gqGY(fD7gZ%UvaN?K9%iKys76E?VjPSt9i3e<%2sw-8k%@tXS}K- zT+sw&5xP$!M9D^3!_adtEZD;p@=d62D$CZ5)kNNx??ylG4(~&gzm>bv3>HlJa;N0#(&U z#n23EuIBAz>#2cKaa7dNvLP#)N%-j+sP7HZlP8(TNWwW>9kCQ2eh{ViV&YgU*>EjQn*iMqMY3w3nH^5cPtwr9 z)QE?ex~}tR6VNrK1(vr%+nRYVP#}Z*7r~i(6U1tTZF>R#X>3Cs@mH6mVTykrfO)6 z5>ZzQttah_^iigU>FE-Ea8z7?iJ_~CG1eSsX{@8nVPcF6anM!N374Y6-K9v%iqf(k zB(o5hpS+y)KG|R=EjfxeMmap(z(x`02~(A@(GPL64T1;A+xR&LSjrj8aQN9vV2uLg z?VOE*;f|p=uTV!98yiG`9bSrnra1gvW6{G)DPbYr2ka5_4NSmIOxErl|AQ@9{^NaDXfMsfU4eZX zX%#~J*K|?Sf&(z}v<5|eIlz`ZLph+<5TX_yv_cCvTB$`O?IdauDhg~!Dr#{Mcoiaw zM1oam7diwOJg^B4PSnDm!(PTu76F$D^b8D@b+pjqAX#wy4NJ_wV2MMbX)U2w!NenQ ziWoHRU%^De{{bcf{r@E}Aq-HMzrzXi`#(X7T<5g^XEzOPk^=&|=CRig2qlyXAObV6 zw$vpO<+XH;Xkfrd0W{O*9pFjxxd9phq28;{WbcsBFrpVFL==Stp=9jR7)X;2vAU5F zNP$2iRzU>VKtRlZ-GRP5)E!Sy>qkg;HM8kKgw&-^=jIRLLE?O%Z8zOIvY9~$Jdp4=8tUjM zca12E(Oj}nm3_2B?AKX~bIu{;rG@u~JMzrW;3Ufj{ZhY#e_>}IJ-xFg#Pa@qY2K%M z*|l925vLAh+34W;MfgPctM9qC=i87grCQlV+Oy`wnUmG`CbLOtroi`VHW!~A(8+ow zHppvx&;MQI(}Ztgi>GnZ%+sn3`@M0Z_LBQ0eh)hZ{;4{&nPkT5lO1uH|Knq3{++1P z#)d%;B%&+S)5etY#Qk#*6cXKn9$+6_{c-E_W4*hLJv!}MuWXr-eGu-nrQqZaA6b^# zw_HB$M=1JoTyG*+rr~EkCNO86n36fX^Dyc{@yyfFH)IWw(UYSx#_*8FqpXr4MbGar zbDp&+x~;jQ%xtXf{*m3QY4hne-!x9^QL8e6~F z2dVAWirALtq1kbDy5^kj)-ja85BS$(TkyJv)WvKs5|?hb1w8V`;+og^hf_x*_TLWg)LM0 zfrGnlKi{C}q1|uzJn-B^5z{7R*Vy^lJGEKfwS#2Ns$J!rmwoiRmuj0g2AU@QX?NLg zSmx^x-2NrZ^i}f*KVo<v-{Gl~$Q2eTb_sR6UIKtm;Jr4PWIp!V(t;3O~+xm+jzt ztB`B?VNone^=q?bBJ-_@y>?~U@$YvFi|nxPOPBH(m{Ik#%H=8itzFe?GHMf?6IlM! z-r(5tgDI0+PANLy9ox|}^PE3gH8N>O=B2Mj84rJrJ0}SWU;UVSFaC_i4!yInh6*gR zRR&dVS_%0v-{f{-f7PGcl8+%u` zn)LTHIP1K!k==HA`iUy<{sgYOiBnfgM1~hX>=OQ6Iag{KyWKk!AJ&_9`qmbY>U(6t zq%SYZD(ldQy?c$PFMPva3^>XAv?4E}?#pzyw&BTl91m0mBj3K5rrt<78o*N867sfI zY)|89>D$MhOnRE$HaGa!MP2*Sl3>VJ+{6o5jt?)M#n!|)ec6y(9mil#^8)jc1*evw3Dk&>3Dbem? z$ri^G?u%D`>5_H&xg>8}zkFDo_X2w%ptc&B&NHy%TOO$@Vo2JjwE5v>1&7{3e}uz_ zntF@De8CX|5{tMVjP!B)krZ~#g9pv33x)#atM#_?@4VUgqWrVcfg3lS$|{sB9Xf{c zdkky%ruca_Cdv$d$3JDVm*T$_8+F8Tg^#M&6gV+@(o3+S|6*tR&)$#uZxI)l0-ngb z8KK^8zd15|ColJL#g+Sm_2Q8M`Z@X69WAmS?l~m((D|l}@Fv&Ff&02Hue))@IYSRu z@~$pk+Op|x%uGj-UBfL-d2Z9(_5ruovW62zwuaqJ<>8w8oR+st&BwcMwIM&>Exlw2 zTS$&vG*cp3lb9bt%Z(@|zB_s%G6~1A z`;y&?d%lliSkOn=;OxYMueF{u{o#Z&ow(6F^tUCzI`6HaYfg_;H4PcT0#O49AU~4Jo0%G|~Xbr>}+fFgFTVFE9wIw=O5OZX?M5B0yf3(b5HX z>=Z>pTWSKaj|`FG7aUF%MaV*RjfvVY%TS6ZRTPPa))T8i3uDt!dzh6sH4=!*ygdU} z(+tRUi%cR7E?V$I->sAWBm-@l{*S#oF^X{6)euJ`BrGy8#245&b5(NG{|Ys29S8h9 z5A=V9_iE+8fW9uc{m*tYH3{*KptUQC#QY0znDs&!Qo|@(lrV}Y65171LzlKpqgMsq zBSew7zZcMgbo}2-XmtpGFF}f;;D0YciJ}mHEumFG{M2$}GIY{HU~2-*8uIXix|x zDgvQM@s?ffn${Ez5gG*whJXP|DvDOZU_?y}K?+Jh1SK@o`yj0xfkoj_z)MX40oqEK zwv18&@;wSzJQ~;s7$r(uQ~?A!-e%O$f1!eQ4W^Nz6wz2Tp1yA|o`3-=DPrIVprTfw zTev^X)&R)}YG^2!HxE@3B}P#KL=B-ofgx%O{wWJlP2g`*(CTRDVw{2X8IYo&082>_ z5e;1g(pfXy+s~agbgonyI9^MVW2|d zS9_tMZa|5m0)vO3cVZkw4X_Bb0$Ei+;t42GEP*y_X>udMbRrUqhmz26Q9wNqgw>7_ zt7k^@KwCgdj6OiE1GYgn4)ON%4p0J8YYI3FmOirDA>Qt514~=&-Gf|Nn7P0RVtI zN(WH9Y2!=NNKriPAJ`|A1{PorX+wvlS$!Sq0a4AUFe*(5N#L)~pisaWiv`XE0&pf0 z8E;W2;EF;4r6?3oib6r9WHMMCs)oe^WHdIhz!@OJVgWKNmP}?eN+19Bz!|CvNe>ACu@7+v^$#-7 z7%Bz{bO2<4jKCRa3K~dAa;S_xaKH^f2FS=5X$TsqG9V*x2A%)`Aw2-jbmoCqz!@L| zWCYI8U_$BwfeUc}^vTc#ka>nCF@_Fe5yBoIgTP~814$1F05T7;2K5ZJ%@{U_gmC~g zfPf4g1q1}ELy|+qfQ-NyAcJ%rkP*TKstlX~8bCl=b%vHRW)cJ+)CZ*L40UEG4MXoh z<{_1Vl!7ry7-I{e5Ag?K5A_Uz2QtqX7>0Zh`v4iEf2et=0jL~0=*&YC71C^I>>+@l zCdl9csq)(Fhw9L(GiLAFJY#^hHV+_8XUu^$O$4j2X%l1SuZ=bX>$TAUcw)c_R$qgJ z!7hVkM$b^gP*ns1`m1Tcm2N5#^aF{6iq@{s0eE2W4|=U$p@UW(gMnVHU7-VqgPzx} z(1FK8&v^W5?|Ay5p#c@GU7zM_9KwfCXI9gR43E+whsLNl@fOdg011+uzfz|}?f&MU1nFbjuL88{s&;YzN zjaZ8ToCX1^00DzULstyqpMb6P4_5zorf?vfH0TI`gg6=-cr*qD$0A8^ES!i01wupa z0JsIF0EU1h(~8JQ65|7)Kq~|Lq`x82cp?Lc09+zTwCW%+iBSpY4Mha|CNLU<6EOr( z7$PwG>$?DuUnRn$fkF&Tev}5t4UN^c#sQ{j!$}hjNdTG$%Ao4NYjD^=>4+EJ2Az2jWh_HZ z97wWGO~3;X3}6_b1$Y3)9tTz@0k7ep*#icSCO7R3AUOaO1_e!G;2B2(bODcsV*#9K zv`}?G5*o^YTm+zJ5IPb77=w8LI-mm37=#0)Vxa5*TtG3Mc`c|<$V5O8;Ya{nH1JUL z@d1EDLDfmXFd$bY1P}%)0R2OPL1JN05E4K`pur;2nP&_Obf!HMKym^IAk9S3RTzt0 zXRtszJUC?laG+U)#Dd5Z8CDPA3uqMT0Ge?Cd}R6{LNg9jMsS=_0P-|sQ2>+>A|NW@ z^ab7n3ieOrp$UV9SO%2{1g5Yz&Hc_Liz-paWwM*;0mY;j-mTBq3Fz$7y^O4gHWJ=Ns9!h zD{Tz$bh$z1K?6y%H$bl-lz4{Z^xprW?@-fpYeEx%41u<04;f{Ecyz4;*&_YZl0aqz zLKzSZGFG7Z0u2h?K?6uK7-IBEBf&AI$*T7wFo3i5so_e5HUJcK7?Parb@dK(}_ z04M9(d%DlnWVkDaoksz>z1~5C(vcWu3AC{U$XSDQklmqc9e4|RRsWFd|NG~kQP$r-|3mfvgn{YOjzn3i?(ok8;7T*Biq=0mSe)iL447xBUil`_yceNMspYqBpHQa*nTKHUbFkqj3YDbIF7_{5rBUK ztRJMFP^1qC0^knJf5>S;mX-jR2goea`=AGav_&C-;p3329u8bIK#@I`9vT5F2q;#A zfYYF{jKb2`)_|@6-Z(Hs0IWU0JRm3@&G4`UMz{@F@>Lw@F&*T0>2W6txw;Ibhel+2 zt8bAX;r~(K8c0gh*P(jwoP*ZeE z%ZQbsR@bW~15QBO!7?Hv+65W|Wrt7)@uvqrKo|zHPJjYbD58hrS;&+_K{P$81ht3+ zX);g%0SK++=@CBYGC|#khLQk?w(4QmqE-gpjL-yN8cBli22^EzdIDUGfc_ka+W!&N z0KGEeS;mMkLRZks6X~{&!89C>#6yuh5{JYA5Q0o=td0xaY(QWF{X+u>t`it$f}z6n zH4W(HA%>xt2Z9u!#GpXgf$GqDiBSMm2L=fehJg+cE`tkm$b4YH-f2DHkvK5;1=p$c z1@Aww2Ic|X@2(3|*I8O<@dYU=BXWWkoa+Nc4Z>OsNY^^X&>%_B3XZ0@V1{P3Q8Esp&M0#Biif7zG>-sgA>1$XJM{^5>6O;hzPw~EhnsH zHCBBb198amLB$Lsx@xE~peQ&XX96Xq7^af69%*{of&6!M{$G9ES}x^(jyK@M|D%gs zBVApN(U^u~0IdLY6o_z;nybq|z(jy47!B03}{hs zfUl#coV5Nmw)jWV>A(5>{~|D>2R-C}4G{j{fo=^#h^y5=<=;MZ=>FT!e^H&m6<|O> zLk%sz|C=jR{lBUTT>qu_zh{KC(DXc>77hp9F|tX}B9u1QacF3DPKzcma4i%TqXAi0 z`pR7k2c%*(;93|B+A}@opqol4>;PMYoDviO;#U*u^gJ;RtPF%qIMAT1=BzYUqbr7O zh2kp6DM2eqz$!t;9JmMk4G0}%oYvNhfFFfahmkvA1nN+<1;m{|0nHDRpj0P73g+ln zlWZ8shyVe@`Uqz&mjq=speX}|CM0_MC@A#>S#>Dw2Q>wGKq$U~@@b3|H$6`U$I!SS z(SNmoq$ju-ypX^MgvnTVZj5A00_zeZ0Ir8Dkh9n1n4F}SjZ48P`VEX-ILa`#ZcZ1a?4O272pn>anSez zsV^iwUqlN7KrU!+0ha_S3@x&yuV>cy0INgkL`XU4f!V632bTn^O2z01%-W*pvCUfK z1hfqKJSgo4zSlw{0Chp)A)gK+UkXGGZR z?zPZp`fqBG;2fkitEoYUjtlyKC%}K-`1}7k`O7yr|Ms0t0xdTB$6o@^nhhAi^WDA$ z>y7MHyc)++hm=kE)xUT1bE6i+gN7$cy2Jan9dSjZ?6m!AYWCvWU6sz*(V^#uuI(~A zqtINx3s+z4zC*lTi~CWI*hI&UlDvoL8w+CJ#izd%7pBiN-OFnodo+fsdZwbZVEeI< z{7sFL?$}CLC_aBl_`%XtmDxdDPosl$qtauW5Z%ajjcrobo>ZTb)qktYR)1e;TGlxo zFI6ocx9?b&1yeIy$kgn;e6t$uu@lIhY~Ov3YfMl*8}yfzIiGwjGf|lS-6e9#;jVSv z8Q*#9>EYtSI&7Gy=5Tdk;<4?Njpm`}?As)`zry>EUsB+@bJ=lWyPQapH=7fmx#D?_ zJ>t_cEv&=4x(5q>m`7LKSj_mG&ds;2SN(vNZ)AqVQ@cR(UrWayY}PPo%!8R%eiiWO zaOEm#YZ)gly!pgmcW4m))X8^NZLh+CjrmEf{IM)IciXQ zKk`Ss=6P;a>y5mxS?tm^4+~2Vr5-mzY(n2Up7A8OoF)5tipK5WR)yX{k!|F#+llf@ zncj{fQIJS5pTEq}~Pcc==CO&HB2YNRdnrKKtHJ{qj~z?X)9)#P-spX|A!S z_vh!lM)>v!XFTUf=Sb(;RFWznYR#fU#5wX`za+)PMvGT#-y z8&i2xeECOX#ZupV`ZR_){dx6J&F=J>qX#2|*(H!A@qGw?_H3aR&g3ela;9Mc^@BQq zyy#@Nk&{d%ANcldcp8Fztlg0@B+XjyuBxO(li|yrxvlc5)hAAE$=W*wwzRQxw>#Sdjm9gXFc6o!5jDv=cfmz3VeO;9#m*7M9Y1yal;H<)(-?=XB6+&x48QafeC#SGBrLB|blmF;)z2my+rmA;btvS>Lpmh)tqX0hhjcrRPIICg3_^TJ%&+;eqhB&)Q90j2NO ziV)TJ^832f{Td;9H;Ae=gZegGPS;EBMnxVU3=sI>{a|SyMQNEi)@!kNN%;hYsp_oA z$fmZy_Rmr+$K>nkvPI&fnnfS(*)kc(@7V8Wt!$>;ta55$N%@l9S)RMuVI zg7$)No}M1FT<=3_EjGG(&GUC8gc?5<_UCz)S_ul>mD$aqrhMexQ?li?VZENGepg=F zZIvo~=U1oYSJwG+T4_qeT}s5V z-2-jehYAepEcG5cu3LQOy0=vMD=!uWyu>t@+!vvJ?7tqgk?QN7}d zdfOc=_sR}j{r2O1f*KR%xMF-sPnPtd$E-mV3zpQV9V)3stuYOfRjjF-9>JINF6VN- zeSJk%tCWA@t`m~OTW*Ma_dSQeq-U+bAzSM(<)e~0g?$;s#-SzrIqPkASA-vYkn?C- zkU8;N*X9LUrH@<1Gc3~%ChcQL_+%4e#$s0N(fh~cz~i!a%g5d?v&dgN{zNLIov`?T zTc7-*FF{12@K$8#fL6HL?(Ulet;Hz6^Usz6DFWY4q{!v)gYj$Ce&T9-X`Sr=!1h_O3ry zlk&5t5*9YrHi4>x;l{*f_CI^J@%Sh+w!F|A7e9Pt{%s}CbslUxI{3?2%j5h# zntnI-9Q2EltB>7RpP6=PM%LKIt|Q$+ZBX@Rl!1sZ`}|mFbEzc(rFb}Xc7`A_I$fa? zKh%F%Q^GDU`QCno%zNj;7Qa7@7Ao0v_)paM#Bj&KrZ53+?Y?%#K_es2d}_gFBTf6jt1CX8`$WG_)sUBBcxEm zmi4Z)(^cwc1l23g$yR%>Ut>Y3XoH7er&do{bo7XN>A*m{(&>8-l@Z#Rp$~Tx0^$_0 zexCyxf);HKyqno^PUK;9``2so-LjI83uRSy59?Ojh~SmBhMSfqN_Kv&V9t0X`ywJ< zB64}l$mG#>w$Q;4ywOMEk@U2yU{!0=wrZg-R%8Hn-HEcPilgg&;id7(6_|yG4XXtKwd%Hm6!{O$G>SnG@?+djY%**$4 zD75tPnR)%`2B4jFL2>*=s>R^98kkki$>>(AjfKu;_UF>3#M-6|s$5U43DRFphUlh8 z4Y?xktB<^-64M>4yF3tmBSf}ozw|z&wddXmskg@ZiLAcp3LO(;y0YQL$vS><;yzPa z|DF>o3hPBAw5@^;su}enda4oWGH|L9?ZRW$#Kb8NU0apqmLrC_fHDE{yPJ8s>fOXO z3(Zx7v_h`}fmBTO)Q&28DsYlf%&h4~YPN9Lpwj{-wwbk^Igza-smocNl&dr=JHS9J zLhdgCF47$-5mCwM?*Zy5k0qro_wv~!h%m6+i2&#G72-(6+tSrB!nLzOb+)vxuMMWh z=@2O^EqkJaKoR~&t;;e=Zi$%=IX~#qpI)ctV670evz90gK)XgWzKWA^o;8hT+ywW+ z${2egKfoIB!)3mEDnkVK!i9sWj%bJ0teewu^(1cr|jFRJ+DvtBkuZHZGADu~N~dx@I=goI$lz&3<%^0Ks0?(jOIH+)u< zvu}De-*0jLW{8{m@BIk+M_7Q(NfQsPF(BWOL1S3M4-5s!oFDfj{`rd3-`XbiOwgUK zPVXt=t^3b*2KO}ua6eOVGQpPcMf3Zj|H16Mo#m<8XJiQU9YhR>Ddwb8EG>cZh}Dk} z&nUYW&j)rAA6|U?oIzhtC|$h{suw>qMgM2WH9%mollG{n>fcuvJnB(r1)NyK<2{~O z(O|MrpEnYmE#xv)tJ4@eWM;?cWy^zUa1rbG8p;SAeB>5>vO@uZxzt1XG=|gCpW8og zUxoKe`d(`D>m`KlS0?G=!!I)V-`_H%AIU-=>4w{a_^_jtPp#vbmR;vuv^+jl%Bih4 zIsU!AAW2#Z$Uk-yZiw#-PIUmwAjBJoFSw+gopK!Ne7Qp3A<1(YpE)gf&-Yy6OWWii z%twj$H){2nvZ#JH@Ego0RIp1%Qch-k;u z)mioBfvO{!SMv)Y7wy{9jVdbHbjE)f)<}^eBqolzX2PQ=JiUU4ylmGsrn5~YY)#eH z^gRbz%lwuPky3>hS!=om&rEO~FNzNT;zBkZi3^#$qmU|f+bRgh(&bMbYQ`M#ju#>n zP*P~i@HdG(^#0nTJ1UP5NIXz8<{te;7&1)Zf36kAE686Qy$^86BDt`MQPGa~+HGIo z4R40YM+Xy(^W=*&){ta`xg0(M9va?(O& z$YQUqK}M@R2JTb3E!p3q!``?R{7)pZrN*?}t89mIiR_tEg&=X8Etgz=3KK1^si^Ou zX0T*9v9rUP_k@7x+o8c%MbHGYZ?Y-)?nxCGgbntQb4Bo>{v|O4F5>e7xgZG)q9EZv zyJ(@E3?OK#w;dKG1hea(f$@=_i3p=euB_#6p{$Y^c7fc~JB=J29;QhF)NZ>piMC1f zvb0TKtQa!P22W%nGqJHmQ?KP29fyt?DQ;h~pi>XR(?!JRd7WZ~WuH{)))v$Vs6me^ z@r)$*y33m^wc5FyZlh7)pS?}Ns}IW)C*!aqDk25hzA}u!$9r_!kGLJwrRsRY zwhFqhU^hofdexUY#U(N~V@YDT79)N4st1_@n}fd4*p=QIa%Rm|AH4s*ADReS=BWpHP5T ziC$pp)xHQP$&Gm!ccDI{?!O_JVC<);$f4zU*pc@N|Kl~~;)Gc{tS%a3i($lTsb%2B zDv3zFMWq&VRWK^C5^i~If5v_#J##TXF5PBnN%p){r6{Jg8FbeyeS!!GE^m(-oi(CM zs}I#S`h-=CZ%o6Hy~t2iRV{^Mo*zCutPX71+apMSd@j=}f=IIotN&!|ihOh_=y94X zpt7~kme+_4oO`*7kAe`Rq2&^*>!|E)qbfY>$9pBEvR%t5sR!z!u+r}cH;Mmrm&Xm! z)7F7kpP+YP5~4jBg~~Q+in1{iZH&R z*M;+iGcc_^N-S?R=|A6Bmh&sycy6nZ_Dj0cI|wKCvMTd1dzs%B-0QS}j|a=9l@haC zns_K?V_j z(~!m7{l}B`QY1KwVg^ibdD$AI+_bsu{|G0*M*~%|1-LYYJJhHkXR|KEy|a2{j!hnH zxH*J}zzz3-AowcMPf%EV&YUHO|0sBQ{Xt|3(|0vzTTdUqO;5zHjf56Ug$@>rarBYX zEGG=cs$MhHqoYRZ=;V8--OUcW?SjDlRBFqI%8m=|D`oCOQxTx=KX77egr%cZ>{hs2 z(n*`kgb|(0T+{LQ%2-Z$wmVDJf8Cd@b|JW_joh1}j=oHgB~D3@7^02<0w`dk1E)cN zl$buUs=M%}D`t0{m6VQvfVAmnZpz0r#~m~W&QKZ9Q}(%!n2HLj+|Jz3IL#)}MwTGV zL`*roTP9HFqTd%$e-&>u_KZQgo!B*tPBBBKmRj>UwNa8Hpv}M&_QH!IIMW@G`0wyn zv1R6nad>9N>xV~8V~#l)QybjBuCb?}9M|910QMBL&@>!DUe734tdj?S0)n=1iqU@A zowbp=?J*XSL<-Z2oLQral%?HWw6iEeVFy<{G>lIXL4#-{w}8BRv@v&{3`cz|!kd8J znadGFfSJ8yKON=!Uy~K2a-o!mx;!Aa;GH94zCd*D9Alr1t`weoAw8vTcc6A0CAZyjewDig; zZ#4#(CuGf(aG%cH86;d7Hjo=B8a66;$qj1X5;T_Cn6ddWo9}(i%|2KKZUR zV1Yant}ulW%?-du0?y7u4|y~(JN)$aBnTpeJ|$Z^67w<&NNZ-*=1MD#1>Cazi{HeT zo5|*b`XNPeP7Rk91M0Oy4|2G1^s6iaF85r{&MJ_%gBaNlHqE$O_SW`*CGYiaEetdo z%!8Mi=ZB6uAV!hZ!ip? z7_5=-9)6%jyeSadKU6Nz0|FG+fNqjf;)T}aB2tZI!f6}*Unu%?v`IRrdU{U@hA(vk zj$pp0WKPnO-jIUtYz=PYk*kG?^y+RLNq3jcnl1j8XDs-zo>wnjj_&PhNRgortyHp{ zxaY*4HKo>^4S+0>xWsy-M4lq}eNQmaR!^VvGDGZ_mKj`1#P~T_%^y3CIs)SN$XB3| zd%_BPT;nU(fAvostJ+o6St$3%to+?kqT?f(|CO>7`g;NLsnKngpK1nBxS+N|lLjH=21pBjKjCYqxx&-} z&?u9*HR*`#RZY3$IjRj^31c^n^Amw`3PcQ9)B!qZB+$H&%~}`#6KVOi&2Zs){OUE> zmg2cbU+Pf2*ki4|V|eWGnuRFBm+zw0B|xm6d2=+9pnbR$dTDW(W;yJ-$eOGMWp*K_ zaeN3*14mDcaQVC&)l-C*ZOj*&S1c0g_*!@NLAF49ZYl;nO5}05Fz=4Ar@ZZE<(8lhq)*pkPBMY%9@#`9o{ zi+eH-O7>!16gG~;9tIeS{-V50)wtcl*vKY}f+3<+U8~GeLXHhAFLD-e511W}n)^`g zwhq4)9@z$?wcRh+hWPCc1r=lJ@aE7M%&d4 zPLF3^5^|s5`5O){LTn_I-q-#&*d@CNvCxNTp@2VNG5$btI2!ufR=gLyuL0N153pKA zglN|Zj6coy*8>RnCliiD@37DldT%G=wo81BP>I5h3K)*YeKlLipx_BCG&wyl(?20s z2^US@Of=o=hOQrn@K3hi-;>Os*8m;4PPVWXP?Ow2!(lnCY>qpO!X zvh3g_$G+3KEw8pmicIt-35RMMmiL-t-#``l$xVuF?<&;RsFkcJ zNh&{G>tFHa%2FbEZ<@8w&a9cUHYUs{uY=KvY1x+Nbk6G3q)?R>S|Rbi$b1 z?JtLU0p<3OL-B^om7ZG384)wG;Q)IU9tB-M1!D4PC zBoO9N{uIYEx3k@An=+USrA^K{%DGvEMR$1Qa59eJ!)#w)bsd1fR}_sLVQisF282>p zgNLKJtx^`3ug5Y36)dE9OJxdjNyBUkVz9{Im@r(;_2wYyMl&=o6D;MyLVyy;+| z*RW_+LNf4BVtKKg30Rpn!fw#gL{E5pqq^A|vVeZ?&ov!H`ejU?OLE=*2&lY2j?_HV zyPl6XjBhrYQoE*B3WDsIj7t=yPTQXzHo^)HG&+cTwRt-0Foj`WH>V@+z>3pF5eA32 zgRg%z(4{0i-u%e4VBU^XvF#7J_1fvWA)NEP{&8^ld}s=hHw>YOvaOZn>}+9o&M@N2 z-cr=9tc4w7Y}0>q{U)i+e+9bhc}*q)lln=udEA=34^z^GI7{T-#CoXmP7A_P&7rKI zzH|)L^{j1>?AYSzK5hrNU#N`LwXgxTgIW{0$mGJ$SEVVI+@q>U`Fug|*saf=9j8WO zR|fxKw4J8fRe~cgo7&hbb)mbBb(}qNq#gJv$L;Wv^QC#fc^=bCFn(SfJ$ligv3fIR5dv)jz4f5^7Y74_xF*e*fk= z^vgo+Sj1SDzI*fy;%r~gu0LB6+AdQ{uUW$tD?G>l*tSpw(W%GtX0 zkCI?w&|6CUT>fpVt!WO5qxhl~t04~u69{sWh~EkDO9CN9LfrK!DJr<_IJU5P3!P3= z{9RaZBp0jH*4Pa0Z&-zw9k#@1a26G!(JJxp9f73@SMX75q2h|m>vq92R`J0b^yEcF zO`G<=1Ww7(>4aOksSthH5}1=M$l8fr`+r#8D+l5y=^7>qv_j{V9q0L z>^;#LA|$*SN7kVPDcOjKP3d+Y?JMm1%5PN*E8tckEyLOYNa8W9DGVW3A|G+TXO2U! z1r7I~w34k$>`GQ2Njd%TTSaL)bJgf#xbrVj2jV6>7K9&(lvaTl_Z$QK|KWyRp`}rr z`9qJm_q_D@{nawravy|Cd`Y6|@~b52(x}UOAPhLq>ftbxd*`3mNq!s8*lh<|_mf4H zcwBuz8v%cuhTXp>tz&#y+ID5Te?+2p@*DOJL1#tv*CRM+z((|qpn`@^St1L8H){$Lwdnj>5aS!Yu%THkTS+4Eiw@ZEb0f~e4a}(XJ2lSOeZ(T&Eq;|z2 z+}hM)9z866d+a#O5k3HFy6v}~?zqQS7Uo8yJxH%t3zNw%JzX0G=iP)6Mb~$jSh@v&ysG0T6HZjdZS~S)nD#dvKm3;P z9ON6?`vWz7AHDBU)Ag-u&jY;BrKRav)2_0cgIgkDwe>eS_?t3!?kSRKtEJy&!;)GR z&zda3_w3K&WQD5W$+W{M!&Uw5917&M1$4AHq>vR3Dj5*`>)h9>#yZj(ScAq&iLi_) z?hBagsmwp8lb4jN?q0HkbF_c(-_M}khcoH4Tkg~@D)X-gw}>=aUN|nx0T$BCFHg?_ zC)v$+M!f;!k8Z;AR&m)ukm}mUI@W-e-m7i^DH|?v?$n}}{-#iRd#w4XA37c~ZJ=<# z4T=dm`vmW>M#r{jJu{kiX~ot8?smmgA70LTqT<>82$>m91IC&&RfXs-^&g;62Yug> z!l9;=p)n$pgu8`R@=f!76II>im?s#0aMWB|n~+fSyEKPgt{89OyC_KCsHQ|>QzCG~3m zp^aHWK^LS!6y4M_eGDo`Tp6KTTrYu?Hmaw=V=?&ZDA7lqPo%`4EQUV_C27*43Zy!c zB+>*{m9ikzne5(vwE5s?YFm5{poWYL5O*|QRSQ!g;I!0bHxaI_r^`$El+?b-2u2M| z;8K7_hg2Z{a&VHw^9fOoq<%v#HxszQbGq^{w-Hpa-F*_RlmRNu0nQZh$DnT7o$8fr zvXBS8yyATg$`idtYi%fkU)HBY0MVyMT@P}$aNyhZB*RwjQ?cBR?a83&E*%1l#Ou!H z-1Uu>xcClgPA!cYfsv+`tA90Du)riE)g~Qm=BL0he(=_x^t*5RFr*_^ebq|wyM|ZN zrdnO@aAl(%>V{0!weS_IoxKGFV@p5tYA9SavvLXxj~%DG#fa}^4R<$ekiEd(Pt zim@j6r%JQ{f#s1+=|2k1(+-?4u+3u;Fnfw!fjO_bm8ZxpYH{le{^OGQpwx=ru5G=* zvTwR0ren#d4fQc*OL@@&{S_XmIhn<6KlLNz4+vnrcU$-W%7AhF|7E}!nEtOy3Gs+% zwYAhhaRi?|r&s*ZY<`9SAWB&0C<`3aqjV95z{uX)HoGJCPz^J;J>khtRNEa&RL0VZfQ{gq6n~$9g6d&o7D&*cToE1pL*%~6xZ2bWjGUyG?E&| zloA}cFK13Mx5ve<<;j7K)BT>Id0JKT(=0m$3V&jXE0n8-QCnAh*3%kIpzd=9qID(`IC6`m|0{_5@A$~jlhpV6_BCu2~{$f%2VsST53WCc@qPP{b3$JSJMs8$e1^1F-9M-l^${c z)BK*PsAqN{ucxH{fPLwzNDj5_xgL7jgvA_PhIwg-svei*68d4w=nszB20~&KGM<2**?VZMCMo`X(Q=GEsd9N5d;*Rgi~|eQt5238&VoxWBiKO+%FNPN2LQ854<| ztvk$1{}^z1k`>hTAKlk7&>m}JHvHJ$NiG>4RiW}+BV#jlMmpg*_;xO-sqq`ZZRN%> zpM;WAWW;Q#*^qU6x!%4LWE^$sN_e+?97jMAT346?wR(`lZV(R1!8um$afk;@-@c7z zHKZp$<$Wz&B3j40Pju~(1u#4Yw_%=$hwTZ{_>M+hxw>Oh@{`7#_BNJ9=Iw$e{H!L= z)oGg0Z{RALCa>R~YE&%uS(t1-+T6bYDz4Z!LVXNMyk~I538J-ANH<^DN(BbEWmQ|E z`;DF}2lB0}_ct<{M|tr{LQm(`41WTNRLfRlVZDCsYT5!g1!*6W;Pw_1;Mqj5P|~3Q z^p{7#QU!r__#Jrtz>q(54DBDqOE!F8iwSv7EyxkRfJ#r?KP%(Bb-$Y#J75IoiIM;; zF(8-0qiQVw$P;;3B`fIxjkoke6q_(Xeb^V(A zTau+iS{$(@DsifqMhc)K{?_X>W@&nwV%+0*=9^-g^`Cxv|5R5?Zk9`p1P7Cf;w zj=e$OO*V84x@?XMKyzzcF%Tt}ld(VpILRIuGUU80t?O>x19#n}{AC*qzV}4Mo?9@i zj&9WIJ$i48cGxFFzVVPbM+ADGT38_!J%}}X@!u?+*1)rdhxz-eNIl0if$LAiRDb;U&4*V!kL_r8I3zQGaYztK{I%+d{yT$kpictk0$3_ z0n5%ceAZzRU$2&kz~f>Ghp4CTcct)|d>oJW5aIrZ91e_7Ug0HJW;_-IBxmW@QH_<~ ztkGtfjqeg9>8e+a0UXP*`-DL?{vZTE5OJVQ5g>`R&8SRYB!w_UZcb zH&%C8y4U<(nbtgFk4404{xOQQNQY_Pw06IeT0PCg5S$s_gdUs2iPt=YKNAmpPLj5 zn|xNx7v0`xQS~&3$FA3*o==qv2kg6Q9uvSwzr8)P=PKR8IJJ{~O2(rITL}<~LjA9& z+G}fCC9kd|->P4?pxQG0VYXCu;FUzi0V;*N&6IGS5oM=C9frSSQX8ijgJTG7F9hi< zD)wvYEOoE(Tj(!_ooe6OIzuJVAHAHS{s^XnXgJ~#NrHOAXu+A^qkp8H$45QUG7mKJ z0=(0fZt#ga$+V=K4vzsqRsRZrRayg|3z#QNJ|DN~YN&ZXVcegPrq`XAOxQ3z>MuL- z&Rv~`n_Ep#@A7x-cn?`DD9nqs*ClW8%>YoVUUbIwkd$2Qcs+wZ{#!@S->y-sX!T?6 zHvwcBrSz`JBV?x;K5}HJN;q>xMN@ozpA__s=6IArx@-0#-br7M!GUo%segi#cYcE( zLQ_~F9Xc-bCEkA9(?UFzath~+Yo=26433VSm~?xUEegd>DM0TZ5JrI%RY6LzM9P4ZjSAs zoSUW{J_AgwjKsPp7s#cfYh%$jRa76ogPpH@_~>rr>2pmdUybyTXA)VN#C}Y@-dBLB z?3o=tqvsdEWX{Tqkb@6gDOKUDY^7K+1w&Jo(0xM86J@aOFJ_l2!I;KlZKhaN;jrmyAIW#yZn zv4V%*9R7lpRok|nD&yzmnB<|_!@c8g@_?VthcoXlXP`>gR_OOZeb-(?7sq$mcQ31T zSq<gAE`T8i7gmq(3X!Y8UFjx6rSNq+T7%P+Qchom9x z^%{CkzTbQu4Aa?3+nbNv@7)FA_gkN!y#Duv+N0WegI2lnVFKa07fn&lgtajuk&|2% z0xsbdO2$_9;C;-=;*Ie;rMcc-JOS$Li!Aqf^svpw#su|&byAO{2IEqMEri~)i}3rB zi@H%b|2P*+XbA{lNXl5N5$Vh5ua9y?H{a!+j!$uLG4@jmOp9@nO?yhmY=_0!O z6&{V$ez!vI6ex@C=9{{n;c?*_9vJ3g_eCjpm7RlsY~Dn*xI24_%2k@rk)eCMV{f3} z2=2S9a(6myMP#Dl*d+6crJ!{9)o1hozjA`dX()C?V~OnEJ7X%A37=qaNF+U{d&#um zaewaS{?F{M1KEax${F?KQTd5ASF7J5(&ni4EFZBF-ApI03I|izf;+KWkzh1M!Kw4b{MCk%h}tO8L{=}2iuG8Y zJsvG^G#Nh#8${3wuAr=Mdr|6HUP4_M5o~!wQ3|CBmQoHU)Vsd*^yw(! z!2WvfWQ>RAr}fx%1?m_FZH(@rtFpRvCRc|yuvU4?{#wGIJQ?v$O7HCJvZgy}iX;b+ zf`Opc^o`0cmAYjc-VKfYGU1Q#9FnWDzXGme|Ay8azGADaZ>EVd^~(g=TpYV)4jzaj zcVVG)Q#uvoF#*0BRO>RsN|r$der)dWmI5G{e_qkEa|gjq&h~kqUD7R>iB!%^s1x-I z!I`(+emWt1S>Qrz(FK9$4 zXu1EJY6GJEWnT$e996AE#Ullx}9e9$3os($|PSfg(!#Jo~bo!ZS{7Nrg5jO+4)0p36iAqfa?)6E$ ze(Y{>`HXW!Cg|;XokhJ>(egs2vGDMxYyT^Eh zL*wFzlQ!E|KEv34L5E+oeaa0IYV1_~sFW zCmaGKyID9kyS_}w!fx{@AQyH7K7BUF;Q9F=c~A`Lxhfapu*f|;UGxNEI-qS32;TxB z+WE{70jf17t|lA$HZAF1R?{h6b5m}}>&HPKL-Q4zQ2R4|UUWLZNyE7Hrg*Wm{_CV_ zgQ)A*5>Q;tc14v{5+_`rJ!h$Cg=#E!Pe`z+{W4UakKlfeVaB}IDfS57QjkJu6L?e( zM=i%a&YK~oLY_t5#XFy6;3)4H&4thDaX_MTd16>}*v@>3Iwr^o;ae&N%KNTJeqVrP zf%AZNi>pjl4G3#)wjNa~qWrLr!`z`VAkWkLMp$MNYUVCVny=bhT6a{<^qi~lF`(fH zVcDHyoiSN=sNa*J%HO5Bk7HckBWh_3e3l1`W~%Zd)28hFg^}KqwLSX zjyVg4VYv)x7G&l{$(E^K(La<|-66-66=e!cjXDcvg`?6c4>+1GAM=VJ7ZL-uI#j=q zepGH_Gt3gUno;aLw2+m1JAq#-wNWE*NnL zsM?domP#>RC%SF>?EeoJW6LpTzPnN>_{iX5QAjU+C0iGG#25Pe%Hb;RWPV;|C}y(_ z83s)*GMZjRBxnFErYR7cCw{5?Q@|;Hbww}oX$CAl3^WNoX7@}8yW>0*K0cMB)37W_ z)!MnGwu;_T0jPw>IgQcFhp0Gx;mRy(%}$ny1CPfUT1%I1bP(;q3woibNaINdLjb-e zr`^twosUm@dCe5BDg**p@e0er8^aH62*o0;gudY6_tTW^GS2ar6=k!ehn@3R#&;(X zTJvd=UDWT!=h)M_vT*&o;O&C14l(WPv=;#s-c7|^7*{5^>Zh+pa8wHGL)$+zJd~$a zGOIFvFUWCe*N5oRSmEr~y-+a@uk%ZI(CCWy;3J|R)#3VKSv0H58Mu#u<$^8-xK&bv}vbb4g4~rqS@~$*W7B4&c`_-Xgs@53;%17TnJW$q{Ru;3)^Om5$YL#>nDW zrhqcEJ~m+N>8v;7h|X4%_eIF_QyWSXA6v~gH=&ilsg--;KYj?b-r-fO?0lLYgP=mW0~ zS&<=eFS>f_`I?}8;KY{cRxQ^TE%o+V4Y?%|t+ExiT5nx9UyWdYZGmM+slLotknJOy z@q(sd%~~?Wpyyfy^rNP6Dy`i|T^1!umQCP$P9G!Ho*l9sP2)Ga!pLr}T8!`Fl?}3N zwQSqHh9QKJ5&me+)t2qh#}US$=$+%Bh2&Exam9x<|MVtmpBy?2C8^@T@X&l~0ozmjknXyYs61vq@P;8`h4 zuKr;0hw&_U7geU>4JhrV62q^Pn+Wneje2I-1-9w7WYuCe0-)Ot8fDNPA+b$K_8&9% zsT%`qFY|Hs4nK?m3v(S&bBeVNVpl zMm|7VfwJyDwsQWW=vNv*lcG@YMz-F8eevfyED7TA7-X2xV0x2*1eAVp_LU1IG<*Pr zxUs`+B5DD+T1lyRz>~3~pp^T>A|~O#F~Eol=f!nD1CZq@(7_-FnLVK~=8}`I7VkYJ za%{{*{-{UCgEEo!ba7UD^{R8({QbaZuz~^F{QVQ4U?6xxq=G=oBV(boGxl=|-U$63s&2Z znKk{n8PA8Q+=o;j+*z%pJ!dHZ?2NDj0qs>pt3Heah}9cnNHf$dyl(d}4!Zb7`4_JZR_(sUe0qGNDUvy`u$Rzi-)bs8a2iC`WHda|c%S=}Vr zQGaG3PN(I2-^{7$ARynv|y*c)b0fl~J1M1bK{ZwtQEDeEQgG z>wJEAslNbM{s2QwDAmmqLo#FUjn+s0@M(o`zjVYzgt<<{hsWI(W5W>Zh(bVy% z#D@Fhe0Y{wO>P$34z`nB4MFsResN(|=O;(yGQ-0S2Rhw5L|T|!B({0?K)4}60jr>2 z^@U#y8fM(;`3u(>e;SF!MCr+`xkv$+9g80vU@Kcd2J}8!e z_?fBOZi{(*hod?F;mx`@$*H=~_XKl90cZj%gVy;B@n&uho?z8j>RW9>Jo9^va}*eo zAzOroL_*d3;t=NKRS58|2Nvgi196#PWoQJe41`tFYn*K|q(CH>d?)|Z_m^YA27w~@ zCjH!&rQ6uy0-x*2^DqtvU>#F-davet@W^y3Ta`(mwfcBia%r}O7#%s}99A(%z@2$J zk%~d+VB2Ok9w7UF3pIS83o~2}EH69_Xc#*Ly#uSR{*56^Wav5`(LStE2056zMV*A^-im^o|_?< z#Abx6R6%rw#F&7xw?}y{nFIdjH@7XcGkvaZ4fjcxzmYccYa-gmqxjBWSebe;?J$By zRv)V-;=`D;)sB5zXswyrRsv|)ZnLnO*m%TAp|Ca--y&4E9bzS)tD&P`rb0wG*)fX< zaW^6So;hNGhOoP1`Iq>J4LL~Th(??2jug2(TNQtP{Eje=D2G(iLO)aEh;jbYnh-B^ z>4eAPucXu4r$l001uYK6J=mH;q0Y`Ve(d$R(1KRu^0rg<OY$NXu>A=a@=F9WFzZ}s0&;H}y2Gr_o)5iV= z4-6KuBG~wNSkfxxFrnZ;N(FnqbS@T=gv{g0LMxbVE;({O>Z#cnQ$xBAEBC8>7>Rq%hb>!*rL${okS()r8^!R(|b zyaB%p7|?X3E$yI#oxmw6qlq)!JL+8%CRaok%1gY_q-Rkg7nd8qTljI63uAGbKgNGo zcb;v_6+Sby(@&ml-xlgW8u+eNd{%ml=WW_Q-H9J>-`$BeB{;nw3`MKAMt&dp7rd#3 zsS&+ay(W!Qb1~+2uWzeS#9P1Lwx^9|L2)C8Q@b{!o!*~^sT`3`GWrt<-)I#ye0u0y z*YPoEh#+J+LCYI64^EfQdsVE!tkr8pXU5l4yUMpO_Ur_@8odrUT)IRrW7Ov?YImx& zfOTUF>nnaY4f`qnurA(oQfZzo@Uj?naiNGW-L$DA%Zo3Tkf^*k+)M0pz~I>yf>~1*aSOA z=*rQm2lm*dVzTwX3D&?TlS4f+ICf6SD-h7M(<{SyIXkl2B70eANC zsvN|kSq@nXk7yS#K&9l9%iKzd49l5z26hd-zzhO%JgH=B>$CdUtSf=l4JF1#s@q{C zN3eskK>1yfr0^+{%sz=7)U3p*YXMk@3^?2kUohh?H`Ifq=Qy}V1>4jD$UD9*{O#QB zpM(AA!&|o>I3_((m}9F87I;jICueooa5nO)Pf~ou8rux5pSf{naS3x^ zKqDgx@T23Wnaw0pL>TXi6}8V?^f%vUt(}!AZ3F=n^gJqN#JvesIrPsH9+vfw);WC< z>+|>JX;RLpJoDNodhqY(A3X|m4yXLoD)hXuZBJrwsWxm4gcVXixRQ`569Z!K=|LXs z)n%xpFmBGf`P01~g7{{EK_6?ampc;lu8`xQL2s6;BJ5{?#m88;Qn+q9?1Ql-l-Z4!o_5 zIIFgXV^W#~pLW{y?{b=*b^*~!X2_)eaaUW`2|_VvW%z9lxGZEsh9C#d3Pl;W{M>#r zoQo3SW1=xI#k6C0CjyG;!P?^-Wj_TJJTu`^4?%%o+wxS1nx7lUG8+v6E#0?ESg)*C z$GYPi2`6ldr1lPtl*#{61VR!SIB?43Z8vBp@ZBrQS$?OY_@+Jstl2R+3}^0Qda@Qx z0gH(G^#l?*DW0{xddTEl(y41nW`ntdU+bW%ZLq`?o6j7t>tbSmaSzK=i=Nb0%u=EZ zmdAA}AYpThUi4knoJNMX8NzSF+v{ud@zzb!wt;qr zHVmJ-%V8gzK7Gf8`|{Hal|g*>@lkAN?DoA@yNV>4lN1lH)k;Q|Gb5Proy_s6ZLI=! zJv|1fxDAMD$|{%>6>KLvIP@?b9``(e#FHRr7e%odjjlM;i&?B7?!O(Rkmgfi2z{mQ z*bjk#U0lNyuRQ6xtm|C}*pj5$z$G+G(JMtF4#Jgz2s&M|<%thDizxg2el`K{6^n1< zkIy(xlEfI#h^RF$#(CK0fpOSN)oXL~mIH}6DwvUG43fSUj1cH&=iCn1-qG4i=S7{Y zVSfv#PPD&MCPad#h_{*ju~g{sSLm43tEr1pdv|tsc_}XV816qft)pXddTiy5@)g8Z zQ4IRy;)BeyA=yn1T4S8%!^fE1g5%VK`Zh9#veC{H@ylo^-*B}; zP?X6*;bD*D{?R@!+j+Z@3Qch*vhgxZ=bDu3UuNbh{az>U14IZax_TCTj01W9|8oIr z>Y-8iS^f|qDPX~PfLa4lS7i`{d|n{JRl5-pU}4R=#-k{`<5pW)K%islIwmU9NSK02 zzyT!Gw3lR^wBM@gbl;lhmXd{9ysxVYt+2JeoN zIOZlycNgXb-VimGHVN>Se$9F$w~)^M`(G@g{1sh=M?k@i6GRZfgAq;ihYvy&QV0M1 zlIBSuC9uf#IHmJE=XT~gx;;QvwQVIK;XokoEOtvg%VsjgCL<|qcVKVW%x8Au`QM#X_`Ejwt%QKv&??D@t20U!J&~_~F$z4qSRqBPX!;rG$stG~V7OYj zp?WM5HjIH=EO7M8dd4I10gh_@bh)GOnR8=X+*?i`nlES)H(uvBQ|!&kCTwfkv08Id zcYVrPw?YreIwTghkU~_iRjd=AcSFH?`85V{pEQrK3uDE%<8z@iv9O9Vrvp`(mx1i% zd7l#0yutr!jcYFXct>7TwZ-5&Jg(^~47U6I*T6Hx5Z10F>zC+V{Fkr>&fHm<1bU~5 zivZ^YtT5l{Yf4PD#}a#|EM*M2IS9k0H9z&+ z$jHsLeiKiwhu{o#1JDRI2UQpZ^WJR&n*FQHi&2aS*DgXSMj&>3u(dT=NW!Abn=iST zK_U_Lpq??BBs!ssD4fUv^`Pz_E)!?8%_=)Dm}45j0J_|8tf2F>7PG~ij28_f$@4zSw^8>vF4XWY`M#P^C~bXbCTH*v^@Ycc{LQ0gU=J8;6m`OH)- zF|%7H)E+PM6?wlv~Wa<#b;=$#>mBtRS`-w_8eZoD`)>PSwU_ z63fp`Z4&m}YLu7wL7+awWE`_`Z!b5&%RMgHAPfE6f3bkGIDgc=^b7Fd=56<8Pb-um z_Pe(0@K$PmV;>ccM%tZ_hIC@eF-?dqnR|^3;X=quHNc>|SbW!*pEeo90T=nEtQe89CcN!c6eVU*h8T<(NO#a>~U`u#|>%+V}XePWncihUw(KCi9*hwf` z1rF?83WVv)aHON>=)}o@QGtOTwjTTeQNFUsnFH=ynv!yxosf4Q>*-G}aOG5BS zPb|QKYh>ZSJ9n+`kTJ7q+0t~_ZVXbJm)!*uE$H6i7+B{jMDVmQJX_GbLh@7>XH-~% z0A(w)pwOK-F*_6G+A!uPX9fMLRk{@8FacaNI84jl&EwKQLTgI;|!E zC$$!(-GL6g9Au}KRPG^GMHi!b##IGrL-JpNL#r@aNPk4*1 zBRtrEuPtrU!Tz0^A9w&+3DJPNYLEG%pnLfR4nofYQDxpF+Jrfy8@M3!=!nLI=UvZ; zWfwyOl(yYxV|%*a4EJv>{cvwIrp9&OI$x;6&aA=>4M#7+Jp^bXi_yp|4h?H+hn@Rr zii*KIxul@*H5CK5)NKkAP>wE?Vjw_McNqjQgopqv={*v5$Hb`8jOS|g!X}O3>|H|I zrY}5DJNMB1o7P&D-7HP3krXPa;VMM@r5xBs3C2O#rxd-u=il>79_Jt;j=QOhKF-Lk z%bus9sW(dq_`0)dI2Nd}(FHkF(JDl3g*LPOGJb%yw<>vemESLK^8_|uZ@u5nTku)Pk`C|Qo?Ij*8cl25$MGaI5a0AOL> z8;voD(rR;jazw(G5xtqYe3rjZ^dddQCU%}KW@s_}&#Ss-YosLYqTl<`$%ka05)mh` z5i4a2as&RAxOO0B7`hPI7HF+zwExAVGn`{HV0UX7G?N~Y+(l<@C$SMSy@V^k@yyraNA!n)w{qYRi%Wgq|2f@g?7?o`)i-^zLLAs0b~~48Do>kl|%V5Z9v>k zI}Zq^MoQ?5CwKCGXKp6sHq}RFsXwMK1 zOvu$xH z<$NbkhM}mdNtipkeKN^s*@zdI4y}5rY9-p&2LZTkfe(Oo z3=EV&a^peA5h-(VD5e)}X3SEQ(4^zB-bQFY$=nKWGlJ%et|4qbJj0jcSzgi z3@cP`WnxpY!(}=Qv&zh8USnv#!E#QNu<^ka$^Y+Mp{k#GlAj7Q;5RPBj=wyZ*Chh7M#^8fWr7%wTfGDiby?o}iF$B=kW? zlvjA>r!6iH@8FS&+QSrEw+vyWj3i0%Ypp~!Z_NDfN1blp@cB&}C#!<>vw=zhRdKve zCIbZC^#uU~O-v9A2QLfxA9Y~;GN9b1>pmB0U+TYZgCnC4sI+NNNL9?$fb$H;YDTMH z?Y0kmjj6sfEd|^bCxjmTSNJYzr-Y&{DCx|u;=wGXw;i}ZAj}=@lg3>#FQH(b@}D=@ zhEST{@&pMMo;H4WCAC!jy_-DME~OD(-S1BuyZ7?O@8^E;C=Epn?LTRp@6hw^+UB-0 z$Gl!{`{QlZc)Dy^ZhP9?vBdLK!a3ji;sMrP(G1-6UmHjm;pxh6#}d{*wKp2U7iX;M zz&f5KD*d#!pFsY_wrtl&M}@GaQIga>3=sp&1}Qob&9aJ zk*_o7!4`@ob*^s1zCb!btRS}*ZmnCaL}kUAD9;G!rqaOn=(c$URs8NOSNgf|KQ#g) zZGe^wiQtl%K>stAoJ|00IFq_7MmlAnC@dcMwC2T){}OL?axmttiB9VpL)|YoCSj8vDAZ#?uz4 zMwEWxppvIVkaVPoQUJVe8zU}Tiv*yc!dOb{2YWf&fXX)4Ix4xWpZ~3B){=XsEvKV5 zPLpK#oXPu&t9ou#mUVI(^L`?mSmp{{I&dt8I_E}R6Q4=8hEAYH@?g3g$v)0ne`Y{g zt`(S5rbZ{q{fx=#gQ?MVMe*eP2S;j0Lg|ESN)aajCc(y2%) z9nL#5@#tgU7m)B(XfXl&)jpy`VxOF(WKHODQiPJ~^8LY$7OrN!I=Yp90PdeA!Ill+ z;s@Z=pr>B$Brxm|fLL8p-@k?hWvv0ktY`juxcWJ)s=lJ5ttv(&bE2`R{rGs2bH#wZ zj#7W|@h-vRvbkGV)n`< zhzJ0UMWHu>!&zxPvGyU|;Vj=`qoaxyqs5}IZ)-^Y?VJ{Yi4FW?#D0;A~&)ZYsPxXI$e|W|F?5h8o5-)#? z#=#@x|9Om;!$+Nkn)LFZ+fe+hC%>X4D0_)V#j{Ar@p%Bgqh1)-0@=SV!SsJQcTpgA zlJy48sS|V39eUHqg@3qcs$o(X{*3Wv{Wicd_z;xkkuM$*;cZ4wvj{tBXn;Jr4e(o4 zf+W1u@ukJ3_+}>L)1Xt`aMJozYUEnjE$LT^wEEk4MVunk+LuqiWP#Pw=fIXfqTLf1 za8AhYmFp@iHBxxKhbXEwf8(BDkY+;RX*My9VMej-pdur(7Bj>R3}ugqQItAmV zOr;$Oc?%~e&DOU-C!Sq0UX2$O6SaD`m zXE9%om4ss#U<3axzadNK%jcLpo^-pKWZ`UOUsPR~yT#^s`+g=%FUVC+?QncL^*-O1 z9eb2&_pDS0W7X3#rXVe1A4vQ7(Tbn~#*vCu6Uve;RBa*7l@PC(u_)ztYy8L9WrgDe zdbuD#!36}(w?yuZ=s=!4$Yiq(J7K2t<`4Qjz}r6`&S%kAt<6PwE6E6HGQ2;L5(QFSr0vKEs z4efJ}n|h*Lgq@ND`}r$ucJarG`miM+)z_}#8>e_yLN?F$4?>wU(0rl1FJjCkI7YL28VIblTEP{fcnAG`;$W&_tb! z1n01@RE}7Gq@~JcMXjmQOXF`xgaLBQ*`i=74Vf9&BF7qP{N-g(1OfyJcy=h-;ZdT< zeA;IBDm1J`ctV&2TZQUqXDwaok%mf+nKsqE4{JJ*dmezZh;S>!3#K?j$9YR%1WTTS zECO?!c|nR5szX?Xk+K^Aj(S-$W0Ym*9X)VRs|yiy#ckl<>QX#xT**whg}z?}oG1@a ze{)%&rEeF?jFDoGV60luL`XTi4R6##66#s?ojTnlYJ|T}pY0ml;PaZ$jD@akHqPw~Td>p=&4mR6{q@oy7%Hn@XWou|GE(8}qAd;A z1(>$$Jtz$f8TQj=#9-y^NADzDat|W(v(gOgAQVV#V|I0T_y&_?Oe4qq`5fhsNCu_; zU0bv7pr`>)u}AZF8v&mK({1<%%NMQ~G7T*Qc0g$=42lr5g1}G7LC_X=Ml%&%$;*W9 zC@}#*X&WhMkQ0VfZkRx(#DNEx6krM~z+tm#cblbv0w?oj$h-)0mK11cgS)sLr#!?m zcKj^oKW(_ek5ze4(dpX8m!U>X#B6Fa8vhFRxyZpp$>fJ{PUvy9ePndVvvd@&zj)r@ zU$v~O*k*@OA8i1Z#a!gb0nsh1x3zx>HIcRbmzZ|+3|P}7mstNH07eQa=%uEC6}lkk zZ#NlgHaWI1{KgfACoDwhrU0m-8Xs`T;S>7e^_wOkai|B8KyHRhLjwxM%Sd6KV} zB;7OEHziH6-Cl&H7&hotF@);2zv?Im{;jR;vd8Y(H$`E4D;dDHFJ8Ab9tkS9nLkoP4n}DLrl~k~Uk9N_LSqE)ur|U`rZID@khjZOqlmA@a z8!^VHoVwoi2Lc0#a$O@-h*K7rC5}8>`z$mMF@78fKBZE_C5EGtl6Ii%M8B#7P`+P2 z-PCT;Z)Y0NOOS7tNBSHvThO@S{;4PY`W$!S4ND$TkX)N21k zh?;XV)U%i%H&WIQ-2Wk%@4`2{D0g14#mKwm6_w2=2zUwQ=GxA7UPbnfP0AKBL1Uhp z=T7529Q;rN%ox!=2CrPQjB(-Om3b*N+|P|-J#B;W@yb(LL{(UshZ4YQM!gxn`4Wld zmpKYO0}ti?96?D|>aI+0b_vTvBy~|C_!ldHEhap=N!2Jx!}G`R!5jsmtusQL*}lzZ z_{ri8s}764xH$fW0$FCw)6zplF}jBjqK8F*j*7Fm3|NaXpfxBrkAsFp;HQAbLW@zS zq1M2Exr3PqrAJ2d41`{x4O&b51H}ONutw$je^hUn8UFvOH%yGIoE-mm^`=C9&Fyd! z$+ypXCmumlLZ~)C7DbEzffEyqfeced4(a>v!cNp@6fgfFT8&)Q^=7k073gjU1R8B1 zJtxCbhO}UIlPSP@`|t0p+)0K594&AbnN&2|`wXBE!6I6n z0o8M`ffjTNi>$JSEPig%W-Rw>^A-u(VsJblY=hBPmE||aP8P$enIx`m4j#q z@UPzzy7aB7|376K@Kx@A!n@xYeWatnQJ<~3@<9f^_@bS%;aI-t7fLy3kb?nf z6X>})zkO}GeXS=DXWsFxN-F_&uzNGRDz5JEI^<_BZBh(R0-)ADZeE{tYg!>jjXo{Y($g=uLy?(Z|W?Wfl(cp1lUYAX_9UylXXk3`MB35;WN6Gp> z>`3bX0(S36gSc8m!5&81AgnM2I|zNgRRRi2b+LGo0h3~qfrbIDf#GvVL3y+}i%sD! zPa>a(!3y*A49UkqTllAb`4HA>M)+q)bVNyy;-_5|c{ZJw0$s95vm@Fm< z(3sRJi_L&T2i0A-bPj`J(gfa|DzDbZt2Jtcvr<1ppj`7is>1T88@ zms$Qcb_;Xh&VzHhwuU#N+jKR{sX`T3P86n|e>O(SG6@X6dPp=vg&{4kA{*gjIZSdT z1=!a0{T$v36P*m8BUI3nihcNTSO945Zom_kc0U@N=K24|^owTIkGj8+@Q8(oAMcN~{f!^?H49So^hGtZI+u9s z7u`P18nlSO+gIZVx-H}|Pb7_5o}Mvyg5KQ+Jwo_E9u*Wyoh=ym_3bN>@GwIMXVn#5 zpn8t?hL|qJ3Sx=CoiU&fVJ&#DnZ%g&>1_4P*^h3nrVBspMh!RZNVP(_Vm241LuJ|u z23sh%JusL&-O`{))W!_j5|oB(udFS6=%Rnno~6KQ!~y(R&3|}Yf?Hq*GMtv4J_n1m ziC#^IMkO#)DUFXiKU_)oS@rM~Cd03IVBjzL{%+Uu3$x2r%IM9gefM2aUX(dmDFU9y zFED8$Y0Y!&8=m*?-k}}!y%W7@y;W7%AI>{6RYP5={j*6`PttX$r;hck2jxG4si?o5 z^P>2N!#@lSH|D(2*-78Dvg{h5wD1&8hvnv%<(Zuo&PYb=CCfF>esT+&y0`JK!mR9g zW&&!nI!m1s33!+c2$qJCbD~J9tdN90L&_kdf?*+$3{qQ}c?M;!-T<`X3gpL;o4q6V zVVp)BO(NJdnhA@g-*3dRZ2_7Sg_i<;1h7*PNOeo2i5oQv6DNr>e<>P9wbG*tD5WLi zd0E+aOwlun$v_Lrg3h~x7L^WknzU2s;TulXVcQkQvdCcN+J_aMi)%CwM{sOwW_U`O zbJAjnA?j@mfMb$-fS8P~6pe3G)&rAhc} z<*n81Cc%9e>1gO5HK1(EHV(&E<&0v~AzENT333hCU4(#6Mk}tsg4e8X?a;uc<(21P zkHgS_mb~!R_@bmm(2*5c(6n)|3?~%|wvP`J?7;QLsbXNnjW60{yAov^iMPitlYCKP zufze_H!R(vQK8bAHN1*yoPE1b(XT$xG~VMqJv559chJ}pCS7#Eq=>nKzF68~Tb6S} zP^;lryBhwy<#*mn^xDz74)PKpU_P3tEiGUvD#MHmLSfr8!fdy1Z7Kj)b|8f~2R>L+ zL+YLyUP;%97N|nS5WQnt)(j4oa-n~{^n|ktNfeaB==`(;>xX_(7+X4@S?pQQ7hElF zt>XyocT!h1z=)K7WDHa<5v+mc|1(jayA!Ok^Uo!OeuvnL4ylbvFE~-Oy z|69&MoZx^zh%(68fxu~4bYp064`Oz>!;w+LYp_8578`^xJA{4L+dun+qF=~x&8pjd zg6`{%3}7IuOCq~^43G>o7$Bofe8&h5)p>Hc8lwckWN`XD;-Mv2=9z-`SO*6Jksnfn zqxruen33HHFsEnC>`$^KzJH7y+$G=GVrb%GY>1$}-DB!(WSi_j17JDZKFy44{utw* zrzJ;qJbn3zr{~}K6|qH)8@3x6K1z6dqW?OU`R^xzZs-yk=1hr`yK-)Aaw7Qk4~etP zoUOO!dD3DB1{wjEH}_|J?HHOYc^pjfQS??`b%V0P^OdHq{9%lKZp&x?s4=T&e)B7xU%cLz1bgqKt8?oY z`xfT+28>2YftpvH`Lx(o8^ZkoWfWriQ%aO{% z=*}JGyX91-g}>K8b0v(Zu#vlpP2?hvpSUVzVmS<<6Na8vTtT-BBq4cKhFeO(OTHR4 z)3J{%07XE$ze&q1Ss{#^(NnW6TVvgoNmDZyOFR{*s)|nS^iI!0R)9Krg9M$B5gb2J zhcwfia8Gl08A!8FZYO(rBH=5Ocw){-lY8nGne#!~rKk;+FA}ntCJ}E9H57nYx9CMb9Lp;C^NK>kFlSTcO$8sQ~O4O^R-d23!TSF0nMEX1` zleL-`%ir9vPUK^nK&xlCM3T6JCG4K=y;y_z&sZj~RICjisl?HGMig}RoJlKnW%t%o zHM3>1PhMA0n*ffLOb9WRl+oH5`}tDiyn0C#rJeQ-6oTxR_^kn*>9aA5WZEIP;S`@USgk2?Nr~UVXKE?Vca8NS1N^Q;F*(<7#^Z@ zL-o4?wVa3}7rAQIB-BOOZwaXl&YO;xGj&n8u-IL^CY+j$F7eX-oz__33~>fpMb8i_ z-tPiZK=*%qV`x6RytA!TS~IZh__K+iZH=BmRl$(!B6uaH%R^_DJt&Go&;XnMf&hUI zzy}_m%u_BK@X_&MEk!M#4m!qAdI8nSPaBw2P~w-D7N(-X#4XBwm~L&PZz)s0U(Kp~ zyX!$R*tH0}8|wWO*=eWPjBZ>vUNb37oPz%ze0C*CmPX?FQy}l!_$x9!4N*p(-m|O< z&?Stl^oXIg=&Ad_lu?J|!!kQav(rxcNI5cH3PG8~9fARlp{6%km zMGqFAe8}G9-osdc&Cvlg6LQpqdN{gMd@!0?Io*RxKSOBI?F?oVSOGStQS(%RWYXeK#o--!!?U`46ITYrQy9PO`-kP_|EoJqmqB+FI$iUK!Dm zP6ch(Qx?*Qe-q@}k*#}b)NrESTBio3Wkge)+}f(u{p3*GSA`|oSh0VFk>GJ0k@WqG zYu_!amLeUr8uy@eV5SMo2I;1f+E@bLZ&>@)J(?a80wWFI)?mJ&$2yZ>>L?8Stftlc zg7wb&IhTCh%BXLuRzKw%+{2R30EP{61X&xzt z=l~>rR&c|8HKk{do3=wK+GS6ebDI5dE~a`%ODnV*(6u0Curw2i5CZcbWzgs8*x(-k zSjL#tIAgRxhUtcr%6s6vmasd}*6qht?5|ZV1R>!=Q=>{k66%7NwV6j>fZB!iSP$Kw z(kRPLQ8)z!YZ+)Ea-(O5vcVrocn)sI0)~%7mt^63C|(P_3S%0lsf(WSA^EzWjJx{K zdYm9H=)?&{ydQW5su3L|=l40LfNj8bVM4gHe(~M8q? zh+YpdEeA!xHYEnI$}A>uuLLer_@bY}l?xl?#vzG3aDb%Bj_U;HxGcCKxtfSl#1zp4 zK%uVZ3OEQ(_sKaks@Z?-gvX8ifOgVbW5`1Fm<4mrIx~`OI=5`LA<5 zMV8;6t%*lZF#Qz0PCoTUgl!bZswkY#=5C{#h8-^{qgijzFO*PudG1LYvgVm|(tyIw zS7!qQS(_1c?dvb7U#?u~F}}HKoPYRW?BC0-zrT-%&krCDsFx~Dn~CSQmEF}{8f(+9 z^L(2-KK<&|f%t2juXMHuI{4g15 zzJ)^DE;W9OMw@eKoAz`mIVSQU-^w(NSS--$nd%5u+VGFCo=uv$t-?_9RFX$RYcpn- zWHWhZTk-JMj*8V>BVyRxTat{92|2>K*w|8ti>e7ougc)unanlO{1Ec1L*e-FRMZ5- zj%9M>ZP49sU<#5@$gqvWJC}|xpSvR4I$pSZ4Y#I;$9x5VYlI_mK`CO>SNt&P@ZW-- zsca;T^t&(7DSvbO{LG^6iZ^lgH9-V69tJvyptvAP2#34gt$m;7iZm((*wOX^L=n|L zF6OJLQl^VEnAD;+FD$Wc%#c?=nx}I%!X%Ws;fpkqSzp~ZlkGMn=lW4h)#1nB`gQ7w z;oF8J#p~3tW+Gnk{$R1@)CW)1P{!YO!F#Rj6+A=RV1c&2J%V|^d*Ar`KRX10na(zz zZ^_{MuAaa*BpaH?Xj{Mv!`y*AYv^;F6L&EGdRl@uNUq?%HMDzA=eM^_Agp=6kJ5T7 zb=Y(<;tV401tQtdX5|gfBIUisr%%h@O_4&6?6!mW!|L>gmOPh8L`RD=@NzCh_YjJ zX3P3^bB3fB4N_8PrRL)IM@)82>boN7-w0rFq5f3()7lHEiqX^U47MXXg3+xojo~SK zOeNAx`uw>I>o?km+$;IN(M}`_Jmt4TCteb2&<|4-DE&4mth6Gs4^+^e%5)<;Oc!B_ z9d!i7{t|jy#K$c(X1S2+>UwwbLubR(xuZ_}h&&y7{F6e_e0K}WnvMZrUCDzsX`Nd~ z*&tZX6GQ&z=FbgT{C8J%S#4m+jl8Vru==Anw^cEse;!ah5j_sx={@*XvFlsMpP98P z;7#)Uxx(uAt3g9=l1P?1{|emWJTXV5EmgzRdQ6yRD`1dd%IU~ZblMJ6I}KI6W;G=& z;Y1I!A7_AxW}=Q0y_X`yu|tbW3|WH+@M#L+<@tJE4%q@Nu@E`@#G3y8bAx*eNDQZ( zSKNZIM-oP7PP6;O9Hh#Rh2!5R${5HS&~4RDvL5Ym)9ZL`@!@3zLziuD+PU0i$eUX9 zQVBa`P6$-&hwqZTq1YK?u)UZ9W_=>tSG^sYgV(eRr_Q#TltS)W@cc>h_Ig)Qb3#CS0EO>VAJ?dRieXFSo#2f zu79G85zB+Ah#DvZNd_XG1@;;h+Fpec$JH15g-qImd-`koPHNEi*k%p2wE?r1!TE-mC%drw*9e>OOBo zDu88%dcOxEeAGr%;&EHP7UN)%9VqlVIUc~vt(hhOcMPNWXZ8MwhV}1lh*yceHsce^ zPhVmU8@~=0F}BE=eO;&O{>vql4;~(N2B8^Ohg4h3k{M)Hu?07z4`KI196ngoP0paK zxZ9V$(h&@vBC!jXXv6RAIsR7^na$BU{wdtPlqjpAu$2vJm`wPRtB{$Il-Vwm#e|D9 zgyK2p5E0EnZI)|SQTrE`n0|EB30$7rA!VjnwW8hsI5*pb^w#RSgDN1j-;UN2gzaE#5Ey3Jyj-rK^Hp^R=v_AdA!up(wlt5-AgzM36xs{Hl-7OY6sflI}Hbc)q$q;b0R#{GS_0&Yobcg9_FBmU@_ zRWrhtZpyG!OO@2oEnCGyP|ea(@YdTq!4>-vNGZm?m7v_4b`<*058L36muk=osTiv< z`u*Krg=INZap~fn<*!vi*V3lj^wZsWN>mK+eI%vLR@B?aInqZpHkz|9Yffc3ud^6% ztns#u<&KhiCy$Cf_L8n!_QF5OF%epG>(}3VvCg?a7U`Mo_1#v;aVmY#!F10zsq1iz zM8DLedc3fwRve2S;x7u+=<{J5#V}j<+i(HU zL+iY}q)8EJ#9ZE`G4DAa$II^V=LzMZjaus{`p&s2My-~WE77JZp4PMG*Bi?CMiG`D zD!AD~6BO$@#DVy!aUC4oq%E3Y84p?of1Ar)fXTKXsiD6LKDEjufQM!baGz(z{9+rcrVhq~h_U{7Z`8X4I z?TrblP_0MMz!b8gP^jg5)TV8vK%bm&3(qh5Zlte%{tBaQS~;+@p}%QpdiUtF0~5Go zU4mTLvuJg%;q%il`1oY6yEOzT476>3kiX+KCy<)WAS;XpMu?W(zhBwux6!2$h5jUk z{D71?Cx&cvyt~tQ`sCf~^n`+Dx8mI@w2+W}+`GXCUqO&+1@u{9c_gD_lE#*=A8aJJ zarrO($E^_j4YBd20ho>c^+7lq7G-5h(CRP-B5+;pgMa!a>cK0>^S`JJNLYg>tVm#c zfu5f~*^x3E4X%WBmSHy8t)x8ue`Xn3HW*c)D##OPVsQYWa||??+H9qlO{WCP3@*y8 zuEv=mCObmkZ3!8j#uJ@pm^pcjg+`c}RHao+t+vARwg%i}gq2w}R%xTj3^g?J* ztg>%g4@fHwrrN;48Az(``_9q^qZJ1HZZfeDCSlc7%`#zfcQ`rF(~^d z{$68**c5=CWNM~k4VkoLt(9vTJu!!S(GX9OfFQN;BqwWhL0ko1 zuKfYq46Lyr`GF?ND==ACt&oB;LmT}F<$uOqQj5i!hU==AAU}-Qv&kn@{(m>gwqT06 zy5f`q^zDg8`2y_c#ZW1LLs?=Pg3Jgc3xsO*C zO0JQ!pqv->r9GD^@hN6|XnW6lv2ZqA+H;|4ip7$cVRz7Sgq$kMbWhc*pGj>h&@gnE zQ%G&@@XbC!FuL3G>{+7K2N5ZH3J{i2-t!Q|i+7*lF^S zq+FZc0?4=$&#UIEuJFGdI-@6tanDMG)*ie!adnmEp1%oRBLJl<*A_4pfM|HY&GQ8` z*t0Q`JTq1c)hrCzn<0RD0tws1FQu@Xa&9c-io1`J7JKv+D_M6fvetgXayrfR;m?p0 zNIK#c2)0KsrVL)UE%Pho>zv?y ze}yklKoFAu?5piR@5I2_W-OD_xfJJ^YL!7jVxEtCg+n{fMbp}cw8e+sFqLE-p|z@u zJtHisWwYeB<5quym?pQ_c_;=KzT#GeSc!(x>zNath)2RFL=y60R8i!iAXq!~Ocmlt z(I2+yh?B=4n=Jv(P>W2z73+N*47`66JTLatee8VbLqMQhu8Ps*2DmM=^NGwzS<_pDWbIjll1(vrCNk=Bw`)%V%VK&ngW&5N40+bJ zXze-RFFD9_VC^|P0Y;6k;2Zrn^{&>J^VP}N^e|2jO3~0f$xrw)9`K2BGN^df&Bq;B z;<%sWX8)iZ-Q@lv}1mtzu+4D%Fof&)A$wqsA`ew$YTWWwfGUBG|#Qt1yXPGYeQs z^v!=(Cnme#&SL>|!%#e8A(HR^jzGe%b24OeuX@vTi0>-}tcs0IRhr>({&oY>XQbok zh8VD-#5)jI#(4JaGsPnffM)Mlh!pT9*-o_*AeWTEJ7NZ#v5~NO$D@X_OikL&){m3a zO)#e z?JMRO7TiY_FrW(vm(`<6os0ewE(6-zq)lXub2T%@zA{r%11sLkZXxu0jP^b(P zlZVueq-EC8-IK7v5qTYIXQ2hJ*VQx68QwEb z*c>}o=v&~+|0bHobKyz70*12NABG870NINf%zGmUupL9(r@UyLu*L2#ZZ=2I_9 z*Se{fETErKd|X|PXYscC?=>dK874kx$o%bR$V>Rliw8=gff))QZ60}v&?517HH%B} z1=CRsFwh)@BBG5d9!Q4~7Lx}GU`FGCLSg2ccd%H1*|=o3SU@{GjUpB($N~jHs(4?> z7iFH%8U+Cx3-p|aHqJv#P(H<&4{G+t0tE;4m7-ncMe&~W84BQclB-8bBv_v{{oADo!ZjrO*Q>}vY5&h~y%iFvpW5?CE{pwD6~Z^t+P*s}plWwVC~i}6!ceuSCw zWw;EXJTd$!Y18MCPXzbbgGsf&S$r-?3OCN(Cb0oA!Ay;!K|p9*~5RO+2Gw{T2ov zaa>nChMN|vx6uNYYO>>AJ*;-US?*Ob;C`K9eRgF*0phjKZ^D--L4DGU6$e6Y8Zcuu z>rt7I52j7d_U7~Ro=9D~Y)fT}8WlOaRe+!)f!F2)#y{E{46K2=Dd`muEh>7dGOEo0 zjalH@AVxP~jDpSs%`R`+{G=V3U#`w`6B~@jp%O@~^lWQ?yA}(*0jYIpgQX5a;-Bz& zJirs>ne%j{RSq+R%x!Po84u-1LOGLUi<Ab{$t(Mg@dxd?rR;)F6vB{*Mw!G|?zA zN}y10TBnAny-*b-LOqDJo!H0df6ZwowVOLRQN$Lsa0cn23N-4Rw1`3)LrD z7XIJ6Y2^JX#!HikZgQbs8U%f&UN23emr(~TVgX?r=_0y{1-*1hYTDEmQf6+lL|R1R zjlir@lZXq9Ceh))Z}`UD`3^iyqQz($#Q8;gX_0x8AKI6wKr#KtDI`RxwDEa2O(FqJ zDs7_L!TVMbyXd{N@yj0AR*}=5BhyF>uCxe+CXpC9X_0UmX%U-oq>Esi-py9hOCd|M zv~!(!+J!Vj?V{rSR*^lWIShy_iL{3-u%JDUfCm-?9&rXj53F$ku2Xes@#eEFhc-Xi z0E9`<0mD*6ed)v)h<9t8^C_nkpBA++GhjaJIi3P#3p|9}mG8*spmQe{c!@e@c!15W z_;a0vxPNf938P;W{`HE%1?zsw@}BX7=h$KHcisR=U-vv2wPXMmBWS zEX@aD?qFU^pYyN{Uu&DIGst+Slc#zqPX3Q-OI^Cw~vy4}pr#&kY_j z!=V!txZDufWS-&71lP8X=QB0yJSOOk=_rZURRe9|bR%_s)Cl-`h+lJ>Gr(IhP6=bsfUzh%q)w*L%+hC_)-|+0s!0aTK zxbB;kjoI>-us?rwL@xz$`oO%|HpQox5k%1@sCC+;3R4we=${6v1@29O6@FPb3B$ZH z6hTwyC@KSTxF!UDlQ?I89f~m7+lyD*1AQ*>*BZ~_?W=ql<$y=xQgvi;Qa2mpDlr6C zjx08cn?%8+fd)!SUCnOT0`^Ql|HOn)6u<`oNLQ6&RZDPh8P>I>)x(_ zTzLI^&kHmGG-6lzY6l~BO+LeOm(8QsBFZFvKgSu#k^9jWlzmj7(mWLOg_g?6Q`1;q z;TsXFDV3-N6x=b!O3OaO#3(KtQSr2+-MF>FjJF{yFIJi1ZrZAMMdyAq3EW+BY0&tmOXqUN7G!?RiA`bNDpBX+! zVuLuO(L7LKuwA>iNdpKVKc_^2AqXcAC2`bL*P|3S)04fc0V;XowSmF@9 z%Mlc?v$E_veha&;>9%*I=baKV53?ez>B)?*Y{*dMQLKB3Aub{KbB7#r_6P73q}j-J z7OI-|FG-V_Vpi#tyeyR5@p)^H={akUi!*(XjQ<-l+nO|;c1_Bq{NeHjyQ!kj{L?)R zDTuCeyY_ftNh(arv9=@=LQ#ia(POw|a_A+gtQ9L(j=mBMp9({r9`RBW^yrclK3C7F z;)*nWR?jKDM$c)XT~Dc_zb#L%=$u<-S}f^@Z%vvGu{u)+Nu9Z8;uSs{5}MgB*`vX{ zSO=-TxLCM@1n*maZjS^{SE!3rkNy=4Ue)_a7>{W3JH?|)Pum4)j#yhUw^;75!#Zc! z`GJP_tY~-MGcVbLPG9a2aONk?11?L^U;f43MVUNU%S)m=*ekN!qK5>J01K7;Vg2@i z@?n~ihcr(vjjMZDnH`Bf@~n{f0q2rrH@0fnIh`i*tcVjSo^G|~HqoPpldNi(yZ#Bu z-rP{So4S_lq1XJ=Ja>8jRS7%3Wf?&tot3rOTYHS@a-_aAEL+R#8tq_ia^2?&JWY-(g0+&-4c~{sOKIfkuV~6#&k<&vB?QxM_f_JXA44u9mBj8M7H2irG z&GlW!Z?2lq{K#;+whWwWbfg8|Av!V>q43>qG~|3ug}%&mttMArhD1H#4n3J1rG#2v z2F@|slHiY#)47(+SyE4i9E%^L;kaSANMA-L2i>L-*WFX}1&I-TS@LjCMz6VdD%F19 z@Zk3zzea6}jp?_v7ID7KJ!uMW!ApRUn5z$d@=39QlQ)Gh32I!F?<=yobeP`v>Ne*}8mre~)^0^!U0JN{tiB_UVU=C-CE0(E&P z)(-185$u1S!2`EgktoKy^?GGP05ZzU!WoE-EZ!(F4Gy&|6qO@a(E;mvN)3mJ1vAgY zQJ=XUc6JoLfEHcaSF{6}I+)sf_56_ruRlqCs#bKaioxSihEy6fr1VU@J-r>u>U+*1 z2y945+^)3xi(r?7m;4a2XRZ&at}O6JMIwbOaNhA5fJL-!jw-8ThU<5ACC1pRJV>m_ z7K!;ldaZbrlgMo7b312CME<-2fw8V128Ancl%`C4fXLUCDNz(L@%d*YF>3qDS(Ne# z`3&yRdM~tE+HI$JA-J{8^(7%#p%Zx$e{;9fBRjeE^GSbBH5!vzB-dlhLmEy!&rD@F7W3Du}Tk`q>eKkPywxmUC?aObdB@tQWc5)cA9 zpKdLjzZSmE05_o0aS~|8xYXcqrP1o}9(13O@v<9i1=-;8fe`N$ha&cmZXwF)OoIhQ zOY4(GTYMZnO21SRf(?N&lL{^Bp%QL(sYKSY@95bT;MXF9e)9?B>X7x)B44;cv#Kyd zS5cn$*bX84J0^OEGv7YbK=`=t8u(i-)VoOgVh2smuDu4W7{CRmi+H03AY_Lzi#DfU zH$5YbtrQt+3JrO3aAvES)_fHJwH1(C#uPbGME7(l(+~AE%^eJ4Ury|BsRUdD#1RPTTmIkDESlp6e_HkR8J5M4v?BU6j z+8Ye7TGHvQ8~BE&=AXC01;!EWP+28fRgQzppp#M?wH0`6n=k!C4uXL+qa_1^Ry7;p z{V19%DV&>7bB{Km83dt|Vi_(3Gi7{79bA@6slTqlS$q6NWDxm679f^eYo|g=2gFA) zA33;Jy}BeDCj*>$ZAa(@aAX?BHI~IRM^X{+Kjw``Q4*sgh+H~!l*%BrEt-U=RxMmM zsn1x(@;>2#60x}o_OlHJ-p4dl!bFIZni}vq6^t$L=wAn!om7V4goY|E@^d;2jD5n) zp`(b*i_s&Yl@P-|Giu9lJ^!A{M;iVLrWR0SGKgz>;U$Qbd5%lHUaK>ksr%m!5mh_w zk+4V2+_Dwvb1U2s@o>IKpyn~INT9+Vl06~8s;o<7(>;mRNF^~H99xVZ)dI%ZnG#!$BtIBL#*I)6su+YQ4^X-IY(}Nc(&K ze_I|uNBQ;qfA>Pn^)@=Az?NfRpd0ZI9P_KzU)QEQPJtNF(kOICf+=;-J%k2sU&wFPzy8=hmrH?j~+zB;z;SO)`u4dj|z4+^-u` z?$_3Idya>k^Ko7uaNfE;?{L@9-_DVc~h;sUw8{QWD!u;{)1~O$lGn>%pAw=c~ zMx&C%wNpdh4dX?gPQtErS={r)iOS*SH*1jIxUssyNAz+{^cQY#>L0Y1_Bqx%c-6WJNMMWnsvdzL-Yftf(gS5DNP{*@|T67Tu5b2MRsLale|# zHtCw*zUP-OKc~X^Rze?iZUTUbs3GCgO^#>D9HX*(4pY7s31sYd{|!@&-0c8huP!R7 zO5K#Yub=Y8L|fvP9T2jX|L6bML`F1CB())OzG}DVGpM;V)Kv0%gN3a(zXb3{=$aZ3`Eds1L2La-EHm{Au5f#@*|ua?2uu?J50q ziA^pQ%KdJ^RY;E+iOm!lLRO1L|G5beKXtZ_rZgRoU)~}Lxe8_d@O<|Pu#JH(wKD`-%5g~ zumZ+0CZw1%-;>h9t%oE2;xV5FsePF+ehqDf4#86`rSw?dKx=YqN+-XUZ+pog-}^R^ zlunL~4#`mrkehSmJCzK{wG{0p+E7NL16$@>okFnq3x|^11!%8SH3oTELsJH zQY*0aKstuA3~1;IyUFR?=?bezsxMWH>d2~P%|?3N-4aye4W0r9l6j=|-V<_aTL=$A z8@$ge;IC&2-8#$R_rY9Vw0jP~WwAkQGee@x*M>E^F>4pVivB?ad)P;8^dW}@d!=g8 z2S1}T2W8B1+PoRkluHS2zF)s|IcEx#$&DI`4xty>h4@-*gcGqq6ao0GurCq}x7^mKF^h#ol><^e5vp0t1F_?XlcLFe{F)+PVu z_^PD>demp7yC2Y)>NqeJcQCQ0F#LzGS$XvRsXbUt4PRwKk~T`6)*zhDZDPBT$r3YS zh<)d)k~?zXp2u?WY<2h2dA<}cN`1wh1~IYWy-FutrPd|I9l7NL+k3QMXXg;OhJcAc zbo3cLuK**yhxitGjFDqv2`&1$96<9xfOq@XL#fvtVuyLNI9=R;t`=2Fw5nyf!VsLI z;jU8Efz`E!%zMh5uI7bEweg56oFoQ6dh(u{(;rg^Fv{7DzsV+L?M;7>OLkjBwye|3ghEG)nvn=2<0Ir){_7>ccsPJ1b)f4 zzpq15gyg&5Wk~>BCW=0|$gsbQB}uTfUK_(u$FkK}P+T;J6-kR|E#wLXqaLETBZwV_ z9!nF}v`=^2u#8(dyUZ)8JLh$(6Oj4x&z~6*6$Tv-t@;0AY3MSXwFy(D={4V4)4qPL zNyX|b8W2uNO2{K$|58DsJ<)?TRiK|Z1I<-s(!BI+NhssZQ5KbeBzkGmaLLC$qQBLb z_}kG}{^0+?oi=R7P*hZes8H4(kuu)om=TeJI#(nqDPJZh@L%QUBb zsP}DOzlF>-E;F+!+aFoopEc8KSz%+u?1`Xo8r_u`=!c=RZHeBKsB8pU&*MXaX%r_5 zC=+w#{)%q$>=fV6Z@2i(?O0NXg%;awV#g|gXG?MWr>{v6kHDbAQg1zN6QZGGX64SB z5gXJjvQXATG;$sC9mEdtl?|1tk;Zz`X(3#*1l&47 zJd0C|>k1)(#9Fx64Rd?bbZF-@<)hQdOPHs7b z{3or1w=_PmKeVwX*Q++!duFMA`@~oc0LF?z*RN-Id zjmbr+$Nx(eJ6V3yS!}mfHZ0WjoP0z%f+3Fa zf3)Qoq^To+(I*plJoEiM455+%8+FVhTAhur$f)z@1Ac6aO?cJMaYtyjOy46o7+@n2 z+Arhk&e5|TebMqRm({^+c;|p`IkwcinM$S-M)0)+O+TJNNovrd8I#wp@0!E_t7WVcu3N5Z-YHoqtwAwr` zrg&6qbzVY?MpjT)a>eJ`2L7lwH!2lJoWG|?7U3yGIa!s6gE&j{njK)y@z2A4;&IIt z_%}!=a_CA~6OEre0%k2eo7A*65XCfNPAV$VY9}|Wl&R0X?CI=7wYQv_S-9VuYfY#u z^`PjH0eYdR+%o|QkK5y=PtL7_5)Mp=^b0>)q4Slz7h0e}nnlaMwN2J~GJJqA zQDz&->)d9!xh4qJ5T9aff(eTrtpEC+d@Q=9qZ-*zeCi+KW!xhrSir9?s)%GbUsB!}!MyJ8-iDBYvQ3hF0nV`6PyKE+ zJV;r1gB6uJzC)&C76%FBiHTi58oJa>7~SP>A6=3Ms4TeiD!MKr#xDg9j5@JTB zdutN{9W~Zc##2>jeJv;<1(U15q=(IrMhoX3V?4AKN#i&%7Vl%~rgG-Fi8|0rT4Fbe z4kFV~dR?j*<}Kk7UU%pJqYEqNETZw)b^t<&wkU${w+eyI$qA9s3NMRoaZIB}7Xm}Z zE6LA^)k2jtoXvxSKN2qOP5FDBZ0a>^Kb6xe6)VqlT3>}V=5ou}h*`b_?0ri5v@%V& zo;4Vs%<=K-r&L%8pOml)?aX-|fByPXiQs2x*m^eH%+C@{_1`ta`z5{LqHm6jDPmpO}DrsuT(N;SWerXH%?2(rXqfgbRX%d$=+!LVR#zGjlV0PNyB8Q~O$ z5(0v|>&w;XC&fU2L;JE@&V*oD%9cO6T8dho^{z|~W9$A}fKJCK7loeFZArc{Ju-yc z|DoS-l7>+eDnNM=dvmlqIRfb4W&J`^E=46z4Aq{y%KivWAh@&M#0b^G_&7>1bDJLV z|5XHF^J*^5iK?-JNl8P~d&r~7!=qmT|FMr~X<`I@sLg*pzO()8_n8OD+4|B~`z@nk zMA^j)?4!pRpsr<4V|)WJBRCUlj^q4`>gG zJY#bHa$F*AsxAC{E>)JJav6AcuqK}9A7pitbiVU`NiW~&*7y^mpL=N~3)3)tZ8=N~ z;nPPEz3RN>!jVR)$|0RWYf9R=d&i*^PXNa1|6PNRl;HGu{Vshb#pEDDN$AT9GRhIJ z&e^i&zuT#DZBMG-vh)t!CsA;Hv@4>8hSjf1XXAam!W8U|$B2yBM|QNf)O)8KAVU)& z`l)5Q?=Fi8U_FE_iqKyZR^p9(|CfSRG!dB|bw3}!BGQ`OyB}*G=*C!zSD%UfcuX>@ zqA(3qZ*pXC(QNYHdlcDVk*FmU{}yhyr ze@TXIk)a+UlCL4M3L}>1vrhaEn(Qv=K+`F?BIi2aksP)&?)bok)T*mwz-6=ZTbU*^ zj3?RArZxG#;6$q|=rc_EWtO~RNsh7QOozxsPK-yrB3U#kT@I5au^#*V*V7UyHcWf8 z<1P$`EFuSr9Cc9>b=sLtMS^k&RY*ngABa4HRE72_4rTzVL_Bb!%XDyn2RTt(@`@d5 zQw>z0z*W8*mtgdlVhLyF?AGqa6N@HV2tJB~!?cppxzD(f`jTP}b0C6um9>sQ?ga`O zT>-)}Wa<4q0=ruX%5NYH^!6-A0^TiC#9wfjwqq!K5z{!Lj#4L*3tg2kBc-v3#jwIp zT26tDtOi<%RrJv|?kxEacz$(ZH4=|GAP4k>1ghGDe3J|lNB5xQ46;r}AOw8qiZYT+y1Fk=Du&xh@ z&Q)0mQ&5PmB`Y-`A^}M2%3@sp+wA;;;%)NXnBm=8>{>}@g zx<0pHqeO@?&S(Pec9N364lj>WHfPXW!|Ol_*-YvNJT;WDqkBk`fM5a^!OMvEgu3>* zp8M(yjO%8V+r>b!Sk>A?Hk7+vuJXkhrM~0_=X}U?gfLnB#E80?qQ!`>qbn` z0n6mph!U9rfM#6OF9=^jjekQ0^VOP;u?W!5<|E#o*x-jpk9O}1A|7zg4bDo4M+|jj zO7J&ph0|f1klt%LBQSeYfddVXz7s>dj8Sx$7Cwe?B0SJ*72S*IqoCA>WzRt#wQLHu zd*qn89?OWpcJSVqmc&6)=n=w>3ntrY(`l=V5>28QY3EUPCYKdKHW-0MJ{3q&be$=!!cJ6wqDh*w>;vF_;DqBmAnnH#9wO&z7OUHZT zl3ZRLT)cY*Z~(G$tX?t#bnT&8K$GA?re$*js4vuHFJIFm0+~6;;EHqDLH^tjmY=FU ztItIvpQM$&0dG4GN8~@{TI96W%a65mHy?fw+(U7cQ7^A*H$;*xXwx2}(CLTnQ#3I0 zBYtgbJg6)6m8Ylq9@+^uMn8+Lan6SA9x|{9~=?cYljF5|O(+Cxr}^$bBePMC3tK zEEGks5R*PG7WN$!D9^*Pt=up;1ZO9cjE<$o_woJh+GwV4a{AKzpzxg;lXWhyJnCWNp;JR8R$pu)cWZ<5_G@AnRb%cLGK1Ze=6|j-<>sDY-1k z{`4Q$a3e(P2-+O%ECWf$jE6};NF@3)5-YYaK&}8-K&QV+Q;D9c%#CBd61oWOP9pA&JKRLpiW+-G&nup_8+MzOZ#JFmq0c-D+!_SVY>^a?))^;3Ew|Fr zM-8?sW*2oH@1pw$br$kyu=B>9yzoUU`j2J_im)FYq0s|7ZcPfdl~?wd#Qe<@TGg6~ z)6Bh-W)&_gLNC*Qc+J(JYk68oIvb2EC6NawkzIQY*n6v`c)?>Z3Uvme8BJ}1-JMGt zR0hl5Hr8lhkR;aXxaT0o$){;b4<_t9|fqUwE zoI0wS`w`fNc^)2@E5rAa_0{79pFWJ+UIvg)7;|9=hPAl2NJ>8BMwQ!>l0@r+l_uVR z+3V&R-mh7-YcKsBLg>O0%3J%ivDA5Q2fQL>+z(b83c3RP_L#lb?_JZ=9Kp!ECY+&o z)yysSS_3JI@2Kkc=LdUSTC$d-kuM}_QL&Aoj;UEQKXRSpM;osMs}Sy4qaq(8V_bx7N4Gk*9DD#qiAVE8Hfq8Rr_$5;j} ztoGO|O6F@O8sI@`OAjgoctYhS;{yLUB^^7=)5a7$(;J$_-odlr8X@6Wa`H-0j-*TR zWO>zwwh-cS{{b(P2w`Q>p81Qh(Rjkg$z0ebWb`}qHRm-|B)hHFMs)wJqhykmp@cBp zUyyo+K15PQeTj0wGuimLX+$B`bGd+fFk19s@ zqn>4#QY;7ZBmWQX1WU2vEUufT3^%K6*dplpP~L#YNF8-EHyX9&m8%P8X>25K9Rdei z6iL7l214u-(txX;<`E;ix`(-4Di5#1KI1xF6@27~(b#fMh`kWRFFEj?(=H7Ev*GjO zRmY5Js`!8x+(fhq|Wd zgwfxM^yTFBlg1qRj(1VDC1Er#k{0pFEvL&Gs7LV&DnN@XKt;jWxHLfZrwx4~V-kFC>Y?6RlrTH%$DDnc@mTMCWen zR@^@Y6@FakR9#(v*}%2e|LG=G{)>di9A;8a6GS6!?SwTvqf3mEq*YIr1Q5{Iw^t*l z5o$BcFP|uiuikNCu!RL&n1BP>?f64EW5oumo2S909Ca+i0^*5!=&+)6;TSEk-uxOqzHj2(Dvn{Zr*Tv6-J4jq_xmG8VUnz!z^jM7 z(nuMpCn;E24Hfw_7M<}-nZML?SCbc)*6!x^+s-lJX>grdXGzOz9(9{w-^x21FlV=TXLB+de`%PsBxz34pTE6E#)>w~SSpw%xgy@an|A$7Hg0+tin zidFkNaTu&;7zwuPyR&ntM2Y<4Y11L3$bgkfEUlAUQLFq0F43YX8LP1Z^09jBjQtKX z>TU&M;TZSOD!KF#n+7y{z8;{1ogIJ3_9`ai)$-=xG!JPTP;XF9ZsH64gGxPO#6&zb%&6jvRZQ6xFg+w;V`4sCobHz57j!J5fhqXbFaP z0%o|NM*5m~-Y-l)2=L9a!~a`GmXGnkmQ#AwOQt>ZOe>UKQkBIbvQ(Cq;+pnuu$>3J z8s<{DQ=r;oEUU66asMfg`Df2aOP$9Rwvg18Tz6{ACv)Q+OOj?uYYPu)67JfJv7;zm zBxaSlvaJhd5b{5(_0aXRL zHF}1c)JaXD5LL_Gb1K!zi48zAWlJi?Oy#vn3Mu9uGMF^M6D;P+`DFRNiZy%;p?%8m zTv#^2g|mNSkvcFgR8@~)sNA(#(IRc9&q?8~vz^bDmXAZ3xAF@y5S07XDtpylnNed* ziDy?fcjgR1rcsQ(C&?zYuKS0Uj-h94FO|Yv(A8BMiDmPBJxSH;#wTI2vWUfY-ezAo zLA0&Z#_qqZj;L!MVTbgXs`xDh;Io6UO84gbugEJ!ZXcDawq$gSh}VfX$6a)(W>w>b zAZ8Y^T2p{h8*|#gC|jR?f4#eK4Y9EC86M5PcInHM>-&MnY8U9GOk1@~mE)iH2&0X0VxAmQ2Gg!$yg7d0-BG zN#>dfzrNZ>ygk=_%ZytfpJAurzo{jhj(xaULA8vHAagTzrF+p2E@&dLk0P`meK&y8 z8VwF3GzJKxRoWw-PhfiEdb#Avq8~f+5HCN%yS?J`Avf~KAM}+>@TKfg=fIuB9@dV% zNcyV>c86__J=nO#nnj$YKnYUh1>~K!&5P*7)zihOG>G;lD0a1>T0BHqia**S;ySs5 z9&PD^TQ7uFCWHW&T~}K^Vj8;_vBWN(ew~(S2538M)e0fEhtx4^0e2j}e{!Uzs@1gno@>$;D@CkO$1C~Y5p$s4s!SJ=F z!W2sC`33*P$~6N3bNU)jwC%T-)+)PwN5_<#Jmij$#8vlzoez&m5C0vdQ*(w+(GJ<` zH(1f5p1bSgA~+3pb6b1D!P8hGO~Pl(RY#ZfV?vhvFJ0EFo{{Wtry8=^38w2&%2VE4 zLZ`VQa{NZ>vYmfKq2Rv=fE{=LUp}QA|9?KE9Gu(&0{^#9sl85j9c?GtH2zv3e`BzN z9GE`2b4d9g91K5Ealr1!23%iPxtUj07x|Y z^@qp`OzU?2d|s5X8!M8<(~rVmC9PB1&1(&bcGF+RXx-3%(&^|6>*g4^VMyGa+F@m{ zs!de8_uBh{e3h5OubhR96|4=Fg;YrYHD%bL?5ziL9p0`+uKC90Z@diW+aJ>|_)7Sh zWa@U;G3etg9~yMmLuCEeJeJPilXlrjIe?4C2%q~0pGhe7{Y;=Mh zd41GHanF5{%606~5iG#kd8k%wr(3v&*%+OK&L(wg+YjsYq_H<9<2Wqx_m(ivDnO}U zhF2Hf*lYBJBy1%GwR#HgXmV3hYPxXFuQ?ZBJm@L&6fyWqt%c%B<>-ZbQ*3_SnP}~q z88>$`Mv|A+u6YYj+;iN&?YkZIr-sqCrioEHaX?5Hf~LTxIZF|~TvLht4)Edaxq&9f z7IFhjv*D|45~>7v+>UhASw=4_bj{^r<5SJ1y2h_Qv3nlI7k)UIBcTG>ym$!px! zFQ4`rd62Ni4w>Tg5N+B_Z88sjzR{I(%w~5->7E8q4{yuVNQ>L_wboZZjYFukgk!ZE zsfr@vsUgLYz9bchrEm6GpLKegXMQWE@+(5DE?FAiMiN`L#4X9fLn&#B*i($y>&y?4!ZW~9#gxpy4eoyu zcz}{#NGjT`$4DL%@c-+`LaFH!#fIS^k_t8n#-(%-lADQ4G4_#4Q^&szIkz?0J3&K$ zJF@!Ob}`H{9R8M=aj;g`x%9j8g%bsG>>@O0N!yZks{%|i$wqs}7H}BZ!Zygyhl&Y7 z=WG@uj-e)2W+bCPma38J8?H)nxuS8!nk2wcKyH~C;VH72QgKzV!YplLaqW8Lt&(Yn|Q*N8` zX`H{c#nqVl&n&|gMH@3(CbO5y;t>ikd@BQKmqDEACGH04wlujh=bk3rZMuot^z_^W zJU8ld1ESJul4sM&49Ueew4kD<65ti`uQb4h>*vB>mn2dE;F?_#xwiS+M&=4}38a@E zxr%|ZudCD$;Zr1|2s}^fk#fMsS@*U=oOeWpk9+#QNI%%Y<^0#@`#$;S;7%YRS6c6b zmaSm_-RBp>o>d}@dnZs*$MzEr&sWC`_VA|pA0P#fneR8w20g3_t~?BBt(Hs06#~bV ziw6WTY#lLff6Q;QnOpL2$6oicYpT98;xa6;P)wDUbkaV>k91W>3&iG(EDQ?%x$fO6 zz&s_{qTzZKW3WZkKiAfZdiAsetc;6L%?Ul?+3xpT-uC*A5%A!5w4aFs+t$HC*(jSV8poq%x@d z^96Mf--1m&?b+Z}xB9G)q)XTP3Lz}lZZ>a=ULL`PsBp@c2xra|6<*meW!Gnp$sUXGYj z#{JK{Wi=P8ZgypW%Hn=c2$Mh4TX{U!v*A{(^cjXg{x`6W_7OmM4J-&@$#J&bcWnqJ zIcAl0n%yUOBSp3`KP)hUIx29q)4J^k!l+Vu$pi$_XbM9o)c-`d>D{P0R~3J!CFYbt zdavB<_mZiZyA`{98#EVJ<9H{no>Gy;H$%{Hk+ywB=v5M^x}=YBjZ2sEr zm`Slmi@{WMGY#4Z`cotZr4jhY^u9xwEvsbJDi9eaNjxHNw@b46E=+N&=MqLD2l8TT zT68b0@8&Q&r7k$|h~Z@EpiR}^XAnbw(A|Fxd5!Z@uCOaJ3y}xmoCg8d5jw7Xz%)dQ zU#-54SnTFa*v8mHu6Hos<)oj(LpBT7Sh)s@YTgpu607_3EprIVsJ62-$ebpb@YyI9 zoi$!}hZw&kolH!$H&N$6#|h4GQ;B5Q&2#%sh0UB(U%KnIe)Z=TB;QgR4hP!%mt>2_ ztWq~xXQ|b<&3@lUm5Id3rrMj4SY+D0RF~awNZtwHpDW5ftP;6U@T^Wnj#$VKw z88h8vzCESzdzJ#X@;qDQkZJFHUb$uJRFh^UHRmkF>x%6ReZvI4MR=0s>tz)`E#Qn8;7Y@CV zYMxo4=z7;xX|%Q zaL>!V5NY8$*NHnVo^PF@!AQs23Ql~>u9qsEruARziQnHs#1c!Kn$zKr95qdTm5dRS zcmY~aP1wTE(h!*=l)*m87f?sSAlHsubgNR4VtX4MA z%5?P`)^)bR{iwT87xq=To?@xqV#^2C`sHZQOIX!8yr>p;^5!@X)2*DbEgdh`t>)bS zK5q;U|beNb|!l(&r8s)OKtBPg$AKSs3`Ei*uelU3E$-ng2P zzy5TwS_k}W`K1_IGUgy!K%$C&CnN{zeO2lxM$)v2W%^4YQ2Mjf5|2dC)9R+Ym{#8d za8d@J%Ja++!$$icl=9cR@NTVeQOhIkF^8C^V^}TUpZj;)rTMIT)%@lUttZ^h!<^^N zajQ&>w)U+&MRW{rL*jq zv^sD$sd;|SaOp#=r@1Ettva+>lw;aGPgf?!?%7L?F&yUkV>|=9vIU8oZMm>xV#Hd( zkER}HIZjQ0o&3Af?WDUZG_ zs1{mS;_$xjVQYpwi@3 zlpNRI3{%ogy!l_qT2{i2d?iMD+T#&vNQ0QTu>>6i7p6HLk|7(ceAk{ABIZ93R+hKO1bLc=9&hS#5vW zg`K9_QYx7nq3?7A|xDCFZ`)90Aaa7kY> zATlTx@`2Ma{bTPQ2z{NDJ4O|>I+O2?!J&mWSlkFCgJ5ZPeMn(RR6XH<+ z@u?#D{p4JD-SLB(K}I2>SJ*niQ#ys&1990f{ZQJ?Z>Pi;eS4h&vOfy5Q1#~qCJ!M? zA1o8Cl`;>;7`K(%!nWI+@2ws$nmoYFIS+&BW2&#%B-~c?0=**v;u$);HO*V(3Olku zmW>;9a$}+6EmOe6WV}#93jveKsCTii<$Q;LkvNmWYlMtOnWE-s<*arDS;Xb)F za9a0A_I>F~$!8m$sL_n8jg=}mlJn|-p=RF0?kJw*qGvAm9KEaZnB>NNdv)~TcLI6f zS^DNMgCuRD?#FGp`FJae2S<5<{99a~U+@BCSdfaXtH4^w%Wlib2 zvUE}xt{9Ll$y?HbxdP@=UKG|huVwh<#uyab*#?o}8+S$Jgu|Ye8?{TyB!g)zdpWyC zijh*EVr0jaf3-se2hsFn-1#acZhR7k5q%4vpka*A?j{elaW!}6d~v$Jl^K9cND?4% zJl(T+=ihwg7%|VOR_!{ahW|V5P{GF;1rHJ4!_+Jxhru84ovywJXo1roQEYllZI(&S z5vs}!QWbI0Pm!fUwQTQ5ehV%@h*EQM&wvobaV|NxCHqO_xhR0G(NUM_i{w{4Nrjow z?3ANpz_9boR8!{e)uE@fokd=x_V{GE_$nyXTthhGmW$TA z-!bn+Qg}dznO39z8t$HX>qWrB(sIKPb9=ehd=|xeigb~%7jZrVa-`<%ig9T@Y0h)i zYm24?SBA1$kE0#*RJ#;gE%eTpmK?>&I?n!ZY!xwdujVP*AoF2!awPbTh0xLR3guK8 z(7$D4^;S;$%k!@LNcOnqCia_P9k9DNoV^mLCM_=o$O@@}W9~V8$ZBfnfJCpxoJVFf zDYp`am@ zohih0gX~ zu?e!u!wjRj`)pjT(rmzYf!B_|RoKt86}c>Q;FW89iM_EJzXNEO@nsbgwwbI9_F^|u z!4(pYmu3GS*CAZ&hh>qbTTM5joQCF)?T*>sFhjKSEHd(}-@Du5QIg=MLoV+l_)z_i zMh)VFfo{Y7e;zF>9WO1@Y`7vK*4E5v#h;V4WgVtT8jVo(>RhwE+Dbb+PfEW9Ei(U?mBE`2#QXaSlloegrhfuT2j80zYW@@Z4$ z?cv&)11fX012~^=4hJycNLnfXc0Nh&3%DbtmK?9T^x3VFGe)1@AgFPvd{6l*#R5TY zT!Erx(vot$*s`RYo_cjoIsvzR+tu|^PEwZhze#50q} zX-)BwvtDV}oNhoE`W$J>#y+O_2S6pg@-n6 z_@10*%G)AYe|}y%cJs1{9t*l@S4mIDM^->Z1*e@^_DO4==NL@AWJi%Wuiu)3p79p_ zqb@xu-8Q^wuvO2DL0*h4@HayZ=A3t@6#huxpo zH_~?UUZjG|>zUrF(WLBmYO|kI1b$>i_M~SS?ecDIV@KYamcE|`i*Tl=-5R1bGk~EY zQGE5l%*{Ae8FQJe!Z^&Q2(w{+2J##AVEU=^`*P!t>rRtG5d#ReW44m)VpzM z1p8NHS3|I1!@u}OTst8NlU$_t2x``^?hG6Bb*&p&@6yD<84|$C9BUP~r|Sg)bd(U; zsCh3p8+XiVFvYbe|L-!(5Iq8T=vt}s<$W=)*j<*~1~FkAa;hlM1xeh9;Ocko8aRfa zQgsC}cslgfUnmQ3(g-69@hKY>z10ARs0v;pfdWBV%j4wvA+bGQ`tk$i`7HPzN?h3G ztL$CQwNkdu_QuUC;jSRfFg^SBmO0`aYdHDNn=1n@ z@-QYBuQUxI3OG1THMf&hJ(Y^KjfN>dazxqET1SLlnJVH3A1jWg`e@r^sR^h0=+mls zJFvvgrDb3S^;5us{~*+FDUW_Tu%L;O=IWzrW8f8@Q`!5&hEU9PAB;3%K5pue3`8Ck zL>wN^sbgxFn#;7r6CZ-U~zTp&CcRkJ`0YA>7y1$M>O}0|OLbWy?bpH3p^ zBy`h!u-3?|7x#h8vU5!Oo7XA4gQ`d%Sd4?-q+5c`Ad}0S%oe5ikC600koH0>o{Dn{ zuXE|PA}Z{Bj?ndMCrBmUBc@B8n<kDx^ zSj`Ov!n{fPF+n~9__ZO|&Fl;+Hd%ynjxC5{Xdi7mD?Qbhl;1v)Rh?yT6{pemjse3( z#cYX2u4v*%JWR=y&NqfnStDB6EjF7q6f%xZt4#w2rsJ_~bke&TE?x*QTqTCvVG#a<_K2zz5R!N_m zg=Za@5gB4B5*%5c{b@0T)Sa9`aF$}^DqiH?k*M9EH5SozG0lr zUYxfY>qw$w5KK5N%8=Yt(1RFes=8B@;v!d$Lt2q437`8&JZtk2=k;*t_Fl+zEot-% zsQup98nJn1wuDXcS%&TEw8Q&(B|wqYcJ(&=Z%6fxmBD!F2SV?`CrJNu7Ax^1a5YTv zv))9)6xl)|CRlT+i4;6XUPld&;8&zn$3q(*2P|V0yUUhR(a_Wc2Fgf1zz|bo*dWsT zWFcRPfxa10L^&59`*xt#J3h^PwNEgw_S1^Fj#-ycl3h1bcB}3>qi*TLO#+Z_?3%J2 z8~z~n*MZ2?bJ}qC=3%i~`^5HCqjG@keDMjP=@b3)Z^B;uGCrjKp+yelKVm#YrdPRb z(GEmX9G=A!Ii=sl*?zY^RyIIU^UPkFnrqlljQ5|xzvY}@fL7SzUx{7<>tAC;ZH^$Z9YpwLaU?t#E)aUWk}mavQgM5&|7)3lU&n=*qP`u6q+_nR_Vx>8U{Or7pVy5) zJTOPKqN`$oE7l7t-AKe~I@ILX)G@2{b9BK>oPRWTci#ZQ5~jX$7*rdIbGy!U!K2E{ zTN;NnEf2s$UWO3gjhRl9unFAFshi@zWRcEg4L04Q-h_&M)Hyn6$H8UsZ@U#e?a(ZO zlr24YP=w7UcETxfazj5}6ZRQiFWu-UTa-M*ZyOy4^3kH9qm!k;t!{VhxKz~%2+RU!^PjVi%0r%U9ztr`QSklq_&uuFzQFWq+BS z>@R9?IhBZZDN!h7V?0dbuTg+D*`s^SxsrcP>kWFo2 zhax*|2rfBBx`nqqe}#3|sQg33G_l?r;P{}zX=#hqJi@1P>vXuL=KnD64MD;%!ICrI z*tTukwr$(CZQHhO+qP}n`@h}G9`>-O>Zr(w&dR9jjyj~rRJz(#Sgk?WEAEu_iVmdL z7Ziu-r{G)4f2+X{>uluICr*IeCp+?!9HaE-=MP`sFJtfT<67O`-^&%<-`4aK+&5TD zy85jIE0hQ^A+4a}h2G!DU}Uls3)rYE$~&I0KnM&S_qkjly_p>{#wb=}sv34!{ti61 zq%Gno)Ck?f>l~Y8R6h)invgW8rAW&-9UvYA0P)fX2CPHB2klTqAQo$)x}muiy3}pBSatP$>&a(9 znd>SGfkubGRN3mWCPS#J@Mnz9Ao~PYmAyP^3Q|B=Wsf8Ru!KQZ!fnb|t*|MK?OPEd z#Sr-Un#!#lwyfT^0ymFy7((fq%L6qXJl6A`&p614P5Y668{Cg~QP;*SK^aM(%kx$W zG&Bf&!J!zbDwUS+YJIzrf0}i^3%&k`EO~^akgE{>JqwQ*SWlf-!B;2yu*;h^+N=oi zi>;_RC@u=Bjn6P_KiZp0_&_<#^yutX6ZCh^;KPtx|f zxsa@WY3}&$Vo<8F`x)|CfB*?wU5sNnpx{~W*{6N5-iqt9BamWjI1Qg#VqFU=;uKUY zuqHvXXw`3|tYJGrtai<9OTcbK=X^K;DCoro#Iy8!Luth%Z!^q!2`(UvBse9naPlO0OmJPDzkL?Ls_1gtS{`<-e4KFF+&`q$MQ!J% zy+1+BUEanzZ~k>hY5C7;Y8PaVOrZr}2d$YQ5;zn*DGR}6Y8o$#3)dLg=tqA7CZK-` zr`$Ra7G|$TVHLaqmyAhH+P0j<9zovxr?Uq!sCrS9vy^1~&C8sv9g=QnpfoIa%>J-> zEANpjGKDNZJkh4XIhJ9XFK33_JiBFJZ+LfMt2d+&k{H7Sj}(vQ2>5LlDw zWO^E8@Zr%O#NZL=yA%~o51d0c)F>&%+R+C+O(Nk8_p72Na)}I3kTqDDe9Nvicl-+& z%j_u~lO&t7=dbEpe`Z~q3oq?1>#E%WS#ov}K9kpkHyeIFfbp3J>lfD9dPEWb0PWx8 zNH?Ch86D@}-!8ZgXtmj9=C4X2WGd4Zs3h)4<^Fy)dUy9;*7mx| zBrhfhz9&_Uor1dan>aKnK^0MrS$A@C>SVnUfaS1Uq1+Ujshda&dRH3#@7cnT{{RwH z+-Ts+i(FmjqBEV^wQ*>~No_?JD*NX#xOA@G5t}r=rVZ34sO4W-LE;%~#+ zcJZF^`d%oBimKJgP?{rL7{24!TtSO#=Iw)iuqJiGMB}3@sfag?cnZF4-yZZCh{Rpy zt7#rnuSv)e2B3HNFq+-Um;chIbV7BF1M9~0PC*LjRy5Ep5HROK$LDCeEZ*}$ljX5> zc8$0{-Pp)v8yrzc=u zj`{Y^t>#2*qTx%e?_bP=k~$1etb@*5F#wZ9*V`>_6%v6T9hQFpp9t*U;Fj~K^AyILaQKV_5m2Ev32gq6 z5^4MQ-C58M)8RT9_LSSgd<=l6r4fbY=vHp^EinoF$lySLK(WhzdoREoE|D&gGBatD z=8@*x;n02795sE@0Dp=o351qgIa~$fzD?TUU|dkxSRg4TS8(N=3jT58iEVKe42*%R z%{c~vLaU)dPX6K#{Yc|^FW67z(Rtdi+&Ijz;gEW~ZHaGmIn-li-94&2zWw-3G=La4 zx$e8JeGQa>{aGK_6$LfpFN+Qf zfD9=K%(>i%r20?0Dd8UXe6o8`4o=?tuXFe3MlNkcW~gN4c*=jaAP%?GaASJ=tzRmc z+QW%~0<(JQ(PqkM^`bUO?KMPD`e7cKSLu3u*8yh!0tXhyXm;8D7P!>T;5owAFkSoa zdYFUZ>XYrbLF;u9_^A%b#Q!}Ah5p>4sHBkr=g~A=1Q8I~;lT3gaqU`F3~whrA>qfb zXqR}fV^?uN&YX9yZ|wAVyzV-GS3w%$#6*y+eCJ23C;|IESzQ zMu}7K7#5Fb#9y>Tq@dmK!u8-?z3d)rAd~itMs)F(4Gm$9q`9TXBMY{_u3Kx6SI+s~ z;E-yh=u_+VzMEViPsX~tK7_Nh7FNX0?RIZbsUIV*h@*T*@o<$XT2|%ae5}_IQ zXKwMi`;F5dB7yRnStkd1tZF1EW9c!J#M~Vb4{^B=d;bU=`&c}o zDPKe@Rj-B7>Blpm+eWpvBNNh$0=rCIz`GNB5z?H!H4?p-L8n;pT)DNNK5kTy!7*V< z*mKVEc}kFsGrKqgR@UUkk~~HRfs3^SK+)Ef55M28O?5G^Z;#it*(JF8ApmEiR&T)x zeC~KZ+|24wwTi0B!-Eq#rjzvLCN?AE)D0a?N@e79aV7lPUYuDJZc<&2%hn^rhkwa( zq1@5t)H&i?R_c)e!H4b<&f4J@S(a`hzwO)rnMYQ_ovt_3B2$DS<3&EF=0=WcK zmMdEh&y?S;-iv_knZG*z{p+~G0lz+`bl?ER_WeHr+a)kd*yBpDPkGYzRsawQ`M zk=7R$nwf`AbQ@nKCwY&^%E1zQxZUZ%VH3I_N4WM^GylR^P-KR7vyG3I12neDd%Lei z+yo|RktQD&lYH{EX~;i2wmHZb1zXxY^M>N7>AXkXhJpW8-+a9iy#X<2wBW`L!E2U6#OHI6fNf}0>j#Y1?^#L8mi^hmuO^ZdT8(JsubS> z`{<-_oq0j_fnC{||GQu{U^B9Qe@gvrIcnkDs#R97ucj6dlj73g%@HpnzwC-gC_0Om zXWE{%$jJX`m-t6vagFIq?HLcJ{DXb^0S41Z2=Hic&2$HL0-;Ti4K)2`b|9l;3y*Vr zpc#cC^K5b-|5spb5Ft*jGy(b&f+gl>j=itRE&M(_Bk5hM^4#1MViq(8*-SUwBE8rY z9lR)$zCW7j!LdmP%ia~2fRQ;1>+>M6gq^Y=u46uQHSPw_32kk%3jFhRV3Ap*pVxMf zcj6vZQ0DdOp5T`2Il!z$LVsG>JRtPJ$2F=|`TO~$Bt?62w=DNF3x}q{CxgeSn{0=A zfGVFcqE#J>7}z7%%$KRFAn6^v4u??m>6O%iiHZo!STEB2DuQ8>4)oDc3p^t{1YYM8 z1tSOi6nvw2=pD>o6*F1?tQ+*pzp?Klgi8B-vLVvP?UmXmJg^Glu@7{xMLnHnRvswx z6=QnD`r9?8bis#rSrsiZ=K)_4sm(P}l!ETb_h>#2e-{0%CB$A|6A<(`&TI|No(Pvf zjXkXY#U=_ncd5!i^^Ob~iVCXXjbN-yXrvjn#vGeXs|xM~i4O{wkRi_O!Y0U&Q83Bo zfCYCcSHbk~XTUohy4(dVqn5Akt^kf+6D$9+6mzbR3j^Dn)0yVG56QeDMhlA1Ok)RX zbz7U6odTU*M&3`>R(vkG6ls454RwL6MTYPs+SK#y=4W@zSa) zi%>of_a(685pn5T??NHLxb_{9C$k?_w@vLVXuQn2XcOvj8Mdx%L5#a93uc7_At9wtoftvMT+00i(vWw== zurH@4{kfA(haA^#@FP$@Vs2&(HJZSO@}-Cxkw@?hA{3~T(mcpV_Yf5cVnH8LwT=Ya$2`!hAZ-%q?u_a6P{BZ*5*I!60M>xKknreV zommLWV;z|AL9-cd7kSFkeW@)A8V_q;lCs|dw9E3EUBbNe2Sksn_0by`Uno{a3msG9 ztLYTq`Tinb#DVnNNV7y>;zggi>rb%mmLHpk^`9KscUL9}76gyIDmwy?XF&ud7pbk}*B1)7YqL1VvgTEc0}0|}-i zebvlfcqpXjxbIuL%Ws_7C)^U7=X}FQ)`ifOn@t81GUe+I8q4$9!G{lkqQyM<0WiL9 z4zDBT2qNJf@yhte(YfxXkHQB+HFUw$Dj5lus_>Z^gAVg!4wi)8vH!aO%qNl)2wMg; z=~DrT+)`}T%W?7Hkd1K$o>-S0*83|ql$r4G;P#Tv6{jh}PUj0N;xHX!ohN$-d0%)N zH7_jh)W8{oHp(rjc!Q!4-;4~1{s*+g{)E9DUu(^4>-yS6Yl+v_WC5sfb47|q&TISlRDLua2=kDA z|3?|lcH&kfZpUR|Uf_zZ8mKU!UN9BI60 zx2mRqD3>95WEqh_tujZ5=vr-Dtns8ZU&wtTe%=&}83ocwG_7I$PVxp*7afR6 zAo8(HuS_AQv4CFLzO237Z&O3S+MR2Vav1(<;6~M=wHG+t@!xk6AqtN5w z@hHo;aE@`|z}v)#5(Bl9_<2ldn!&Lr41t_xj*f^-zB7T5m`;dNd0nW5>Ls+G5(Pl` zzxX2fG(_SQdxv9u*{W_VkwslmealQnWd@B!iqiAx{cn-uhv`<4P;(10o;>sA@^`oT zs_%PGvGdDVxETA)&i3fdps`f9w2(2t&R=j6zoIEaBq z!GcY6=V{cSx_K6iB0Il-4xo0oSR z-Y(r;4KF_KoJzRo=g(JqXt*O!y`Ck%ue_n1cHCU#ch60{Sq%FXmKvSdGMm1w*Rh*+ zg7+iu*Ug%1Kiiky3g|zcT)nOquN4}#ywj$U$63EVjJ2v?ZtU7x0P5c7tb^ZqJGUVN z-Yx8}J)xDjqu=GcP(62L8`vR)EZCKYv0pfXW^y`pYFpmDSu;NnbO10|HRJ!6IfC*3 z(;UIh!om1|njB3J0}XdwV}juzwvR!gR)PukXw08V_fVF-s4t!-6X=D+?}S4Rf|y9bE(vHD1zPbROuYuVODU zyy>gMDCsK0>VKmZ^f;Wjr50F*lxLmOpuQ{GO?S`~p~f7nX)S4~#~$0e8|HcTP9>qV zmO2cz?Lv8~KC4=H>uaMf8*RIsNH~pC920o-NtJdR8msvz3^HtZr(G61FA1>d=n8o9 z+Ks8rKGK#37In)+CgMANR;fB=GoVvD8(_lY=N{_m{K1h)3V zds?Ywkp51VU*sEKYbo6kLn!o&j|*otAl$@|EHV@b!9O4RlG|rC!B&d|FCEV-;(I2b z8h@=^^}Ux|E{s>|FI#=3q z1y(#mYSddsgcNeJNEuHyW4AZ-HVOG`tF6d$-^EDLcCY8~{*DV10(;F?&_N<8JJVCb zTie?YYLh7AE_wE1V#7!3!INb)_{KMmfMy1U=d*LW`FI$7UXJA7s)I%nDSC@|n>UD# zLW)R*w5U2OW{7W_Vk@++RTUx@zICGmq(zoc?CVZ9hJdV2;7(U$77CSHNxrICt8d(1 z=1o*;cdZ*+YnQ?5gRRr7x2mduR}7)Hya8U%aXofklB5uE@P?Ov{15ofu{e=C3+j5OpjHVFWfi(exA1XdOKd}1O;%3*!Nhv( zuHdRW=lFGZ9+nk!ca~=aHm#p%w$M}*1a?@IkNeh*O;p}4Z|ASoOIp_>VGA0xcg(PQ zsf$svidoHf=CL_j{*>K-5>=OLHt#e?OUta8o~3u-$~BZq8oYyk$gHqZ(M&Q15Xm_# z^aZ}Ex1dRC#-HAg#|W$nhV0xlI#76z^}}qf$^ln^q(KIa=(lG0kJ-`-;oJc%3RXGh%|Gh9iv&5{zL7ZVs&9VdPes zq&dMDc9a-lkM1ufYzRLKe$HNO!iMx+LDQ`)nI&2(J`Q|pt4AU@aI)`II0`2r7Od?4 zTqQTpHHvE83p#k1k1hmL*X&(FzF&nirb17gTS*q~<;_uP9m}_&MdoD2iC4c$Z`u9gFpdW=q~FaqPsv8U zsoA-{Zj=PqlIt_0z84>Xx-REF{#AO*S9Y2kc>e|$O~?;s@1{S%65BFae_g@zOD7;S?)WIO_qwWXA?g!ys0{e##Oo$JPh|i(~ z1*oA;=r)Ez%>p%l$4+wW30015U9v%QJUXxrlR0?lHozB(T0qDyCjCOB*_dNU> z;1B-~0Uikv|HM9C9jwBU+#c6oXbNBG&=CUHpPQ2x9)N&=a5xxPoI`t)GHvlrkx@r7 zN@}2^ncHA_gspOlE^Z&`pCCB`f}tQ`0;D^pKpH);tQ>cezQj6WY%rHW_cugw2{+vEHpybi>FdLb=UjHxTEZaUW2zBh+F4KK96lxy#&%?O1P~&1k zG<0}OgK?oOb#r(CEW$H)p>9kyWVl?S)NoOP z5UT@NH(;Fi;mml(f4@n(p+u~`?|ULzg0V0s!$2}Le9N7}N>pZ?aYaf&@b>P8h=J^F7YXn`d;vlcmLtT zLKaePQg1NBs+ zpnAPE)$zZ?C3^ay#sFvijcq?%pG518lgiu6-3)4jA3?d8DoGQqy|1$g7eDkr%io4> z@87ApJl?QNNFevNXqAIXS=Yt*NOpKcA29XCvO1;$AOrcCIPAX1U*{?YEzR zU)OB1Nu+Z)gI~hQyP$8>qbm45Q1?SF7FLjV#62l@xrH9!H{>lPb3Eeuvi97;PR$@s z%A6t0#WU=A71%STOtLo`1BhReLBP% zqv}<}GOvgQ*~2H|0SkAy97=7Xdx#BgG15BVTj4qXYBoJIFYYc{$F=L!m_(%g4gx-omZ-K6$-GVB8$o4dv z=QoviI&@ciu4oi*Kq^}ngUywYPG)Ks4{~*>VO3&)0X@nQ*iON=ppAk$c}Os>b}HPj zPX)DjBLs~p@lntE!-iz#mScHoTa~1i=wnC6p2+GKLSRzk(+3aIQ3j4w2uA5d(?VtQ z)c)uhZtJ;e4%0ctpwJcOzOvNNE3Nj|2rsOTH-TK)xuz@kRvNip13Oe(H$y$KS08;^ z&(cz(O3l(*14=a98DKNfcBcLUTv`|V$`Gw^P88Pz1=)JrU>_jrYXc)NDy{X6b^tZA z(8(bkurL~JR(s7Mo0Cj}{+A4dXZt-EZ6e9}B5<6^`9k;@nDUY7anI$U0zyjhe0K72@<<_~=^ZdEheVUn5Lm8Vq zvOCc*r3uI@Hp{y1$5*kQh8x+Lgr)Dr%h;KwShm)kqo!0T4u|IOm-DdT4)e zRI1aK82PxYG56*H0yIL)L+J>m!lC4#o8U;I8Q=IyyA#Y~8!<|lW(>2Kxg<)6Z~UDn zn^aO&+FU1ESR^uxZj!MzO13qOFO!SZN^R0Nj4x7jDP*qFnx@woad3+)MqAQ8O-ZvD zT4vWd4IZPn7sY;~pqC{fvK`9Qf$#}238qLRCe}=dIa5Wf7(b9*hUy2D_VtIZ?>MDU z(`D+f`Xirz2RH4eH^Y@`(|@|&M<^>^{gHLue?z=5y+878{gG^YeRz1f4LpG;bhAFt zeRc0&ky~GU!>n18g`Cf$qs=;UDK=nXb@zpCHJ4nv%rKyad4_W*F-fK#Z)!$G${n$k zKg$^|4L=(%PIJ_bZkunDBI2^T$By{n%~tsP~2|4D7=IhCB_UNZ#ILfPAPCn-smNwS5ULC{>6l z;zB;zAEOzi3*Goe7qgHAnrmXb!woHS*ZgnIMTtg>@QQMw4W;=SDrA<hvJ5j~9h?DW zL)xa6hnBydt9wnGo*Rre^xILZ?_(Pof7{q*61bgqx&67!vXOnrQRQnY5c6n%P;^GR7SoHB!{$kMOZAI|!|r)cjf$j1ZjHu9 z>uXKIKNV-Hw`$mUID@c}mn1Z2sJ>Am;646+Fk6+Rh4<6hbFtQ<*3=^J%H7_8@{IB5 zuAElD5OGs2bOzMGSjMIB&l%QDl&ySV3_?2#~WJ^pwen++G#+t<>h5h`|uc@)fkMa>&VF1 zAT@=gOUq1)gBzS0o~C7DiWQ%c%Jbj=r}8o|IWWd98Xw1x4o-@LTd0K1W*(dv9%p56 z92*-Rbr=&>S_gN7!kgP**EKjy2&=q@FQu_kmF0fMf}=xxvceAbqrZU!Qv=m~oV$K+ zGsFA!o#@4RJB7NOAQR+6@%~E$ua;Q${cq8cjft0RN?vYlkxe?i!lD5IzGkvgf zZ5r{N^e%yrip)Eumf2*rve=A#EX$BmN;|d9;Z~)lmCw$94gA3_mDnz2m@#??;ZBiu z=ndh{GU1e}Qo3Rd&Qa5D?W(YJOY5<{vUU~myN}-#Yt=9nRAsBcDapLDY#bWUO4Z4n zQ<@FNF8f)ux$Nk3&H)0V1iO^8cP_BfRc0_g8L8mwDSPSRINKY@cB8Mc1(1WFV8>(n z-N;HTH+p9MZg_~B#WVjhTVwuNvJJ?}>tdq&`G!F^ZR{%JW5MX zo0Dy7r}6lhdyF>}S+uS;K&K8mLZ_Ppn1wdq&!7U;VtNK;Twkj!4eqY7rnRfcGBZKS z$b#=F8JbQP3&AyCp3!eb-Eu*%C&QgvchrwWsVrFF5Ax8m-ZnVLwaROF??0wm7AZ;! z#n&f6W*_Z&`%evVa~J)Cru4MEJw^;XGGF# z7iF)QXNh6OB8(-uWG9Rx`+N}>J5i@@bF3W&N(eD-{VxhD%htww0 z7?U|VF0;riGl4V@7L;L$7@X$0F-qT|4NoCg9aN7nB8hLY!lz284sJx8THPG}Nj6s< z)TofvVwZZ5)=4g#@)s2@5^gDM_=-Pu^6=y-jNvFu*<4mA?9>sS0<@`-{txI<0c%Q< znj%k%8ab01*c{S;I4lWGg)m)xP&HhO*ezk4+?n%Cu{~@~GX?ITM+;>6 z1aI4AN!F(pO%L)Ew2;QyBy*I>wP zu)jt>K-K2tM}T!DWZ42|%_xQPiV?MA} zXpKZY9|~VS%f5Imdtx_l|NHnSwrQvKQ;=S2)R-`)4j7ARuN;8nXD~F;xU2OW$>X;( zsap+Q#R@!H3C9Mls$w{2phESEz1p-sX|xU*GQpUp@{+z`ebSV&z*we2lc5pg9>Z*M z+A?jOvBij@?5l-A>xA8;ead0Vskcu1gu|qJ%5B=yhjt3|7I4M*W%A2qg`ExwXR3k; ziDXJUZEYTbz(i)Ms+@uW#b)X{4TKv(f`?MdU1hD|Y)z@jiprxUrXgsKthQ`}15!%( zHqTH=u4}%_neTn&E`1cmio3vWb!3250dtS>>Q#);c@TCGYQQ!W4TKxB%q6sAB<&YD z*>yCRr}oiy{$2WbSN42Y@OI#!`1^*<*0~x#{q>{Vq>?X zK(4OK?c?U|>f_Sh!P)I`pHHX%cl>;OL3ff-F_+sT+))cxe)BQKb_Z7y`3yy63Tzy! zQ;0I@k@N?rQRn-3=(CgHq4MPZtCiyyvd1_0Y0xm0bn=CF?C6krGuKx!H?cS8qPjzK z=D`|@Zu7kIv0pR|yYkFZG~w<$iA0h{7H-XQiPLabOfT_?scr!{frk1Gx09VpTpYt7 zR}<~|LEDEE91HmCk3XKQ7RdcwXk5uh1X>0y(UZWySW*PArG?vrMs@axY#%?11HRgqN8y#edkrU6*%poyCJ=Qwr4sfPm}Z1HJ+S z0+x%QIV)JVW&0xl4HRvRL8;LJQC%g>W)HC@o9(zFSOlt-*(8c;Y}r^Uu-E*atIWEn z{hOv>6M!!f!B}QF>#!jKkjt8?Y=^T9hRZm_2Ze>ZF{xV*=`)1r!CSncM_8jiiS>?% zg=oN{1996%)~S^t9JvLj$%KduvBw^^vVO*j40=M8s5rKi1PjH!5K0R_6KW9pW-J)qIWLx(L?@tZ^j8$g+`SK#%@= zmST&X)=#ROwLi{y+08^MA{shtpYx4jkEs)7ySoDE8hT@eiG1c!>H-lC5RUd zfZ0IFanP6twwUrDcHxD0I0i$y(y(K!mF8D<`4_yMoP;YAwx@6Ged{n5&?w27$Ja>d zkJ`+2EEX}!pRb?DTngBL&^Y$WUX7+J;ia9=08dVNQ)9<3-8+r374eKafj@~ZVJ|3g zgo!w1pLnHs?j2bG||C3nG!2F> zx0j2%tCw?I8)ui>o&U9IicKx-cj97VNpG@AJugS6@9$-AX01$)j*psIYuT*K(Zk)7 zFzpOaR&MtU&qM0u;k%9d3$o8Q_-4p3jcn?TZ~Ww+9{1nr^Ra+E>=nFB2lzZSaB*pl z&TP~Ky8+VdmX6o&r}urx1_9VF=Ud=*XspO{zGNz}`hc$caMTiM*J1xe7o z!pF)j4*4Hyml!dZQP&7<3#MZ=``b+p-g;3=+a{Cjl^LJcs|${?HIa*NaIhqu%d zrRyug;-%RfuL;a%qUv0M!vpm6| z(?X8MeR*dBY>od)3RVBP-YA=IhX6(?n+Fw3gY$&k*%*WWpPN{lBL=-#=-8cg0ui%> z>RuZz)c#{l;S9f7(NPCutGc?u@ob4FRQ(^>rNE$Sn&e~UE8qm0A?>RbUfS#bVHNy~ zo%y7d7!{vhq~4ttzU&teKK+fiQ%uZ)&?{4n=XNtQ@^Rf_IqCX)6Cq`zQ9~Mm70d)I zcEot9;hL&@%khzSU z28A;{QUatI}k>B&l>W<+0nTJDLQCs!%mFnz7<< zLFZ=Db({WL?GY%0K!oRNsdQHQa%1?z5?7wm}N zHbqY8sSY>h{36#>1Z1XBfALEKK0@xk1I*X1fTXqVbtAXk2lS45kKc1IreiUkN?3sK zEGTH#j5S|tt5~0BBcba!+(Ac9lpb$XtZ=^7Zls@K zkTJis%i%pmt)^AzlxVf! zZ0Jw!CWg4cgX+B^J#R%MJC}A-%Y)7;GVp;!eLO`J818V4cV{Ev`nYu{fUv|BK*KF# zIcMnYCcdiIcWu2EzLGp@?qTIAm~1U*I4-d}ocfFsla1$X-rw0yyCp`lv<`W1owRjM zwoG@_NN<0*NNj3UZt`3Rc*7b5?5APvPQK~!_wJ>&vR-ncaj>b%kAFR{qSYYMAcO#d-xpyUfuZ*9S2{}lZR`&pAFXRO|5T%t9QJ!fa%FdCJNr|tLig=` zVe7q=5RMIZ{w2+;K^Tm6y}9n2?{Z_yfX&BW`VcXf5e0JQfg5o6PZnU_E4(?2%!2~z z?rReb)RLSgux})~>R)deG(FYp&vvNmZz_9Q?#W;3nVcqmdE2%jD|ILL&7{1rV?F_e z#Ql*g!fu-$MipO=WEFq|?sj0N=a~SP>~;LhC7g5E$_)Ebhj`6I5{8$dPhIW-`fOXG z7rud@&AK3@eQ5_hwT6;-ecajXsfNrRULyH3+?AT-tUYnCa+E2Xj7lzhA&=zeg_YRl zj7KqyTM8P%WmYLQNEtPt0+i6!(R#q z>=vgXYA1wpaCoki7-{7rdWthanfc*?%acSX9@bD9E-k~BuJTaFO0+1^QcepO-C@(; zRE*~5D@JDyj~0W^@j@51F##qvDpus7V0=)EfV{Onor{?tY6V1NZ~xX-lR;`p;X+)r z$V+ldcdV2S&+b|xl7f_$*%ahrQ1z91uQ}0b?a_U3@~s7fdf9XgG|c!TU*QR{6TUh5 zguGYWhBpc7q;$(5D^NS@<%AW>G=40=)WQXou+5AqaZ&@e73&sxjs)6ww>dh%_gQ5o z12G^Vfg1kZ_6YNp*tUtt@eZLr!s+GtxLd29L7+l~xb~Et$&7o_@P7ZV!SE6N(8*|k zwA|)0+%EdMU9xKjiP{DV$9-VOHPr%^(x?XlRKF{s zwk#yE9VMEoopvT1ogUu)x<5&Q?WEBFdmBqr;OlL5OqC4bt5x@wU5(dRxq|qDr%JBg z_{CyBA5423I%XP>^~|g{WKg?{;b5HG^dGs7)8BxuIwuByX=>QQ(!VRiT2^2m%;*2S zZ}8ff=uM1Fv*G>uAoJFtteshIDRtgF;US5d;vTe=k^mRRRIK0dnvnD+QNqD1nIO=* zn-GNuVhpfUwM5iQ4jtax^Yqo{&k4)T)C1u+diq^p?hbXuyVp1oDuxmRA?`$!WKRt$ zwi~`v^R|ReQA@&{g&LME8wR#EUKg#I@zZlmmHCHj7h9hsDQ8-h_JG6fQYP%}Oe5Zm zlR^n$iJ|dHZ5p7m{63%q2~6yQDSDw;?kSk=Ko?U+DfNtztKZK zz8~}8db9RGzW^=%Rmc?6IUNvH#PxJHMJV5y}Yz1&LPN-+b!qz*+)m<8E_ zN5xX}T9@NnIc5^8)l34!d84rUv3)+enOFXb5ei$;F-z$*E2<%N_Jijy@qEUQgg z!(rJ@4VVXL-8qQs@J1{0SS==zx-8|U+pTawV6Lk4IC!|oBEY3V;Lf(3=D)N!-ud~x z$Ys+szKJj={E(*{UU z(ZV$$8VHFavpcE}e)*^b@4QZfhiMLJ?7cG^5oCZZjg#$eb#^~~)P2_{{6_NO)?^Oo z93WQb;)S&FkUk(%_@-yN;=CDpBMkp0B;-@odi%O*I$Y{x^**#kddDuw?1v#%AMNyL z_|8TI<+`Pv9DDTkDHgnT;r}R|6;Ekzoc63``me*$y>`&~LlOCIA=R2Qf+ZQ|;hVtMOk>XB zRPxehF@mX&b}E{UAwdW(T3zzVP4@`lbv5@Y!~imTOjoUpIMV$a?oU;`lLeX{GAIFW zmBsMP<^J5x<>u(7vW=_uFdX>0wLuBEnj3&v(=bRoosg&W0296?Dh3#>fz|rp_P22g z@XW(37=J(e-E{{tNkh!$`aZH~<^b-JZ)ILR-sLw%#&s{|6WOaAVzZXQLCepIlcNxr zcHM?So3p_|D0lddU=vKU*CAthCxNsdB>sgvSeY%_Py})!{v8VS2ey1$!l64T27i?4 zxcK#*blo_+o|Yt5^O7?Abn3eCgm%I;rUzaH_}UoJ=SIZ`e`!#LFA>;IW^vYWxi`A7 zLdXU;*ASXQ;_omLU8>nnkZg#(N99QpjstPAFC?MByDuF>%JPYR_)X349>^vQ%~sy(^fALF8s9o!kExlJtIzM=x2|MAdxhlQK_Z_>-)1RgL= zajv8=S27=YD2Wd2XBwiBlU)n}0ZO0!(MY%=p55|V!-m0RtJs1fd=~q4a%|QJxx^;XFNQ5fTr4Wi~ZF8kVb1A@y(TjL8yg zKD2Pw+*xV6OAf@7iPpHpH&8X28`G{@0-%szthKiWYxcTIAdd{*A5#_kz!d#$@}J^p1MG3?H( zIp$%!6^8dV@(u1s@dh_J+J_i0y*_2@D|h9BuvKpRfb!l-G=`2{07}B)#nKtrlbr8{ zbZzz;4Fm{LQ$22yISig>+ARdmYu=A0F|X>wc+FaKwZ_{iPt+~BdXmjlDR0H)pxGH8 zD((9Oz)ftwa|{e$V_Rde)p^^Rj+KN#g01~F+M9vbU2FCK4wGhz&WdZFAD=UoygffC zZs-%Qyp4Hz`2lHN+Psg>KS&Exy<8+DkjwqHa(&b!jXq2tXe@b)G zqskwi53Q&RIXmJ9iI9ca*tPiFjL7cxGVht^{WA!!yrHPL`Cp8DLvSw+&}3}ewr%Id zwr$&XUToX8ZS%#p^NY>>e|y;4!yfiJ)zdXK=&HH27imisH*nS1$R8t~RE-c;Y(&;> zHZNND52+`K(CCCDP% zigli#zD#u0((u-Yo1@XKJ7=OV!0hFRyGGCK$_MZSQmT z7_|EX>)m7h^T6uPAmC@|`z5{K|8u^d7UM8Jyn2+I*dc(--U?SjG zuu;*LRd7^R3XMD9WhbhTNaPJW1(j??R{bE9KNnLnaGL0x|^e7thNx)_;I(c6lTnA4`k z6Bv>i-wf3%3U3WH6siF}-`elERtLvP2M!6HA`>X0)HL7*`sT`=xDr)780mn|NVNsD zFXC0gDIa6VYX2odW$8<2-`S#=tmQ29uGJc`!Q&?fLKkdKp5v5wbWSl&FR$p8ZOWY*I-4-<%>b;=1pG@Fk1{PpUV0~ zFt7oi_e6+Mx(%UpMSeJIwS3KS6rIr~hpavrYiwEcHT!FQk5PT$!n-pyck6HO&zCej zzS}z>x*%0(-9f6>c2YuupL^~wPkK-2jv1o=0@s@+69U=0=wKjB?X&9GoMEs)8H^?v zE~?;+lV%${`Ld6cqCf3ZBT+?MY$3jANl zxV8=w2B2QfFyzk{-C+xL=lLh5YV%zqowo%@FN6NfFTHf*sN}Yxko+PC$J@^tCK`Or zadD@OQOYzMj&}bsy4C8vIJC1fl3|&(Bo#A^U=aOR4)n@?+57v=c`We$qVS1s$$QiL zesy#G1Eu@h=szlmG9L!uxKtnLp)Ag>TyS2qDkvcG9%Ft(iW60e%#OtEKwf8<1&x^@ z%J>u@O7S~^=FKBtUgwHruPDQfg>JO=xZvIm9kkKk+Ihp$n(X)>bxO^Mz<*Tictpa6 zZl}RRh~|~wJBt8=?uLvfTg;LhEEEmRa;nH0jdME0Y+qcHI8@>^VO%ulNFb0p)tX-; zi6zTu!`RQ^AKjM@#^LlhT6P)Kj(2i)cdvg;e9M*oJqs$jW9BefZVFX-6UcqrZZw}2 z32C1fg1&^zNW`cwq+P2S+<}|d?f7JGe3#U<2g4XXArmmnRR#*bkoFTa@Jv7$m^O@- zHmCCiC2f~V4F4-n4w}c|5%Kyh=^MYFi%;C*h(wGyUX0#1+kE$-;qgTkcb%=k9m54T zV*m7HIX7Jc)|+pH=Cqn}`SLg0FH2*X8H~Txq6Shyg+f6=Nbv+c-j>|+_;{qaq6W+} z9W^_IVj15-YZY9AWewKAO7T<8?~Xp*wa5KDqGcJnI2=Qo4(o{GLXt_h28?i8YJ1ii z&&Pfqi+zZsB`R~$j1QP~kJW`A&%$Fl`&J-!$7SE)(xyX+6hENr?zoM8FZ!q@rWk=d zcToUW)Q)9&EV^F#P=%7ONA~N8)t=$uX+*<*2@@}P3g*?RKc)hQd5zG9W&`7vBMH^* z1fwS)@hx3?M(x7;y9hAia7VBOOp&>y7aiou^Dpj_2dovAej1C!fR^~D6lJSEqP5Yu z-t&3P0jU@~yiRZAwr;&ygm1{7+>; zQoiE^xpgcjZ@^HY+~%l~i_{oq4sQ$jmgRsBe|OU{zTsLdm}5OZA;z4(re3FCYmC+$ zY0StCud0yL$)9vAVcgraLB5{PT{?%Rj&Vy7DMR#p#nU&yAN^cp{G5QZ*Y`G20xzIUTo3+9;Vhq{?Oo>--r z@(>oLgN38K#B>QV|ILF9Fpmje-#8@mDE5i}XI{sW?=Th4zQal^sDq$;pts~6sIGIi z@};^2XY(@1#6pD4V45hO*!P_tdf^|8BN!q-y=>!^#&j5uGoP_=HT}VPA99*qckpMU zZ~ciHtuUt5T9c!0ArfQbyv!^68>+y-MGzw3l<>Yhm-^+MRo~Hz|qfU8Te{W3ny`~dXYMb^Wi)2C;qVu&v7yeit?3sJ8B zlhYp$?}Fii>O~sB9Cddp3eqrtNH~94&~3WUN(%Y=P^2)J@3ao=u@)_1w?IBR-S7p~ zBH?j`pq-9miGP`g_ca~eL;u1_K+xkD@3ekq^JJ@GFqDVdskjBL?=cwW+&8hX7*N)6A+`IfT+0+(aFIUY zk)lGs?@qlwUVHNR$?#F9-2-A_g;0lW9q!h2rN$NIcEvfdj6q=Ex_=6>I$a6jkH+Wt znSJ2&4=Cmt=x?*??HE4eM9R+vZ*}Q`h94>=IBa|M(jIN!Rm|k8_kME;2}?U}f+4yZ zt|e!|0E;@taC+9(bBQ}W&Nj{`7098N?Lmm|F(b*OUS{rPR)}azUbja8+v6>6`YAPXm}mv=o)t4)4S zL45)P_703U-Qi`|h^&1)8Y`pLF5}Gic!b5y(?i(5{VKJadU;WsbAr~!pn@SRFXZhR2O=xm4oBL%z8fu2O|4I2@CS`XpdPO31n90mM1&?t4J94VyJC;Wr#i1H zfs0-Bbm6x37s2*=a�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 literal 0 HcmV?d00001 diff --git a/XTesting/kubespray/recover-control-plane.yml b/XTesting/kubespray/recover-control-plane.yml new file mode 100644 index 0000000..559504a --- /dev/null +++ b/XTesting/kubespray/recover-control-plane.yml @@ -0,0 +1,33 @@ +--- +- name: Check ansible version + import_playbook: ansible_version.yml + +- name: Ensure compatibility with old groups + import_playbook: legacy_groups.yml + +- hosts: bastion[0] + gather_facts: False + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults} + - { role: bastion-ssh-config, tags: ["localhost", "bastion"]} + +- hosts: etcd[0] + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults} + - { role: recover_control_plane/etcd, when: "not etcd_kubeadm_enabled|default(false)" } + +- hosts: kube_control_plane[0] + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults} + - { role: recover_control_plane/control-plane } + +- include: cluster.yml + +- hosts: kube_control_plane + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults} + - { role: recover_control_plane/post-recover } diff --git a/XTesting/kubespray/remove-node.yml b/XTesting/kubespray/remove-node.yml new file mode 100644 index 0000000..b9fdb93 --- /dev/null +++ b/XTesting/kubespray/remove-node.yml @@ -0,0 +1,50 @@ +--- +- name: Check ansible version + import_playbook: ansible_version.yml + +- name: Ensure compatibility with old groups + import_playbook: legacy_groups.yml + +- hosts: bastion[0] + gather_facts: False + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } + +- hosts: "{{ node | default('etcd:k8s_cluster:calico_rr') }}" + gather_facts: no + tasks: + - name: Confirm Execution + pause: + prompt: "Are you sure you want to delete nodes state? Type 'yes' to delete nodes." + register: pause_result + run_once: True + when: + - not (skip_confirmation | default(false) | bool) + + - name: Fail if user does not confirm deletion + fail: + msg: "Delete nodes confirmation failed" + when: pause_result.user_input | default('yes') != 'yes' + +- name: Gather facts + import_playbook: facts.yml + when: reset_nodes|default(True)|bool + +- hosts: "{{ node | default('kube_node') }}" + gather_facts: no + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults, when: reset_nodes|default(True)|bool } + - { role: remove-node/pre-remove, tags: pre-remove } + - { role: remove-node/remove-etcd-node } + - { role: reset, tags: reset, when: reset_nodes|default(True)|bool } + +# Currently cannot remove first master or etcd +- hosts: "{{ node | default('kube_control_plane[1:]:etcd[1:]') }}" + gather_facts: no + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults, when: reset_nodes|default(True)|bool } + - { role: remove-node/post-remove, tags: post-remove } diff --git a/XTesting/kubespray/requirements-2.11.txt b/XTesting/kubespray/requirements-2.11.txt new file mode 100644 index 0000000..ab59f38 --- /dev/null +++ b/XTesting/kubespray/requirements-2.11.txt @@ -0,0 +1,10 @@ +ansible==4.10.0 +ansible-core==2.11.11 +cryptography==3.4.8 +jinja2==2.11.3 +netaddr==0.7.19 +pbr==5.4.4 +jmespath==0.9.5 +ruamel.yaml==0.16.10 +ruamel.yaml.clib==0.2.6 +MarkupSafe==1.1.1 diff --git a/XTesting/kubespray/requirements-2.12.txt b/XTesting/kubespray/requirements-2.12.txt new file mode 100644 index 0000000..f8b1e50 --- /dev/null +++ b/XTesting/kubespray/requirements-2.12.txt @@ -0,0 +1,10 @@ +ansible==5.7.1 +ansible-core==2.12.5 +cryptography==3.4.8 +jinja2==2.11.3 +netaddr==0.7.19 +pbr==5.4.4 +jmespath==0.9.5 +ruamel.yaml==0.16.10 +ruamel.yaml.clib==0.2.6 +MarkupSafe==1.1.1 diff --git a/XTesting/kubespray/requirements.txt b/XTesting/kubespray/requirements.txt new file mode 100644 index 0000000..f8b1e50 --- /dev/null +++ b/XTesting/kubespray/requirements.txt @@ -0,0 +1,10 @@ +ansible==5.7.1 +ansible-core==2.12.5 +cryptography==3.4.8 +jinja2==2.11.3 +netaddr==0.7.19 +pbr==5.4.4 +jmespath==0.9.5 +ruamel.yaml==0.16.10 +ruamel.yaml.clib==0.2.6 +MarkupSafe==1.1.1 diff --git a/XTesting/kubespray/reset.yml b/XTesting/kubespray/reset.yml new file mode 100644 index 0000000..2001570 --- /dev/null +++ b/XTesting/kubespray/reset.yml @@ -0,0 +1,36 @@ +--- +- name: Check ansible version + import_playbook: ansible_version.yml + +- name: Ensure compatibility with old groups + import_playbook: legacy_groups.yml + +- hosts: bastion[0] + gather_facts: False + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults} + - { role: bastion-ssh-config, tags: ["localhost", "bastion"]} + +- name: Gather facts + import_playbook: facts.yml + +- hosts: etcd:k8s_cluster:calico_rr + gather_facts: False + vars_prompt: + name: "reset_confirmation" + prompt: "Are you sure you want to reset cluster state? Type 'yes' to reset your cluster." + default: "no" + private: no + + pre_tasks: + - name: check confirmation + fail: + msg: "Reset confirmation failed" + when: reset_confirmation != "yes" + + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults} + - { role: kubernetes/preinstall, when: "dns_mode != 'none' and resolvconf_mode == 'host_resolvconf'", tags: resolvconf, dns_early: true } + - { role: reset, tags: reset } diff --git a/XTesting/kubespray/roles.tar.gz b/XTesting/kubespray/roles.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..02b381c7d43ead4513cc88917a30f7250367a704 GIT binary patch literal 390327 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
}P~Rge$s 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ⅆ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

    a} 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 literal 0 HcmV?d00001 diff --git a/XTesting/kubespray/sample_env b/XTesting/kubespray/sample_env new file mode 100644 index 0000000..7917388 --- /dev/null +++ b/XTesting/kubespray/sample_env @@ -0,0 +1,4 @@ +ANSIBLE_HOST_IP=155.98.36.82 +ANSIBLE_USERNAME=osc_int +ANSIBLE_PASSWORD=osc_int +PROJECT_ROOT=/kubespray/config diff --git a/XTesting/kubespray/scale.yml b/XTesting/kubespray/scale.yml new file mode 100644 index 0000000..089201e --- /dev/null +++ b/XTesting/kubespray/scale.yml @@ -0,0 +1,109 @@ +--- +- name: Check ansible version + import_playbook: ansible_version.yml + +- name: Ensure compatibility with old groups + import_playbook: legacy_groups.yml + +- hosts: bastion[0] + gather_facts: False + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } + +- name: Bootstrap any new workers + hosts: kube_node + strategy: linear + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + gather_facts: false + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: bootstrap-os, tags: bootstrap-os } + +- name: Gather facts + tags: always + import_playbook: facts.yml + +- name: Generate the etcd certificates beforehand + hosts: etcd + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: etcd, tags: etcd, etcd_cluster_setup: false } + +- name: Download images to ansible host cache via first kube_control_plane node + hosts: kube_control_plane[0] + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults, when: "not skip_downloads and download_run_once and not download_localhost" } + - { role: kubernetes/preinstall, tags: preinstall, when: "not skip_downloads and download_run_once and not download_localhost" } + - { role: download, tags: download, when: "not skip_downloads and download_run_once and not download_localhost" } + +- name: Target only workers to get kubelet installed and checking in on any new nodes(engine) + hosts: kube_node + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/preinstall, tags: preinstall } + - { role: container-engine, tags: "container-engine", when: deploy_container_engine } + - { role: download, tags: download, when: "not skip_downloads" } + - { role: etcd, tags: etcd, etcd_cluster_setup: false, when: "etcd_deployment_type != 'kubeadm'" } + +- name: Target only workers to get kubelet installed and checking in on any new nodes(node) + hosts: kube_node + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/node, tags: node } + +- name: Upload control plane certs and retrieve encryption key + hosts: kube_control_plane | first + environment: "{{ proxy_disable_env }}" + gather_facts: False + tags: kubeadm + roles: + - { role: kubespray-defaults } + tasks: + - name: Upload control plane certificates + command: >- + {{ bin_dir }}/kubeadm init phase + --config {{ kube_config_dir }}/kubeadm-config.yaml + upload-certs + --upload-certs + environment: "{{ proxy_disable_env }}" + register: kubeadm_upload_cert + changed_when: false + - name: set fact 'kubeadm_certificate_key' for later use + set_fact: + kubeadm_certificate_key: "{{ kubeadm_upload_cert.stdout_lines[-1] | trim }}" + when: kubeadm_certificate_key is not defined + +- name: Target only workers to get kubelet installed and checking in on any new nodes(network) + hosts: kube_node + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/kubeadm, tags: kubeadm } + - { role: kubernetes/node-label, tags: node-label } + - { role: network_plugin, tags: network } + +- name: Apply resolv.conf changes now that cluster DNS is up + hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/preinstall, when: "dns_mode != 'none' and resolvconf_mode == 'host_resolvconf'", tags: resolvconf, dns_late: true } diff --git a/XTesting/kubespray/scripts/collect-info.yaml b/XTesting/kubespray/scripts/collect-info.yaml new file mode 100644 index 0000000..3f31217 --- /dev/null +++ b/XTesting/kubespray/scripts/collect-info.yaml @@ -0,0 +1,146 @@ +--- +- hosts: all + become: true + gather_facts: no + + vars: + docker_bin_dir: /usr/bin + bin_dir: /usr/local/bin + ansible_ssh_pipelining: true + etcd_cert_dir: /etc/ssl/etcd/ssl + kube_network_plugin: calico + archive_dirname: collect-info + commands: + - name: timedate_info + cmd: timedatectl status + - name: kernel_info + cmd: uname -r + - name: docker_info + cmd: "{{ docker_bin_dir }}/docker info" + - name: ip_info + cmd: ip -4 -o a + - name: route_info + cmd: ip ro + - name: proc_info + cmd: ps auxf | grep -v ]$ + - name: systemctl_failed_info + cmd: systemctl --state=failed --no-pager + - name: k8s_info + cmd: "{{ bin_dir }}/kubectl get all --all-namespaces -o wide" + - name: errors_info + cmd: journalctl -p err --no-pager + - name: etcd_info + cmd: "{{ bin_dir }}/etcdctl endpoint --cluster health" + - name: calico_info + cmd: "{{ bin_dir }}/calicoctl node status" + when: '{{ kube_network_plugin == "calico" }}' + - name: calico_workload_info + cmd: "{{ bin_dir }}/calicoctl get workloadEndpoint -o wide" + when: '{{ kube_network_plugin == "calico" }}' + - name: calico_pool_info + cmd: "{{ bin_dir }}/calicoctl get ippool -o wide" + when: '{{ kube_network_plugin == "calico" }}' + - name: weave_info + cmd: weave report + when: '{{ kube_network_plugin == "weave" }}' + - name: weave_logs + cmd: "{{ docker_bin_dir }}/docker logs weave" + when: '{{ kube_network_plugin == "weave" }}' + - name: kube_describe_all + cmd: "{{ bin_dir }}/kubectl describe all --all-namespaces" + - name: kube_describe_nodes + cmd: "{{ bin_dir }}/kubectl describe nodes" + - name: kubelet_logs + cmd: journalctl -u kubelet --no-pager + - name: coredns_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l k8s-app=coredns -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system; done" + - name: apiserver_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l component=kube-apiserver -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system; done" + - name: controller_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l component=kube-controller-manager -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system; done" + - name: scheduler_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l component=kube-scheduler -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system; done" + - name: proxy_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l k8s-app=kube-proxy -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system; done" + - name: nginx_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l k8s-app=kube-nginx -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system; done" + - name: flannel_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l app=flannel -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system flannel-container; done" + when: '{{ kube_network_plugin == "flannel" }}' + - name: canal_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l k8s-app=canal-node -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system flannel; done" + when: '{{ kube_network_plugin == "canal" }}' + - name: calico_policy_logs + cmd: "for i in `{{ bin_dir }}/kubectl get pods -n kube-system -l k8s-app=calico-kube-controllers -o jsonpath={.items..metadata.name}`; + do {{ bin_dir }}/kubectl logs ${i} -n kube-system ; done" + when: '{{ kube_network_plugin in ["canal", "calico"] }}' + - name: helm_show_releases_history + cmd: "for i in `{{ bin_dir }}/helm list -q`; do {{ bin_dir }}/helm history ${i} --col-width=0; done" + when: "{{ helm_enabled|default(true) }}" + + logs: + - /var/log/syslog + - /var/log/daemon.log + - /var/log/kern.log + - /var/log/dpkg.log + - /var/log/apt/history.log + - /var/log/yum.log + - /var/log/messages + - /var/log/dmesg + + environment: + ETCDCTL_API: 3 + ETCDCTL_CERT: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}.pem" + ETCDCTL_KEY: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}-key.pem" + ETCDCTL_CACERT: "{{ etcd_cert_dir }}/ca.pem" + ETCDCTL_ENDPOINTS: "{{ etcd_access_addresses }}" + + tasks: + - name: set etcd_access_addresses + set_fact: + etcd_access_addresses: |- + {% for item in groups['etcd'] -%} + https://{{ item }}:2379{% if not loop.last %},{% endif %} + {%- endfor %} + when: "'etcd' in groups" + + - name: Storing commands output + shell: "{{ item.cmd }} &> {{ item.name }}" + failed_when: false + with_items: "{{ commands }}" + when: item.when | default(True) + no_log: True + + - name: Fetch results + fetch: src={{ item.name }} dest=/tmp/{{ archive_dirname }}/commands + with_items: "{{ commands }}" + when: item.when | default(True) + failed_when: false + + - name: Fetch logs + fetch: src={{ item }} dest=/tmp/{{ archive_dirname }}/logs + with_items: "{{ logs }}" + failed_when: false + + - name: Pack results and logs + archive: + path: "/tmp/{{ archive_dirname }}" + dest: "{{ dir|default('.') }}/logs.tar.gz" + remove: true + mode: 0640 + delegate_to: localhost + connection: local + become: false + run_once: true + + - name: Clean up collected command outputs + file: path={{ item.name }} state=absent + with_items: "{{ commands }}" diff --git a/XTesting/kubespray/scripts/deploy.sh b/XTesting/kubespray/scripts/deploy.sh new file mode 100644 index 0000000..11c9f78 --- /dev/null +++ b/XTesting/kubespray/scripts/deploy.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +cp -rfp inventory/sample inventory/oransc-cluster +. sample_env +declare -a IPS=($ANSIBLE_HOST_IP) +CONFIG_FILE=inventory/oransc-cluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]} +ansible-playbook -i inventory/oransc-cluster/hosts.yaml --become --private-key inventory/oransc-cluster/id_rsa cluster.yml + +#sshpass -p $ANSIBLE_PASSWORD scp -o StrictHostKeyChecking=no -i inventory/oransc-cluster/id_rsa -q root@$ANSIBLE_HOST_IP:/root/.kube/config ${PROJECT_ROOT}/config +scp -o StrictHostKeyChecking=no -i inventory/oransc-cluster/id_rsa -q root@$ANSIBLE_HOST_IP:/root/.kube/config ${PROJECT_ROOT}/config +sed -i "s/127.0.0.1/${ANSIBLE_HOST_IP}/g" "${PROJECT_ROOT}"/config diff --git a/XTesting/kubespray/scripts/download_hash.py b/XTesting/kubespray/scripts/download_hash.py new file mode 100644 index 0000000..1a1b385 --- /dev/null +++ b/XTesting/kubespray/scripts/download_hash.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 + +# After a new version of Kubernetes has been released, +# run this script to update roles/download/defaults/main.yml +# with new hashes. + +import hashlib +import sys + +import requests +from ruamel.yaml import YAML + +MAIN_YML = "../roles/download/defaults/main.yml" + +def open_main_yaml(): + yaml = YAML() + yaml.explicit_start = True + yaml.preserve_quotes = True + yaml.width = 4096 + + with open(MAIN_YML, "r") as main_yml: + data = yaml.load(main_yml) + + return data, yaml + + +def download_hash(versions): + architectures = ["arm", "arm64", "amd64", "ppc64le"] + downloads = ["kubelet", "kubectl", "kubeadm"] + + data, yaml = open_main_yaml() + + for download in downloads: + checksum_name = f"{download}_checksums" + for arch in architectures: + for version in versions: + if not version.startswith("v"): + version = f"v{version}" + url = f"https://storage.googleapis.com/kubernetes-release/release/{version}/bin/linux/{arch}/{download}" + download_file = requests.get(url, allow_redirects=True) + download_file.raise_for_status() + sha256sum = hashlib.sha256(download_file.content).hexdigest() + data[checksum_name][arch][version] = sha256sum + + with open(MAIN_YML, "w") as main_yml: + yaml.dump(data, main_yml) + print(f"\n\nUpdated {MAIN_YML}\n") + + +def usage(): + print(f"USAGE:\n {sys.argv[0]} [k8s_version1] [[k8s_version2]....[k8s_versionN]]") + + +def main(argv=None): + if not argv: + argv = sys.argv[1:] + if not argv: + usage() + return 1 + download_hash(argv) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/XTesting/kubespray/scripts/download_hash.sh b/XTesting/kubespray/scripts/download_hash.sh new file mode 100644 index 0000000..e15dc2a --- /dev/null +++ b/XTesting/kubespray/scripts/download_hash.sh @@ -0,0 +1,28 @@ +#!/bin/sh +set -eo pipefail + +VERSIONS="$@" +ARCHITECTURES="arm arm64 amd64 ppc64le" +DOWNLOADS="kubelet kubectl kubeadm" +DOWNLOAD_DIR="tmp/kubeadm_hasher" + +if [ -z "$VERSIONS" ]; then + echo "USAGE: $0 " + exit 1 +fi + +mkdir -p ${DOWNLOAD_DIR} +for download in ${DOWNLOADS}; do + echo -e "\n\n${download}_checksums:" + for arch in ${ARCHITECTURES}; do + echo -e " ${arch}:" + for version in ${VERSIONS}; do + TARGET="${DOWNLOAD_DIR}/${download}-$version-$arch" + if [ ! -f ${TARGET} ]; then + curl -L -f -S -s -o ${TARGET} "https://storage.googleapis.com/kubernetes-release/release/${version}/bin/linux/${arch}/${download}" + fi + echo -e " ${version}: $(sha256sum ${TARGET} | awk '{print $1}')" + done + done +done +echo -e "\n\nAdd these values to roles/download/defaults/main.yml" diff --git a/XTesting/kubespray/scripts/gen_tags.sh b/XTesting/kubespray/scripts/gen_tags.sh new file mode 100755 index 0000000..1bc94c8 --- /dev/null +++ b/XTesting/kubespray/scripts/gen_tags.sh @@ -0,0 +1,12 @@ +#!/bin/sh +set -eo pipefail + +#Generate MD formatted tags from roles and cluster yaml files +printf "|%25s |%9s\n" "Tag name" "Used for" +echo "|--------------------------|---------" +tags=$(grep -r tags: . | perl -ne '/tags:\s\[?(([\w\-_]+,?\s?)+)/ && printf "%s ", "$1"'|\ + perl -ne 'print join "\n", split /\s|,/' | sort -u) +for tag in $tags; do + match=$(cat docs/ansible.md | perl -ne "/^\|\s+${tag}\s\|\s+((\S+\s?)+)/ && printf \$1") + printf "|%25s |%s\n" "${tag}" " ${match}" +done diff --git a/XTesting/kubespray/scripts/gitlab-branch-cleanup/.gitignore b/XTesting/kubespray/scripts/gitlab-branch-cleanup/.gitignore new file mode 100644 index 0000000..03e7ca8 --- /dev/null +++ b/XTesting/kubespray/scripts/gitlab-branch-cleanup/.gitignore @@ -0,0 +1,2 @@ +openrc +venv diff --git a/XTesting/kubespray/scripts/gitlab-branch-cleanup/README.md b/XTesting/kubespray/scripts/gitlab-branch-cleanup/README.md new file mode 100644 index 0000000..6a2b5ff --- /dev/null +++ b/XTesting/kubespray/scripts/gitlab-branch-cleanup/README.md @@ -0,0 +1,24 @@ +# gitlab-branch-cleanup + +Cleanup old branches in a GitLab project + +## Installation + +```shell +pip install -r requirements.txt +python main.py --help +``` + +## Usage + +```console +$ export GITLAB_API_TOKEN=foobar +$ python main.py kargo-ci/kubernetes-sigs-kubespray +Deleting branch pr-5220-containerd-systemd from 2020-02-17 ... +Deleting branch pr-5561-feature/cinder_csi_fixes from 2020-02-17 ... +Deleting branch pr-5607-add-flatcar from 2020-02-17 ... +Deleting branch pr-5616-fix-typo from 2020-02-17 ... +Deleting branch pr-5634-helm_310 from 2020-02-18 ... +Deleting branch pr-5644-patch-1 from 2020-02-15 ... +Deleting branch pr-5647-master from 2020-02-17 ... +``` diff --git a/XTesting/kubespray/scripts/gitlab-branch-cleanup/main.py b/XTesting/kubespray/scripts/gitlab-branch-cleanup/main.py new file mode 100644 index 0000000..2d7fe1c --- /dev/null +++ b/XTesting/kubespray/scripts/gitlab-branch-cleanup/main.py @@ -0,0 +1,38 @@ +import gitlab +import argparse +import os +import sys +from datetime import timedelta, datetime, timezone + + +parser = argparse.ArgumentParser( + description='Cleanup old branches in a GitLab project') +parser.add_argument('--api', default='https://gitlab.com/', + help='URL of GitLab API, defaults to gitlab.com') +parser.add_argument('--age', type=int, default=30, + help='Delete branches older than this many days') +parser.add_argument('--prefix', default='pr-', + help='Cleanup only branches with names matching this prefix') +parser.add_argument('--dry-run', action='store_true', + help='Do not delete anything') +parser.add_argument('project', + help='Path of the GitLab project') + +args = parser.parse_args() +limit = datetime.now(timezone.utc) - timedelta(days=args.age) + +if os.getenv('GITLAB_API_TOKEN', '') == '': + print("Environment variable GITLAB_API_TOKEN is required.") + sys.exit(2) + +gl = gitlab.Gitlab(args.api, private_token=os.getenv('GITLAB_API_TOKEN')) +gl.auth() + +p = gl.projects.get(args.project) +for b in p.branches.list(all=True): + date = datetime.fromisoformat(b.commit['created_at']) + if date < limit and not b.protected and not b.default and b.name.startswith(args.prefix): + print("Deleting branch %s from %s ..." % + (b.name, date.date().isoformat())) + if not args.dry_run: + b.delete() diff --git a/XTesting/kubespray/scripts/gitlab-branch-cleanup/requirements.txt b/XTesting/kubespray/scripts/gitlab-branch-cleanup/requirements.txt new file mode 100644 index 0000000..4a169ed --- /dev/null +++ b/XTesting/kubespray/scripts/gitlab-branch-cleanup/requirements.txt @@ -0,0 +1 @@ +python-gitlab diff --git a/XTesting/kubespray/scripts/gitlab-runner.sh b/XTesting/kubespray/scripts/gitlab-runner.sh new file mode 100644 index 0000000..c05ee7e --- /dev/null +++ b/XTesting/kubespray/scripts/gitlab-runner.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/cache:/srv/gitlab-runner/cache -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:v1.10.0 + +# +#/srv/gitlab-runner/config# cat config.toml +#concurrent = 10 +#check_interval = 1 + +#[[runners]] +# name = "2edf3d71fe19" +# url = "https://gitlab.com" +# token = "THE TOKEN-CHANGEME" +# executor = "docker" +# [runners.docker] +# tls_verify = false +# image = "docker:latest" +# privileged = true +# disable_cache = false +# cache_dir = "/srv/gitlab-runner/cache" +# volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/srv/gitlab-runner/cache:/cache:rw"] +# [runners.cache] diff --git a/XTesting/kubespray/scripts/openstack-cleanup/.gitignore b/XTesting/kubespray/scripts/openstack-cleanup/.gitignore new file mode 100644 index 0000000..61f5948 --- /dev/null +++ b/XTesting/kubespray/scripts/openstack-cleanup/.gitignore @@ -0,0 +1 @@ +openrc diff --git a/XTesting/kubespray/scripts/openstack-cleanup/README.md b/XTesting/kubespray/scripts/openstack-cleanup/README.md new file mode 100644 index 0000000..737d2f6 --- /dev/null +++ b/XTesting/kubespray/scripts/openstack-cleanup/README.md @@ -0,0 +1,21 @@ +# openstack-cleanup + +Tool to deletes openstack servers older than a specific age (default 4h). + +Useful to cleanup orphan servers that are left behind when CI is manually cancelled or fails unexpectedly. + +## Installation + +```shell +pip install -r requirements.txt +python main.py --help +``` + +## Usage + +```console +$ python main.py +This will delete VMs... (ctrl+c to cancel) +Will delete server example1 +Will delete server example2 +``` diff --git a/XTesting/kubespray/scripts/openstack-cleanup/main.py b/XTesting/kubespray/scripts/openstack-cleanup/main.py new file mode 100755 index 0000000..511f060 --- /dev/null +++ b/XTesting/kubespray/scripts/openstack-cleanup/main.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python +import argparse +import openstack +import logging +import datetime +import time + +DATE_FORMAT = '%Y-%m-%dT%H:%M:%SZ' +PAUSE_SECONDS = 5 + +log = logging.getLogger('openstack-cleanup') + +parser = argparse.ArgumentParser(description='Cleanup OpenStack resources') + +parser.add_argument('-v', '--verbose', action='store_true', + help='Increase verbosity') +parser.add_argument('--hours', type=int, default=4, + help='Age (in hours) of VMs to cleanup (default: 4h)') +parser.add_argument('--dry-run', action='store_true', + help='Do not delete anything') + +args = parser.parse_args() + +oldest_allowed = datetime.datetime.now() - datetime.timedelta(hours=args.hours) + + +def main(): + if args.dry_run: + print('Running in dry-run mode') + else: + print('This will delete resources... (ctrl+c to cancel)') + time.sleep(PAUSE_SECONDS) + + conn = openstack.connect() + + print('Servers...') + map_if_old(conn.compute.delete_server, + conn.compute.servers()) + + print('Security groups...') + map_if_old(conn.network.delete_security_group, + conn.network.security_groups()) + + print('Ports...') + try: + map_if_old(conn.network.delete_port, + conn.network.ports()) + except openstack.exceptions.ConflictException as ex: + # Need to find subnet-id which should be removed from a router + for sn in conn.network.subnets(): + try: + fn_if_old(conn.network.delete_subnet, sn) + except openstack.exceptions.ConflictException: + for r in conn.network.routers(): + print("Deleting subnet %s from router %s", sn, r) + try: + conn.network.remove_interface_from_router( + r, subnet_id=sn.id) + except Exception as ex: + print("Failed to delete subnet from router as %s", ex) + + # After removing unnecessary subnet from router, retry to delete ports + map_if_old(conn.network.delete_port, + conn.network.ports()) + + print('Subnets...') + map_if_old(conn.network.delete_subnet, + conn.network.subnets()) + + print('Networks...') + for n in conn.network.networks(): + if not n.is_router_external: + fn_if_old(conn.network.delete_network, n) + + +# runs the given fn to all elements of the that are older than allowed +def map_if_old(fn, items): + for item in items: + fn_if_old(fn, item) + + +# run the given fn function only if the passed item is older than allowed +def fn_if_old(fn, item): + created_at = datetime.datetime.strptime(item.created_at, DATE_FORMAT) + if item.name == "default": # skip default security group + return + if created_at < oldest_allowed: + print('Will delete %(name)s (%(id)s)' % item) + if not args.dry_run: + fn(item) + + +if __name__ == '__main__': + # execute only if run as a script + main() diff --git a/XTesting/kubespray/scripts/openstack-cleanup/requirements.txt b/XTesting/kubespray/scripts/openstack-cleanup/requirements.txt new file mode 100644 index 0000000..81c57a6 --- /dev/null +++ b/XTesting/kubespray/scripts/openstack-cleanup/requirements.txt @@ -0,0 +1 @@ +openstacksdk>=0.43.0 diff --git a/XTesting/kubespray/scripts/premoderator.sh b/XTesting/kubespray/scripts/premoderator.sh new file mode 100644 index 0000000..94713ef --- /dev/null +++ b/XTesting/kubespray/scripts/premoderator.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# A naive premoderation script to allow Gitlab CI pipeline on a specific PRs' comment +# Exits with 0, if the pipeline is good to go +# Exits with 1, if the user is not allowed to start pipeline +# Exits with 2, if script is unable to get issue id from CI_BUILD_REF_NAME variable +# Exits with 3, if missing the magic comment in the pipeline to start the pipeline + +CURL_ARGS="-fs --retry 4 --retry-delay 5" +MAGIC="${MAGIC:-ci check this}" +exit_code=0 + +# Get PR number from CI_BUILD_REF_NAME +issue=$(echo ${CI_BUILD_REF_NAME} | perl -ne '/^pr-(\d+)-\S+$/ && print $1') + +if [ "$issue" = "" ]; then + echo "Unable to get issue id from: $CI_BUILD_REF_NAME" + exit 2 +fi + +echo "Fetching labels from PR $issue" +labels=$(curl ${CURL_ARGS} "https://api.github.com/repos/kubernetes-sigs/kubespray/issues/${issue}?access_token=${GITHUB_TOKEN}" | jq '{labels: .labels}' | jq '.labels[].name' | jq -s '') +labels_to_patch=$(echo -n $labels | jq '. + ["needs-ci-auth"]' | tr -d "\n") + +echo "Checking for '$MAGIC' comment in PR $issue" + +# Get the user name from the PR comments with the wanted magic incantation casted +user=$(curl ${CURL_ARGS} "https://api.github.com/repos/kubernetes-sigs/kubespray/issues/${issue}/comments" | jq -M "map(select(.body | contains (\"$MAGIC\"))) | .[0] .user.login" | tr -d '"') + +# Check for the required user group membership to allow (exit 0) or decline (exit >0) the pipeline +if [ "$user" = "" ] || [ "$user" = "null" ]; then + echo "Missing '$MAGIC' comment from one of the OWNERS" + exit_code=3 +else + echo "Found comment from user: $user" + + curl ${CURL_ARGS} "https://api.github.com/orgs/kubernetes-sigs/members/${user}" + + if [ $? -ne 0 ]; then + echo "User does not have permissions to start CI run" + exit_code=1 + else + labels_to_patch=$(echo -n $labels | jq '. - ["needs-ci-auth"]' | tr -d "\n") + exit_code=0 + echo "$user has allowed CI to start" + fi +fi + +# Patch labels on PR +curl ${CURL_ARGS} --request PATCH "https://api.github.com/repos/kubernetes-sigs/kubespray/issues/${issue}?access_token=${GITHUB_TOKEN}" -H "Content-Type: application/json" -d "{\"labels\": ${labels_to_patch}}" + +exit $exit_code diff --git a/XTesting/kubespray/setup.cfg b/XTesting/kubespray/setup.cfg new file mode 100644 index 0000000..96f50b6 --- /dev/null +++ b/XTesting/kubespray/setup.cfg @@ -0,0 +1,62 @@ +[metadata] +name = kubespray +summary = Ansible modules for installing Kubernetes +description-file = + README.md +author = Kubespray +author-email = smainklh@gmail.com +license = Apache License (2.0) +home-page = https://github.com/kubernetes-sigs/kubespray +classifier = + License :: OSI Approved :: Apache Software License + Development Status :: 4 - Beta + Intended Audience :: Developers + Intended Audience :: System Administrators + Intended Audience :: Information Technology + Topic :: Utilities + +[global] +setup-hooks = + pbr.hooks.setup_hook + +[files] +data_files = + usr/share/kubespray/playbooks/ = + cluster.yml + upgrade-cluster.yml + scale.yml + reset.yml + remove-node.yml + extra_playbooks/upgrade-only-k8s.yml + usr/share/kubespray/roles = roles/* + usr/share/kubespray/library = library/* + usr/share/doc/kubespray/ = + LICENSE + README.md + usr/share/doc/kubespray/inventory/ = + inventory/sample/inventory.ini + etc/kubespray/ = + ansible.cfg + etc/kubespray/inventory/sample/group_vars/ = + inventory/sample/group_vars/etcd.yml + etc/kubespray/inventory/sample/group_vars/all/ = + inventory/sample/group_vars/all/all.yml + inventory/sample/group_vars/all/azure.yml + inventory/sample/group_vars/all/coreos.yml + inventory/sample/group_vars/all/docker.yml + inventory/sample/group_vars/all/oci.yml + inventory/sample/group_vars/all/openstack.yml + +[wheel] +universal = 1 + +[pbr] +skip_authors = True +skip_changelog = True + +[bdist_rpm] +group = "System Environment/Libraries" +requires = + ansible + python-jinja2 + python-netaddr diff --git a/XTesting/kubespray/setup.py b/XTesting/kubespray/setup.py new file mode 100644 index 0000000..6a931a6 --- /dev/null +++ b/XTesting/kubespray/setup.py @@ -0,0 +1,19 @@ +# Copyright Red Hat, Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import setuptools + +setuptools.setup( + setup_requires=['pbr'], + pbr=True) diff --git a/XTesting/kubespray/test-infra/image-builder/Makefile b/XTesting/kubespray/test-infra/image-builder/Makefile new file mode 100644 index 0000000..82dba64 --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/Makefile @@ -0,0 +1,2 @@ +deploy: + ansible-playbook -i hosts.ini -e docker_password=$(docker_password) cluster.yml diff --git a/XTesting/kubespray/test-infra/image-builder/OWNERS b/XTesting/kubespray/test-infra/image-builder/OWNERS new file mode 100644 index 0000000..0d2e92d --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - woopstar + - ant31 +reviewers: + - woopstar + - ant31 diff --git a/XTesting/kubespray/test-infra/image-builder/cluster.yml b/XTesting/kubespray/test-infra/image-builder/cluster.yml new file mode 100644 index 0000000..a25de7f --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/cluster.yml @@ -0,0 +1,5 @@ +--- +- hosts: image-builder + gather_facts: false + roles: + - kubevirt-images diff --git a/XTesting/kubespray/test-infra/image-builder/hosts.ini b/XTesting/kubespray/test-infra/image-builder/hosts.ini new file mode 100644 index 0000000..e000302 --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/hosts.ini @@ -0,0 +1,4 @@ +image-builder-1 ansible_ssh_host=xxx.xxx.xxx.xxx + +[image-builder] +image-builder-1 diff --git a/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/defaults/main.yml b/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/defaults/main.yml new file mode 100644 index 0000000..5e73068 --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/defaults/main.yml @@ -0,0 +1,119 @@ +--- +images_dir: /images/base + +docker_user: kubespray+buildvmimages +docker_host: quay.io +registry: quay.io/kubespray + +images: + ubuntu-1604: + filename: xenial-server-cloudimg-amd64-disk1.img + url: https://storage.googleapis.com/kubespray-images/ubuntu/xenial-server-cloudimg-amd64-disk1.img + checksum: sha256:c0d099383cd064390b568e20d1c39a9c68ba864764404b70f754a7b1b2f808f7 + converted: false + tag: "latest" + + ubuntu-1804: + filename: bionic-server-cloudimg-amd64.img + url: https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img + checksum: sha256:c3d0e03f4245ffaabd7647e6dabf346b944a62b9934d0a89f3a04b4236386af2 + converted: false + tag: "latest" + + ubuntu-2004: + filename: focal-server-cloudimg-amd64.img + url: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64-disk-kvm.img + checksum: sha256:8faf1f5a27c956ad0c49dac3114a355fbaf1b2d21709e10a18e67213fbb95b81 + converted: false + tag: "latest" + + ubuntu-2204: + filename: jammy-server-cloudimg-amd64.img + url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img + checksum: sha256:d3f3f446bf35b2e58b82c10c8fa65525264efe5b0e398238f00ab670f49528ab + converted: false + tag: "latest" + + fedora-35: + filename: Fedora-Cloud-Base-35-1.2.x86_64.qcow2 + url: https://download.fedoraproject.org/pub/fedora/linux/releases/35/Cloud/x86_64/images/Fedora-Cloud-Base-35-1.2.x86_64.qcow2 + checksum: sha256:fe84502779b3477284a8d4c86731f642ca10dd3984d2b5eccdf82630a9ca2de6 + converted: true + tag: "latest" + + fedora-36: + filename: Fedora-Cloud-Base-36-1.5.x86_64.qcow2 + url: https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images/Fedora-Cloud-Base-36-1.5.x86_64.qcow2 + checksum: sha256:ca9e514cc2f4a7a0188e7c68af60eb4e573d2e6850cc65b464697223f46b4605 + converted: true + tag: "latest" + + fedora-coreos: + filename: fedora-coreos-32.20200601.3.0-openstack.x86_64.qcow2.xz + url: https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/32.20200601.3.0/x86_64/fedora-coreos-32.20200601.3.0-openstack.x86_64.qcow2.xz + checksum: sha256:fe78c348189d745eb5f6f80ff9eb2af67da8e84880d264f4301faaf7c2a72646 + converted: true + tag: "latest" + + centos-7: + filename: CentOS-7-x86_64-GenericCloud-2009.qcow2 + url: http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2009.qcow2 + checksum: sha256:e38bab0475cc6d004d2e17015969c659e5a308111851b0e2715e84646035bdd3 + converted: true + tag: "latest" + + centos-8: + filename: CentOS-8-GenericCloud-8.3.2011-20201204.2.x86_64.qcow2 + url: http://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.3.2011-20201204.2.x86_64.qcow2 + checksum: sha256:7ec97062618dc0a7ebf211864abf63629da1f325578868579ee70c495bed3ba0 + converted: true + tag: "latest" + + almalinux-8: + filename: AlmaLinux-8-GenericCloud-latest.x86_64.qcow2 + url: https://repo.almalinux.org/almalinux/8.5/cloud/x86_64/images/AlmaLinux-8-GenericCloud-8.5-20211119.x86_64.qcow2 + checksum: sha256:d629247b12802157be127db53a7fcb484b80fceae9896d750c953a51a8c6688f + converted: true + tag: "latest" + + rockylinux-8: + filename: Rocky-8-GenericCloud-8.6-20220515.x86_64.qcow2 + url: https://download.rockylinux.org/pub/rocky/8.6/images/Rocky-8-GenericCloud-8.6-20220515.x86_64.qcow2 + checksum: sha256:77e79f487c70f6bfa5655d8084e02cb8d31900a2c2a22b2334c3401b40a1231c + converted: true + tag: "latest" + + debian-9: + filename: debian-9-openstack-amd64.qcow2 + url: https://cdimage.debian.org/cdimage/openstack/current-9/debian-9-openstack-amd64.qcow2 + checksum: sha256:01d9345ba7a6523d214d2eaabe07fe7b4b69b28e63d7a6b322521e99e5768719 + converted: true + tag: "latest" + + debian-10: + filename: debian-10-openstack-amd64.qcow2 + url: https://cdimage.debian.org/cdimage/openstack/current-10/debian-10-openstack-amd64.qcow2 + checksum: sha512:296ad8345cb49e52464a0cb8bf4365eb0b9e4220c47ebdd73d134d51effc756d5554aee15027fffd038fef4ad5fa984c94208bce60572d58b2ab26f74bb2a5de + converted: true + tag: "latest" + + debian-11: + filename: debian-11-generic-amd64-20210814-734.qcow2 + url: https://cdimage.debian.org/cdimage/cloud/bullseye/20210814-734/debian-11-generic-amd64-20210814-734.qcow2 + checksum: sha512:ed680265ce925e3e02336b052bb476883e2d3b023f7b7d39d064d58ba5f1856869f75dca637c27c0303b731d082ff23a7e45ea2e3f9bcb8f3c4ce0c24332885d + converted: true + tag: "latest" + + oracle-7: + filename: oracle-linux-76.qcow2 + url: https://storage.googleapis.com/born-images/oracle76/oracle-linux-76.qcow2 + checksum: sha256:f396c03e907fa2a0c94d6807b9f62622f23ee3499df4456ae2a15da381fbdca5 + converted: true + tag: "latest" + + opensuse-leap-15: + filename: openSUSE-Leap-15.3.x86_64-1.0.1-NoCloud-Build2.63.qcow2 + url: https://download.opensuse.org/repositories/Cloud:/Images:/Leap_15.3/images/openSUSE-Leap-15.3.x86_64-1.0.1-NoCloud-Build2.63.qcow2 + checksum: sha256:289248945e2d058551c71c1bdcb31a361cefe7136c7fd88a09b524eedfaf5215 + converted: true + tag: "latest" diff --git a/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/tasks/main.yml b/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/tasks/main.yml new file mode 100644 index 0000000..a0b36be --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/tasks/main.yml @@ -0,0 +1,57 @@ +--- + +- name: Create image directory + file: + state: directory + path: "{{ images_dir }}" + mode: 0755 + +- name: Download images files + get_url: + url: "{{ item.value.url }}" + dest: "{{ images_dir }}/{{ item.value.filename }}" + checksum: "{{ item.value.checksum }}" + loop: "{{ images|dict2items }}" + +- name: Unxz compressed images + command: unxz --force {{ images_dir }}/{{ item.value.filename }} + loop: "{{ images|dict2items }}" + when: + - item.value.filename.endswith('.xz') + +- name: Convert images which is not in qcow2 format + command: qemu-img convert -O qcow2 {{ images_dir }}/{{ item.value.filename.rstrip('.xz') }} {{ images_dir }}/{{ item.key }}.qcow2 + loop: "{{ images|dict2items }}" + when: + - not (item.value.converted|bool) + +- name: Make sure all images are ending with qcow2 + command: cp {{ images_dir }}/{{ item.value.filename.rstrip('.xz') }} {{ images_dir }}/{{ item.key }}.qcow2 + loop: "{{ images|dict2items }}" + when: + - item.value.converted|bool + +- name: Resize images # noqa 301 + command: qemu-img resize {{ images_dir }}/{{ item.key }}.qcow2 +8G + loop: "{{ images|dict2items }}" + +# STEP 2: Include the images inside a container +- name: Template default Dockerfile + template: + src: Dockerfile + dest: "{{ images_dir }}/Dockerfile" + mode: 0644 + +- name: Create docker images for each OS # noqa 301 + command: docker build -t {{ registry }}/vm-{{ item.key }}:{{ item.value.tag }} --build-arg cloud_image="{{ item.key }}.qcow2" {{ images_dir }} + loop: "{{ images|dict2items }}" + +- name: docker login # noqa 301 + command: docker login -u="{{ docker_user }}" -p="{{ docker_password }}" "{{ docker_host }}" + +- name: docker push image # noqa 301 + command: docker push {{ registry }}/vm-{{ item.key }}:{{ item.value.tag }} + loop: "{{ images|dict2items }}" + +- name: docker logout # noqa 301 + command: docker logout -u="{{ docker_user }}" "{{ docker_host }}" diff --git a/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/templates/Dockerfile b/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/templates/Dockerfile new file mode 100644 index 0000000..f776cbf --- /dev/null +++ b/XTesting/kubespray/test-infra/image-builder/roles/kubevirt-images/templates/Dockerfile @@ -0,0 +1,6 @@ +FROM kubevirt/registry-disk-v1alpha + +ARG cloud_image +MAINTAINER "The Kubespray Project" + +COPY $cloud_image /disk diff --git a/XTesting/kubespray/test-infra/vagrant-docker/Dockerfile b/XTesting/kubespray/test-infra/vagrant-docker/Dockerfile new file mode 100644 index 0000000..f8c05e7 --- /dev/null +++ b/XTesting/kubespray/test-infra/vagrant-docker/Dockerfile @@ -0,0 +1,16 @@ +# Docker image published at quay.io/kubespray/vagrant + +ARG KUBESPRAY_VERSION +FROM quay.io/kubespray/kubespray:${KUBESPRAY_VERSION} + +ENV VAGRANT_VERSION=2.2.19 +ENV VAGRANT_DEFAULT_PROVIDER=libvirt +ENV VAGRANT_ANSIBLE_TAGS=facts + +RUN apt-get update && apt-get install -y wget libvirt-dev openssh-client rsync git + +# Install Vagrant +RUN wget https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}_x86_64.deb && \ + dpkg -i vagrant_${VAGRANT_VERSION}_x86_64.deb && \ + rm vagrant_${VAGRANT_VERSION}_x86_64.deb && \ + vagrant plugin install vagrant-libvirt diff --git a/XTesting/kubespray/test-infra/vagrant-docker/README.md b/XTesting/kubespray/test-infra/vagrant-docker/README.md new file mode 100644 index 0000000..36dcb9e --- /dev/null +++ b/XTesting/kubespray/test-infra/vagrant-docker/README.md @@ -0,0 +1,24 @@ +# vagrant docker image + +This image is used for the vagrant CI jobs. It is using the libvirt driver. + +## Usage + +```console +$ docker run --net host --rm -it -v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock quay.io/kubespray/vagrant +$ vagrant up +Bringing machine 'k8s-1' up with 'libvirt' provider... +Bringing machine 'k8s-2' up with 'libvirt' provider... +Bringing machine 'k8s-3' up with 'libvirt' provider... +[...] +``` + +## Cache + +You can set `/root/kubespray_cache` as a volume to keep cache between runs. + +## Building + +```shell +./build.sh v2.12.5 +``` diff --git a/XTesting/kubespray/test-infra/vagrant-docker/build.sh b/XTesting/kubespray/test-infra/vagrant-docker/build.sh new file mode 100755 index 0000000..dcf5445 --- /dev/null +++ b/XTesting/kubespray/test-infra/vagrant-docker/build.sh @@ -0,0 +1,13 @@ +#!/bin/sh +set -euo pipefail + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 tag" >&2 + exit 1 +fi + +VERSION="$1" +IMG="quay.io/kubespray/vagrant:${VERSION}" + +docker build . --build-arg "KUBESPRAY_VERSION=${VERSION}" --tag "$IMG" +docker push "$IMG" diff --git a/XTesting/kubespray/tests.tar.gz b/XTesting/kubespray/tests.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3cd207a5cd27a42c29c01ae63cae8d278201cf58 GIT binary patch literal 32442 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

    QK=bL+p-+FAPlE+myN%Kl$^QAQ<4cSlU) zdFnZM%2dh!V)-{lnk51K>zDVF1QYqc)y}T}N_(mQFC_h4mGT0eoKySX?6`6o{r|D; ze_QRW{a@K?Dog%fM7pQ`AKL$?-2@ErX0z_ALdQ>U1Psj|TsWF%B;!`|Epn7qPn4Q! z8^KQ%1{yQhBUXoJ$7G1NsqxUEW(RHt4t{}r=&%~b6^Xt>Cs<@f%{KMK=N`tCR{dLB zhmjgm!vqOq-F{KKjU@jEJ;}KmWS9Ska{m(cb(@7%MhVil9Z(jv_7sVTYhcvzY|4Qe< zJ!h8(llZ^2oqhjpv$eg{{}+;GIsZqyzgYi6zul7M9(M+Q;AyVv_+jJ_AFp+W30)O#}Z`AnzDo(O}V>&|#_P zSeA1gX*AH#OU)3W(Fw*(=Ru@bO&4$dU5OeWwMu> zx0(6IAGw%E4IXt(K$9!Hm!M~_93GS2r8-VnG@HA%DD0Tn9eEfC3=5Yya*52RChTRJ zDwX6~gfKA{o^9n8202!4n#l;h) za{up^q?wM;0U!1K@8*t@z5k(XFYkXXCe7sk-HP}hNF!gMT@HZ|Kl_ zP&S1cbWiQcqrPKZp&eSZ%)hJ9PEGermH*6|!tXKvMdv?5?N7&+xWS)Efk$5d;cIUF zZ!PzK3rW+R|D-4)Ap)Kn`(=7)s?z_3{pXr$SM(vLU^ zKBJ?_+Q8f`5mjp`F4nAbpu*t0IlS$tA&gVc)QyBf0vj6FMemq^DDtMfT@&EqO6pY@ zW}e-t4nAiwS-}4Wy)ZRfQRbriW16`CZ|Bc{m+Svx(p3De{;5zj3XZ zfz)$6$@d4i9R1C_v>z``760L}?|-#(=YOr``wxprDZa)4FZHU6+RHm(f3;L@|BJ4F zJ@^1%vi(1M|4Z54UdDf3NSew1_dIp}_tdB_(;QN{{ja&O`yZ`b{5J)@F8O~EX(sz$ za}NHWP>1gq{Mvw8!^{cxr3bYhe5k!lQ>V)H-?U)k|8NJuiTt07|Dx=)m;AqwbkFtw zKIea&oFdnmFxP=a=5`ss<%v?|`Y-tZ{x`pPn#}+C^Z#Z1x5cD;t^WgU&U|0vWz>Yj zokv|u)7fS1UG_q~{#l=+f2nE4_|K9E;wufb>7~I0{#ROC+4o41naKKF0bom=OFm%-RM|hv!b6o00>zyvbhiSiKR8>uastr z|NmI_A0;3Ed-?v?V$$an|L3X4;_sLW^nV>60Q7f+_vd{KKAAL$|JynL@7DG*{?AQ) zRa6~Kv~+;rF2RC3fdD~+YjA?Q2DjjD2Y2`25Q4i);Nb2W+}+&{XD;9U@58@VKg~SM znx5|7wQJX|`M+hm+?w{3X86(;Ep}V7Jj52{A&jL^B-8!w$WF2niDag>MPTuB49;GI9nywviQfIy@v@dOZOewXxUxHQoL%v!T< z06NkcN6^6qxC;>T;?pFHdIcb!zMUY9$XYWD$-M(?8`GfVQ8I50s21j+l%yFacqn8> z?E(A7ixO|qxr{Nz}d*rqv91@uzLZr<4OCkOzr&)(#UwnX_7AR zqRPrBgn9k?FnL#bFwlR$|G*!be@eK)1GWc&Wtw#dQtRg5=n|gh($31$QwD|KO9cq? z%P2k^ZrmyRHqdhXiF4V+6C z;nr#$dy}XSs>w(G_d3p`EAevV=37E^zw}N+;L|g?U4HB;bJajh5#bIJm)ZQgDM-Kt zL9^=wm(0%_bZa}WVZZF*6lVZ#XDB#x+zc|=Usw>94OH3p_%2{_39F3!1tdO?W7_RQ z-p@(AD4s(!mvr8s1D*O`puuPU$UeTP1;AVpjys;1@4yV8y9RL_0F6F?tLV}C3pk!G zRS)=9EDL=gBYDpJBLl%a_6r3vS4OTO7L-Rh5JTVhYMTf#4Qk~?6OAz!jb&rRYz`0# zPDBab$McUmAJh2y#b)px0Fed5OtP~$&dHXvuWyKnU-ta{iO3!%lxknw#KZ8yA0aD&|%deS)>3@OAYhZyL`Vcr1bO(gfrOMrhO4|-Z(~e))jF<%bMX!>8_d2xU4|NfE~%J2&}8iq0SVYi#%zD8^lNcl>oZ9w4(Y)-Qub3 z2;))`uB;hq7lRccQnkDWx>MB@g}y>t3rjCRf}806G7xY!{~L{wb^wZ!X?+mZQJ(|_Co5NvKMxGflpfx= zd@73so(eC3&y#P&1sO5$5{2Q{AphYlaD{XLweutWz{a}H0O-FH1X7(63E-C^*R-$M zac}$@4RV z=60;~=cius44Nt?-XrLm$Lu*r7KYGAonCu+RsR*XsrL zv+41`bD*)==>j-skb42d-oOF5YVfUq39LLJ%<_1)Mk#jQ*j|tfy!Z_w0frYUHTYR1 zYznqHQA+zxqO?LW#{4aJ*uMBLcc6RRH_rPK3*COYtyP(RGHiiKSA85Deg-G{0>$&z zEEjLF;4=+Wmk(kxFK(nLNCIkCtAW}qD9L>WR8+1Kd{C^D^F3#U5x*t?&Gjch(~QpX z|6*H^1ondg6qVDGi>h#s59(4n0>u5Y+;@QSpaSgoCV=Gq8EA9-tp^k&XR?_V|LF|a ze%>${1pTzPxC8y^sE-CZ<2f~7fYZgFMvml`Oa5Vc4t>NTKiqE1_Wt}pVuSb%T{B*3 z&osOMh%LbPEg*9q&>ejM6C|780DH-`x6s#e4?yDy_>>PzVKCbY#%Fs=d2a5(<9jc0 zQ8FBFH$3}6WQtk`IX>%tb%T|;UVQjDMNt5>1PYS1p)UsPSvNph@^8z-(BKdVWW5#U zdhxk>dkt>`j6B>kaO+F1toIR6o6czuTr5>~Dhk4aE;wUe(>kEk-?%%TUO-KC&l~36 zp3wUA+rxXq^UX$w8`g~^m3f!yCiNmVc>)kSnw&EB$UW)JPQ4eswBLDCY zp7{+D9R)zi>-#|lIm13~rT)OT__#ARD6V(c>z57S=fSq{CLG&;$yUbE>&4j%zdt*b zS8|Ku=p#0!%=`)9L)9g(2Q)js0H4i{fR6ZELTK)2I-BA5vVD-7+L_)`+(#gPeryd` zU()_B-hUnf+94`PN{fkqa#>PN0Np4rKt|c=K{)fxROk6^A0|PC|Li<;xB-(xM~y^> zaQ7mSxMb%zCVf6KVg!|)L}-!(V?3jGS;8e`4&FxM5R+#p5`!mdxGcq>qU&%9Rr9h_ z(kO{rBpM&Q4|zb96Ya$iPoG0q;e0kHV^#~6-L^I&8$>3##aF^;N46Wc`UDnB= zg1qJ7A9JiY1nNmTJ}>aCfQ7V%0>MDARuOr{$Y0B_^>mo-p?T_DhQeZWg_9=Lux^y& z%O!uY%P95s<%AUdYYq@80;WEUYMg!y?HkYM-uRB1{j|;zaV-Lk6I5f<_OWUQ{(Y#^ zJHo43%eryM86+Xf6XKhJl%eNXgCWS@o4$p%Z1wP&1!jsb-)-{Bh2&j@lC$8*>MOI{ z9iuM2hr{_=%ce>nsHjv0dILuR=s44Usg1jWrp?${OoEm(`9~jf-w-(kkmdxnXFd>D z@=oQSLW;!5BO^qJqvFQzD9Blm3J28*h{^;Drw9D(G;fex)}1yX6&w#n$Zv?WH~t$- zcC7?&)L8vZQGE^*W?GeDg%{4)+w0+YQb>UsAg6fN&L{zz-@a8->J>SD(wowZ5lHib zZty5{0ymFP^6~7f*XAX?bwFR*Yw9((SkmtoS=QT1e;T?1oF70R7{LE2x!ywl+c-K0 z*jXOOMFf4dScK%lPjz(PD0L;Q5#xJY4t1N%dI$14}ZmNK!YEEF0w-h zjb{XRK;f^z%fEo^G^2cMLJLhQf+JYmYTThj6S@bxaUWJz8AbtD?Ug& z;s#vpU4#l;TXg2UeDX_u?e3lyMt5>$^V|k4)Z1>A*j;I5Ajy{&qWbUGIktqiW?ifPtQmZr zpq&;(xpSbTPLyGj4N)w_o{rA9!X2h3*R~0kPNw)+QUr7PX3Jx7++FU--fUD1M+@=; z>dML7CjA8Yp0ox1UZCUMKgv?w&dM{YOj=lCpVzC4kJq7o54U)=lPMpjd$#L}*Itv( zwSQ>;v~+SI8goa~j)wo6V1dwVz2Pirhj#P-iBgXYW_0hFlNci4eBP9-1!U(PCq*b3 z+z7JHe|6{Q17RkHtE&fM4$I%1nD7bW?iB{{;}zTNF=8sH2 ziFcoblOz%|f2MD{JXw~Z-?EsxU?oQK&?GKW!`_fQ!5Txmh_v&$KZXY59x6;XVAkN8 z3gje2))8{OhpoU2hpAWY4KMrjAgD4eC&Tq)Mk;!HXatPYF{Q^5JxoW{s<4(M&l9ic zGL9IXA)6%ClTz@G<)LrF743uMK!dv1n~)+8A-Ub(PuQph*P}^XpnuBQ)4|mhQ~rr8 zR1zEZ#|1k%2@l6t*$hWlOo8%Ukk{)$fijAhv+m26tu}C@dOmPrIsyE6sb;KTn$gNB38H2 zyB4%oxysS3qWTkdm82(2SM6J+e)~L2?v}jweUn4R3L0mMImBMJMD5PvWP}4WH@z{R z`wI*I8~5=blhVOHH|RvxX=;`VGb3wIm_u4`i|V-V>oJZ*FZ2O*DwP9`oIwynafDd< zgLujY4noTUz%v8|UqguZ+1(wG_jPq($M`@rOo+aQpq3N_&4mq|8uc=G{HWGgOx6hg zE_(yIg++1#1Rj7C2)Oaj?mdt>`a+H>lk^A>EgdkyU^j^Rc^>=*N4xE%BXq}5w*NKz z<+ZtJo$*oH_Z{^)GS*RQco;v;8vFD^l}7I(uM#>PlTG{<=D%@dDj6i34)d?JL;Q+ z8Me(Z<8FNU6^Hbe9%NS9LI%xkEdFCG74!fpGKX3qbx!;y7ttm5Q$aLAg8bUmqbhHp z3o(;>p!1wz8-20mRD?!~Ppa3AkM7!fGP)Ox{7$?Vwf`Nc?V78%<8&v~t4KB<50#Nb zD~112hS>vrMcZ$eEhT#cRyxP;05+^y9{|NfgF1$;U77llZ*tXKM@TK2msf zow0mR$iEq!e71Mi$e>0P+Hf&?CD^;LsV2TPvAQU$U$qWDV`2H`E%{EZO{ZT5RGgBR zyhvTFlV+9DuPvVLM!4|x-4)soKY5xO8cC%H#J@N2PGz)(V^&!lCubFxf?skuhNoTP zF6snf#O>BiUja6I2lG_|#^dzaRcq$;pM0MS)cr^p7VT^+mW`)S9Vv22}cE31o0(i_j!`0JOa$sDp09#;Ka0)z>@Y_kg$4S z(G%2UhzdIYf5vO@Z=HyT73H16XE`n!-xWc|AT!jC(?Iz%w?|yvZ`yx5!zQcEuOA-P zJAGT5$#dj;^{Ojco4emh{N_PbymHI$~>|?RXbOZ#V@hP9_3vU zLjF4NCPBhMOWS>c^V@|){|()fSQMxu=PSk`TY*Jfq%X-1weO335Q}z-49RA3h2V9g zj3L##phpzz@9@UldD)@qa&M#>rw17 zW9}`>oe6G_H(7q|6imDtsEnGN`{FH%YU(R)#hpAp(AAo1lsm;?Pa`72ZfnT?ld(@; zWjS$%fxL;tPQ^ZjvNmki27_qJYtD5lsh>6M=Abf)2a~q+;{ItMWbqp!wNGdZVhN^3 zxl|Irti`~!=7=QrAah>ohemR=29XvGR8|@vyEsLij}5dZ_+@D*nzwmd{%QsxhSB~o zp@17Z=X4cnX-|$c-Q#+lQUh#doC+o|!1QaYLoQX55h(zoqlF^SZxWsT3g`64Q%Drkbi3CFzNJfopr=@hX8IFKV%i1fdZ*Y=Y!rImEN%0z zRwi`x`_u1Vy68|k(!WoB_fy><&B`Lljy^zxHh8QdNq(d2 z)=TW$!7dx@algrLHraFQvxiKn;p^-ncXIh@WtN0kovK@;M!8nw6#deq_SZi1Z~@iq z#??v5H#p~bdWRShtSETXd(5aV!(G4mV2)!;>jT2z51P}Yq=em%kzJ1G8(}_V-%DyB zhlB@aPRici&u+|r?}hTUuQXAsP-eJU(s68DUlQdp2u4| zg)9d#GNiNHhY%jQB>H`#FXpf)4lRvFpzGHnirmwkf%vHc@#)7}XcyZd?glq0E*deBQRG{auS67y9SytB$FWh}>d0b7t)pMJF0;3e4- zH-e)s#eStj7dGz+_ShD zv=`^6)ifN!)O$v~cnkyA4N~&#(idUZ2hf0P_M9VimR>;K3nD^@poqxNS8g91T`SuJ zF4pq$3gNoLD&opPjqwr5f)HwDk;w4y%15*z>G7(RPVOQCE9sRE7I-aNxo}JI{yGhQtwwSU75|N zMaZ5vGL+-AL&|Teg#o1tEelV9F-$N`khX->gS+v@wYlR91HAptk3)$XOW~I-xQ8&~ zzsr$t^8UGf+L)>>5vn`Xiv#Gg0jA1(jeCfFd4~_+OIi91!SubhMYK1Ol#;i9nD1z| z=YP3=sb8GAIXqe4$~@Fn5M1YfDXmA*^*yd$m^%l~!M;G*D8~D0M9af|j#mqbW5hz4 ziK|fm%cB0qunGo>{XRiuJf>Wlh;_EwW-{M?yk7lQQ~;qhklqYuT?GE97mJ8TLnp@m zq_hp%bqbH$3AxGrfn6&;y=mA^)*<7e}&&OC~|kYedl-Y`PLGn`-3UsA;Q*|fN(pVeM@PtRP&wD4_mr9 z5X?!Ut)lplC>laUNgUDqp+8d9$U|k6L@IwNokZCX{K-9PeifYO9XJcy(g>`o8xWRm zEH|=FqZ-cms&2EuOT6H^eH_N*8)9tW8Z>-vV``PWMqRAFCRP>Zxgtq=A$9; zAx(;p$>vm6_EmUnh$ZrLA!60&#D>~h1&3=YMi&zBV6?0I(=tJk%`MIJLv_XqjJ8#b z=2jAByE^!)cHQ!JaW=*o8>>-4$S)lG)gv}0*X6;W<77mf8nsQ(KtHaD=9?f6z0fcD z_3f|gRgfT7FAKJb0;8{8Jru|Y|3f3EsT!|-dm^kE zGvIYbj(Z3@L?!wzZa!Dy9r|kWWWFw2CQ!1S8%Lg~wNDhDW=zI$2kV#Nh*!K_WqdD- zzHh?u5050Z$HJNn^%vSf$Vu(rKdRA@*a#4Fy}k)>0i90?^W1i^K^j2{`wK|iSdol# ze|dlg0L<@SG0k+B)}P4hxHOq%XEyWzrdmMjJFw*iN~aqK@xMTW>gxYvzMA5b=K#^> zvujO4PCFyIxlVRLI$|3t1o22Q>jX{fXO4_!(owNVB|WsuyAL;!?2MDwzZkaw;<~B; ztl01>N;G70aLTm0tkd?!+)c1{KBCQ5%>JD(zJeI>-Hd`%m+4T|9l*I(1}P?kOj5ih z%;76OWi4Ic_(#^vaa+j2{(r@rUa^_N7jk$QQc3Qb4`4!}t?wS&PKRqtCy!zt^5&%% zpFpaK9XmACC!G|h*6wN~!V6kA@IQ2pl6%w^p~=4Q#U(>&5#6zpX*g=({>rpkQhFEYx!pV~ZeGKemaV&zBk?sq`g1-?tNg;9Itx?Nnz1(n!ic z*pCd7yV4)~qWvZg!v3QiQ24^cSK*gx0nS}v9ZdV*yp&L2!kh&fSHOJtR!Oq(fQvG0 zl_K!1j5`qaXq^lt_n5{MOkB4Luvo{kH%;2ulSCe7>&^3i;V+#(?@UGFu?w>gRBDgA zYD+hj2i*)Wn(SNqxTmoShgK-=9wu`RLAPL@TpqZ>Z0bD>j`D_)!eIi&uF_NfGzIkM z2Ph`eC{&?`u;2CMd=*LpvtXcvo2P8do3@B2#YcTkw3^ag>mW;q*_&`ZR=Qzv*PNzJ zSx;xHuvwz~Ct~^W%`OKO>)pJ4o=+7h+ycV%TJHpvqvK%wp@A$)1$)LNLWVjO53MYz@?l?9uj#0(X7-kY4I$?-D14(e8sNP9%Qx{&&#Tr zuJ^c8D4DU$oAgL~v&ti^HF0=%%iOf2VB*Lq_y?!5DyqqJoJ~!Ev##lrOpUkR8q$uB zn?@4P_!j^3uB(Q(&x+em1UL+QccTiluFCoJFYV$IaHr(9J%&M&Tl}#H#L(3I&kS+( zbJ*0h?ybH#KZ59Q=T5@27T*EMjEwe64_r_rKJQ;}2pR*zLY$MH@kN?CdHugPO@Q7i zT)3N1d6HBi)9AR3v^{Ok+F^;CL?A$dM z>%W``x1E~QbjB%r%g2y>iI0w_>|4XUjH!dznc-!2O3_bH1cux8n&~L=IXtb#t z(7t}w7mE5&ozUx={g-0g!FAsMRTh)I-DAL!7_vfBmEy;H(&i&H(U_7{ndfGH8S`mu}^o zhE-HalF#U_PW57=2hZZp*r9Y=?53}*EwOXvF|@wAvoJB{As${dWRzq7 zMsn3aRl*a;6*Z@Z0cbw$BZj?Mv8k!f*9*++i4ak)pU}rNzD$r%l(n>!}TlD9c(o$82%&5cJoX1s#f_bg_jWI)vdS zMN$RN48J8io1Q;sO#G-7H||NBX(UDMdqDcTbH?}v7^RBAs6 zH6oqh%e(hd`4Wavg8lu8nUqH*Zr$w`6++Ie1g`dZEr?7l_=iDU)zDnbjN4)tXm(pD zi1W|IBv>~MTxlPlGe(YSbd$T+jM18~r0Z@IsZ?lm$R@H@(9mY#lc-%ky$u_j_&DbJ z@v-Uf)$rFVXyO8-@d7fP1f^tuHnV!`V##2E9t3;^%l!&5Yc&|nnocFdFg+Wl+_Y4! ziWAs3kKT?H&2gD{=N)8p80bXa&)^y=@61lJW`9Wc3|IfTxd@SZ97nT6f&T+~tc+aG z@@$x0-KVhEx%!(&8MN!6Z?m%E?f1%Re45U6kSoq^D0ppkVgOiM*I5SelN@??Votfx zf?{kA5eC%Rr|^rkp#im`4f($`advoYd2sCKu6bCOP~>o{8|n^>l)tqOJbV*HjN1tQ z`AB?9W@WO6!E-S@6paJ)QSXs0_)&aBRt!#3q}XBz!||f9N9}eG47S=Jqxz) zcQgD$Nc)mO@ux!a(a@$UPMh~=nIyjgth)NnaH8Fua;nL|x!F|{V8x1w+_`l#RrUA$ zSE+7jp!o~A=Wq3E%hNjLDGI^WHsYj&Q%tjIF3w!~Gzy&U+EgQy{p9lq{w_2}N;9*} zGQ(ZBuK|%R%^#Hwle0zQk!5ZatsUl;9`54X$VX&2lpM9=n2Cq=W z6d*h8TY3J|VcU>N*xNw^!UD%Gp?tw%`X7MK%K{iYqul^q z>fr<4{1IkLB#t*x57}4EBsRapGYz*7aKp)p__{cakMq*cyQbv(?3df$FIEQbZ#vs+2zVrNPrKh_wH;t7>J#^WDWhXCcM>@FgBODOeiuhpw8qaz@8ok zI;*dE`c;Ft?#HSj3L^DVx9F`?egWp1-%n2?>4y?zPi~PDq}XEwmTej=1%|VWiyJ-0 z#=qqmBW2gqC@z-7)292w{yzvMYFoXMBdVcz+IBp))C;)LpVVNfa1i2DUTbSfKAl)< zmufDX$0dkxku=9&h)@vd zF&Su|cvAE6*I2zp$bezOoKBefaQNcBzk-+j`h)J~k?=X~`JK>0ud09l=iOfX;glV9 zg+#ikSpT0>uQwSz>PqUz3AXxsTKYPO?GIk{^_LdE?4_^}`Gq#(szRgrpeyLt@>kzAy2@s-;qQZ~(W$0T02O)Yg&5TU7erZk>NbjaBpC zR%dSv5!NjCCC|fn{1THV1>0EG!9_PzzeC#(2MwkUO#OoePhK#t{#<^iIG<1VYYbk8 z7+uSEDI;T@k~&XV&`P59NyHxIb&A}@H<3HpB`Ng-SqtRmURW^od=3Fu8K36ssWi0v z8Z4OKMY{o<-}Iva%?X>($;8Y0FnN(v>?w5hC3Y&!g@oOh>9cc<#QZ|5fO(`WtoL5? z-n!0n0aSu{aXuL0P5h3pC%lxO18T|tDRT5Owh4REc<{9H%<7g?k7E*@F5L)&Z~eab zDO+|5q>d$&q3xSY#fCnZhpwk>v4_S~{`Tz&k%w)dBmBlBvWlH9b4!YS=!yiNB|R}@ zY!(wz{Hkidc!zf@%#7p!#_Kd@j&hw*iP)l|%y7`{vpd(g`+!Fq9=-5UU`0@x3n2DfKNt$L)L(_+to1(7**_;G_fek;jQP%OWW~#otJ!7>u=g=C#2uwlsf>NLAF(bH_qC1X|n9vzorMBGNC8UvJ+2b$u@s zA;eQ{le_XcevkQsKy~x7l%{5hEywcDPnU_zHO1eRs{f6}+UkNRgxKL~+=?#S;2d#_ z?i7rtc#o3ABv5HoBNPd%IiePSg}lCNw`)`T5oNT~0b4cQR`9AXim8FSF$XW$X=f;I zx;o&JhprEECV~B7>*RC@( zMQsASovQ~Ebb))u0!tix@37vWV{w_GoIwc-8|TIb^Dd8=BJbLY%SE<&UhOt|Z;J9M zfS&P?d+SCt$GjvQQ;Iiv66WJ1HerFM#_joaecG*J%FLCpo#4x|(83nTsyaOxIJbc2 zHYXWBDzfB;3+fcWT0I){y96-iUZNGD_bn^ap@n|B2{zuP;#%&q_~pPADBC#{qbBje zrzgIl)__s}7S*1{tj{(BG3~P?abWJp3<7B=XMao*b-MVjO<{I=AG-?iD6v28y;=H? z4|#qGFI_0h@VR2}Z(<{AMjbwA(pO&l`N8@-;nhwGJoeW~?wO?9jnqw+yJKpj&w!@h zJ-}dkA>5qk4=qOZPkZ0F^-CnCSNy8F0{y(=heS~+HCx6q_`GBvEsIZrObX%ocgq-8 z!R;gIP`Q_IUcri?JM?8k-!d4z%=mhDG!?v)d$=7Nkdo5)Fg8Xw^=`?uV$5U!uS)vp z@d8}-4CpGIoH5`ypixtzs}#+@!^ou20OD5rVuAEDbUi7~%WGEf`v4VfnEh=LCz zPQETXlOh#BDX86l+%gZ$H8$j6WiT3MZEIpN6iwk9y*+Q2I4x?^S2$zb2RLbP7=vbcU&+ z?Mub-r(tKpY7fX;Ak@c^zYY~BJG6oyqX zuY>>j#}U=g4A4}n;mMNAeY+0v&!ikS@z9lGwtJdpJ5VJajTUg^AU9=s+*;SsyG133 z#G~;*wqj3f((QiL@`*Kkf81F}=rPXO>*GVuBs;#9+ck=ezSmG^mNI@4yzguv*bV$h zHfk2d#18LQ>i4%K@N@Xm>xW+n&zv_VI>T|bi489^kz>+#M_AeEs;Nx1dXyS`P)e1Z z1?Bnt@*0xCZOqf{1%0TNQOKV-za#Kp; z^Y@&e)W(5(sdk~5N?u93WroJnFRRnVv{gG-SAt2KGf=k0TGpqz6&0vp(sO{}o#+rq zA)0E>`2KVvby*&qJ6}U?ynoAQ3Z|U-=Pu?O>Sh zdswcC`?4a!x(Mmi?Rzz%RPH3=*~zGrV7E|cQ5cFb`}7(`cOxQ+Ee;Jth0@k~Gn;qf zy$#1ygvyJ>ILUNUC=IMr1V$=eB~nGhHz&gBdO8E{uZ4$|G-J{`88-BP~> zK~0vpO!BGj-G;1B+o4dwfS|uSLE0jD_9VJt_@-TktStgk|Iozr1XlCbrZ_$Je2nS- z*%Uq2^HvI*%N_u|l|E5IIhDY{R<1k%j=9}^wdcP#B*~=$CQrdlNek;hjt%@X(JK9R zUILCeq+(@0)Zj|9_}$O$(b<*&%}B0)=gt+~ZmN~tI2YgD)3lHw)|}6eNqq_7$-l z_(^m@lFmhyc)wo$Egeskntc)}f&T@U_|z`k>O-dZ`I;uhDMK8oI8h?uL9vAvId3SG z$H;kDdHZ^3w)cp86QTV#L6`ly|Ex$JwBv^<37-_vcp4f0GIaK0+9I}g&Y~jMYs2Hn-8Yog2(X^9E&&!-W)2@E9p$co+1Q-Au9c7SIE38;DU|H z*y1BY=j7LLCxyZ^8u}1@o?dS`eRe6;O(RMSA0_hSEROl^?IA_9+!rTb&btA~Vl?5S z6)BY7m!_jI&h>Hf^V`1(T2%0XA52Hy=lW!S(e^N%FFJSEJH){o9ivH_tB2P9b|i=U zNbc{QCJx9qc3_dt@IEsHU1C51!ENPz?5+KF_rs0q*3+|b@~?t-P<{{PJK4{dH+Nu? z=G+coU3S?PsAah8SGt6}N+F7TSpj|)j^F2AtFpciAUFk}P`{?P)%|fBC_fFz0R!Ox zliADLwp@M14CbC}L9N&VJby4kr5xYHZEsU1&DUlR0^n`L;XW6bvva_q8SCXekFmz_ z0=RMwb@x@~pN<8khkj422>Al%1ce4k(_HVksxnX-Fw59)nUvVu@+79^)kR|%@(I~5 z0f+mFHAQ)V&w@>U-utfP>ag z5Mak0t_8N*!A>2-EpN0=&K3IN=|yp{;lkCj=SMT{^^JU0(l^h{Rc$G-OHtTbKO_Ym zjkG3!TwuwfP_IBgCm=c?pICgpTc<`bKB4Z%7LE4oGk0TFX>GTyW}G(@u3~lK>hvww zCXXI%g#=>HrP=lL-ER%@5fcSXl6go5s_)EaOs=pR<)q4hoxJ1j4a4a;CAh@l=N$P- zLBIlGUP178oa+I|QJ4|fU`k`fn=KKa42~lVR&ar>^19!#=gol4<^QET3&8S zNi3<#RAVP4>KUcQqpsgd{0jbsz07Ci{o%cWGIeoyN;M0*dbW=Bx0mMC-o0is-bD>F zh7)-OTrgI_ew`z_jf+csfiKMqWjCp~N#m}2KRb=^@kpJVBS=6?QBGF!w#jJrO5jN?d>6uinsQJ+8<+5q+>#RAd=o6rbQ9N0ac1w5>J4>}y>T!Op%crDl0< znR6UNYQskiR;aGg&nWej>#(MyI%`%j78R4i&381KO8d=dRCFuY@GtSq%16F#ujIW_ z*IAMv>1Om)WE>5_wxw6C6DN~4PG!g^#@fU;R~H=D9}3xhY9x0nc!yR#{)el*qU$o= zy977(8E@5cDH9Kj8t4062cu58q!%93>e4cs(57i6?jtq^@z34`7xk*{lTFD(O`daC zOvKjnqVF!XT{-2fO7kQ|n9g3ZD6nveINI?OgIJ5@x?~krDbDGQ90|{y&1*(Y%}Pg8 zjH1C=zgb;R-b14w_*|#8u(o(p^%@%pXpKq+(xi*Ar1lSP=-%vAU_8B>WFBV^z+I^Q zg;0C@>hum^NwxJej$&lxqR>xz=(d(Yi6##Dy>oD1LV0d?T;d=j&`N1UulE0BKw=em#= z=@`{6^UC+L)L7xvJb{ogp2a)QR}rD9{74MN0VkrV*nKewg36}wwUlq}jjKCDcv88Y zFE{728_14zF4HT2W6$o7-83Of#pq4aPDJpv>5j<}Hm1Po>Wi&#sYLCKIZ* z65ZmmW8-3n;jPTZLj1w4&6y>gI_6)$lP={pf;MIn;afX8%kNUu+9kR?J|U`QJHKoX z|M)d~GF=%f4>(Jn<>s|!&lAibKTzE4DgRdGwR4#u_&H0)gP&q-@2E`aIll9~*eMXm zQOiK@WdBf}qz&FVoB#e-th~UGyUkdekBQ$Yf1^qPgHu_c4g5*|@x)FszHeRZuNB{C zXs2pBf9L7RwJ%U*cowzOGrwIzLEI6>SIoJW>i&6S&cm!AYbaZ?mO6H2?c;O{9`OxR zJ{@QOPDUY*YiXtTt6P840f6Mo^>t}f@KkQk9^}N4M^~?CKUSy#*wnMcK zZVNtLr8rftvJR_P&9t9foqc=NIgfo<)@#+uW$@NS?V!(z=uz+1M=O8WINl4gyJ-N? zeRM0=_)6dvWv<8=MbB=r;X1zK*={l(8Z!M_^BXU7)q^T~;XJHh<`gMqXJU7!!kG`h zdNeXGi;TCjj-9|B?Txs-&U@6w=a~$a=#rw ztM=r)uXcN7-Wn|2Xcv;7z311n?Oe;UJ;m|BGLpaeiL`UCDcgL;rf9{}(DWAyq6&Z8 zl$n3OcvIQ3(ey=B8j!EViWU>OXm47Q zlCKe}qdZsOw}&w^9hu~L)h)#sE%wuf2DxAXTsmp?TO~R`!2j8*8}_o(mejDhb!P`d z6Ks{U?2q!E`KeZ@VglQX#8SoGeu3i?>Jh_-!qyzd?L14F*t{yrE+LN zqq^ABx}6Y4K~7plP=^p>gi#`9;G0ov^8a0IvYmG+t{M@ma7)z{&EbfU31uf5kqAjJ zQMc%xk2y9a-bS-v&svh$Gm}OgHH|>Zos6dw&p@+Upi;ns6xO6gepz4$M9(|SxNm#s zIVgwqko6JqQxx0&Iy}-j(KDVXptUcxyOIqxXp#c3hkr_? z9&USP*H&q)e!#Z8BmP)MRyG1>4T>F!!Sk!=P07%c=|{Hqc2V}gF_ZU-F^FLAJ?_r# zBORMo_sqXU4-S02x~!;5>im-7{|U}8q5AQU%?rYzO4s5+d1lnNYFD4=>8&ciO5&8+ z2Va7uX@6}vJpxP3C; z+V1o$<7rRvGCaB`dGEyGnXksT_hN6X-cXHQTISl?>f?OQVEpDF=V1nqUfVQv@G4{C z*dL`IJma`oH#L%%YTNvfhSpSXD;zqqsI zXtr$mtHV@FmCJobpo+-u?q5cdC=}rgnR)YCI?gPN;>o`2C%EVJvo+GR(7<)|U~|nc z&wCRw9fVDTp{rGKDee0y#^HZX$`&>G`kh8k$4_{E_gq%6x}pD3w~11zcbZN@O|b&= z*_H965D|}Bwd+kQgT1PE?sl8}s2oQO%BL2q+IJ+uzCO%uXZ9U#i26~Wdy{fuBd=J1 zXIu3b{3P3?7i`P^t1vy1-VA`LIkXM7rQLb}i5^DQep2ib#QggQ^VMUAz&?WBCEBaH z^=lRF*L^xgqg)S1shp9xF2|Y!-erg5Qah}B_&T%0G1{~lVOt5 z5&srW`UH=_iT1?(t#b`-m;lUBOKDYoP~I!!bnTg~NUplToAnzJFcea}gS2U7rn zAQU?21x&uY{3!&4lT)VOP%q)@WbW*v7Q4=eQKVkeVPaWUpoqTO1u+7)w?PE5z z5-b8Hi5~fUTcM0I#OR)=JffyO4>+7Z(fQa94E8C%e=tL&KcRZ7rTnVHD?UGE^wLR$l zb>Ip%V?|~i%*Rz4vJw)l7Q@yDm@j>J`@(1=TYlmURn)2D?iC@Qp2%*7uxb~-=gox` z_9AhGzB8&Rz9M3|s4`s%&o;GJ<=Go%{B!n%Z;sD4!p0j8Pd7f5@Ix+gyQFGVx~e=z zevGKyL_O@QGnR5fBcX1+`liz_&@0mb(X zOI1y$&)WPcHG3+l+K4lu#t%1W=0qK~)xXOjP=dsLJxAm}mb3a1abC11(&@6tm zJ~z-NpH#YQCl>pO-k0IBqy!~!P07bP_)#r#NuekQIER6qF7FdaYazAS+)qa|R?R_y nsC+}hV;A!&%V<-+md8oDZS4`2)VkZiTi~ztdGEUhxOe{pUE%J$ literal 0 HcmV?d00001 diff --git a/XTesting/kubespray/upgrade-cluster.yml b/XTesting/kubespray/upgrade-cluster.yml new file mode 100644 index 0000000..35064ec --- /dev/null +++ b/XTesting/kubespray/upgrade-cluster.yml @@ -0,0 +1,167 @@ +--- +- name: Check ansible version + import_playbook: ansible_version.yml + +- name: Ensure compatibility with old groups + import_playbook: legacy_groups.yml + +- hosts: bastion[0] + gather_facts: False + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: bastion-ssh-config, tags: ["localhost", "bastion"] } + +- hosts: k8s_cluster:etcd:calico_rr + strategy: linear + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + gather_facts: false + environment: "{{ proxy_disable_env }}" + vars: + # Need to disable pipelining for bootstrap-os as some systems have requiretty in sudoers set, which makes pipelining + # fail. bootstrap-os fixes this on these systems, so in later plays it can be enabled. + ansible_ssh_pipelining: false + roles: + - { role: kubespray-defaults } + - { role: bootstrap-os, tags: bootstrap-os} + +- name: Gather facts + tags: always + import_playbook: facts.yml + +- name: Download images to ansible host cache via first kube_control_plane node + hosts: kube_control_plane[0] + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults, when: "not skip_downloads and download_run_once and not download_localhost"} + - { role: kubernetes/preinstall, tags: preinstall, when: "not skip_downloads and download_run_once and not download_localhost" } + - { role: download, tags: download, when: "not skip_downloads and download_run_once and not download_localhost" } + +- name: Prepare nodes for upgrade + hosts: k8s_cluster:etcd:calico_rr + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/preinstall, tags: preinstall } + - { role: download, tags: download, when: "not skip_downloads" } + +- name: Upgrade container engine on non-cluster nodes + hosts: etcd:calico_rr:!k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + serial: "{{ serial | default('20%') }}" + roles: + - { role: kubespray-defaults } + - { role: container-engine, tags: "container-engine", when: deploy_container_engine } + +- hosts: etcd + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - role: etcd + tags: etcd + vars: + etcd_cluster_setup: true + etcd_events_cluster_setup: "{{ etcd_events_cluster_enabled }}" + when: etcd_deployment_type != "kubeadm" + +- hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - role: etcd + tags: etcd + vars: + etcd_cluster_setup: false + etcd_events_cluster_setup: false + when: etcd_deployment_type != "kubeadm" + +- name: Handle upgrades to master components first to maintain backwards compat. + gather_facts: False + hosts: kube_control_plane + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + serial: 1 + roles: + - { role: kubespray-defaults } + - { role: upgrade/pre-upgrade, tags: pre-upgrade } + - { role: container-engine, tags: "container-engine", when: deploy_container_engine } + - { role: kubernetes/node, tags: node } + - { role: kubernetes/control-plane, tags: master, upgrade_cluster_setup: true } + - { role: kubernetes/client, tags: client } + - { role: kubernetes/node-label, tags: node-label } + - { role: kubernetes-apps/cluster_roles, tags: cluster-roles } + - { role: kubernetes-apps, tags: csi-driver } + - { role: upgrade/post-upgrade, tags: post-upgrade } + +- name: Upgrade calico and external cloud provider on all masters, calico-rrs, and nodes + hosts: kube_control_plane:calico_rr:kube_node + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + serial: "{{ serial | default('20%') }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes-apps/external_cloud_controller, tags: external-cloud-controller } + - { role: network_plugin, tags: network } + - { role: kubernetes-apps/network_plugin, tags: network } + - { role: kubernetes-apps/policy_controller, tags: policy-controller } + +- name: Finally handle worker upgrades, based on given batch size + hosts: kube_node:calico_rr:!kube_control_plane + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + serial: "{{ serial | default('20%') }}" + roles: + - { role: kubespray-defaults } + - { role: upgrade/pre-upgrade, tags: pre-upgrade } + - { role: container-engine, tags: "container-engine", when: deploy_container_engine } + - { role: kubernetes/node, tags: node } + - { role: kubernetes/kubeadm, tags: kubeadm } + - { role: kubernetes/node-label, tags: node-label } + - { role: upgrade/post-upgrade, tags: post-upgrade } + +- hosts: kube_control_plane[0] + gather_facts: False + any_errors_fatal: true + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: win_nodes/kubernetes_patch, tags: ["master", "win_nodes"] } + +- hosts: calico_rr + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: network_plugin/calico/rr, tags: network } + +- hosts: kube_control_plane + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes-apps/ingress_controller, tags: ingress-controller } + - { role: kubernetes-apps/external_provisioner, tags: external-provisioner } + - { role: kubernetes-apps, tags: apps } + +- name: Apply resolv.conf changes now that cluster DNS is up + hosts: k8s_cluster + gather_facts: False + any_errors_fatal: "{{ any_errors_fatal | default(true) }}" + environment: "{{ proxy_disable_env }}" + roles: + - { role: kubespray-defaults } + - { role: kubernetes/preinstall, when: "dns_mode != 'none' and resolvconf_mode == 'host_resolvconf'", tags: resolvconf, dns_late: true } -- 2.16.6