--- - name: Install k8s become: true hosts: all vars: arch: amd64 os: Debian_12 codename: bookworm k8s_version: 1.26 environment: KUBECONFIG: /etc/kubernetes/admin.conf tasks: - name: Fix hostname copy: dest: /etc/hostname content: | {{ inventory_hostname | regex_replace('.*@', '') | regex_replace('\..*$', '') }} - name: Copy conf copy: src: rootfs/ dest: / - name: Add {{ codename }} repo copy: dest: /etc/apt/sources.list content: | deb http://deb.debian.org/debian {{ codename }} main deb-src http://deb.debian.org/debian {{ codename }} main deb http://deb.debian.org/debian-security/ {{ codename }}-security main deb-src http://deb.debian.org/debian-security/ {{ codename }}-security main deb http://deb.debian.org/debian {{ codename }}-updates main deb-src http://deb.debian.org/debian {{ codename }}-updates main deb http://deb.debian.org/debian {{ codename }}-backports main deb-src http://deb.debian.org/debian {{ codename }}-backports main - name: Upgrade apt: update_cache: true cache_valid_time: 86400 # 60s * 60m * 24h upgrade: dist autoremove: true purge: true - name: Install deps apt: name: - gpg - kubectx - vim - name: Add libcontainers public key (CRI-O) apt_key: url: "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/{{ os }}/Release.key" keyring: /etc/apt/keyrings/libcontainers.gpg - name: Add libcontainers-crio public key (CRI-O) apt_key: url: "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ k8s_version }}/{{ os }}/Release.key" keyring: /etc/apt/keyrings/libcontainers-crio.gpg - name: Add k8s public key apt_key: url: https://packages.cloud.google.com/apt/doc/apt-key.gpg keyring: /etc/apt/keyrings/kubernetes.gpg - name: Add libcontainers repo (CRI-O) apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/libcontainers.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/{{ os }}/ /" filename: libcontainers - name: Add libcontainers-crio repo (CRI-O) apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/libcontainers-crio.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ k8s_version }}/{{ os }}/ /" filename: libcontainers-crio - name: Add k8s repo apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" filename: kubernetes - name: Install k8s apt: name: - cri-o - cri-o-runc - kubeadm={{ k8s_version}}* - kubectl={{ k8s_version}}* - kubelet={{ k8s_version}}* update_cache: true allow_change_held_packages: true - name: Hold k8s pkg shell: apt-mark hold cri-o cri-o-runc kubeadm kubectl kubelet - name: Install crictl unarchive: remote_src: yes src: "https://github.com/kubernetes-sigs/cri-tools/releases/download/v{{ k8s_version }}.0/crictl-v{{ k8s_version }}.0-linux-{{ arch }}.tar.gz" dest: /usr/local/bin/ mode: 755 - name: Enable crio service service: name: crio.service enabled: true - name: Reboot reboot: #- name: Init k8s # shell: kubeadm init --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint=k8s.gmoker.com #- name: Remove master node taint # shell: kubectl taint node --all node-role.kubernetes.io/control-plane:NoSchedule- #- name: Apply flannel # shell: kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml #- name: Apply nginx ingress # shell: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml #- name: Reboot # reboot: