mirror of
https://github.com/siderolabs/talos.git
synced 2025-09-11 17:01:20 +02:00
This fixes the issue with kubelet picking up wrong IP on restart, as Talos doesn't know pod IPs (Cilium is using its own pod CIDR, it doesn't look up Kubernetes settings). Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
133 lines
2.6 KiB
Bash
Executable File
133 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eou pipefail
|
|
|
|
export USER_DISKS_MOUNTS="/var/lib/extra,/var/lib/p1,/var/lib/p2"
|
|
|
|
source ./hack/test/e2e.sh
|
|
|
|
PROVISIONER=qemu
|
|
CLUSTER_NAME=e2e-${PROVISIONER}
|
|
|
|
case "${CI:-false}" in
|
|
true)
|
|
QEMU_FLAGS=""
|
|
INSTALLER_TAG="${TAG}"
|
|
;;
|
|
*)
|
|
QEMU_FLAGS="--with-bootloader=false"
|
|
INSTALLER_TAG="latest"
|
|
;;
|
|
esac
|
|
|
|
case "${CUSTOM_CNI_URL:-false}" in
|
|
false)
|
|
CUSTOM_CNI_FLAG=
|
|
;;
|
|
*)
|
|
CUSTOM_CNI_FLAG="--custom-cni-url=${CUSTOM_CNI_URL}"
|
|
;;
|
|
esac
|
|
|
|
case "${WITH_UEFI:-false}" in
|
|
true)
|
|
QEMU_FLAGS="${QEMU_FLAGS} --with-uefi"
|
|
;;
|
|
esac
|
|
|
|
case "${WITH_VIRTUAL_IP:-false}" in
|
|
true)
|
|
QEMU_FLAGS="${QEMU_FLAGS} --use-vip"
|
|
;;
|
|
esac
|
|
|
|
case "${WITH_CLUSTER_DISCOVERY:-true}" in
|
|
false)
|
|
QEMU_FLAGS="${QEMU_FLAGS} --with-cluster-discovery=false"
|
|
;;
|
|
esac
|
|
|
|
case "${WITH_KUBESPAN:-false}" in
|
|
true)
|
|
QEMU_FLAGS="${QEMU_FLAGS} --with-kubespan"
|
|
;;
|
|
esac
|
|
|
|
case "${USE_DISK_IMAGE:-false}" in
|
|
false)
|
|
DISK_IMAGE_FLAG=
|
|
;;
|
|
*)
|
|
tar -xf _out/metal-amd64.tar.gz -C _out/
|
|
DISK_IMAGE_FLAG="--disk-image-path=_out/disk.raw --with-apply-config"
|
|
;;
|
|
esac
|
|
|
|
case "${WITH_DISK_ENCRYPTION:-false}" in
|
|
false)
|
|
DISK_ENCRYPTION_FLAG=""
|
|
;;
|
|
*)
|
|
DISK_ENCRYPTION_FLAG="--encrypt-ephemeral --encrypt-state"
|
|
;;
|
|
esac
|
|
|
|
case "${WITH_CONFIG_PATCH:-false}" in
|
|
# using arrays here to preserve spaces properly in WITH_CONFIG_PATCH
|
|
false)
|
|
CONFIG_PATCH_FLAG=()
|
|
;;
|
|
*)
|
|
CONFIG_PATCH_FLAG=(--config-patch "${WITH_CONFIG_PATCH}")
|
|
;;
|
|
esac
|
|
|
|
function create_cluster {
|
|
build_registry_mirrors
|
|
|
|
"${TALOSCTL}" cluster create \
|
|
--provisioner="${PROVISIONER}" \
|
|
--name="${CLUSTER_NAME}" \
|
|
--kubernetes-version=${KUBERNETES_VERSION} \
|
|
--masters=3 \
|
|
--workers="${QEMU_WORKERS:-1}" \
|
|
--mtu=1450 \
|
|
--memory=2048 \
|
|
--cpus="${QEMU_CPUS:-2}" \
|
|
--cidr=172.20.1.0/24 \
|
|
--user-disk=/var/lib/extra:100MB \
|
|
--user-disk=/var/lib/p1:100MB:/var/lib/p2:100MB \
|
|
--install-image=${INSTALLER_IMAGE} \
|
|
--with-init-node=false \
|
|
--cni-bundle-url=${ARTIFACTS}/talosctl-cni-bundle-'${ARCH}'.tar.gz \
|
|
--crashdump \
|
|
${DISK_IMAGE_FLAG} \
|
|
${DISK_ENCRYPTION_FLAG} \
|
|
${REGISTRY_MIRROR_FLAGS} \
|
|
${QEMU_FLAGS} \
|
|
${CUSTOM_CNI_FLAG} \
|
|
"${CONFIG_PATCH_FLAG[@]}"
|
|
|
|
"${TALOSCTL}" config node 172.20.1.2
|
|
}
|
|
|
|
function destroy_cluster() {
|
|
"${TALOSCTL}" cluster destroy --name "${CLUSTER_NAME}" --provisioner "${PROVISIONER}"
|
|
}
|
|
|
|
create_cluster
|
|
|
|
case "${TEST_MODE:-default}" in
|
|
fast-conformance)
|
|
run_kubernetes_conformance_test fast
|
|
;;
|
|
*)
|
|
get_kubeconfig
|
|
run_talos_integration_test
|
|
run_kubernetes_integration_test
|
|
;;
|
|
esac
|
|
|
|
|
|
destroy_cluster
|