Kompose
Kompose はdocker-compose.ymlを Kubernetes 向けに変換する。
GitHub - kubernetes/kompose: Convert Compose to Kubernetes
インストールする
| # Linux
curl -L https://github.com/kubernetes/kompose/releases/download/v1.37.0/kompose-linux-amd64 -o kompose
# Linux ARM64
curl -L https://github.com/kubernetes/kompose/releases/download/v1.37.0/kompose-linux-arm64 -o kompose
chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose
$ kompose version
1.37.0 (fb0539e64)
|
使い方
例
| $ kompose --file compose.yaml convert
$ kompose -f first.yaml -f second.yaml convert
$ kompose --provider openshift --file compose.yaml convert
|
Kubernetes フラグ
| フラグ |
説明 |
-c, --chart |
変換されたオブジェクトの Helm チャートを作成します |
--controller |
出力コントローラーを設定します ("deployment"|"daemonSet"|"replicationController") |
--service-group-mode |
複数のサービスをグループ化し、"label" ("kompose.service.group") または "volume" (共有ボリューム) で単一のワークロードを作成します |
--service-group-name |
--service-group-mode=volume と組み合わせて、グループの最終的なサービス名を指定します |
OpenShift フラグ
| フラグ |
説明 |
--build-branch |
buildconfig で使用するリポジトリブランチを指定します (デフォルトは現在のブランチ名) |
--build-repo |
buildconfig で使用するソースリポジトリを指定します (デフォルトは現在のブランチのリモート URL) |
--insecure-repository |
OpenShift イメージストリームオブジェクト生成中に使用する安全でない Docker リポジトリを指定します。 |
フラグ
| フラグ |
説明 |
--build string |
ビルドの種類を設定します ("local" | "build-config" (OpenShift のみ) | "none") (デフォルト "none") |
--build-command string |
コンテナイメージのビルドに使用するコマンドを設定します。このコマンドは docker build コマンドをオーバーライドします。--push-command フラグと組み合わせて使用 してください。 |
--controller string |
出力コントローラーを設定します ("deployment"|"daemonSet"|"replicationController") |
--generate-network-policies |
ネットワークポリシーを生成するかどうかを指定します |
-h, --help |
変換のヘルプ |
--indent int |
生成される yaml ファイルのインデントに使用するスペースの長さ (デフォルトは 2) |
-j, --json |
リソースファイルを JSON 形式で生成します |
-n, --namespace string |
生成されるリソースの名前空間を指定します |
--no-interpolate |
Compose ファイルに環境変数名を保持します |
-o, --out string |
オブジェクトを保存するファイル名またはディレクトリを指定します (パスが存在しない場合はファイルが作成されます) |
--profile stringArray |
使用するプロファイルを指定します。複数のプロファイルを使用できます |
--push-command string |
コンテナイメージをプッシュするためのコマンドを設定します。docker push コマンドをオーバーライドします。--build-command フラグと組み合わせて使用 する必要があります。 |
--push-image |
ビルドした Docker イメージをプッシュする場合 |
--push-image-registry string |
イメージをプッシュするためのレジストリを指定します。イメージ名のレジストリをオーバーライドします |
--pvc-request-size string |
生成されたリソース仕様における PVC ストレージリクエストのサイズを指定します |
--replicas int |
生成されたリソース仕様におけるレプリカの数を指定します (デフォルト 1) |
--secrets-as-files |
docker-compose のシークレットを、シンボリックリンクされたディレクトリではなく、常にファイルに変換します |
--service-group-mode label |
複数のサービスをラベル (kompose.service.group) または volume (共有ボリューム) でグループ化し、単一のワークロードを作成します |
--service-group-name string |
--service-group-mode=volume と組み合わせて、グループの最終的なサービス名を指定します |
--stdout |
変換されたオブジェクトを標準出力に出力します |
--volumes string |
生成するボリューム ("persistentVolumeClaim"|"emptyDir"|"hostPath"|"configMap") (デフォルト"persistentVolumeClaim") |
--with-kompose-annotation |
生成されたリソースに kompose アノテーションを追加します(デフォルト true) |
グローバルフラグ
| フラグ |
説明 |
--error-on-warning |
すべての警告をエラーとして扱います |
-f, --file strings |
代替の Compose ファイルを指定します |
--provider string |
プロバイダーを指定します。Kubernetes または OpenShift。(デフォルト "kubernetes") |
--suppress-warnings |
すべての警告を抑制します |
-v, --verbose |
詳細出力 |
アノテーションを出力しない
| $ kompose convert --file docker-compose.yml -o ./outputs/ --with-kompose-annotation=false
|