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_version
を1.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_version
を1.3.0
に更新- Moleculeの検証ステップを追加
- Ubuntu
18.04
のサポートを削除(EOLに達したため) - Ubuntu
22.04
のサポートを追加 dummy
とtap
の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版
著者情報
プロジェクトについて
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 ;-)