Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@sheepland

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

More than 1 year has passed since last update.

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オプションにいちいち指定しなくてよくなるので大変便利ですね。

6
Help us understand the problem. What is going on with this article?
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
sheepland
https://twitter.com/sheepland
studyplus
学習管理アプリ「Studyplus」を開発・運営する会社です

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?