githubixx.cni

ansible-role-cni

AnsibleロールでCNI - Container Network Interfaceをインストールします。CNI(コンテナーネットワークインターフェース)は、Cloud Native Computing Foundationのプロジェクトで、Linuxコンテナのネットワークインターフェースを構成するプラグインを書くための仕様とライブラリを提供します。また、いくつかのサポートされているプラグインも含まれています。CNIは、コンテナのネットワーク接続と、コンテナが削除されたときに割り当てられたリソースを削除することにのみ関心があります。この焦点のおかげで、CNIは幅広いサポートを提供しており、仕様は実装が簡単です。

変更履歴

変更履歴:

完全なCHANGELOGをご覧ください。

最近の変更:

0.7.0+1.4.0

  • Ubuntu 24.04 のサポートを追加

0.6.0+1.4.0

  • cni_version1.4.0 に更新

0.5.1+1.3.0

  • 展開ディレクトリモードを調整
  • cni_tmp_directory の値にサブパスを追加し、親ディレクトリの権限の変更を回避。cni_tmp_directory/tmpに設定されていると、unarchive操作がそのディレクトリのモードを変更しました。固定のサブパスをcni_tmp_directoryに追加することで問題を回避します。

0.5.0+1.3.0

  • cni_version1.3.0 に更新
  • Moleculeの検証ステップを追加
  • Ubuntu 18.04 のサポートを削除(EOLに達したため)
  • Ubuntu 22.04 のサポートを追加
  • dummytap のCNIバイナリを追加
  • Moleculeのkvmシナリオをdefaultに名前変更 / memory + cpusのオプションをボックスに移動

役割変数

# CNIプラグインのバージョン
cni_version: "1.4.0"

# CNIバイナリディレクトリ
cni_bin_directory: "/opt/cni/bin"

# CNI設定ディレクトリ
cni_conf_directory: "/etc/cni/net.d"

# アーカイブを保存するディレクトリ
cni_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"

# "CNI"ファイル/ディレクトリのオーナー/グループ。変数が設定されていない場合
# 結果のバイナリは現在のユーザーが所有します。
cni_owner: "root"
cni_group: "root"

# "CNI"バイナリの権限を指定します
cni_binary_mode: "0755"

# オペレーティングシステム
# 選択肢: "linux", "windows"
cni_os: "linux"

# "CNI"が実行されるプロセッサアーキテクチャ。
# 他の可能な値: "arm", "arm64", "mips64le", "ppc64le", "s390x"
cni_arch: "amd64"

# アーカイブファイルの名前
cni_archive: "cni-plugins-{{ cni_os }}-{{ cni_arch }}-v{{ cni_version }}.tgz"

# CNIのダウンロードURL(通常は変更の必要はありません)
cni_url: "https://github.com/containernetworking/plugins/releases/download/v{{ cni_version }}/{{ cni_archive }}"

# "CNI"バイナリまたは設定が変更された後に "kubelet" サービスを再起動します。
# このハンドラは "kubelet.service" というsystemdサービスを期待します。
cni_restart_kubelet: false

TODO

  • CNIネットワーク設定ファイルを配布する(Ciliumには、CNIファイルがCiliumによって作成されるため、不要です)

例のプレイブック

- hosts: your-host
  roles:
    - githubixx.cni

テスト

このロールには、Molecule、libvirt(vagrant-libvirt)、およびQEMU/KVMを使用して作成された小さなテストセットアップがあります。設定方法については、私のブログ投稿Testing Ansible roles with Molecule, libvirt (vagrant-libvirt) and QEMU/KVMをご覧ください。テスト設定はこちらです。

その後、以下のコマンドでmoleculeを実行できます:

molecule converge

これにより、異なるサポートされているLinuxオペレーティングシステムを持ついくつかの仮想マシン(VM)が設定され、CNIがインストールされます。

いくつかのテストを実行するには:

molecule verify

クリーンアップを実行するには:

molecule destroy

ライセンス

GNU一般公衆ライセンス 第3版

著者情報

http://www.tauceti.blog

プロジェクトについて

Ansible role to install CNI (Container Network Interface)

インストール
ansible-galaxy install githubixx.cni
ライセンス
Unknown
ダウンロード
216
所有者
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)