Help us understand the problem. What is going on with this article?

Skaffoldのprofile機能を使って環境ごとに動作を変える

Skaffoldのprofile機能を使えば、profileごとに設定を上書くことができます。
たとえば、開発環境とプロダクション環境へのデプロイの仕方を変えることができます。

実際の例を見てみましょう。
例えば以下のようなskaffold.yamlがあったとします。

skaffold.yaml
apiVersion: skaffold/v1
kind: Config
build:
  artifacts:
  - image: sample-image
deploy:
  kustomize:
    path: kubernetes/overlays/dev

kustomizeのpathとしてdevを指定していますが、これをproductionを指定したい場合、profile機能を使うとスマートにできます。

skaffold.yaml
apiVersion: skaffold/v1
kind: Config
build:
  artifacts:
  - image: sample-image

profiles:
- name: dev
  deploy:
    kustomize:
      path: kubernetes/overlays/dev
- name: production
  deploy:
    kustomize:
      path: kubernetes/overlays/production

このように書くと、dev環境へデプロイしたい場合は、

$ skaffold run -p dev

prod環境へデプロイしたい場合は、

$ skaffold run -p production

というように設定を切り替えることができます。
profile機能が行っているのは設定の上書きなので上記のdeploy以外にもbuild内容も変更が可能です。
profile機能のexamplesをみるとよく分かるかと思います。

またActivationというprofileの自動切り替え機能もあります。
Activationを使うと
kubecontextや環境変数、skaffoldコマンド(dev/run/build/deploy)によって、profileを自動で切り替えてくれます。

build:
  artifacts:
  - image: sample-image

profiles:
- name: local
  activation:
    - kubeContext: minikube
      command: dev
  deploy:
    kustomize:
      path: kubernetes/overlays/local
- name: dev
  activation:
    - env: ENV=dev
  deploy:
    kustomize:
      path: kubernetes/overlays/dev
- name: production
  activation:
    - env: ENV=production
  deploy:
    kustomize:
      path: kubernetes/overlays/production

例えば上記の場合、

  • kubeContextがminikubeで、skaffold devコマンドを実行した場合、local profileが使用される
  • ENV=devという環境変数があれば、dev profileが使用される
  • ENV=productionという環境変数があれば、production profileが使用される

といった具合です。
うまく使えば-pオプションにいちいち指定しなくてよくなるので大変便利ですね。

studyplus
学習管理アプリ「Studyplus」を開発・運営する会社です
https://info.studyplus.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした