githubixx.kubectl
ansible-role-kubectl
Installiert das kubectl-Befehlszeilenwerkzeug, um mit dem Kubernetes API-Server zu interagieren.
Versionen
Ich versiegle jede Veröffentlichung und versuche, semantische Versionierung einzuhalten. Wenn du die Rolle verwenden möchtest, empfehle ich, das neueste Tag auszuwählen. Der Master-Zweig ist im Grunde genommen Entwicklung, während die Tags stabile Versionen kennzeichnen. Aber im Allgemeinen versuche ich auch, den Master in gutem Zustand zu halten. Ein Tag 23.0.2+1.28.5
bedeutet, dass dies die Version 23.0.2
dieser Rolle ist und die kubectl
-Binarversion 1.28.5
ist. Wenn sich die Rolle selbst ändert, erhöht sich X.Y.Z
vor dem +
. Wenn sich die Kubernetes-Version ändert, erhöht sich X.Y.Z
nach dem +
. Dies ermöglicht es, Bugfixes und neue Hauptversionen der Rolle zu kennzeichnen, während sie weiterhin für eine bestimmte Kubernetes-Version entwickelt wird.
Änderungsprotokoll
Siehe CHANGELOG
Rollenvariablen
# "kubectl"-Version, die installiert werden soll
kubectl_version: "1.29.3"
# Die Standard-"Binar" wird "kubectl" als Binärdatei herunterladen. Diese ist
# etwa 2,5-mal größer als die ".tar.gz"-Datei. Die Tar-Datei muss zuerst
# von der Rolle nach dem Herunterladen entpackt werden und ist kleiner.
#
# Wenn du "binary" angibst, wird die "kubectl"-Binärdatei heruntergeladen. Im
# Gegensatz zur Tar-Datei ist die Binärdatei etwa 2,5-mal größer, muss
# aber nicht von dieser Rolle entpackt werden.
#
# Wenn die Dateigröße beim Herunterladen für dich wichtig ist (z.B. langsames
# Herunterladen oder Herunterladen über eine mobile Verbindung), bleibe bei
# "archive". Andernfalls könnte "binary" eine Option sein.
kubectl_download_filetype: "binary"
#
# SHA512-Prüfziffer der "kubernetes-client-linux-amd64.tar.gz"-Datei
# (siehe https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#client-binaries)
kubectl_checksum_archive: "sha512:c9cc7ab9e3aa776f2daab3a9e10ee78d57d0c081ef43f8032de36a61c6425ba527d5df92611b058672be0975a6b97ad3f3a169e282c26275d2c0e59e1f9b1173"
#
# SHA512-Prüfziffer der Binärdatei. Normalerweise ist es nicht notwendig, sie zu ändern.
# Weitere Informationen:
# - https://kubernetes.io/releases/download/#binaries
# - https://www.downloadkubernetes.com/
kubectl_checksum_binary: "sha512:https://cdn.dl.k8s.io/release/v{{ kubectl_version }}/bin/{{ kubectl_os }}/{{ kubectl_arch }}/kubectl.sha512"
# Wo die "kubectl"-Binärdatei installiert werden soll
kubectl_bin_directory: "/usr/local/bin"
# Verzeichnis zum Speichern des kubectl-Archivs
kubectl_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"
# Besitzer der "kubectl"-Binärdatei
kubectl_owner: "root"
# Gruppe der "kubectl"-Binärdatei
kubectl_group: "root"
# Gibt die Berechtigungen der "kubectl"-Binärdatei an
kubectl_binary_mode: "0755"
# Betriebssystem, auf dem "kubectl" laufen soll
kubectl_os: "linux" # verwende "darwin" für MacOS X, "windows" für Windows
# Prozessorarchitektur, auf der "kubectl" laufen soll
kubectl_arch: "amd64" # andere mögliche Werte: "386","arm64","arm","ppc64le","s390x"
Tests
Diese Rolle hat ein kleines Testsetup, das mit molecule erstellt wurde. Um die Tests auszuführen, folge dem Installationsleitfaden von Molecule. Stelle sicher, dass ein Docker-Daemon auf deinem Rechner läuft.
Wenn Docker bereits installiert ist, benötigst du mindestens zwei Python-Pakete:
pip3 install --user molecule
pip3 install --user molecule-docker
Anschließend kann Molecule ausgeführt werden:
molecule converge
Dies wird einige Docker-Container mit Ubuntu 20.04/22.04 und Debian 11/12 mit installiertem kubectl
einrichten. Um zu überprüfen, ob alles funktioniert hat:
molecule verify
Um aufzuräumen, führe aus:
molecule destroy
Beispiel-Playbook
- hosts: dein-host
roles:
- githubixx.kubectl
Lizenz
GNU GENERAL PUBLIC LICENSE Version 3
Autoreninformation
Installs kubectl command line utility used to interact with the Kubernetes API Server.
ansible-galaxy install githubixx.kubectl