diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05c1dd1..cfc97be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,12 +19,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the codebase. - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: path: 'geerlingguy.kubernetes' - name: Set up Python 3. - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.x' @@ -54,12 +54,12 @@ jobs: steps: - name: Check out the codebase. - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: path: 'geerlingguy.kubernetes' - name: Set up Python 3. - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f734f42..7743a2c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,12 +22,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the codebase. - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: path: 'geerlingguy.kubernetes' - name: Set up Python 3. - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/README.md b/README.md index 4b3f653..d70c622 100644 --- a/README.md +++ b/README.md @@ -140,19 +140,16 @@ kubernetes_ignore_preflight_errors: 'all' Options passed to `kubeadm init` when initializing the Kubernetes control plane. The `kubernetes_apiserver_advertise_address` defaults to `ansible_default_ipv4.address` if it's left empty. ```yaml -kubernetes_apt_release_channel: main -kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_apt_release_channel }}" -kubernetes_apt_ignore_key_error: false +kubernetes_apt_release_channel: "stable" +kubernetes_apt_keyring_file: "/etc/apt/keyrings/kubernetes-apt-keyring.asc" +kubernetes_apt_repository: "deb [signed-by={{ kubernetes_apt_keyring_file }}] https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/ /" ``` Apt repository options for Kubernetes installation. ```yaml -kubernetes_yum_arch: x86_64 -kubernetes_yum_base_url: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-{{ kubernetes_yum_arch }}" -kubernetes_yum_gpg_key: - - https://packages.cloud.google.com/yum/doc/yum-key.gpg - - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg +kubernetes_yum_base_url: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/" +kubernetes_yum_gpg_key: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/repodata/repomd.xml.key" kubernetes_yum_gpg_check: true kubernetes_yum_repo_gpg_check: true ``` diff --git a/defaults/main.yml b/defaults/main.yml index dc06019..a2fa074 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -55,17 +55,12 @@ kubernetes_apiserver_advertise_address: '' kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}' kubernetes_ignore_preflight_errors: 'all' -kubernetes_apt_release_channel: main -# Note that xenial repo is used for all Debian derivatives at this time. -kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_apt_release_channel }}" -kubernetes_apt_ignore_key_error: false - -kubernetes_yum_arch: '$basearch' -kubernetes_yum_base_url: "https://packages.cloud.google.com/yum/repos/kubernetes-el7-{{ kubernetes_yum_arch }}" -kubernetes_yum_gpg_key: - - https://packages.cloud.google.com/yum/doc/yum-key.gpg - - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg +kubernetes_apt_release_channel: "stable" +kubernetes_apt_keyring_file: "/etc/apt/keyrings/kubernetes-apt-keyring.asc" +kubernetes_apt_repository: "deb [signed-by={{ kubernetes_apt_keyring_file }}] https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/ /" +kubernetes_yum_base_url: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/" +kubernetes_yum_gpg_key: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/repodata/repomd.xml.key" kubernetes_yum_gpg_check: true kubernetes_yum_repo_gpg_check: true diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml index 518aa05..253c8f2 100644 --- a/molecule/default/molecule.yml +++ b/molecule/default/molecule.yml @@ -2,11 +2,13 @@ role_name_check: 1 dependency: name: galaxy + options: + ignore-errors: true driver: name: docker platforms: - name: instance - image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest" + image: "geerlingguy/docker-${MOLECULE_DISTRO:-rockylinux8}-ansible:latest" command: ${MOLECULE_DOCKER_COMMAND:-""} volumes: - /sys/fs/cgroup:/sys/fs/cgroup:rw diff --git a/tasks/setup-Debian.yml b/tasks/setup-Debian.yml index 4a83a58..7c77ae5 100644 --- a/tasks/setup-Debian.yml +++ b/tasks/setup-Debian.yml @@ -6,16 +6,28 @@ - ca-certificates state: present -- name: Add Kubernetes apt key. - apt_key: - url: https://packages.cloud.google.com/apt/doc/apt-key.gpg - state: present - register: add_repository_key - ignore_errors: "{{ kubernetes_apt_ignore_key_error }}" +- name: Prepare apt keyring directory. + ansible.builtin.file: + path: "{{ kubernetes_apt_keyring_file | dirname }}" + state: directory + mode: 0755 + +- name: Get Kubernetes apt key. + ansible.builtin.get_url: + url: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/Release.key" + dest: "{{ kubernetes_apt_keyring_file }}" + mode: '0644' + force: true + +- name: Be sure deprecated Kubernetes repository is absent. + file: + path: "/etc/apt/sources.list.d/apt_kubernetes_io.list" + state: absent - name: Add Kubernetes repository. - apt_repository: + ansible.builtin.apt_repository: repo: "{{ kubernetes_apt_repository }}" + filename: pkgs_k8s_io state: present update_cache: true diff --git a/tasks/setup-RedHat.yml b/tasks/setup-RedHat.yml index 94d94de..f58bad2 100644 --- a/tasks/setup-RedHat.yml +++ b/tasks/setup-RedHat.yml @@ -11,10 +11,9 @@ - name: Add Kubernetes GPG keys. rpm_key: - key: "{{ item }}" + key: "{{ kubernetes_yum_gpg_key }}" state: present register: kubernetes_rpm_key - with_items: "{{ kubernetes_yum_gpg_key }}" - name: Make cache if Kubernetes GPG key changed. command: "yum -q makecache -y --disablerepo='*' --enablerepo='kubernetes'" diff --git a/vars/RedHat.yml b/vars/RedHat.yml index e156651..697636d 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -1,12 +1,3 @@ --- procps_package: procps-ng kubelet_environment_file_path: /etc/sysconfig/kubelet -kubernetes_packages: - - name: kubelet-{{ kubernetes_version_rhel_package }}-0 - state: present - - name: kubectl-{{ kubernetes_version_rhel_package }}-0 - state: present - - name: kubeadm-{{ kubernetes_version_rhel_package }}-0 - state: present - - name: kubernetes-cni - state: present