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

TauCeti Blog

Über das Projekt

Installs kubectl command line utility used to interact with the Kubernetes API Server.

Installieren
ansible-galaxy install githubixx.kubectl
Lizenz
gpl-3.0
Downloads
12k
Besitzer
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)