コンテンツにスキップ

Kompose

Kompose はdocker-compose.ymlを Kubernetes 向けに変換する。

GitHub - kubernetes/kompose: Convert Compose to Kubernetes

インストールする

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 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)

使い方

1
kompose convert [flags]

1
2
3
$ 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 詳細出力

アノテーションを出力しない

1
$ kompose convert --file docker-compose.yml -o ./outputs/ --with-kompose-annotation=false