deisでminioを置き換えるだけをやってみる
公式ページを参考に
本当にここを変えただけ。bucketはGCSであらかじめ作っておく。権限とかもなんもしてない。
diff --git a/values.yml b/values.yml index c25cfb2..1d94aca 100644 --- a/values.yml +++ b/values.yml @@ -7,7 +7,7 @@ global: # - azure: Store persistent data in Azure's object storage # - gcs: Store persistent data in Google Cloud Storage # - minio: Store persistent data on in-cluster Minio server - storage: minio + storage: gcs # Set the location of Workflow's PostgreSQL database # @@ -75,9 +75,9 @@ gcs: # key_json is expanded into a JSON file on the remote server. It must be # well-formatted JSON data. key_json: <base64-encoded JSON data> - registry_bucket: "your-registry-bucket-name" - database_bucket: "your-database-bucket-name" - builder_bucket: "your-builder-bucket-name" + registry_bucket: "my-registry" + database_bucket: "my-database" + builder_bucket: "my-builder"
deisをinstallする
適当にRakeタスク作って、コマンド実行。--set
でsecrety keyを渡せるのいいね:100:
namespace :helm do task :install do sh %Q(helm install deis/workflow --namespace deis -f values.yml \ --set gcs.key_json="$(cat gcloud-service-key.json | base64)" ) end end
状態
確かにminioはいなくなった。
$ helm status nobby-gibbon LAST DEPLOYED: Tue Mar 28 20:41:00 2017 NAMESPACE: deis STATUS: DEPLOYED RESOURCES: ==> v1/ServiceAccount NAME SECRETS AGE deis-nsqd 1 9m deis-workflow-manager 1 9m deis-router 1 9m deis-registry 1 9m deis-database 1 9m deis-builder 1 9m deis-logger-fluentd 1 9m deis-controller 1 9m deis-logger 1 9m deis-monitor-telegraf 1 9m ==> v1/Service NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE deis-monitor-influxui 10.3.254.23 <none> 80/TCP 9m deis-logger-redis 10.3.249.48 <none> 6379/TCP 9m deis-registry 10.3.250.48 <none> 80/TCP 9m deis-database 10.3.242.10 <none> 5432/TCP 9m deis-monitor-influxapi 10.3.241.35 <none> 80/TCP 9m deis-workflow-manager 10.3.242.232 <none> 80/TCP 9m deis-builder 10.3.244.107 <none> 2222/TCP 9m deis-logger 10.3.253.37 <none> 80/TCP 9m deis-monitor-grafana 10.3.245.167 <none> 80/TCP 9m deis-router 10.3.252.162 35.190.228.247 80:32439/TCP,443:30793/TCP,2222:30898/TCP,9090:30627/TCP 9m deis-nsqd 10.3.246.21 <none> 4151/TCP,4150/TCP 9m deis-controller 10.3.241.43 <none> 80/TCP 9m ==> extensions/v1beta1/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deis-monitor-grafana 1 1 1 1 9m deis-controller 1 1 1 1 9m deis-logger 1 1 1 1 9m deis-nsqd 1 1 1 1 9m deis-database 1 1 1 1 9m deis-builder 1 1 1 1 9m deis-workflow-manager 1 1 1 1 9m deis-router 1 1 1 1 9m deis-registry 1 1 1 1 9m deis-logger-redis 1 1 1 1 9m deis-monitor-influxdb 1 1 1 1 9m ==> extensions/v1beta1/DaemonSet NAME DESIRED CURRENT READY NODE-SELECTOR AGE deis-monitor-telegraf 4 4 4 <none> 9m deis-registry-proxy 4 4 4 <none> 9m deis-logger-fluentd 4 4 4 <none> 9m ==> v1/Secret NAME TYPE DATA AGE deis-router-dhparam Opaque 1 9m objectstorage-keyfile Opaque 4 9m minio-user Opaque 2 9m ==> v1/ConfigMap NAME DATA AGE dockerbuilder-config 2 9m slugbuilder-config 2 9m slugrunner-config 1 9m
GCSのbucketの中になんか入ってる
databaseにだけ入ってた。これがなんか状態を保存してるやつなんだろうな。
deisのアンインストール
なんとなく分かったのでアンインストール。
$ helm list NAME REVISION UPDATED STATUS CHART NAMESPACE nobby-gibbon 1 Tue Mar 28 20:41:00 2017 DEPLOYED workflow-v2.12.0 deis $ helm delete nobby-gibbon
これだけだと、secret情報が消えなかったので次に再度helm installするときに、エラーになってしまう。こんな感じで残っちゃうようだ。
$ kubectl get secrets -n deis NAME TYPE DATA AGE builder-key-auth Opaque 1 18m builder-ssh-private-keys Opaque 3 18m database-creds Opaque 2 18m default-token-vdgrd kubernetes.io/service-account-token 3 19m deis-workflow-manager Opaque 1 17m deploy-hook-key Opaque 1 18m django-secret-key Opaque 1 18m logger-redis-creds Opaque 1 18m
なので、コマンドラインで一気に消す。今までのぼくなら1個ずつ手動入力してたけどlazy nightに参加したのでがんばって怠惰になるためにワンライナーでやる。
$ kubectl get secrets -n deis | awk '{print $1}' | tail -n +2 | xargs kubectl delete secret -n deis
追記
ただ、helm deleteだけだと、完全には消えなかったので、helm delete --purge
をつける必要があった。