{ "version": 4, "terraform_version": "1.12.2", "serial": 260, "lineage": "d92c42be-29f9-bad9-ef9a-3dc952ff5fa5", "outputs": {}, "resources": [ { "mode": "data", "type": "ct_config", "name": "control_plane1_ignition", "provider": "provider[\"registry.terraform.io/poseidon/ct\"]", "instances": [ { "schema_version": 0, "attributes": { "content": "variant: flatcar\nversion: 1.1.0\n\npasswd:\n users:\n - name: core\n ssh_authorized_keys:\n - \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n\nstorage:\n directories:\n - path: /opt/bin\n overwrite: true\n mode: 0755\n - path: /opt/cni/bin\n overwrite: true\n mode: 755\n - path: /etc/kubernetes/manifests\n #overwrite: true\n mode: 0755\n - path: /etc/install-calico\n overwrite: true\n mode: 0755\n files:\n - path: /etc/hostname\n mode: 0644\n contents:\n inline: |\n control-plane1\n\n - path: /etc/systemd/network/00-eth.network\n mode: 0644\n contents:\n inline: |\n [Match]\n Name=eth*\n \n [Network]\n Address=fd00:0:0:2::91/64\n Gateway=fd00:0:0:2::3\n DNS=fd00:0:0:1::1\n Address=10.0.2.91/24\n Gateway=10.0.2.3\n DNS=10.0.1.1\n Domains=undercloud.local\n IPv6AcceptRA=no\n IPv6PrivacyExtensions=no\n\n - path: /etc/hosts\n mode: 0644\n overwrite: true\n contents:\n inline: |\n 127.0.0.1 localhost\n ::1 localhost ip6-localhost ip6-loopback\n fd00:0:0:2::91 control-plane1.undercloud.local control-plane1\n fd00:0:0:2::92 control-plane2.undercloud.local control-plane2\n fd00:0:0:2::93 control-plane3.undercloud.local control-plane3\n fd00:0:0:2::101 worker1.undercloud.local worker1\n fd00:0:0:2::102 worker2.undercloud.local worker2\n fd00:0:0:2::103 worker3.undercloud.local worker3\n 10.0.2.91 control-plane1.undercloud.local control-plane1\n 10.0.2.92 control-plane2.undercloud.local control-plane2\n 10.0.2.93 control-plane3.undercloud.local control-plane3\n 10.0.2.101 worker1.undercloud.local worker1\n 10.0.2.102 worker2.undercloud.local worker2\n 10.0.2.103 worker3.undercloud.local worker3\n\n - path: /etc/motd\n mode: 0644\n overwrite: true\n contents:\n inline: |\n *******************************************************************\n * AUTHORIZED ACCESS ONLY *\n * *\n * This system is part of a secured infrastructure. *\n * All activities are monitored and logged. *\n * Unauthorized access or misuse is strictly prohibited and *\n * may result in disciplinary and legal action. *\n *******************************************************************\n\n --------------------------------------------------------------------------------\n kubernetes controle plane Node\n\n Manage via:\n kubectl (kubectl)\n calico (calicoctl)\n velero - backup (velero)\n argocd https://argocd-server.argocd.svc.k8aux.undercloud.cf/\n --------------------------------------------------------------------------------\n\n - path: /etc/sysctl.d/99-k8s.conf\n mode: 0644\n contents:\n inline: |\n net.ipv4.ip_forward = 1\n net.ipv6.ip_forward = 1\n net.ipv6.conf.all.forwarding = 1\n net.ipv4.conf.all.forwarding = 1\n net.bridge.bridge-nf-call-iptables = 1\n net.bridge.bridge-nf-call-ip6tables = 1\n net.netfilter.nf_conntrack_max = 1000000\n net.ipv4.conf.all.rp_filter = 0\n net.ipv6.conf.all.disable_ipv6 = 0\n vm.overcommit_memory = 1\n fs.inotify.max_user_watches = 524288\n fs.inotify.max_user_instances = 512\n kernel.panic = 10\n kernel.panic_on_oops = 1\n\n - path: /etc/flatcar/update.conf\n overwrite: true\n mode: 0420\n contents:\n inline: |\n REBOOT_STRATEGY=off\n\n - path: /opt/bin/kubeadm\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\"\n\n - path: /opt/bin/kubelet\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\"\n\n - path: /opt/bin/kubectl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\"\n\n - path: /opt/bin/calicoctl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\"\n\n - path: /opt/bin/velero\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/velero\"\n\n - path: /etc/kubernetes/kubeadm-init.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: InitConfiguration\n bootstrapTokens:\n - token: \"kvg1hc.t3rewovrps426rof\"\n description: \"default kubeadm bootstrap token\"\n ttl: \"0\"\n nodeRegistration:\n name: control-plane1\n criSocket: unix:///run/containerd/containerd.sock\n kubeletExtraArgs:\n node-ip: \"fd00:0:0:2::91\"\n cluster-dns: \"10.0.91.53,fd00:0:0:f:1::53\"\n volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n localAPIEndpoint:\n advertiseAddress: \"fd00:0:0:2::91\"\n bindPort: 6443\n certificateKey: \"fee7c3e5cfcac7e4774c6efca0464a42d897f30f7300340d6578b5cfb4a3d34b\"\n ---\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: ClusterConfiguration\n controlPlaneEndpoint: \"[fd00:0:0:2::100]:6443\"\n networking:\n podSubnet: \"fd00:0:0:a::/64,10.0.10.0/24\"\n serviceSubnet: \"fd00:0:0:f:1::/108,10.0.91.0/24\"\n dnsDomain: \"k8s.undercloud.local\"\n controllerManager:\n extraArgs:\n flex-volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n bind-address: '::'\n ---\n apiVersion: kubelet.config.k8s.io/v1beta1\n kind: KubeletConfiguration\n address: \"::\"\n healthzBindAddress: \"::\"\n clusterDomain: \"k8s.undercloud.local\"\n volumePluginDir: /opt/libexec/kubernetes/kubelet-plugins/volume/exec\n cgroupDriver: \"systemd\"\n - path: /etc/kubernetes/addons/kube-dns-fixed-svc.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: v1\n kind: Service\n metadata:\n name: kube-dns\n namespace: kube-system\n labels:\n k8s-app: kube-dns\n spec:\n type: ClusterIP\n ipFamilyPolicy: RequireDualStack\n ipFamilies: [IPv6, IPv4]\n clusterIP: fd00:0:0:f:1::53\n clusterIPs:\n - fd00:0:0:f:1::53\n - 10.0.91.53\n ports:\n - name: dns\n port: 53\n protocol: UDP\n targetPort: 53\n - name: dns-tcp\n port: 53\n protocol: TCP\n targetPort: 53\n - name: metrics\n port: 9153\n protocol: TCP\n targetPort: 9153\n selector:\n k8s-app: kube-dns\n\n\nsystemd:\n units:\n - name: modules-load.service\n enabled: true\n contents: |\n [Unit]\n Description=Load necessary kernel modules\n Before=containerd.service kubeadm-init.service\n\n [Service]\n Type=oneshot\n\n ExecStart=/usr/bin/modprobe br_netfilter\n ExecStart=/usr/bin/modprobe overlay\n RemainAfterExit=yes\n\n [Install]\n WantedBy=multi-user.target\n\n - name: systemd-networkd-wait-online.service\n enabled: true\n\n - name: containerd.service\n enabled: true\n contents: |\n [Unit]\n Description=containerd container runtime\n After=network.target modules-load.service\n\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n\n ExecStart=/usr/bin/containerd\n Restart=always\n RestartSec=5\n Delegate=yes\n KillMode=process\n OOMScoreAdjust=-999\n\n [Install]\n WantedBy=multi-user.target\n\n - name: set-timezone.service\n enabled: true\n contents: |\n [Unit]\n Description=Set Timezone\n After=network-online.target\n Wants=network-online.target\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n\n ExecStart=/bin/sh -c 'echo \"setting timezone to Europe/Berlin\"'\n StandardOutput=journal+console\n StandardError=journal+console\n Type=oneshot\n Restart=on-failure\n ExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\n ExecStart=/usr/bin/timedatectl set-ntp true \n [Install]\n WantedBy=multi-user.target\n\n - name: kubelet.service\n enabled: true\n contents: |\n [Unit]\n Description=kubelet, the Kubernetes Node Agent\n Documentation=https://kubernets.io/docs/home\n Wants=network-online.target\n After=network-online.target\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n\n #EnvironmentFile=/run/metadata/coreos\n Environment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\n Environment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\n # This is a file that \"kubeadm init\" and \"kubeadm join\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\n EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\n ExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\n Restart=always\n StartLimitInterval=0\n RestartSec=10\n [Install]\n WantedBy=multi-user.target\n\n - name: kubeadm-init.service\n enabled: true\n contents: |\n [Unit]\n Description=Kubeadm Init Cluster\n After=network-online.target containerd.service kubelet.service\n Wants=network-online.target\n ConditionPathExists=!/etc/kubernetes/kubelet.conf\n\n [Service]\n Type=oneshot\n StandardOutput=journal+console\n StandardError=journal+console\n\n ExecStart=/bin/sh -c 'echo \"kubeadm-init.service started...\"'\n\n # Environment\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\n \n ExecStartPre=/bin/sleep 30s\n ExecStart=/bin/sh -c 'echo \"running kubeadm init...\"'\n ExecStart=/opt/bin/kubeadm init --upload-certs --config=/etc/kubernetes/kubeadm-init.yaml\n \n # copy files for kubectl\n ExecStart=/bin/sh -c 'echo \"copying files (admin.conf) to core home folder.\"'\n ExecStartPost=/usr/bin/mkdir -p /home/core/.kube\n ExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\n ExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\n \n ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\n Restart=on-failure\n RestartSec=120s\n [Install]\n WantedBy=multi-user.target\n - name: install-calico.service\n enabled: true\n contents: |\n [Unit]\n Wants=kubeadm-init.service\n After=kubeadm-init.service\n\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n\n ExecStart=/bin/sh -c 'echo \"install.calico.service started...\"'\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin\n Type=oneshot\n StandardOutput=journal+console\n StandardError=journal+console\n ExecStart=/bin/sh -c 'echo \"witing 30s...\"'\n ExecStart=/bin/sleep 30s\n ExecStart=/bin/sh -c 'echo \"create calico namespace...\"'\n ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/namespace.yaml\n ExecStart=/bin/sh -c 'echo \"install tigera operator...\"'\n ExecStart=-/opt/bin/kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/operator-crds.yaml\n ExecStart=-/opt/bin/kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/tigera-operator.yaml\n ExecStart=/bin/sh -c 'echo \"witing 60s...\"'\n ExecStart=/bin/sleep 60s\n ExecStart=/bin/sh -c 'echo \"witing for tigera operator... (20mini max)\"'\n ExecStart=/opt/bin/kubectl wait deployment -n tigera-operator tigera-operator --for condition=Available=True --timeout=1200s\n ExecStart=/bin/sh -c 'echo \"create clico custom ressources...\"'\n ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/custom-resources.yaml\n \n ExecStart=/bin/sh -c 'echo \"witing 3m..\"'\n ExecStart=/bin/sleep 3m\n #ExecStart=/bin/sh -c 'echo \"apply calico (calico-apiserver)...\"'\n #ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/calico.yaml\n #ExecStart=/bin/sh -c 'echo \"witing 1m...\"'\n #ExecStart=/bin/sleep 2m\n ExecStart=/bin/sh -c 'echo \"witing calico-apiserver... (20mini max)\"'\n ExecStart=/opt/bin/kubectl wait deployment -n calico-apiserver calico-apiserver --for condition=Available=True --timeout=1200s\n ExecStart=/bin/sh -c 'echo \"witing 120s...\"'\n ExecStart=/bin/sleep 2m\n ExecStart=/bin/sh -c 'echo \"apply calico-peers...\"'\n ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/calico-peer.yaml\n ExecStart=/bin/sh -c 'echo \"witing 60s...\"'\n ExecStart=/bin/sleep 1m\n ExecStart=/bin/sh -c 'echo \"apply calico-ippools...\"'\n ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/ippools.yaml\n \n #ExecStart=/bin/sh -c 'echo \"witing for whisker..\"'\n #ExecStart=/opt/bin/kubectl wait deployment -n calico-system whisker --for condition=Available=True --timeout=1200s\n #ExecStart=/bin/sh -c 'echo \"port-forward -n calico-system service/whisker 8081:8081\"'\n #ExecStart=/opt/bin/kubectl port-forward -n calico-system service/whisker 8081:8081\n \n ExecStart=/usr/bin/systemctl disable install-calico.service\n #RemainAfterExit=true\n Restart=on-failure\n RestartSec=120s\n [Install]\n WantedBy=multi-user.target\n - name: install-argocd.service\n enabled: true\n contents: |\n [Unit]\n Wants=install-calico.service\n After=install-calico.service\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin\n Type=oneshot\n\n ExecStart=/opt/bin/kubectl wait deployment -n kube-system coredns --for condition=Available=True --timeout=600s\n \n ExecStart=/bin/sleep 1m\n ExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/namespace.yaml\n ExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/install.yaml\n ExecStart=/opt/bin/kubectl wait deployment -n argocd argocd-server --for condition=Available=True --timeout=600s\n\n ExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/repo.yaml\n ExecStart=/bin/sleep 10s\n ExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/apps.yaml\n\n #ExecStart=/bin/sleep 10s\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/repos/k8aux-bootstrap.yaml\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/repos/k8aux-apps.yaml\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/argocd.yaml\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/calico.yaml\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/rook-ceph.yaml\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/gitea.yaml\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/argocd/argocd-secret.yaml\n ##ExecStart=/bin/sleep 10m\n #ExecStart=/opt/bin/kubectl wait deployment -n gitea gitea --for condition=Available=True --timeout=4800s\n #ExecStart=/bin/sleep 10m\n #ExecStart=/opt/bin/kubectl apply -n argocd -f http://gitea.gitea.svc.k8aux.undercloud.cf:3000/undercloud/k8aux-apps/raw/branch/main/app-of-apps/app-of-apps.yaml\n \n ExecStart=/usr/bin/systemctl disable install-argocd.service\n Restart=on-failure\n RestartSec=120s\n [Install]\n WantedBy=multi-user.target\n - name: pin-service-ips.service\n enabled: true\n contents: |\n [Unit]\n Description=Pin fixed dual-stack ClusterIPs for kube-dns, argocd-server and whisker\n After=install-argocd.service install-calico.service kubeadm-init.service network-online.target\n Wants=install-argocd.service install-calico.service kubeadm-init.service network-online.target\n\n [Service]\n Type=oneshot\n StandardOutput=journal+console\n StandardError=journal+console\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=PATH=/usr/bin:/usr/sbin:/opt/bin\n ExecStart=/bin/sh -eu -c '\\\n echo \"[pin-service-ips] waiting for API...\" ; \\\n for i in $(seq 1 120); do kubectl get --raw=/readyz \u003e/dev/null 2\u003e\u00261 \u0026\u0026 break; sleep 2; done ; \\\n echo \"[pin-service-ips] ensure namespaces exist...\" ; \\\n kubectl get ns kube-system \u003e/dev/null ; \\\n kubectl get ns argocd \u003e/dev/null 2\u003e\u00261 || kubectl create ns argocd ; \\\n kubectl get ns calico-system \u003e/dev/null ; \\\n echo \"[pin-service-ips] wait for coredns/argocd readiness (best effort)...\" ; \\\n kubectl -n kube-system wait deploy coredns --for=condition=Available=True --timeout=300s || true ; \\\n kubectl -n argocd wait deploy argocd-server --for=condition=Available=True --timeout=600s || true ; \\\n echo \"[pin-service-ips] replace Services with fixed ClusterIPs...\" ; \\\n kubectl -n kube-system delete svc kube-dns --ignore-not-found ; \\\n kubectl apply -f /etc/kubernetes/addons/kube-dns-fixed-svc.yaml ; \\\n kubectl -n argocd delete svc argocd-server --ignore-not-found ; \\\n kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/service.yaml ; \\\n kubectl -n calico-system delete svc whisker --ignore-not-found || true ; \\\n kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/whisker.yaml || true ; \\\n echo \"[pin-service-ips] done.\" \\\n '\n\n [Install]\n WantedBy=multi-user.target\n\n", "id": "3958027050", "pretty_print": true, "rendered": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 755\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/manifests\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/install-calico\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,control-plane1%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMwQuCMBSH7+9P6TA3C8HBDoIRHRKpo3gY2wsl3WKbmv99aJHEO/2+j+9VFxlUU0MhexQYmh1AVWCYrHvUkGnt0Htx15Ty5WLOUxYlBzjJgJOc/8we8uK2EcY5+31glFASk5RF8RZ/4adbByMMctvL1ngxGI1OdXbQpLNKdnAuxyRTCp/hmglj1126dpRqPr4CGt9a4xfxDgAA//+AaSdh1AAAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwYobMQyG7/MUOmYX4lzL3sJ2oYV2A01yaG+KrMyIeOxBkodOn74kk0MPaSg0/8WWkD4+4+f/T/MMf8l6v/u0+fb5x9tHWL++vm23sHn/8v3G4B3GP+fC2HViYJM59yAGA6pDOQKCMVXlCJKPiuZayatyuMVYpwRILqO4sAEqQ1+yeDnvY46QSttyDPc89hmrd0Xl13mHiM2gKPRi1fhsZq5CniYYtHRyEL+y/2D0OIGy1eQgGaIYyZAko06zBbc4i5Ycbns84G+b5YPTnOqBNbOzAZXsWhLDkDAzvJfITfMVM7YMo+DLZZY8weJ6eWoIk1CBxXxeWiMn1gJLOCCd6gCLufHUoLaFInTug72sVnO5NNaRNcxVsJHC6QPWn6HmyEqp1BjouHr8u38HAAD//04R3qpqAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/velero\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/velero\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-init.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yTwWvjOBTG7/orhC691JYdK3GqW7btoZSFsF32ssxBlp5dYUUykuym89cPspNMwxRmGAaDEfh7T9/3fs9i0P+BD9pZjvuxAaEOeb8NuXZ0KhuIokK9torjJ6vjvbOt7kYvonYWNc7FEL0Y/nU92MARxhmO6cwx6aeufJV5rDy8uckPga023rUEYYyxgiC9HuJ8K1HQitHE8/X40ndptpTEaDgmBUHWKfgHOp0UcwOEsRUH4Fg6G70z2WCEhRJhLL1+cbKHyPFo9ZFTSv1oadIJbcGrD8c8ONkjPJswEB+P0Yud7+ZUGKdLMz1wTFpVFDw9K87vysWbNGOI4DNlA8ekLPIivyvzdXV7Ebe85HxdLfLJmfEA2WDGTttMac8xoW6I1OgGjiBp8uAtRAj0ZOckDnSppbOMIOOkMLv906NVg9M2JrNCTeCjDrBTykMIn3putFV75yPHG8YqJFNFq6WI8AzvqQKglhWsZSuFrIHVNZMbaKUo2IYJtlLbu7qtirauiqJihdqs622zlm3DRKUq1hCUZRn65d26XwZ4vV4nnPtE8xIQk/8/pimL4gtPEQiyEN+c77Xt0hQGp17Gxib03+MLzumG3c6A0ouuWBpGAD9pCT/qZ2q0LLa3Z6bnEmXDgzsIPW/6NuSjVeClcaPKZybk7N6A/1tY0YFPruB6q1oDx+zPbUNqmcBm4kz+hvObT0kYiLmcp30NpDwBeV4010AubQnnBL2CMPH161/aqt3Vh9Pf8JP5LNb3c5CHFPo3MiPZeTcOD15PkMYW3kOEgyLoWwAAAP//IhFBidUEAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/addons/kube-dns-fixed-svc.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4yRz0r8MBDH73mKeYBfS8tPxZ3rLkJvwVUv4mE2nZXQtInJtNC3l7hdraC4ye3758MkQ8E+cUzWDwhTrTo7tAh7jpM1rHoWakkIFcBAPSN044GLdkiLkAKZs5rmJNwrAEcHdil3ALrbVFAIq2IKbLInc2CErRuTcGy0ArDhjnrrZu2dNTPCPb+NNvJuJLcXMt1XxHJCeG70dPMPGj1dvSgAcyYhHNuqwnyPWCNe/1+7y1zFT6Es11VZlZu6/BCCj/JZOH3A6e35ZBNhKQKE6MUb7xAed3rRhOIri14HV5xCTPiL9bC9gNWzRGu+z7WpL6Yt0cSOjfj42+LeAwAA//9TMAMrKgIAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\n\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nExecStart=/bin/sh -c 'echo \\\"setting timezone to Europe/Berlin\\\"'\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Kubeadm Init Cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\nConditionPathExists=!/etc/kubernetes/kubelet.conf\\n\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nExecStart=/bin/sh -c 'echo \\\"kubeadm-init.service started...\\\"'\\n\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\nExecStart=/bin/sh -c 'echo \\\"running kubeadm init...\\\"'\\nExecStart=/opt/bin/kubeadm init --upload-certs --config=/etc/kubernetes/kubeadm-init.yaml\\n\\n# copy files for kubectl\\nExecStart=/bin/sh -c 'echo \\\"copying files (admin.conf) to core home folder.\\\"'\\nExecStartPost=/usr/bin/mkdir -p /home/core/.kube\\nExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\\nExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\\n\\nExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-init.service\"\n },\n {\n \"contents\": \"[Unit]\\nWants=kubeadm-init.service\\nAfter=kubeadm-init.service\\n\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nExecStart=/bin/sh -c 'echo \\\"install.calico.service started...\\\"'\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStart=/bin/sh -c 'echo \\\"witing 30s...\\\"'\\nExecStart=/bin/sleep 30s\\nExecStart=/bin/sh -c 'echo \\\"create calico namespace...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/namespace.yaml\\nExecStart=/bin/sh -c 'echo \\\"install tigera operator...\\\"'\\nExecStart=-/opt/bin/kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/operator-crds.yaml\\nExecStart=-/opt/bin/kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/tigera-operator.yaml\\nExecStart=/bin/sh -c 'echo \\\"witing 60s...\\\"'\\nExecStart=/bin/sleep 60s\\nExecStart=/bin/sh -c 'echo \\\"witing for tigera operator... (20mini max)\\\"'\\nExecStart=/opt/bin/kubectl wait deployment -n tigera-operator tigera-operator --for condition=Available=True --timeout=1200s\\nExecStart=/bin/sh -c 'echo \\\"create clico custom ressources...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/custom-resources.yaml\\n\\nExecStart=/bin/sh -c 'echo \\\"witing 3m..\\\"'\\nExecStart=/bin/sleep 3m\\n#ExecStart=/bin/sh -c 'echo \\\"apply calico (calico-apiserver)...\\\"'\\n#ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/calico.yaml\\n#ExecStart=/bin/sh -c 'echo \\\"witing 1m...\\\"'\\n#ExecStart=/bin/sleep 2m\\nExecStart=/bin/sh -c 'echo \\\"witing calico-apiserver... (20mini max)\\\"'\\nExecStart=/opt/bin/kubectl wait deployment -n calico-apiserver calico-apiserver --for condition=Available=True --timeout=1200s\\nExecStart=/bin/sh -c 'echo \\\"witing 120s...\\\"'\\nExecStart=/bin/sleep 2m\\nExecStart=/bin/sh -c 'echo \\\"apply calico-peers...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/calico-peer.yaml\\nExecStart=/bin/sh -c 'echo \\\"witing 60s...\\\"'\\nExecStart=/bin/sleep 1m\\nExecStart=/bin/sh -c 'echo \\\"apply calico-ippools...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/ippools.yaml\\n\\n#ExecStart=/bin/sh -c 'echo \\\"witing for whisker..\\\"'\\n#ExecStart=/opt/bin/kubectl wait deployment -n calico-system whisker --for condition=Available=True --timeout=1200s\\n#ExecStart=/bin/sh -c 'echo \\\"port-forward -n calico-system service/whisker 8081:8081\\\"'\\n#ExecStart=/opt/bin/kubectl port-forward -n calico-system service/whisker 8081:8081\\n\\nExecStart=/usr/bin/systemctl disable install-calico.service\\n#RemainAfterExit=true\\nRestart=on-failure\\nRestartSec=120s\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"install-calico.service\"\n },\n {\n \"contents\": \"[Unit]\\nWants=install-calico.service\\nAfter=install-calico.service\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin\\nType=oneshot\\n\\nExecStart=/opt/bin/kubectl wait deployment -n kube-system coredns --for condition=Available=True --timeout=600s\\n\\nExecStart=/bin/sleep 1m\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/namespace.yaml\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/install.yaml\\nExecStart=/opt/bin/kubectl wait deployment -n argocd argocd-server --for condition=Available=True --timeout=600s\\n\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/repo.yaml\\nExecStart=/bin/sleep 10s\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/apps.yaml\\n\\n#ExecStart=/bin/sleep 10s\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/repos/k8aux-bootstrap.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/repos/k8aux-apps.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/argocd.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/calico.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/rook-ceph.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/gitea.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/argocd/argocd-secret.yaml\\n##ExecStart=/bin/sleep 10m\\n#ExecStart=/opt/bin/kubectl wait deployment -n gitea gitea --for condition=Available=True --timeout=4800s\\n#ExecStart=/bin/sleep 10m\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://gitea.gitea.svc.k8aux.undercloud.cf:3000/undercloud/k8aux-apps/raw/branch/main/app-of-apps/app-of-apps.yaml\\n\\nExecStart=/usr/bin/systemctl disable install-argocd.service\\nRestart=on-failure\\nRestartSec=120s\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"install-argocd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Pin fixed dual-stack ClusterIPs for kube-dns, argocd-server and whisker\\nAfter=install-argocd.service install-calico.service kubeadm-init.service network-online.target\\nWants=install-argocd.service install-calico.service kubeadm-init.service network-online.target\\n\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=PATH=/usr/bin:/usr/sbin:/opt/bin\\nExecStart=/bin/sh -eu -c '\\\\\\n echo \\\"[pin-service-ips] waiting for API...\\\" ; \\\\\\n for i in $(seq 1 120); do kubectl get --raw=/readyz \\u003e/dev/null 2\\u003e\\u00261 \\u0026\\u0026 break; sleep 2; done ; \\\\\\n echo \\\"[pin-service-ips] ensure namespaces exist...\\\" ; \\\\\\n kubectl get ns kube-system \\u003e/dev/null ; \\\\\\n kubectl get ns argocd \\u003e/dev/null 2\\u003e\\u00261 || kubectl create ns argocd ; \\\\\\n kubectl get ns calico-system \\u003e/dev/null ; \\\\\\n echo \\\"[pin-service-ips] wait for coredns/argocd readiness (best effort)...\\\" ; \\\\\\n kubectl -n kube-system wait deploy coredns --for=condition=Available=True --timeout=300s || true ; \\\\\\n kubectl -n argocd wait deploy argocd-server --for=condition=Available=True --timeout=600s || true ; \\\\\\n echo \\\"[pin-service-ips] replace Services with fixed ClusterIPs...\\\" ; \\\\\\n kubectl -n kube-system delete svc kube-dns --ignore-not-found ; \\\\\\n kubectl apply -f /etc/kubernetes/addons/kube-dns-fixed-svc.yaml ; \\\\\\n kubectl -n argocd delete svc argocd-server --ignore-not-found ; \\\\\\n kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/service.yaml ; \\\\\\n kubectl -n calico-system delete svc whisker --ignore-not-found || true ; \\\\\\n kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/whisker.yaml || true ; \\\\\\n echo \\\"[pin-service-ips] done.\\\" \\\\\\n'\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"pin-service-ips.service\"\n }\n ]\n }\n}", "snippets": null, "strict": false }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "data", "type": "ct_config", "name": "control_plane2_ignition", "provider": "provider[\"registry.terraform.io/poseidon/ct\"]", "instances": [ { "schema_version": 0, "attributes": { "content": "variant: flatcar\nversion: 1.1.0\n\npasswd:\n users:\n - name: core\n ssh_authorized_keys:\n - \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n\nstorage:\n directories:\n - path: /opt/bin\n overwrite: true\n mode: 0755\n - path: /opt/cni/bin\n overwrite: true\n mode: 0755\n files:\n - path: /etc/hostname\n mode: 0644\n contents:\n inline: |\n control-plane2\n\n - path: /etc/systemd/network/00-eth.network\n mode: 0644\n contents:\n inline: |\n [Match]\n Name=eth*\n \n [Network]\n Address=fd00:0:0:2::92/64\n Gateway=fd00:0:0:2::3\n DNS=fd00:0:0:1::1\n Address=10.0.2.92/24\n Gateway=10.0.2.3\n DNS=10.0.1.1\n Domains=undercloud.local\n IPv6AcceptRA=no\n IPv6PrivacyExtensions=no\n\n - path: /etc/hosts\n mode: 0644\n overwrite: true\n contents:\n inline: |\n 127.0.0.1 localhost\n ::1 localhost ip6-localhost ip6-loopback\n fd00:0:0:2::91 control-plane1.undercloud.local control-plane1\n fd00:0:0:2::92 control-plane2.undercloud.local control-plane2\n fd00:0:0:2::93 control-plane3.undercloud.local control-plane3\n fd00:0:0:2::101 worker1.undercloud.local worker1\n fd00:0:0:2::102 worker2.undercloud.local worker2\n fd00:0:0:2::103 worker3.undercloud.local worker3\n 10.0.2.91 control-plane1.undercloud.local control-plane1\n 10.0.2.92 control-plane2.undercloud.local control-plane2\n 10.0.2.93 control-plane3.undercloud.local control-plane3\n 10.0.2.101 worker1.undercloud.local worker1\n 10.0.2.102 worker2.undercloud.local worker2\n 10.0.2.103 worker3.undercloud.local worker3\n\n - path: /etc/motd\n mode: 0644\n overwrite: true\n contents:\n inline: |\n *******************************************************************\n * AUTHORIZED ACCESS ONLY *\n * *\n * This system is part of a secured infrastructure. *\n * All activities are monitored and logged. *\n * Unauthorized access or misuse is strictly prohibited and *\n * may result in disciplinary and legal action. *\n *******************************************************************\n\n --------------------------------------------------------------------------------\n kubernetes controle plane Node\n\n Manage via:\n kubectl (kubectl)\n calico (calicoctl)\n velero - backup (velero)\n argocd https://argocd-server.argocd.svc.k8s.undercloud.local/\n --------------------------------------------------------------------------------\n\n - path: /etc/sysctl.d/99-k8s.conf\n mode: 0644\n contents:\n inline: |\n net.ipv4.ip_forward = 1\n net.ipv6.ip_forward = 1\n net.ipv6.conf.all.forwarding = 1\n net.ipv4.conf.all.forwarding = 1\n net.bridge.bridge-nf-call-iptables = 1\n net.bridge.bridge-nf-call-ip6tables = 1\n net.netfilter.nf_conntrack_max = 1000000\n net.ipv4.conf.all.rp_filter = 0\n net.ipv6.conf.all.disable_ipv6 = 0\n vm.overcommit_memory = 1\n fs.inotify.max_user_watches = 524288\n fs.inotify.max_user_instances = 512\n kernel.panic = 10\n kernel.panic_on_oops = 1\n\n - path: /etc/flatcar/update.conf\n overwrite: true\n mode: 0420\n contents:\n inline: |\n REBOOT_STRATEGY=off\n\n - path: /opt/bin/kubeadm\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\"\n\n - path: /opt/bin/kubelet\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\"\n\n - path: /opt/bin/kubectl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\"\n\n - path: /opt/bin/calicoctl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\"\n\n - path: /etc/kubernetes/kubeadm-join.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n controlPlane:\n localAPIEndpoint:\n advertiseAddress: \"fd00:0:0:2::92\"\n bindPort: 6443\n certificateKey: \"fee7c3e5cfcac7e4774c6efca0464a42d897f30f7300340d6578b5cfb4a3d34b\"\n nodeRegistration:\n name: control-plane2\n criSocket: unix:///run/containerd/containerd.sock\n kubeletExtraArgs:\n node-ip: \"fd00:0:0:2::92\"\n cluster-dns: \"10.0.91.53,fd00:0:0:f:1::53\"\n volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n discovery:\n bootstrapToken:\n apiServerEndpoint: \"[fd00:0:0:2::100]:6443\"\n token: \"kvg1hc.t3rewovrps426rof\"\n unsafeSkipCAVerification: true\n ---\n apiVersion: kubelet.config.k8s.io/v1beta1\n kind: KubeletConfiguration\n address: \"::\"\n healthzBindAddress: \"::\"\n clusterDomain: \"k8s.undercloud.local\"\n clusterDNS:\n - \"2001:470:72f0:f:1::53\"\n - \"10.0.91.53\"\n cgroupDriver: \"systemd\" \n volumePluginDir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n\nsystemd:\n units:\n - name: modules-load.service\n enabled: true\n contents: |\n [Unit]\n Description=Load necessary kernel modules\n Before=containerd.service kubeadm-init.service\n\n [Service]\n Type=oneshot\n ExecStart=/usr/bin/modprobe br_netfilter\n ExecStart=/usr/bin/modprobe overlay\n RemainAfterExit=yes\n\n [Install]\n WantedBy=multi-user.target\n\n - name: systemd-networkd-wait-online.service\n enabled: true\n\n - name: containerd.service\n enabled: true\n contents: |\n [Unit]\n Description=containerd container runtime\n After=network.target modules-load.service\n\n [Service]\n ExecStart=/usr/bin/containerd\n Restart=always\n RestartSec=5\n Delegate=yes\n KillMode=process\n OOMScoreAdjust=-999\n\n [Install]\n WantedBy=multi-user.\n\n - name: set-timezone.service\n enabled: true\n contents: |\n [Unit]\n Description=Set Timezone\n After=network-online.target\n Wants=network-online.target\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n Type=oneshot\n Restart=on-failure\n ExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\n ExecStart=/usr/bin/timedatectl set-ntp true \n [Install]\n WantedBy=kubeadm.service\n\n - name: kubelet.service\n enabled: true\n contents: |\n [Unit]\n Description=kubelet, the Kubernetes Node Agent\n Documentation=https://kubernets.io/docs/home\n Wants=network-online.target\n After=network-online.target\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n #EnvironmentFile=/run/metadata/coreos\n Environment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\n Environment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\n # This is a file that \"kubeadm init\" and \"kubeadm join\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\n EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\n ExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\n Restart=always\n StartLimitInterval=0\n RestartSec=10\n [Install]\n WantedBy=multi-user.target\n\n - name: kubeadm-join.service\n enabled: true\n contents: |\n [Unit]\n Description=Join node to Kubernetes cluster\n After=network-online.target containerd.service kubelet.service\n Wants=network-online.target\n\n [Service]\n Type=oneshot\n # Environment\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\n \n ExecStartPre=/bin/sleep 30s\n\n ExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\n\n # copy files for kubectl\n ExecStartPost=/usr/bin/mkdir -p /home/core/.kube\n ExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\n ExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\n \n #ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\n Restart=on-failure\n RestartSec=120s\n\n [Install]\n WantedBy=multi-user.target\n", "id": "2638982903", "pretty_print": true, "rendered": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,control-plane2%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMQYuDMBBG7/NT9hCT7CIYyEFwKT1UpD2Kh5BMUapJSaLWf1+0pVLm9L3Hm/qkom4bKNWAEmP7A1CXGGfnbw3kxngMQV4NpWI9LkTGk/QPDirirJYv8wtFedkJE4J9PjBKKOEk4wnf4zd8ddtghEHhBtXZIEdr0OvejYb0TqsejtWU5lrjPZ5zad22K99NSi//j4g2dM6GVTwDAAD//2Xz5MPUAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwWobQQyG7/sUOjoBj68lN5MGWmgTaJJDe5M1ylp4drRImoXt0xd7c+jBNYX4v8xISB/fMLcfT3cL/8j29eXL04+vvx4+w/b+/uH5GZ4ev/08M3iB8d85MV724uCzBw8gDiNagL4BgjM14wxS3ww9rFE043SOsS0FkEImCWEHNIZBq4Qe97FmKNr3nNMlj9eKLfZq8vu4Q8TuoAaDeHM+mnmYUJQZRtO97CTe2X8xBpzB2FsJkApZnGQsUtHmxYJ7XES1pvMeV/jbbn3ldIe2Y6sc7EBaw7QwjAUrw6Nm7rrvWLFnmATvTrMUBVbvl5uOsAgprJbz1Jq4sCmsYYd0aCOslsZNh9YrZdhHjH632Szl2tkmtrRUySdKh0+eWs1sVLTlVJSwbK7/8D8BAAD//2cEMuhrAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SST4+bMBDF73wKi3MB8ych61u6u4d2pSpqqr1UPRh7yI4gNhrbdLefvjJE26RSTxUXBG80783vyQmfgRxaI9gQOpD6nA87l6Mt5rIDL+tkQKMF+2zR3FvT4ymQ9GhNoqzxZMfDKA2IhLHRKjnuD58ejZ4sGh+/MSb1DOTRwV5rAucES3vNuYhPJcRdlS6yDo0+WPKCbZumThhTcapHJT08wVucAmhVDRvVK6laaNq2UVvoleTNtpFNpXd3bV/zvq05rxuut5t2121U3zWy1nXTpYmxGr7CCZ1fE0SDRp5BsEuUbIpZqrid8GjVAF6wYPBVFEVBwRRRJ9EA6avX3Fk1JGw53wj+8dWT3NPJrfnj0gynf8RWY3AeKNMmHqbkOc/vynxTf3gX96IUYlOv8tmO4QzZNIYTmkwjCZYWdvLFiB28giqiBzLgwRUXOxexK9bZYpGliUan7Az0Fl121vp4lOmbHcBcuE14BJqB3nGy9Pt1hJLzHyLCWq35ZZSlw3wqX1Tua4KfdqbJNdWWbL+KgnGyh+OA0/3+GWjlu3TPU4Aky7Lk70KO4HO19O62l+Wll0+r5raa8r1rQqTJC8jRv/z6iEbvb35crv9gzxIX7zuXB6OB1GiDzpdC/1F9OcbLZCytOC9F03LRVv0NoOwaYZqoE9kwPRDOEEG5N+fhrFOWrCgOC5iH/4D4OwAA//8ZRx0evQMAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n# copy files for kubectl\\nExecStartPost=/usr/bin/mkdir -p /home/core/.kube\\nExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\\nExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "snippets": null, "strict": false }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "data", "type": "ct_config", "name": "control_plane3_ignition", "provider": "provider[\"registry.terraform.io/poseidon/ct\"]", "instances": [ { "schema_version": 0, "attributes": { "content": "variant: flatcar\nversion: 1.1.0\n\npasswd:\n users:\n - name: core\n ssh_authorized_keys:\n - \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n\nstorage:\n directories:\n - path: /opt/bin\n overwrite: true\n mode: 0755\n - path: /opt/cni/bin\n overwrite: true\n mode: 0755\n files:\n - path: /etc/hostname\n mode: 0644\n contents:\n inline: |\n control-plane3\n\n - path: /etc/systemd/network/00-eth.network\n mode: 0644\n contents:\n inline: |\n [Match]\n Name=eth*\n \n [Network]\n Address=fd00:0:0:2::93/64\n Gateway=fd00:0:0:2::3\n DNS=fd00:0:0:1::1\n Address=10.0.2.93/24\n Gateway=10.0.2.3\n DNS=10.0.1.1\n Domains=undercloud.local\n IPv6AcceptRA=no\n IPv6PrivacyExtensions=no\n\n - path: /etc/hosts\n mode: 0644\n overwrite: true\n contents:\n inline: |\n 127.0.0.1 localhost\n ::1 localhost ip6-localhost ip6-loopback\n fd00:0:0:2::91 control-plane1.undercloud.local control-plane1\n fd00:0:0:2::92 control-plane2.undercloud.local control-plane2\n fd00:0:0:2::93 control-plane3.undercloud.local control-plane3\n fd00:0:0:2::101 worker1.undercloud.local worker1\n fd00:0:0:2::102 worker2.undercloud.local worker2\n fd00:0:0:2::103 worker3.undercloud.local worker3\n 10.0.2.91 control-plane1.undercloud.local control-plane1\n 10.0.2.92 control-plane2.undercloud.local control-plane2\n 10.0.2.93 control-plane3.undercloud.local control-plane3\n 10.0.2.101 worker1.undercloud.local worker1\n 10.0.2.102 worker2.undercloud.local worker2\n 10.0.2.103 worker3.undercloud.local worker3\n\n - path: /etc/motd\n mode: 0644\n overwrite: true\n contents:\n inline: |\n *******************************************************************\n * AUTHORIZED ACCESS ONLY *\n * *\n * This system is part of a secured infrastructure. *\n * All activities are monitored and logged. *\n * Unauthorized access or misuse is strictly prohibited and *\n * may result in disciplinary and legal action. *\n *******************************************************************\n\n --------------------------------------------------------------------------------\n kubernetes controle plane Node\n\n Manage via:\n kubectl (kubectl)\n calico (calicoctl)\n velero - backup (velero)\n argocd https://argocd-server.argocd.svc.k8aux.undercloud.cf/\n --------------------------------------------------------------------------------\n\n - path: /etc/sysctl.d/99-k8s.conf\n mode: 0644\n contents:\n inline: |\n net.ipv4.ip_forward = 1\n net.ipv6.ip_forward = 1\n net.ipv6.conf.all.forwarding = 1\n net.ipv4.conf.all.forwarding = 1\n net.bridge.bridge-nf-call-iptables = 1\n net.bridge.bridge-nf-call-ip6tables = 1\n net.netfilter.nf_conntrack_max = 1000000\n net.ipv4.conf.all.rp_filter = 0\n net.ipv6.conf.all.disable_ipv6 = 0\n vm.overcommit_memory = 1\n fs.inotify.max_user_watches = 524288\n fs.inotify.max_user_instances = 512\n kernel.panic = 10\n kernel.panic_on_oops = 1\n\n - path: /etc/flatcar/update.conf\n overwrite: true\n mode: 0420\n contents:\n inline: |\n REBOOT_STRATEGY=off\n\n - path: /opt/bin/kubeadm\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\"\n\n - path: /opt/bin/kubelet\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\"\n\n - path: /opt/bin/kubectl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\"\n\n - path: /opt/bin/calicoctl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\"\n\n - path: /etc/kubernetes/kubeadm-join.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n controlPlane:\n localAPIEndpoint:\n advertiseAddress: \"fd00:0:0:2::93\"\n bindPort: 6443\n certificateKey: \"fee7c3e5cfcac7e4774c6efca0464a42d897f30f7300340d6578b5cfb4a3d34b\"\n nodeRegistration:\n name: control-plane3\n criSocket: unix:///run/containerd/containerd.sock\n kubeletExtraArgs:\n node-ip: \"fd00:0:0:2::93\"\n cluster-dns: \"10.0.91.53,fd00:0:0:f:1::53\"\n volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n discovery:\n bootstrapToken:\n apiServerEndpoint: \"[fd00:0:0:2::100]:6443\"\n token: \"kvg1hc.t3rewovrps426rof\"\n unsafeSkipCAVerification: true\n ---\n apiVersion: kubelet.config.k8s.io/v1beta1\n kind: KubeletConfiguration\n address: \"::\"\n healthzBindAddress: \"::\"\n clusterDomain: \"k8s.undercloud.local\"\n clusterDNS:\n - \"2001:470:72f0:f:1::53\"\n - \"10.0.91.53\"\n cgroupDriver: \"systemd\" \n volumePluginDir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n\nsystemd:\n units:\n - name: modules-load.service\n enabled: true\n contents: |\n [Unit]\n Description=Load necessary kernel modules\n Before=containerd.service kubeadm-init.service\n\n [Service]\n Type=oneshot\n ExecStart=/usr/bin/modprobe br_netfilter\n ExecStart=/usr/bin/modprobe overlay\n RemainAfterExit=yes\n\n [Install]\n WantedBy=multi-user.target\n\n - name: systemd-networkd-wait-online.service\n enabled: true\n\n - name: containerd.service\n enabled: true\n contents: |\n [Unit]\n Description=containerd container runtime\n After=network.target modules-load.service\n\n [Service]\n ExecStart=/usr/bin/containerd\n Restart=always\n RestartSec=5\n Delegate=yes\n KillMode=process\n OOMScoreAdjust=-999\n\n [Install]\n WantedBy=multi-user.target\n\n - name: set-timezone.service\n enabled: true\n contents: |\n [Unit]\n Description=Set Timezone\n After=network-online.target\n Wants=network-online.target\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n Type=oneshot\n Restart=on-failure\n ExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\n ExecStart=/usr/bin/timedatectl set-ntp true \n [Install]\n WantedBy=multi-user.target\n\n - name: kubelet.service\n enabled: true\n contents: |\n [Unit]\n Description=kubelet, the Kubernetes Node Agent\n Documentation=https://kubernets.io/docs/home\n Wants=network-online.target\n After=network-online.target\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n #EnvironmentFile=/run/metadata/coreos\n Environment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\n Environment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\n # This is a file that \"kubeadm init\" and \"kubeadm join\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\n EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\n ExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\n Restart=always\n StartLimitInterval=0\n RestartSec=10\n [Install]\n WantedBy=multi-user.target\n\n - name: kubeadm-join.service\n enabled: true\n contents: |\n [Unit]\n Description=Join node to Kubernetes cluster\n After=network-online.target containerd.service kubelet.service\n Wants=network-online.target\n\n [Service]\n Type=oneshot\n # Environment\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\n \n ExecStartPre=/bin/sleep 30s\n\n ExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\n\n # copy files for kubectl\n ExecStartPost=/usr/bin/mkdir -p /home/core/.kube\n ExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\n ExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\n \n #ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\n Restart=on-failure\n RestartSec=120s\n\n [Install]\n WantedBy=multi-user.target\n", "id": "3713463550", "pretty_print": true, "rendered": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,control-plane3%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMscqDMBRG9/so/xAT/REMZBAspUNF2lEcQnKLUk1KErW+fdGWSrnTdw7n1mcZVNtAKQcUGNo/gLrEMFt3byDX2qH34qYp5evFnGdJlP7DUQac5fJjEijK604Y5+z7gVFCSUyyJIr3+APf3TYYYVDYQXbGi9FodKq3oya9VbKHUzWluVL4CJdcGLvtynWTVMvhGdD4zhq/ilcAAAD//8Z6WqLUAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwYobMQyG7/MUOmYX4lzL3sJ2oYV2A01yaG+KrMyIeOxBkodOn74kk0MPaSg0/8WWkD4+4+f/T/MMf8l6v/u0+fb5x9tHWL++vm23sHn/8v3G4B3GP+fC2HViYJM59yAGA6pDOQKCMVXlCJKPiuZayatyuMVYpwRILqO4sAEqQ1+yeDnvY46QSttyDPc89hmrd0Xl13mHiM2gKPRi1fhsZq5CniYYtHRyEL+y/2D0OIGy1eQgGaIYyZAko06zBbc4i5Ycbns84G+b5YPTnOqBNbOzAZXsWhLDkDAzvJfITfMVM7YMo+DLZZY8weJ6eWoIk1CBxXxeWiMn1gJLOCCd6gCLufHUoLaFInTug72sVnO5NNaRNcxVsJHC6QPWn6HmyEqp1BjouHr8u38HAAD//04R3qpqAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SSQY+bMBCF7/wKi3MBE0jI+pbu7qFdqYqaai9VD8YesiOIjcY23e2vrwxom1TqqeKC4I3mvfmeHPEZyKE1gvWhBakveb93OdpiKlvwskp6NFqwzxbNvTUdngNJj9YkyhpPdjgO0oBIGBusksPh+OnR6NGi8fEbY1JPQB4dHLQmcE6wtNOci/hshLir0lnWotFHS16wXV1XCWMqTnWopIcneItTAI2qYKs6JVUDddPUagedkrze1bLe6P1d01W8ayrOq5rr3bbZt1vVtbWsdFW3aWKshq9wRueXBNGgkRcQbI2SjTHLvJ3wZFUPXrBg8FUURUHBFFEn0QDpq9fcWdUnbD7fAP7x1ZM80Nkt+ePSDMd/xFZDcB4o0yYepuQ5z+/KfFt9eBd3ohRiu8onO4QLZOMQzmgyjSRYWtjRFwO28AqqiB7IgAdXrHZWsSuW2WKWpYlGp+wE9BZdttb6eJTxm+3BrNxGPAFNQO84Wfr9OkLJ+Q8RYS3W/DzK0n46ly8q9xXBTzvR6OrNjmy3iIJxsoNTj+P94Rlo4Tt3z1OAJMuy5O9CDuBzNffutpfl2sunRXNbTfneNSHS5AXk4F9+fUSjDzc/1us/2IvE2fve5cFoIDXYoPO50H9UX07xMhlLN5yXom64aDbdDaDsGmGaqDPZMD4QThBBuTfn4aJTliwojjOYh/+A+DsAAP//txdoCb0DAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n# copy files for kubectl\\nExecStartPost=/usr/bin/mkdir -p /home/core/.kube\\nExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\\nExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "snippets": null, "strict": false }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "data", "type": "ct_config", "name": "worker1_ignition", "provider": "provider[\"registry.terraform.io/poseidon/ct\"]", "instances": [ { "schema_version": 0, "attributes": { "content": "variant: flatcar\nversion: 1.1.0\n\npasswd:\n users:\n - name: core\n ssh_authorized_keys:\n - \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n\nstorage:\n directories:\n - path: /opt/bin\n overwrite: true\n mode: 0755\n - path: /opt/cni/bin\n overwrite: true\n mode: 0755\n files:\n - path: /etc/hostname\n mode: 0644\n contents:\n inline: |\n worker1\n\n - path: /etc/systemd/network/00-eth.network\n mode: 0644\n contents:\n inline: |\n [Match]\n Name=eth*\n \n [Network]\n Address=fd00:0:0:2::101/64\n Gateway=fd00:0:0:2::3\n DNS=fd00:0:0:1::1\n Address=10.0.2.101/24\n Gateway=10.0.2.3\n DNS=10.0.1.1\n Domains=undercloud.local\n IPv6AcceptRA=no\n IPv6PrivacyExtensions=no\n\n - path: /etc/hosts\n mode: 0644\n overwrite: true\n contents:\n inline: |\n 127.0.0.1 localhost\n ::1 localhost ip6-localhost ip6-loopback\n fd00:0:0:2::91 control-plane1.undercloud.local control-plane1\n fd00:0:0:2::92 control-plane2.undercloud.local control-plane2\n fd00:0:0:2::93 control-plane3.undercloud.local control-plane3\n fd00:0:0:2::101 worker1.undercloud.local worker1\n fd00:0:0:2::102 worker2.undercloud.local worker2\n fd00:0:0:2::103 worker3.undercloud.local worker3\n 10.0.2.91 control-plane1.undercloud.local control-plane1\n 10.0.2.92 control-plane2.undercloud.local control-plane2\n 10.0.2.93 control-plane3.undercloud.local control-plane3\n 10.0.2.101 worker1.undercloud.local worker1\n 10.0.2.102 worker2.undercloud.local worker2\n 10.0.2.103 worker3.undercloud.local worker3\n\n - path: /etc/motd\n mode: 0644\n overwrite: true\n contents:\n inline: |\n *******************************************************************\n * AUTHORIZED ACCESS ONLY *\n * *\n * This system is part of a secured infrastructure. *\n * All activities are monitored and logged. *\n * Unauthorized access or misuse is strictly prohibited and *\n * may result in disciplinary and legal action. *\n *******************************************************************\n\n --------------------------------------------------------------------------------\n kubernetes worker Node\n\n dont manage\n --------------------------------------------------------------------------------\n\n - path: /etc/sysctl.d/99-k8s.conf\n mode: 0644\n contents:\n inline: |\n net.ipv4.ip_forward = 1\n net.ipv6.ip_forward = 1\n net.ipv6.conf.all.forwarding = 1\n net.ipv4.conf.all.forwarding = 1\n net.bridge.bridge-nf-call-iptables = 1\n net.bridge.bridge-nf-call-ip6tables = 1\n net.netfilter.nf_conntrack_max = 1000000\n net.ipv4.conf.all.rp_filter = 0\n net.ipv6.conf.all.disable_ipv6 = 0\n vm.overcommit_memory = 1\n fs.inotify.max_user_watches = 524288\n fs.inotify.max_user_instances = 512\n kernel.panic = 10\n kernel.panic_on_oops = 1\n\n - path: /etc/flatcar/update.conf\n overwrite: true\n mode: 0420\n contents:\n inline: |\n REBOOT_STRATEGY=off\n\n - path: /opt/bin/kubeadm\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\"\n\n - path: /opt/bin/kubelet\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\"\n\n - path: /opt/bin/kubectl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\"\n\n - path: /opt/bin/calicoctl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\"\n\n - path: /etc/kubernetes/kubeadm-join.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n nodeRegistration:\n name: worker1\n criSocket: unix:///run/containerd/containerd.sock\n kubeletExtraArgs:\n node-ip: \"fd00:0:0:2::101\"\n cluster-dns: \"10.0.91.53,fd00:0:0:f:1::53\"\n volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n discovery:\n bootstrapToken:\n apiServerEndpoint: \"[fd00:0:0:2::100]:6443\"\n token: \"kvg1hc.t3rewovrps426rof\"\n unsafeSkipCAVerification: true\n ---\n apiVersion: kubelet.config.k8s.io/v1beta1\n kind: KubeletConfiguration\n address: \"::\"\n healthzBindAddress: \"::\"\n clusterDomain: \"k8s.undercloud.local\"\n clusterDNS:\n - \"2001:470:72f0:f:1::53\"\n - \"10.0.91.53\"\n cgroupDriver: \"systemd\" \n volumePluginDir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n\nsystemd:\n units:\n - name: modules-load.service\n enabled: true\n contents: |\n [Unit]\n Description=Load necessary kernel modules\n Before=containerd.service kubeadm-init.service\n\n [Service]\n Type=oneshot\n ExecStart=/usr/bin/modprobe br_netfilter\n ExecStart=/usr/bin/modprobe overlay\n RemainAfterExit=yes\n\n [Install]\n WantedBy=multi-user.target\n\n - name: systemd-networkd-wait-online.service\n enabled: true\n\n - name: containerd.service\n enabled: true\n contents: |\n [Unit]\n Description=containerd container runtime\n After=network.target modules-load.service\n\n [Service]\n ExecStart=/usr/bin/containerd\n Restart=always\n RestartSec=5\n Delegate=yes\n KillMode=process\n OOMScoreAdjust=-999\n\n [Install]\n WantedBy=multi-user.\n\n - name: set-timezone.service\n enabled: true\n contents: |\n [Unit]\n Description=Set Timezone\n After=network-online.target\n Wants=network-online.target\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n Type=oneshot\n Restart=on-failure\n ExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\n ExecStart=/usr/bin/timedatectl set-ntp true \n [Install]\n WantedBy=kubeadm.service\n\n - name: kubelet.service\n enabled: true\n contents: |\n [Unit]\n Description=kubelet, the Kubernetes Node Agent\n Documentation=https://kubernets.io/docs/home\n Wants=network-online.target\n After=network-online.target\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n #EnvironmentFile=/run/metadata/coreos\n Environment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\n Environment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\n # This is a file that \"kubeadm init\" and \"kubeadm join\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\n EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\n ExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\n Restart=always\n StartLimitInterval=0\n RestartSec=10\n [Install]\n WantedBy=multi-user.target\n\n - name: kubeadm-join.service\n enabled: true\n contents: |\n [Unit]\n Description=Join node to Kubernetes cluster\n After=network-online.target containerd.service kubelet.service\n Wants=network-online.target\n\n [Service]\n Type=oneshot\n # Environment\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\n \n ExecStartPre=/bin/sleep 30s\n\n ExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\n \n #ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\n Restart=on-failure\n RestartSec=120s\n\n [Install]\n WantedBy=multi-user.target\n", "id": "1066535137", "pretty_print": true, "rendered": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,worker1%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMMeuDMBBH9/so/yH/xBaHQAbBUjpUpB3F4UiuKNWkJFHrty/aUik3/d7jXXXGqJsaCuxJUWz+AKqC4uT8vYbMGE8hqJvhXC6XSCm4+E/3cMRIE84/agd5cd2IkFJ8XwjOOEvYUidb/aHvcB2CCchdj60NarCGvO7cYFjnNHZwKsc005oe8ZIp69Zd+nZEPR+ekWxonQ2LeAUAAP//NFvnsNYAAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwUoDMRCG7/sU/7lg36HUgoK0YNuD3qbJdDs0m5SZibI+vaz14GEtgvud83/5YGb/p5nhFxb73cPm+fF1dY/FcrnabrFZP72MPLzh+DNfjt1JDNabcwcxXEgd5QiCcajKEZKPSuZag1fl+ZhjkRIouLyJCxtIGV3J4mXYU45IpW05zm917DNVPxWVj2ETApuhKDqxajyUmasETz0uWk5yEP92/3B01EPZanJIRhQLckmSSftrBbd0DS15Pt4xwW2bu4lpzvXAmtnZ8F70zIp1idw0sWRHR5lanv7TzwAAAP//EeTc++cCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SRT4+bPBDG7/4Uls8vGJLsn9e3dLOXVqqqptpL1YNjD2QE8aCxzWb76SsgapdeKy6IeQb//PzsgC/AESkY2eUTWH8pu8dYIumxPkGyW9Fh8EZ+JAxPFBpsM9uEFEQgD1+hxZiWD0ZIGewFjHwl7oBrIaVjPJLrIBmZA16N1ppz0I5CshiA/bvXMpLrhJwxekjP18R2z22c/ivldFqBg5Gq8VVlpmdjTF3Vah67PscEXPgQjVR1VVbl/3V5t/3vd7oxtTF32yU+Up8vUAx9bjEUHtlIpWlIuscTXMHpCYIDJIj6xnMLR73s6jmmhMfoaAR+mzBPRGmqY/hGHYQF3A54BB6Bn4MfCEMyUn1f36H6Ye53uxtamlel6sa2PrsybRleaeQh7jb3TM0SyiHaBo4dDk/7F2Bs0C0OZOIMoigK8bfZHlLpZoFrwfVN8Kcls3ZsvWeIU6XGKHEG26fzzw8Y/H41uLV/oIvFmf0xljl4YNdT9mVPzvZ/Up+PUzOFVJuqqs3uoTIPm2YlqHivUAnXMuXhwDjCJCq+xQQXr6RYVHyZxRz+QeKvAAAA//+Az5ICBgMAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "snippets": null, "strict": false }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "data", "type": "ct_config", "name": "worker2_ignition", "provider": "provider[\"registry.terraform.io/poseidon/ct\"]", "instances": [ { "schema_version": 0, "attributes": { "content": "variant: flatcar\nversion: 1.1.0\n\npasswd:\n users:\n - name: core\n ssh_authorized_keys:\n - \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n\nstorage:\n directories:\n - path: /opt/bin\n overwrite: true\n mode: 0755\n - path: /opt/cni/bin\n overwrite: true\n mode: 0755\n files:\n - path: /etc/hostname\n mode: 0644\n contents:\n inline: |\n worker2\n\n - path: /etc/systemd/network/00-eth.network\n mode: 0644\n contents:\n inline: |\n [Match]\n Name=eth*\n \n [Network]\n Address=fd00:0:0:2::102/64\n Gateway=fd00:0:0:2::3\n DNS=fd00:0:0:1::1\n Address=10.0.2.102/24\n Gateway=10.0.2.3\n DNS=10.0.1.1\n Domains=undercloud.local\n IPv6AcceptRA=no\n IPv6PrivacyExtensions=no\n\n - path: /etc/hosts\n mode: 0644\n overwrite: true\n contents:\n inline: |\n 127.0.0.1 localhost\n ::1 localhost ip6-localhost ip6-loopback\n fd00:0:0:2::91 control-plane1.undercloud.local control-plane1\n fd00:0:0:2::92 control-plane2.undercloud.local control-plane2\n fd00:0:0:2::93 control-plane3.undercloud.local control-plane3\n fd00:0:0:2::101 worker1.undercloud.local worker1\n fd00:0:0:2::102 worker2.undercloud.local worker2\n fd00:0:0:2::103 worker3.undercloud.local worker3\n 10.0.2.91 control-plane1.undercloud.local control-plane1\n 10.0.2.92 control-plane2.undercloud.local control-plane2\n 10.0.2.93 control-plane3.undercloud.local control-plane3\n 10.0.2.101 worker1.undercloud.local worker1\n 10.0.2.102 worker2.undercloud.local worker2\n 10.0.2.103 worker3.undercloud.local worker3\n\n - path: /etc/motd\n mode: 0644\n overwrite: true\n contents:\n inline: |\n *******************************************************************\n * AUTHORIZED ACCESS ONLY *\n * *\n * This system is part of a secured infrastructure. *\n * All activities are monitored and logged. *\n * Unauthorized access or misuse is strictly prohibited and *\n * may result in disciplinary and legal action. *\n *******************************************************************\n\n --------------------------------------------------------------------------------\n kubernetes worker Node\n\n dont manage\n --------------------------------------------------------------------------------\n\n - path: /etc/sysctl.d/99-k8s.conf\n mode: 0644\n contents:\n inline: |\n net.ipv4.ip_forward = 1\n net.ipv6.ip_forward = 1\n net.ipv6.conf.all.forwarding = 1\n net.ipv4.conf.all.forwarding = 1\n net.bridge.bridge-nf-call-iptables = 1\n net.bridge.bridge-nf-call-ip6tables = 1\n net.netfilter.nf_conntrack_max = 1000000\n net.ipv4.conf.all.rp_filter = 0\n net.ipv6.conf.all.disable_ipv6 = 0\n vm.overcommit_memory = 1\n fs.inotify.max_user_watches = 524288\n fs.inotify.max_user_instances = 512\n kernel.panic = 10\n kernel.panic_on_oops = 1\n\n - path: /etc/flatcar/update.conf\n overwrite: true\n mode: 0420\n contents:\n inline: |\n REBOOT_STRATEGY=off\n\n - path: /opt/bin/kubeadm\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\"\n\n - path: /opt/bin/kubelet\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\"\n\n - path: /opt/bin/kubectl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\"\n\n - path: /opt/bin/calicoctl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\"\n\n - path: /etc/kubernetes/kubeadm-join.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n nodeRegistration:\n name: worker2\n criSocket: unix:///run/containerd/containerd.sock\n kubeletExtraArgs:\n node-ip: \"fd00:0:0:2::102\"\n cluster-dns: \"10.0.91.53,fd00:0:0:f:1::53\"\n volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n discovery:\n bootstrapToken:\n apiServerEndpoint: \"[fd00:0:0:2::100]:6443\"\n token: \"kvg1hc.t3rewovrps426rof\"\n unsafeSkipCAVerification: true\n ---\n apiVersion: kubelet.config.k8s.io/v1beta1\n kind: KubeletConfiguration\n address: \"::\"\n healthzBindAddress: \"::\"\n clusterDomain: \"k8s.undercloud.local\"\n clusterDNS:\n - \"2001:470:72f0:f:1::53\"\n - \"10.0.91.53\"\n cgroupDriver: \"systemd\" \n volumePluginDir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n\nsystemd:\n units:\n - name: modules-load.service\n enabled: true\n contents: |\n [Unit]\n Description=Load necessary kernel modules\n Before=containerd.service kubeadm-init.service\n\n [Service]\n Type=oneshot\n ExecStart=/usr/bin/modprobe br_netfilter\n ExecStart=/usr/bin/modprobe overlay\n RemainAfterExit=yes\n\n [Install]\n WantedBy=multi-user.target\n\n - name: systemd-networkd-wait-online.service\n enabled: true\n\n - name: containerd.service\n enabled: true\n contents: |\n [Unit]\n Description=containerd container runtime\n After=network.target modules-load.service\n\n [Service]\n ExecStart=/usr/bin/containerd\n Restart=always\n RestartSec=5\n Delegate=yes\n KillMode=process\n OOMScoreAdjust=-999\n\n [Install]\n WantedBy=multi-user.\n\n - name: set-timezone.service\n enabled: true\n contents: |\n [Unit]\n Description=Set Timezone\n After=network-online.target\n Wants=network-online.target\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n Type=oneshot\n Restart=on-failure\n ExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\n ExecStart=/usr/bin/timedatectl set-ntp true \n [Install]\n WantedBy=kubeadm.service\n\n - name: kubelet.service\n enabled: true\n contents: |\n [Unit]\n Description=kubelet, the Kubernetes Node Agent\n Documentation=https://kubernets.io/docs/home\n Wants=network-online.target\n After=network-online.target\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n #EnvironmentFile=/run/metadata/coreos\n Environment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\n Environment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\n # This is a file that \"kubeadm init\" and \"kubeadm join\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\n EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\n ExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\n Restart=always\n StartLimitInterval=0\n RestartSec=10\n [Install]\n WantedBy=multi-user.target\n\n - name: kubeadm-join.service\n enabled: true\n contents: |\n [Unit]\n Description=Join node to Kubernetes cluster\n After=network-online.target containerd.service kubelet.service\n Wants=network-online.target\n\n [Service]\n Type=oneshot\n # Environment\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\n \n ExecStartPre=/bin/sleep 30s\n\n ExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\n \n #ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\n Restart=on-failure\n RestartSec=120s\n\n [Install]\n WantedBy=multi-user.target\n", "id": "2434431782", "pretty_print": true, "rendered": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,worker2%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMQYuDMBBG7/NT9pBNsouHQA6Cy9JDRdqjeBiSKUo1KUnU+u+LtlTKnL73eFMfMZm2gRIH0pTaL4C6pDT7cG0gtzZQjPpiOVfrSaUEl9/ZL/xjohmXD/UDRXneiVBKvF8IzjiTbK3lXr/oM9yGYAIKP2Dnoh6dpWB6P1rWe4M9HKopy42hWzrl2vltV6Gb0Cx/90Qudt7FVTwCAAD//880QSjWAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwUoDMRCG7/sU/7lg36HUgoK0YNuD3qbJdDs0m5SZibI+vaz14GEtgvud83/5YGb/p5nhFxb73cPm+fF1dY/FcrnabrFZP72MPLzh+DNfjt1JDNabcwcxXEgd5QiCcajKEZKPSuZag1fl+ZhjkRIouLyJCxtIGV3J4mXYU45IpW05zm917DNVPxWVj2ETApuhKDqxajyUmasETz0uWk5yEP92/3B01EPZanJIRhQLckmSSftrBbd0DS15Pt4xwW2bu4lpzvXAmtnZ8F70zIp1idw0sWRHR5lanv7TzwAAAP//EeTc++cCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SRT4+bPBDG7/4Uls8vGEj2z+tbutlLK1VVU+2l6sGxBzKCeNDYZrP99BUQtZteKy6IeQb//PzsiC/AESkY2ecjWH8u+8dYIumpPkKyG9Fj8EZ+JAxPFFrsMtuEFEQgD1+hw5jWD0ZIGewZjHwl7oEbIaVjPJDrIRmZA16M1ppz0I5CshiA/bvXMpLrhVwwBkjPl8R2x12c/yvlfFqBo5Gq9VVl5qcxpq4atYzdkGMCLnyIRqq6Kqvy/7q82/z3O92a2pi7zRqfaMhnKMYhdxgKj2yk0jQmPeARLuD0DMEBEkR95bmGo1539RJTwmN0NAG/zZhHojTXMX6jHsIKbkc8AE/Az8GPhCEZqb7f3qH6Ye632ytaWlal6qeuPrkybRheaeIxbpt7pnYN5RBtC4cex6fdCzC26FYHMnEGURSF+NvsAKl0i8BbwfVV8Kc1c+vYes8Q50qNUeIEdkinnx8w+N3N4Nr+ns4WF/bHWObggd1A2ZcDOTv8SX0+zM0UUjVVVZvtQ2UemvZGUPFeoRKuY8rjnnGCWVR8iwnOXkmxqviyiNn/g8RfAQAA//9dswqFBgMAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "snippets": null, "strict": false }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "data", "type": "ct_config", "name": "worker3_ignition", "provider": "provider[\"registry.terraform.io/poseidon/ct\"]", "instances": [ { "schema_version": 0, "attributes": { "content": "variant: flatcar\nversion: 1.1.0\n\npasswd:\n users:\n - name: core\n ssh_authorized_keys:\n - \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n\nstorage:\n directories:\n - path: /opt/bin\n overwrite: true\n mode: 0755\n - path: /opt/cni/bin\n overwrite: true\n mode: 0755\n files:\n - path: /etc/hostname\n mode: 0644\n contents:\n inline: |\n worker3\n\n - path: /etc/systemd/network/00-eth.network\n mode: 0644\n contents:\n inline: |\n [Match]\n Name=eth*\n \n [Network]\n Address=fd00:0:0:2::103/64\n Gateway=fd00:0:0:2::3\n DNS=fd00:0:0:1::1\n Address=10.0.2.103/24\n Gateway=10.0.2.3\n DNS=10.0.1.1\n Domains=undercloud.local\n IPv6AcceptRA=no\n IPv6PrivacyExtensions=no\n\n - path: /etc/hosts\n mode: 0644\n overwrite: true\n contents:\n inline: |\n 127.0.0.1 localhost\n ::1 localhost ip6-localhost ip6-loopback\n fd00:0:0:2::91 control-plane1.undercloud.local control-plane1\n fd00:0:0:2::92 control-plane2.undercloud.local control-plane2\n fd00:0:0:2::93 control-plane3.undercloud.local control-plane3\n fd00:0:0:2::101 worker1.undercloud.local worker1\n fd00:0:0:2::102 worker2.undercloud.local worker2\n fd00:0:0:2::103 worker3.undercloud.local worker3\n 10.0.2.91 control-plane1.undercloud.local control-plane1\n 10.0.2.92 control-plane2.undercloud.local control-plane2\n 10.0.2.93 control-plane3.undercloud.local control-plane3\n 10.0.2.101 worker1.undercloud.local worker1\n 10.0.2.102 worker2.undercloud.local worker2\n 10.0.2.103 worker3.undercloud.local worker3\n\n - path: /etc/motd\n mode: 0644\n overwrite: true\n contents:\n inline: |\n *******************************************************************\n * AUTHORIZED ACCESS ONLY *\n * *\n * This system is part of a secured infrastructure. *\n * All activities are monitored and logged. *\n * Unauthorized access or misuse is strictly prohibited and *\n * may result in disciplinary and legal action. *\n *******************************************************************\n\n --------------------------------------------------------------------------------\n kubernetes worker Node\n\n dont manage\n --------------------------------------------------------------------------------\n\n - path: /etc/sysctl.d/99-k8s.conf\n mode: 0644\n contents:\n inline: |\n net.ipv4.ip_forward = 1\n net.ipv6.ip_forward = 1\n net.ipv6.conf.all.forwarding = 1\n net.ipv4.conf.all.forwarding = 1\n net.bridge.bridge-nf-call-iptables = 1\n net.bridge.bridge-nf-call-ip6tables = 1\n net.netfilter.nf_conntrack_max = 1000000\n net.ipv4.conf.all.rp_filter = 0\n net.ipv6.conf.all.disable_ipv6 = 0\n vm.overcommit_memory = 1\n fs.inotify.max_user_watches = 524288\n fs.inotify.max_user_instances = 512\n kernel.panic = 10\n kernel.panic_on_oops = 1\n\n - path: /etc/flatcar/update.conf\n overwrite: true\n mode: 0420\n contents:\n inline: |\n REBOOT_STRATEGY=off\n\n - path: /opt/bin/kubeadm\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\"\n\n - path: /opt/bin/kubelet\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\"\n\n - path: /opt/bin/kubectl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\"\n\n - path: /opt/bin/calicoctl\n mode: 0755\n contents:\n source: \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\"\n\n - path: /etc/kubernetes/kubeadm-join.yaml\n mode: 0644\n contents:\n inline: |\n apiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n nodeRegistration:\n name: worker3\n criSocket: unix:///run/containerd/containerd.sock\n kubeletExtraArgs:\n node-ip: \"fd00:0:0:2::103\"\n cluster-dns: \"10.0.91.53,fd00:0:0:f:1::53\"\n volume-plugin-dir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n discovery:\n bootstrapToken:\n apiServerEndpoint: \"[fd00:0:0:2::100]:6443\"\n token: \"kvg1hc.t3rewovrps426rof\"\n unsafeSkipCAVerification: true\n ---\n apiVersion: kubelet.config.k8s.io/v1beta1\n kind: KubeletConfiguration\n address: \"::\"\n healthzBindAddress: \"::\"\n clusterDomain: \"k8s.undercloud.local\"\n clusterDNS:\n - \"2001:470:72f0:f:1::53\"\n - \"10.0.91.53\"\n cgroupDriver: \"systemd\" \n volumePluginDir: \"/opt/libexec/kubernetes/kubelet-plugins/volume/exec/\"\n\nsystemd:\n units:\n - name: modules-load.service\n enabled: true\n contents: |\n [Unit]\n Description=Load necessary kernel modules\n Before=containerd.service kubeadm-init.service\n\n [Service]\n Type=oneshot\n ExecStart=/usr/bin/modprobe br_netfilter\n ExecStart=/usr/bin/modprobe overlay\n RemainAfterExit=yes\n\n [Install]\n WantedBy=multi-user.target\n\n - name: systemd-networkd-wait-online.service\n enabled: true\n\n - name: containerd.service\n enabled: true\n contents: |\n [Unit]\n Description=containerd container runtime\n After=network.target modules-load.service\n\n [Service]\n ExecStart=/usr/bin/containerd\n Restart=always\n RestartSec=5\n Delegate=yes\n KillMode=process\n OOMScoreAdjust=-999\n\n [Install]\n WantedBy=multi-user.\n\n - name: set-timezone.service\n enabled: true\n contents: |\n [Unit]\n Description=Set Timezone\n After=network-online.target\n Wants=network-online.target\n [Service]\n StandardOutput=journal+console\n StandardError=journal+console\n Type=oneshot\n Restart=on-failure\n ExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\n ExecStart=/usr/bin/timedatectl set-ntp true \n [Install]\n WantedBy=kubeadm.service\n\n - name: kubelet.service\n enabled: true\n contents: |\n [Unit]\n Description=kubelet, the Kubernetes Node Agent\n Documentation=https://kubernets.io/docs/home\n Wants=network-online.target\n After=network-online.target\n [Service]\n #StandardOutput=journal+console\n #StandardError=journal+console\n #EnvironmentFile=/run/metadata/coreos\n Environment=\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\"\n Environment=\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\"\n # This is a file that \"kubeadm init\" and \"kubeadm join\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\n EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\n ExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\n Restart=always\n StartLimitInterval=0\n RestartSec=10\n [Install]\n WantedBy=multi-user.target\n\n - name: kubeadm-join.service\n enabled: true\n contents: |\n [Unit]\n Description=Join node to Kubernetes cluster\n After=network-online.target containerd.service kubelet.service\n Wants=network-online.target\n\n [Service]\n Type=oneshot\n # Environment\n Environment=KUBECONFIG=/etc/kubernetes/admin.conf\n Environment=DATASTORE_TYPE=kubernetes\n Environment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\n \n ExecStartPre=/bin/sleep 30s\n\n ExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\n \n #ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\n Restart=on-failure\n RestartSec=120s\n\n [Install]\n WantedBy=multi-user.target\n", "id": "105441902", "pretty_print": true, "rendered": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,worker3%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMQYuDMBBG7/NT9pBNdPEQyEFwKT1UpD2KhyGZolSTkkSt/75oS6XM6XuPN/UJo24bKHEgRbH9AahLirPztwZyYzyFoK6Gc7leIqXg6W/2BweMNOPypVIoystOhJTi80JwxlnC1jrZ6zd9hdsQTEDhBuxsUKM15HXvRsN6p7GHYzVludZ0j+dcWbftyncT6uX/EcmGztmwimcAAAD//2bu3F/WAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwUoDMRCG7/sU/7lg36HUgoK0YNuD3qbJdDs0m5SZibI+vaz14GEtgvud83/5YGb/p5nhFxb73cPm+fF1dY/FcrnabrFZP72MPLzh+DNfjt1JDNabcwcxXEgd5QiCcajKEZKPSuZag1fl+ZhjkRIouLyJCxtIGV3J4mXYU45IpW05zm917DNVPxWVj2ETApuhKDqxajyUmasETz0uWk5yEP92/3B01EPZanJIRhQLckmSSftrBbd0DS15Pt4xwW2bu4lpzvXAmtnZ8F70zIp1idw0sWRHR5lanv7TzwAAAP//EeTc++cCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SRu47bOhCGez4FwfpIlGzv5bBz1tskQBDEwTZBCpocyQPJHGFIar15+kAXJOu0gRpB84/48f/sgC/AESkY2eUTWH8pu8dYIumxPkGyW9Fh8EZ+JAxPFBpsM9uEFEQgD1+hxZiWD0ZIGewFjHwl7oC3QkrHeCTXQTIyB7warTXnoB2FZDEA+3evZSTXCTlj9JCer4ntnts4/VfK6bQCByNV46vKTM/GmLraqnns+hwTcOFDNFLVVVmV/9fl3fa/3+nG1MbcrfGR+nyBYuhzi6HwyEYqTUPSPZ7gCk5PEBwgQdQrzxqOetnVc0wJj9HRCPw2YZ6I0lTH8I06CAu4HfAIPAI/Bz8QhmSk+n57h+qHud/tVrQ0r0rVjW19dmXaMrzSyEPcbe6ZmiWUQ7QNHDscnvYvwNigWxzIxBlEURTib7M9pNLNAm8F16vgT0vm1rH1niFOlRqjxBlsn84/P2Dw+5vB2v6BLhZn9sdY5uCBXU/Zlz052/9JfT5OzRRSbaqqNruHyjxsmhtBxXuFSriWKQ8HxhEmUfEtJrh4JcWi4sss5vAPEn8FAAD//xZnffgGAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "snippets": null, "strict": false }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "managed", "type": "null_resource", "name": "wait_for_cp1", "provider": "provider[\"registry.terraform.io/hashicorp/null\"]", "instances": [ { "schema_version": 0, "attributes": { "id": "4911326915232263828", "triggers": null }, "sensitive_attributes": [], "identity_schema_version": 0, "dependencies": [ "data.ct_config.control_plane1_ignition", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "null_resource", "name": "wait_for_cp3", "provider": "provider[\"registry.terraform.io/hashicorp/null\"]", "instances": [ { "schema_version": 0, "attributes": { "id": "846646365650442434", "triggers": null }, "sensitive_attributes": [], "identity_schema_version": 0, "dependencies": [ "data.ct_config.control_plane1_ignition", "data.ct_config.control_plane3_ignition", "null_resource.wait_for_cp1", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_file.control_plane3_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.control_plane3", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_download_file", "name": "flatcar_image", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "checksum": null, "checksum_algorithm": null, "content_type": "import", "datastore_id": "cephfs", "decompression_algorithm": null, "file_name": "flatcar_production_proxmoxve_image.qcow2", "id": "cephfs:import/flatcar_production_proxmoxve_image.qcow2", "node_name": "hyper1", "overwrite": true, "overwrite_unmanaged": false, "size": 573243392, "upload_timeout": 600, "url": "http://build-node.undercloud.local:3000/admin/undercloud-infrastructure/raw/branch/main/iso/flatcar_production_proxmoxve_image.img", "verify": true }, "sensitive_attributes": [], "identity_schema_version": 0 } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_file", "name": "control_plane1_ignition", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "content_type": "snippets", "datastore_id": "cephfs", "file_mode": null, "file_modification_date": null, "file_name": "control-plane1-ignition-user-data", "file_size": null, "file_tag": null, "id": "cephfs:snippets/control-plane1-ignition-user-data", "node_name": "hyper1", "overwrite": true, "source_file": [], "source_raw": [ { "data": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 755\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/manifests\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/install-calico\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,control-plane1%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMwQuCMBSH7+9P6TA3C8HBDoIRHRKpo3gY2wsl3WKbmv99aJHEO/2+j+9VFxlUU0MhexQYmh1AVWCYrHvUkGnt0Htx15Ty5WLOUxYlBzjJgJOc/8we8uK2EcY5+31glFASk5RF8RZ/4adbByMMctvL1ngxGI1OdXbQpLNKdnAuxyRTCp/hmglj1126dpRqPr4CGt9a4xfxDgAA//+AaSdh1AAAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwYobMQyG7/MUOmYX4lzL3sJ2oYV2A01yaG+KrMyIeOxBkodOn74kk0MPaSg0/8WWkD4+4+f/T/MMf8l6v/u0+fb5x9tHWL++vm23sHn/8v3G4B3GP+fC2HViYJM59yAGA6pDOQKCMVXlCJKPiuZayatyuMVYpwRILqO4sAEqQ1+yeDnvY46QSttyDPc89hmrd0Xl13mHiM2gKPRi1fhsZq5CniYYtHRyEL+y/2D0OIGy1eQgGaIYyZAko06zBbc4i5Ycbns84G+b5YPTnOqBNbOzAZXsWhLDkDAzvJfITfMVM7YMo+DLZZY8weJ6eWoIk1CBxXxeWiMn1gJLOCCd6gCLufHUoLaFInTug72sVnO5NNaRNcxVsJHC6QPWn6HmyEqp1BjouHr8u38HAAD//04R3qpqAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/velero\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/velero\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-init.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yTwWvjOBTG7/orhC691JYdK3GqW7btoZSFsF32ssxBlp5dYUUykuym89cPspNMwxRmGAaDEfh7T9/3fs9i0P+BD9pZjvuxAaEOeb8NuXZ0KhuIokK9torjJ6vjvbOt7kYvonYWNc7FEL0Y/nU92MARxhmO6cwx6aeufJV5rDy8uckPga023rUEYYyxgiC9HuJ8K1HQitHE8/X40ndptpTEaDgmBUHWKfgHOp0UcwOEsRUH4Fg6G70z2WCEhRJhLL1+cbKHyPFo9ZFTSv1oadIJbcGrD8c8ONkjPJswEB+P0Yud7+ZUGKdLMz1wTFpVFDw9K87vysWbNGOI4DNlA8ekLPIivyvzdXV7Ebe85HxdLfLJmfEA2WDGTttMac8xoW6I1OgGjiBp8uAtRAj0ZOckDnSppbOMIOOkMLv906NVg9M2JrNCTeCjDrBTykMIn3putFV75yPHG8YqJFNFq6WI8AzvqQKglhWsZSuFrIHVNZMbaKUo2IYJtlLbu7qtirauiqJihdqs622zlm3DRKUq1hCUZRn65d26XwZ4vV4nnPtE8xIQk/8/pimL4gtPEQiyEN+c77Xt0hQGp17Gxib03+MLzumG3c6A0ouuWBpGAD9pCT/qZ2q0LLa3Z6bnEmXDgzsIPW/6NuSjVeClcaPKZybk7N6A/1tY0YFPruB6q1oDx+zPbUNqmcBm4kz+hvObT0kYiLmcp30NpDwBeV4010AubQnnBL2CMPH161/aqt3Vh9Pf8JP5LNb3c5CHFPo3MiPZeTcOD15PkMYW3kOEgyLoWwAAAP//IhFBidUEAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/addons/kube-dns-fixed-svc.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4yRz0r8MBDH73mKeYBfS8tPxZ3rLkJvwVUv4mE2nZXQtInJtNC3l7hdraC4ye3758MkQ8E+cUzWDwhTrTo7tAh7jpM1rHoWakkIFcBAPSN044GLdkiLkAKZs5rmJNwrAEcHdil3ALrbVFAIq2IKbLInc2CErRuTcGy0ArDhjnrrZu2dNTPCPb+NNvJuJLcXMt1XxHJCeG70dPMPGj1dvSgAcyYhHNuqwnyPWCNe/1+7y1zFT6Es11VZlZu6/BCCj/JZOH3A6e35ZBNhKQKE6MUb7xAed3rRhOIri14HV5xCTPiL9bC9gNWzRGu+z7WpL6Yt0cSOjfj42+LeAwAA//9TMAMrKgIAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\n\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nExecStart=/bin/sh -c 'echo \\\"setting timezone to Europe/Berlin\\\"'\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Kubeadm Init Cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\nConditionPathExists=!/etc/kubernetes/kubelet.conf\\n\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nExecStart=/bin/sh -c 'echo \\\"kubeadm-init.service started...\\\"'\\n\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\nExecStart=/bin/sh -c 'echo \\\"running kubeadm init...\\\"'\\nExecStart=/opt/bin/kubeadm init --upload-certs --config=/etc/kubernetes/kubeadm-init.yaml\\n\\n# copy files for kubectl\\nExecStart=/bin/sh -c 'echo \\\"copying files (admin.conf) to core home folder.\\\"'\\nExecStartPost=/usr/bin/mkdir -p /home/core/.kube\\nExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\\nExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\\n\\nExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-init.service\"\n },\n {\n \"contents\": \"[Unit]\\nWants=kubeadm-init.service\\nAfter=kubeadm-init.service\\n\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nExecStart=/bin/sh -c 'echo \\\"install.calico.service started...\\\"'\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStart=/bin/sh -c 'echo \\\"witing 30s...\\\"'\\nExecStart=/bin/sleep 30s\\nExecStart=/bin/sh -c 'echo \\\"create calico namespace...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/namespace.yaml\\nExecStart=/bin/sh -c 'echo \\\"install tigera operator...\\\"'\\nExecStart=-/opt/bin/kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/operator-crds.yaml\\nExecStart=-/opt/bin/kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/tigera-operator.yaml\\nExecStart=/bin/sh -c 'echo \\\"witing 60s...\\\"'\\nExecStart=/bin/sleep 60s\\nExecStart=/bin/sh -c 'echo \\\"witing for tigera operator... (20mini max)\\\"'\\nExecStart=/opt/bin/kubectl wait deployment -n tigera-operator tigera-operator --for condition=Available=True --timeout=1200s\\nExecStart=/bin/sh -c 'echo \\\"create clico custom ressources...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/custom-resources.yaml\\n\\nExecStart=/bin/sh -c 'echo \\\"witing 3m..\\\"'\\nExecStart=/bin/sleep 3m\\n#ExecStart=/bin/sh -c 'echo \\\"apply calico (calico-apiserver)...\\\"'\\n#ExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/calico.yaml\\n#ExecStart=/bin/sh -c 'echo \\\"witing 1m...\\\"'\\n#ExecStart=/bin/sleep 2m\\nExecStart=/bin/sh -c 'echo \\\"witing calico-apiserver... (20mini max)\\\"'\\nExecStart=/opt/bin/kubectl wait deployment -n calico-apiserver calico-apiserver --for condition=Available=True --timeout=1200s\\nExecStart=/bin/sh -c 'echo \\\"witing 120s...\\\"'\\nExecStart=/bin/sleep 2m\\nExecStart=/bin/sh -c 'echo \\\"apply calico-peers...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/calico-peer.yaml\\nExecStart=/bin/sh -c 'echo \\\"witing 60s...\\\"'\\nExecStart=/bin/sleep 1m\\nExecStart=/bin/sh -c 'echo \\\"apply calico-ippools...\\\"'\\nExecStart=-/opt/bin/kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/ippools.yaml\\n\\n#ExecStart=/bin/sh -c 'echo \\\"witing for whisker..\\\"'\\n#ExecStart=/opt/bin/kubectl wait deployment -n calico-system whisker --for condition=Available=True --timeout=1200s\\n#ExecStart=/bin/sh -c 'echo \\\"port-forward -n calico-system service/whisker 8081:8081\\\"'\\n#ExecStart=/opt/bin/kubectl port-forward -n calico-system service/whisker 8081:8081\\n\\nExecStart=/usr/bin/systemctl disable install-calico.service\\n#RemainAfterExit=true\\nRestart=on-failure\\nRestartSec=120s\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"install-calico.service\"\n },\n {\n \"contents\": \"[Unit]\\nWants=install-calico.service\\nAfter=install-calico.service\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\n\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin\\nType=oneshot\\n\\nExecStart=/opt/bin/kubectl wait deployment -n kube-system coredns --for condition=Available=True --timeout=600s\\n\\nExecStart=/bin/sleep 1m\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/namespace.yaml\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/install.yaml\\nExecStart=/opt/bin/kubectl wait deployment -n argocd argocd-server --for condition=Available=True --timeout=600s\\n\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/repo.yaml\\nExecStart=/bin/sleep 10s\\nExecStart=/opt/bin/kubectl apply -n argocd -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/apps.yaml\\n\\n#ExecStart=/bin/sleep 10s\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/repos/k8aux-bootstrap.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/repos/k8aux-apps.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/argocd.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/calico.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/rook-ceph.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/apps/gitea.yaml\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://aux-balancer.undercloud.cf:3000/undercloud/k8aux-bootstrap/raw/branch/main/argocd/argocd-secret.yaml\\n##ExecStart=/bin/sleep 10m\\n#ExecStart=/opt/bin/kubectl wait deployment -n gitea gitea --for condition=Available=True --timeout=4800s\\n#ExecStart=/bin/sleep 10m\\n#ExecStart=/opt/bin/kubectl apply -n argocd -f http://gitea.gitea.svc.k8aux.undercloud.cf:3000/undercloud/k8aux-apps/raw/branch/main/app-of-apps/app-of-apps.yaml\\n\\nExecStart=/usr/bin/systemctl disable install-argocd.service\\nRestart=on-failure\\nRestartSec=120s\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"install-argocd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Pin fixed dual-stack ClusterIPs for kube-dns, argocd-server and whisker\\nAfter=install-argocd.service install-calico.service kubeadm-init.service network-online.target\\nWants=install-argocd.service install-calico.service kubeadm-init.service network-online.target\\n\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=PATH=/usr/bin:/usr/sbin:/opt/bin\\nExecStart=/bin/sh -eu -c '\\\\\\n echo \\\"[pin-service-ips] waiting for API...\\\" ; \\\\\\n for i in $(seq 1 120); do kubectl get --raw=/readyz \\u003e/dev/null 2\\u003e\\u00261 \\u0026\\u0026 break; sleep 2; done ; \\\\\\n echo \\\"[pin-service-ips] ensure namespaces exist...\\\" ; \\\\\\n kubectl get ns kube-system \\u003e/dev/null ; \\\\\\n kubectl get ns argocd \\u003e/dev/null 2\\u003e\\u00261 || kubectl create ns argocd ; \\\\\\n kubectl get ns calico-system \\u003e/dev/null ; \\\\\\n echo \\\"[pin-service-ips] wait for coredns/argocd readiness (best effort)...\\\" ; \\\\\\n kubectl -n kube-system wait deploy coredns --for=condition=Available=True --timeout=300s || true ; \\\\\\n kubectl -n argocd wait deploy argocd-server --for=condition=Available=True --timeout=600s || true ; \\\\\\n echo \\\"[pin-service-ips] replace Services with fixed ClusterIPs...\\\" ; \\\\\\n kubectl -n kube-system delete svc kube-dns --ignore-not-found ; \\\\\\n kubectl apply -f /etc/kubernetes/addons/kube-dns-fixed-svc.yaml ; \\\\\\n kubectl -n argocd delete svc argocd-server --ignore-not-found ; \\\\\\n kubectl apply -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/argocd/service.yaml ; \\\\\\n kubectl -n calico-system delete svc whisker --ignore-not-found || true ; \\\\\\n kubectl create -f http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/calico-config/whisker.yaml || true ; \\\\\\n echo \\\"[pin-service-ips] done.\\\" \\\\\\n'\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"pin-service-ips.service\"\n }\n ]\n }\n}", "file_name": "control-plane1-ignition-user-data", "resize": 0 } ], "timeout_upload": 1800 }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_file", "name": "control_plane2_ignition", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "content_type": "snippets", "datastore_id": "cephfs", "file_mode": null, "file_modification_date": null, "file_name": "control-plane2-ignition-user-data", "file_size": null, "file_tag": null, "id": "cephfs:snippets/control-plane2-ignition-user-data", "node_name": "hyper1", "overwrite": true, "source_file": [], "source_raw": [ { "data": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,control-plane2%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMQYuDMBBG7/NT9hCT7CIYyEFwKT1UpD2Kh5BMUapJSaLWf1+0pVLm9L3Hm/qkom4bKNWAEmP7A1CXGGfnbw3kxngMQV4NpWI9LkTGk/QPDirirJYv8wtFedkJE4J9PjBKKOEk4wnf4zd8ddtghEHhBtXZIEdr0OvejYb0TqsejtWU5lrjPZ5zad22K99NSi//j4g2dM6GVTwDAAD//2Xz5MPUAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwWobQQyG7/sUOjoBj68lN5MGWmgTaJJDe5M1ylp4drRImoXt0xd7c+jBNYX4v8xISB/fMLcfT3cL/8j29eXL04+vvx4+w/b+/uH5GZ4ev/08M3iB8d85MV724uCzBw8gDiNagL4BgjM14wxS3ww9rFE043SOsS0FkEImCWEHNIZBq4Qe97FmKNr3nNMlj9eKLfZq8vu4Q8TuoAaDeHM+mnmYUJQZRtO97CTe2X8xBpzB2FsJkApZnGQsUtHmxYJ7XES1pvMeV/jbbn3ldIe2Y6sc7EBaw7QwjAUrw6Nm7rrvWLFnmATvTrMUBVbvl5uOsAgprJbz1Jq4sCmsYYd0aCOslsZNh9YrZdhHjH632Szl2tkmtrRUySdKh0+eWs1sVLTlVJSwbK7/8D8BAAD//2cEMuhrAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SST4+bMBDF73wKi3MB8ych61u6u4d2pSpqqr1UPRh7yI4gNhrbdLefvjJE26RSTxUXBG80783vyQmfgRxaI9gQOpD6nA87l6Mt5rIDL+tkQKMF+2zR3FvT4ymQ9GhNoqzxZMfDKA2IhLHRKjnuD58ejZ4sGh+/MSb1DOTRwV5rAucES3vNuYhPJcRdlS6yDo0+WPKCbZumThhTcapHJT08wVucAmhVDRvVK6laaNq2UVvoleTNtpFNpXd3bV/zvq05rxuut5t2121U3zWy1nXTpYmxGr7CCZ1fE0SDRp5BsEuUbIpZqrid8GjVAF6wYPBVFEVBwRRRJ9EA6avX3Fk1JGw53wj+8dWT3NPJrfnj0gynf8RWY3AeKNMmHqbkOc/vynxTf3gX96IUYlOv8tmO4QzZNIYTmkwjCZYWdvLFiB28giqiBzLgwRUXOxexK9bZYpGliUan7Az0Fl121vp4lOmbHcBcuE14BJqB3nGy9Pt1hJLzHyLCWq35ZZSlw3wqX1Tua4KfdqbJNdWWbL+KgnGyh+OA0/3+GWjlu3TPU4Aky7Lk70KO4HO19O62l+Wll0+r5raa8r1rQqTJC8jRv/z6iEbvb35crv9gzxIX7zuXB6OB1GiDzpdC/1F9OcbLZCytOC9F03LRVv0NoOwaYZqoE9kwPRDOEEG5N+fhrFOWrCgOC5iH/4D4OwAA//8ZRx0evQMAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n# copy files for kubectl\\nExecStartPost=/usr/bin/mkdir -p /home/core/.kube\\nExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\\nExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "file_name": "control-plane2-ignition-user-data", "resize": 0 } ], "timeout_upload": 1800 }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane2_ignition" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_file", "name": "control_plane3_ignition", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "content_type": "snippets", "datastore_id": "cephfs", "file_mode": null, "file_modification_date": null, "file_name": "control-plane3-ignition-user-data", "file_size": null, "file_tag": null, "id": "cephfs:snippets/control-plane3-ignition-user-data", "node_name": "hyper1", "overwrite": true, "source_file": [], "source_raw": [ { "data": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,control-plane3%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMscqDMBRG9/so/xAT/REMZBAspUNF2lEcQnKLUk1KErW+fdGWSrnTdw7n1mcZVNtAKQcUGNo/gLrEMFt3byDX2qH34qYp5evFnGdJlP7DUQac5fJjEijK604Y5+z7gVFCSUyyJIr3+APf3TYYYVDYQXbGi9FodKq3oya9VbKHUzWluVL4CJdcGLvtynWTVMvhGdD4zhq/ilcAAAD//8Z6WqLUAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwYobMQyG7/MUOmYX4lzL3sJ2oYV2A01yaG+KrMyIeOxBkodOn74kk0MPaSg0/8WWkD4+4+f/T/MMf8l6v/u0+fb5x9tHWL++vm23sHn/8v3G4B3GP+fC2HViYJM59yAGA6pDOQKCMVXlCJKPiuZayatyuMVYpwRILqO4sAEqQ1+yeDnvY46QSttyDPc89hmrd0Xl13mHiM2gKPRi1fhsZq5CniYYtHRyEL+y/2D0OIGy1eQgGaIYyZAko06zBbc4i5Ycbns84G+b5YPTnOqBNbOzAZXsWhLDkDAzvJfITfMVM7YMo+DLZZY8weJ6eWoIk1CBxXxeWiMn1gJLOCCd6gCLufHUoLaFInTug72sVnO5NNaRNcxVsJHC6QPWn6HmyEqp1BjouHr8u38HAAD//04R3qpqAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SSQY+bMBCF7/wKi3MBE0jI+pbu7qFdqYqaai9VD8YesiOIjcY23e2vrwxom1TqqeKC4I3mvfmeHPEZyKE1gvWhBakveb93OdpiKlvwskp6NFqwzxbNvTUdngNJj9YkyhpPdjgO0oBIGBusksPh+OnR6NGi8fEbY1JPQB4dHLQmcE6wtNOci/hshLir0lnWotFHS16wXV1XCWMqTnWopIcneItTAI2qYKs6JVUDddPUagedkrze1bLe6P1d01W8ayrOq5rr3bbZt1vVtbWsdFW3aWKshq9wRueXBNGgkRcQbI2SjTHLvJ3wZFUPXrBg8FUURUHBFFEn0QDpq9fcWdUnbD7fAP7x1ZM80Nkt+ePSDMd/xFZDcB4o0yYepuQ5z+/KfFt9eBd3ohRiu8onO4QLZOMQzmgyjSRYWtjRFwO28AqqiB7IgAdXrHZWsSuW2WKWpYlGp+wE9BZdttb6eJTxm+3BrNxGPAFNQO84Wfr9OkLJ+Q8RYS3W/DzK0n46ly8q9xXBTzvR6OrNjmy3iIJxsoNTj+P94Rlo4Tt3z1OAJMuy5O9CDuBzNffutpfl2sunRXNbTfneNSHS5AXk4F9+fUSjDzc/1us/2IvE2fve5cFoIDXYoPO50H9UX07xMhlLN5yXom64aDbdDaDsGmGaqDPZMD4QThBBuTfn4aJTliwojjOYh/+A+DsAAP//txdoCb0DAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n# copy files for kubectl\\nExecStartPost=/usr/bin/mkdir -p /home/core/.kube\\nExecStartPost=/usr/bin/cp -i /etc/kubernetes/admin.conf /home/core/.kube/config\\nExecStartPost=/usr/bin/chown core:core /home/core/.kube/config\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "file_name": "control-plane3-ignition-user-data", "resize": 0 } ], "timeout_upload": 1800 }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane3_ignition" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_file", "name": "worker1_ignition", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "content_type": "snippets", "datastore_id": "cephfs", "file_mode": null, "file_modification_date": null, "file_name": "worker1-ignition-user-data", "file_size": null, "file_tag": null, "id": "cephfs:snippets/worker1-ignition-user-data", "node_name": "hyper1", "overwrite": true, "source_file": [], "source_raw": [ { "data": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,worker1%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMMeuDMBBH9/so/yH/xBaHQAbBUjpUpB3F4UiuKNWkJFHrty/aUik3/d7jXXXGqJsaCuxJUWz+AKqC4uT8vYbMGE8hqJvhXC6XSCm4+E/3cMRIE84/agd5cd2IkFJ8XwjOOEvYUidb/aHvcB2CCchdj60NarCGvO7cYFjnNHZwKsc005oe8ZIp69Zd+nZEPR+ekWxonQ2LeAUAAP//NFvnsNYAAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwUoDMRCG7/sU/7lg36HUgoK0YNuD3qbJdDs0m5SZibI+vaz14GEtgvud83/5YGb/p5nhFxb73cPm+fF1dY/FcrnabrFZP72MPLzh+DNfjt1JDNabcwcxXEgd5QiCcajKEZKPSuZag1fl+ZhjkRIouLyJCxtIGV3J4mXYU45IpW05zm917DNVPxWVj2ETApuhKDqxajyUmasETz0uWk5yEP92/3B01EPZanJIRhQLckmSSftrBbd0DS15Pt4xwW2bu4lpzvXAmtnZ8F70zIp1idw0sWRHR5lanv7TzwAAAP//EeTc++cCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SRT4+bPBDG7/4Uls8vGJLsn9e3dLOXVqqqptpL1YNjD2QE8aCxzWb76SsgapdeKy6IeQb//PzsgC/AESkY2eUTWH8pu8dYIumxPkGyW9Fh8EZ+JAxPFBpsM9uEFEQgD1+hxZiWD0ZIGewFjHwl7oBrIaVjPJLrIBmZA16N1ppz0I5CshiA/bvXMpLrhJwxekjP18R2z22c/ivldFqBg5Gq8VVlpmdjTF3Vah67PscEXPgQjVR1VVbl/3V5t/3vd7oxtTF32yU+Up8vUAx9bjEUHtlIpWlIuscTXMHpCYIDJIj6xnMLR73s6jmmhMfoaAR+mzBPRGmqY/hGHYQF3A54BB6Bn4MfCEMyUn1f36H6Ye53uxtamlel6sa2PrsybRleaeQh7jb3TM0SyiHaBo4dDk/7F2Bs0C0OZOIMoigK8bfZHlLpZoFrwfVN8Kcls3ZsvWeIU6XGKHEG26fzzw8Y/H41uLV/oIvFmf0xljl4YNdT9mVPzvZ/Up+PUzOFVJuqqs3uoTIPm2YlqHivUAnXMuXhwDjCJCq+xQQXr6RYVHyZxRz+QeKvAAAA//+Az5ICBgMAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "file_name": "worker1-ignition-user-data", "resize": 0 } ], "timeout_upload": 1800 }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.worker1_ignition" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_file", "name": "worker2_ignition", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "content_type": "snippets", "datastore_id": "cephfs", "file_mode": null, "file_modification_date": null, "file_name": "worker2-ignition-user-data", "file_size": null, "file_tag": null, "id": "cephfs:snippets/worker2-ignition-user-data", "node_name": "hyper1", "overwrite": true, "source_file": [], "source_raw": [ { "data": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,worker2%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMQYuDMBBG7/NT9pBNsouHQA6Cy9JDRdqjeBiSKUo1KUnU+u+LtlTKnL73eFMfMZm2gRIH0pTaL4C6pDT7cG0gtzZQjPpiOVfrSaUEl9/ZL/xjohmXD/UDRXneiVBKvF8IzjiTbK3lXr/oM9yGYAIKP2Dnoh6dpWB6P1rWe4M9HKopy42hWzrl2vltV6Gb0Cx/90Qudt7FVTwCAAD//880QSjWAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwUoDMRCG7/sU/7lg36HUgoK0YNuD3qbJdDs0m5SZibI+vaz14GEtgvud83/5YGb/p5nhFxb73cPm+fF1dY/FcrnabrFZP72MPLzh+DNfjt1JDNabcwcxXEgd5QiCcajKEZKPSuZag1fl+ZhjkRIouLyJCxtIGV3J4mXYU45IpW05zm917DNVPxWVj2ETApuhKDqxajyUmasETz0uWk5yEP92/3B01EPZanJIRhQLckmSSftrBbd0DS15Pt4xwW2bu4lpzvXAmtnZ8F70zIp1idw0sWRHR5lanv7TzwAAAP//EeTc++cCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SRT4+bPBDG7/4Uls8vGEj2z+tbutlLK1VVU+2l6sGxBzKCeNDYZrP99BUQtZteKy6IeQb//PzsiC/AESkY2ecjWH8u+8dYIumpPkKyG9Fj8EZ+JAxPFFrsMtuEFEQgD1+hw5jWD0ZIGewZjHwl7oEbIaVjPJDrIRmZA16M1ppz0I5CshiA/bvXMpLrhVwwBkjPl8R2x12c/yvlfFqBo5Gq9VVl5qcxpq4atYzdkGMCLnyIRqq6Kqvy/7q82/z3O92a2pi7zRqfaMhnKMYhdxgKj2yk0jQmPeARLuD0DMEBEkR95bmGo1539RJTwmN0NAG/zZhHojTXMX6jHsIKbkc8AE/Az8GPhCEZqb7f3qH6Ye632ytaWlal6qeuPrkybRheaeIxbpt7pnYN5RBtC4cex6fdCzC26FYHMnEGURSF+NvsAKl0i8BbwfVV8Kc1c+vYes8Q50qNUeIEdkinnx8w+N3N4Nr+ns4WF/bHWObggd1A2ZcDOTv8SX0+zM0UUjVVVZvtQ2UemvZGUPFeoRKuY8rjnnGCWVR8iwnOXkmxqviyiNn/g8RfAQAA//9dswqFBgMAAA==\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "file_name": "worker2-ignition-user-data", "resize": 0 } ], "timeout_upload": 1800 }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.worker2_ignition" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_file", "name": "worker3_ignition", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "content_type": "snippets", "datastore_id": "cephfs", "file_mode": null, "file_modification_date": null, "file_name": "worker3-ignition-user-data", "file_size": null, "file_tag": null, "id": "cephfs:snippets/worker3-ignition-user-data", "node_name": "hyper1", "overwrite": true, "source_file": [], "source_raw": [ { "data": "{\n \"ignition\": {\n \"config\": {\n \"replace\": {\n \"verification\": {}\n }\n },\n \"proxy\": {},\n \"security\": {\n \"tls\": {}\n },\n \"timeouts\": {},\n \"version\": \"3.4.0\"\n },\n \"kernelArguments\": {},\n \"passwd\": {\n \"users\": [\n {\n \"name\": \"core\",\n \"sshAuthorizedKeys\": [\n \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHEAlPo3v4U67Y3411pTjIMkQxwlFWdXrBJkSzXenDH flatcar@undercloud\"\n ]\n }\n ]\n },\n \"storage\": {\n \"directories\": [\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/bin\",\n \"user\": {},\n \"mode\": 493\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/opt/cni/bin\",\n \"user\": {},\n \"mode\": 493\n }\n ],\n \"files\": [\n {\n \"group\": {},\n \"path\": \"/etc/hostname\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,worker3%0A\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/systemd/network/00-eth.network\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/1SMQYuDMBBG7/NT9pBNdPEQyEFwKT1UpD2KhyGZolSTkkSt/75oS6XM6XuPN/UJo24bKHEgRbH9AahLirPztwZyYzyFoK6Gc7leIqXg6W/2BweMNOPypVIoystOhJTi80JwxlnC1jrZ6zd9hdsQTEDhBuxsUKM15HXvRsN6p7GHYzVludZ0j+dcWbftyncT6uX/EcmGztmwimcAAAD//2bu3F/WAAAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/hosts\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/5TRYcqDMAwG4P+eIhewNAl8H/Y2rjo2LEY6Zdcf3arQMgnTX83bB8obpH9jjTUIAEF8H27yWBvn0vnzHVO4L39tfZLl0vupuQ7WuvSTcx2Cl3mNEtol9POIZpuHMfog22DevspLTWVKiqZSc5myornQaBGeEqcxfnlzDipAeU5ngCrAec5ngBtMCyHTpR382OROqaZ6jTvlmuodZprq0/s7LhPo3R2XGfTeXgEAAP//kbvS+8wCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/motd\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6yRwUoDMRCG7/sU/7lg36HUgoK0YNuD3qbJdDs0m5SZibI+vaz14GEtgvud83/5YGb/p5nhFxb73cPm+fF1dY/FcrnabrFZP72MPLzh+DNfjt1JDNabcwcxXEgd5QiCcajKEZKPSuZag1fl+ZhjkRIouLyJCxtIGV3J4mXYU45IpW05zm917DNVPxWVj2ETApuhKDqxajyUmasETz0uWk5yEP92/3B01EPZanJIRhQLckmSSftrBbd0DS15Pt4xwW2bu4lpzvXAmtnZ8F70zIp1idw0sWRHR5lanv7TzwAAAP//EeTc++cCAAA=\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"path\": \"/etc/sysctl.d/99-k8s.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/4zQX27CMAwG8HdO0QsQASqIF85imdRhFokdOVmB20/duu6PMo3vJVL0i+wvQtVxHnvHGYLaDW3ofufUbVezOzztvEpwGKObNcul4fpn3Nl4uNB8rCWsPca45lzxHKn87w4z/HRCNXCsZE4CeBWphv4KCe/L3M17Gltaho+331pvGq0HLtNQmG6/3JicjmReU+IKiZLao/WLoTgWrRweLuEdXgsZ3LD6l6nu4va7fnc8NjFLqSh+4aduv92trmRC0WUU9t0fmcr/gKACqrm09nwLAAD//0919F4+AgAA\",\n \"verification\": {}\n },\n \"mode\": 420\n },\n {\n \"group\": {},\n \"overwrite\": true,\n \"path\": \"/etc/flatcar/update.conf\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"\",\n \"source\": \"data:,REBOOT_STRATEGY%3Doff%0A\",\n \"verification\": {}\n },\n \"mode\": 272\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubeadm\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubeadm\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubelet\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubelet\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/kubectl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/kubectl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/opt/bin/calicoctl\",\n \"user\": {},\n \"contents\": {\n \"source\": \"http://build-node.undercloud.local:3000/Undercloud/undercloud-infrastructure/raw/branch/main/k8s-binaries/calicoctl\",\n \"verification\": {}\n },\n \"mode\": 493\n },\n {\n \"group\": {},\n \"path\": \"/etc/kubernetes/kubeadm-join.yaml\",\n \"user\": {},\n \"contents\": {\n \"compression\": \"gzip\",\n \"source\": \"data:;base64,H4sIAAAAAAAC/6SRu47bOhCGez4FwfpIlGzv5bBz1tskQBDEwTZBCpocyQPJHGFIar15+kAXJOu0gRpB84/48f/sgC/AESkY2eUTWH8pu8dYIumxPkGyW9Fh8EZ+JAxPFBpsM9uEFEQgD1+hxZiWD0ZIGewFjHwl7oC3QkrHeCTXQTIyB7warTXnoB2FZDEA+3evZSTXCTlj9JCer4ntnts4/VfK6bQCByNV46vKTM/GmLraqnns+hwTcOFDNFLVVVmV/9fl3fa/3+nG1MbcrfGR+nyBYuhzi6HwyEYqTUPSPZ7gCk5PEBwgQdQrzxqOetnVc0wJj9HRCPw2YZ6I0lTH8I06CAu4HfAIPAI/Bz8QhmSk+n57h+qHud/tVrQ0r0rVjW19dmXaMrzSyEPcbe6ZmiWUQ7QNHDscnvYvwNigWxzIxBlEURTib7M9pNLNAm8F16vgT0vm1rH1niFOlRqjxBlsn84/P2Dw+5vB2v6BLhZn9sdY5uCBXU/Zlz052/9JfT5OzRRSbaqqNruHyjxsmhtBxXuFSriWKQ8HxhEmUfEtJrh4JcWi4sss5vAPEn8FAAD//xZnffgGAwAA\",\n \"verification\": {}\n },\n \"mode\": 420\n }\n ]\n },\n \"systemd\": {\n \"units\": [\n {\n \"contents\": \"[Unit]\\nDescription=Load necessary kernel modules\\nBefore=containerd.service kubeadm-init.service\\n\\n[Service]\\nType=oneshot\\nExecStart=/usr/bin/modprobe br_netfilter\\nExecStart=/usr/bin/modprobe overlay\\nRemainAfterExit=yes\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"modules-load.service\"\n },\n {\n \"enabled\": true,\n \"name\": \"systemd-networkd-wait-online.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=containerd container runtime\\nAfter=network.target modules-load.service\\n\\n[Service]\\nExecStart=/usr/bin/containerd\\nRestart=always\\nRestartSec=5\\nDelegate=yes\\nKillMode=process\\nOOMScoreAdjust=-999\\n\\n[Install]\\nWantedBy=multi-user.\\n\",\n \"enabled\": true,\n \"name\": \"containerd.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Set Timezone\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nStandardOutput=journal+console\\nStandardError=journal+console\\nType=oneshot\\nRestart=on-failure\\nExecStart=/usr/bin/timedatectl set-timezone Europe/Berlin\\nExecStart=/usr/bin/timedatectl set-ntp true \\n[Install]\\nWantedBy=kubeadm.service\\n\",\n \"enabled\": true,\n \"name\": \"set-timezone.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=kubelet, the Kubernetes Node Agent\\nDocumentation=https://kubernets.io/docs/home\\nWants=network-online.target\\nAfter=network-online.target\\n[Service]\\n#StandardOutput=journal+console\\n#StandardError=journal+console\\n#EnvironmentFile=/run/metadata/coreos\\nEnvironment=\\\"KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf\\\"\\nEnvironment=\\\"KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml\\\"\\n# This is a file that \\\"kubeadm init\\\" and \\\"kubeadm join\\\" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically\\nEnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env\\nExecStart=/opt/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=10\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubelet.service\"\n },\n {\n \"contents\": \"[Unit]\\nDescription=Join node to Kubernetes cluster\\nAfter=network-online.target containerd.service kubelet.service\\nWants=network-online.target\\n\\n[Service]\\nType=oneshot\\n# Environment\\nEnvironment=KUBECONFIG=/etc/kubernetes/admin.conf\\nEnvironment=DATASTORE_TYPE=kubernetes\\nEnvironment=PATH=/usr/bin/:/usr/sbin:/opt/bin:/opt/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent-uds/\\n\\nExecStartPre=/bin/sleep 30s\\n\\nExecStart=/opt/bin/kubeadm join --config=/etc/kubernetes/kubeadm-join.yaml\\n\\n#ExecStartPost=/usr/bin/systemctl disable kubeadm-init.service\\nRestart=on-failure\\nRestartSec=120s\\n\\n[Install]\\nWantedBy=multi-user.target\\n\",\n \"enabled\": true,\n \"name\": \"kubeadm-join.service\"\n }\n ]\n }\n}", "file_name": "worker3-ignition-user-data", "resize": 0 } ], "timeout_upload": 1800 }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.worker3_ignition" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "control_plane1", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": null, "cdrom": [], "clone": [ { "datastore_id": "", "full": true, "node_name": "hyper1", "retries": 1, "vm_id": 103 } ], "cpu": [ { "affinity": "", "architecture": "", "cores": 2, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "kubernetes control-plane1", "disk": [], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "104", "initialization": [ { "datastore_id": "local-lvm", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "cephfs:snippets/control-plane1-ignition-user-data", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": null, "mac_addresses": [ "BC:24:11:90:E8:8F" ], "machine": null, "memory": [ { "dedicated": 3072, "floating": 3072, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "control-plane1", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:90:E8:8F", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper1", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": true, "startup": [], "stop_on_destroy": false, "tablet_device": true, "tags": [ "control-plane", "flatcar", "kubernetes", "terraform" ], "template": false, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 104, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "control_plane2", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": null, "cdrom": [], "clone": [ { "datastore_id": "", "full": true, "node_name": "hyper1", "retries": 1, "vm_id": 103 } ], "cpu": [ { "affinity": "", "architecture": "", "cores": 2, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "kubernetes control-plane2", "disk": [], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "107", "initialization": [ { "datastore_id": "local-lvm", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "cephfs:snippets/control-plane2-ignition-user-data", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": null, "mac_addresses": [ "BC:24:11:17:EA:7E" ], "machine": null, "memory": [ { "dedicated": 3072, "floating": 3072, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "control-plane2", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:17:EA:7E", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper2", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": true, "startup": [], "stop_on_destroy": false, "tablet_device": true, "tags": [ "control-plane", "flatcar", "kubernetes", "terraform" ], "template": false, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 107, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition", "data.ct_config.control_plane2_ignition", "null_resource.wait_for_cp1", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_file.control_plane2_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "control_plane3", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": null, "cdrom": [], "clone": [ { "datastore_id": "", "full": true, "node_name": "hyper1", "retries": 1, "vm_id": 103 } ], "cpu": [ { "affinity": "", "architecture": "", "cores": 2, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "kubernetes control-plane3", "disk": [], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "108", "initialization": [ { "datastore_id": "local-lvm", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "cephfs:snippets/control-plane3-ignition-user-data", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": null, "mac_addresses": [ "BC:24:11:C2:94:6A" ], "machine": null, "memory": [ { "dedicated": 3072, "floating": 3072, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "control-plane3", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:C2:94:6A", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper3", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": true, "startup": [], "stop_on_destroy": false, "tablet_device": true, "tags": [ "control-plane", "flatcar", "kubernetes", "terraform" ], "template": false, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 108, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition", "data.ct_config.control_plane3_ignition", "null_resource.wait_for_cp1", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_file.control_plane3_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "flatcar_template", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": [ "scsi0", "ide2" ], "cdrom": [], "clone": [], "cpu": [ { "affinity": "", "architecture": "", "cores": 1, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "managed by terraform - base template for flatcar", "disk": [ { "aio": "io_uring", "backup": true, "cache": "none", "datastore_id": "Pool1", "discard": "on", "file_format": "raw", "file_id": "", "import_from": "cephfs:import/flatcar_production_proxmoxve_image.qcow2", "interface": "virtio0", "iothread": false, "path_in_datastore": "vm-103-disk-0", "replicate": true, "serial": "", "size": 50, "speed": [], "ssd": false } ], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "103", "initialization": [ { "datastore_id": "Pool1", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": "", "mac_addresses": [ "BC:24:11:58:99:FF" ], "machine": "", "memory": [ { "dedicated": 2048, "floating": 2048, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "flatcar-template", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:58:99:FF", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper1", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": null, "startup": [], "stop_on_destroy": true, "tablet_device": true, "tags": [ "flatcar", "kubernetes", "terraform" ], "template": true, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 103, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "proxmox_virtual_environment_download_file.flatcar_image" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "worker1", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": null, "cdrom": [], "clone": [ { "datastore_id": "", "full": true, "node_name": "hyper1", "retries": 1, "vm_id": 103 } ], "cpu": [ { "affinity": "", "architecture": "", "cores": 2, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "kubernetes worker1", "disk": [], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "109", "initialization": [ { "datastore_id": "local-lvm", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "cephfs:snippets/worker1-ignition-user-data", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": null, "mac_addresses": [ "BC:24:11:06:63:61" ], "machine": null, "memory": [ { "dedicated": 8192, "floating": 8192, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "worker1", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:06:63:61", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper1", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": true, "startup": [], "stop_on_destroy": false, "tablet_device": true, "tags": [ "flatcar", "kubernetes", "terraform", "worker" ], "template": false, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 109, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition", "data.ct_config.control_plane3_ignition", "data.ct_config.worker1_ignition", "null_resource.wait_for_cp1", "null_resource.wait_for_cp3", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_file.control_plane3_ignition", "proxmox_virtual_environment_file.worker1_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.control_plane3", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "worker2", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": null, "cdrom": [], "clone": [ { "datastore_id": "", "full": true, "node_name": "hyper1", "retries": 1, "vm_id": 103 } ], "cpu": [ { "affinity": "", "architecture": "", "cores": 2, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "kubernetes worker2", "disk": [], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "112", "initialization": [ { "datastore_id": "local-lvm", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "cephfs:snippets/worker2-ignition-user-data", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": null, "mac_addresses": [ "BC:24:11:0E:DC:6F" ], "machine": null, "memory": [ { "dedicated": 8192, "floating": 8192, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "worker2", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:0E:DC:6F", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper2", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": true, "startup": [], "stop_on_destroy": false, "tablet_device": true, "tags": [ "flatcar", "kubernetes", "terraform", "worker" ], "template": false, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 112, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition", "data.ct_config.control_plane3_ignition", "data.ct_config.worker2_ignition", "null_resource.wait_for_cp1", "null_resource.wait_for_cp3", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_file.control_plane3_ignition", "proxmox_virtual_environment_file.worker2_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.control_plane3", "proxmox_virtual_environment_vm.flatcar_template" ] } ] }, { "mode": "managed", "type": "proxmox_virtual_environment_vm", "name": "worker3", "provider": "provider[\"registry.terraform.io/bpg/proxmox\"]", "instances": [ { "schema_version": 0, "attributes": { "acpi": true, "agent": [], "amd_sev": [], "audio_device": [], "bios": "seabios", "boot_order": null, "cdrom": [], "clone": [ { "datastore_id": "", "full": true, "node_name": "hyper1", "retries": 1, "vm_id": 103 } ], "cpu": [ { "affinity": "", "architecture": "", "cores": 2, "flags": null, "hotplugged": 0, "limit": 0, "numa": false, "sockets": 1, "type": "host", "units": 1024 } ], "description": "kubernetes worker3", "disk": [], "efi_disk": [], "hook_script_file_id": null, "hostpci": [], "id": "113", "initialization": [ { "datastore_id": "local-lvm", "dns": [], "interface": "ide2", "ip_config": [], "meta_data_file_id": "", "network_data_file_id": "", "type": "", "user_account": [], "user_data_file_id": "cephfs:snippets/worker3-ignition-user-data", "vendor_data_file_id": "" } ], "ipv4_addresses": [], "ipv6_addresses": [], "keyboard_layout": "en-us", "kvm_arguments": null, "mac_addresses": [ "BC:24:11:0F:F8:42" ], "machine": null, "memory": [ { "dedicated": 8192, "floating": 8192, "hugepages": "", "keep_hugepages": false, "shared": 0 } ], "migrate": false, "name": "worker3", "network_device": [ { "bridge": "vmbr0", "disconnected": false, "enabled": true, "firewall": false, "mac_address": "BC:24:11:0F:F8:42", "model": "virtio", "mtu": 0, "queues": 0, "rate_limit": 0, "trunks": "", "vlan_id": 0 } ], "network_interface_names": [], "node_name": "hyper3", "numa": [], "on_boot": true, "operating_system": [], "pool_id": null, "protection": false, "reboot": false, "reboot_after_update": true, "rng": [], "scsi_hardware": "virtio-scsi-pci", "serial_device": [], "smbios": [], "started": true, "startup": [], "stop_on_destroy": false, "tablet_device": true, "tags": [ "flatcar", "kubernetes", "terraform", "worker" ], "template": false, "timeout_clone": 1800, "timeout_create": 1800, "timeout_migrate": 1800, "timeout_move_disk": 1800, "timeout_reboot": 1800, "timeout_shutdown_vm": 1800, "timeout_start_vm": 1800, "timeout_stop_vm": 300, "tpm_state": [], "usb": [], "vga": [], "virtiofs": [], "vm_id": 113, "watchdog": [] }, "sensitive_attributes": [], "identity_schema_version": 0, "private": "bnVsbA==", "dependencies": [ "data.ct_config.control_plane1_ignition", "data.ct_config.control_plane3_ignition", "data.ct_config.worker3_ignition", "null_resource.wait_for_cp1", "null_resource.wait_for_cp3", "proxmox_virtual_environment_download_file.flatcar_image", "proxmox_virtual_environment_file.control_plane1_ignition", "proxmox_virtual_environment_file.control_plane3_ignition", "proxmox_virtual_environment_file.worker3_ignition", "proxmox_virtual_environment_vm.control_plane1", "proxmox_virtual_environment_vm.control_plane3", "proxmox_virtual_environment_vm.flatcar_template" ] } ] } ], "check_results": null }