元 che の keycloak エクスポート → 新 che デプロイ → 新 che で keycloak インポート。という感じでできるようだ。
前提
- OS: Windows 10 Pro
- ランタイム: Docker Desktop の Kubernetes
環境準備
ソースの取得
mkdir che_tmp
cd che_tmp
$WORK_DIR=$(pwd)
git clone --depth 1 https://github.com/eclipse/che.git
cd che
$CHE_SOURCE=$(pwd)
helm のバージョンアップ
Chocolatey で管理しているので、アップグレードする。
デプロイ環境準備
ingress デプロイ
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml
pod の確認。
PS C:\Users\mikoto\project\tmp\che_tmp\che> kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx ingress-nginx-admission-create-fnssb 0/1 Completed 0 81s
ingress-nginx ingress-nginx-admission-patch-nxmpv 0/1 Completed 0 81s
ingress-nginx ingress-nginx-controller-7fc74cf778-txd7v 1/1 Running 0 81s
kube-system coredns-f9fd979d6-bsn9l 1/1 Running 8 36d
kube-system coredns-f9fd979d6-dxd4n 1/1 Running 8 36d
kube-system etcd-docker-desktop 1/1 Running 15 36d
kube-system kube-apiserver-docker-desktop 1/1 Running 16 36d
kube-system kube-controller-manager-docker-desktop 1/1 Running 8 36d
kube-system kube-proxy-td79h 1/1 Running 8 36d
kube-system kube-scheduler-docker-desktop 1/1 Running 20 36d
kube-system storage-provisioner 1/1 Running 34 36d
kube-system vpnkit-controller 1/1 Running 8 36d
IP アドレスをメモ
TYPE が LoadBalancer の CLUSTER-IP をメモする。この場合は 10.111.81.251
。 以降は $DOMAIN_IP
にメモした IP を設定したこととして進める。
PS C:\Users\mikoto\project\tmp\che_tmp\che> kubectl get services --namespace ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.111.81.251 localhost 80:31411/TCP,443:32118/TCP 20m
ingress-nginx-controller-admission ClusterIP 10.99.113.1 <none> 443/TCP 20m
ループバックアドレスの設定
start-process -verb runas powershell -ArgumentList netsh,interface,ipv4,add,address,Loopback,$DOMAIN_IP
追加されたことを確認。
che を namespace che でデプロイ
kubectl create namespace che
cd $CHE_SOURCE\deploy\kubernetes\helm\che
helm dependency update
helm upgrade --install che --namespace che --set global.cheWorkspacesNamespace="che" --set global.ingressDomain=${DOMAIN}.nip.io --set global.multiuser=true ./
アプリの確認。
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> helm list -n che
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
che che 1 2021-02-26 06:40:16.5220543 +0900 JST deployed che-0.1.0
pod の確認。
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl get pods -n che
NAME READY STATUS RESTARTS AGE
che-6b7475579d-k4pj2 1/1 Running 0 3m17s
che-dashboard-649cb64655-jwtsc 1/1 Running 0 6m48s
devfile-registry-7f5f8fdf4d-fpmtw 1/1 Running 0 6m48s
keycloak-5b4ff5bd5d-zndb8 1/1 Running 0 3m20s
plugin-registry-558796b4bd-xt96b 1/1 Running 0 6m48s
postgres-55d7974489-zwkht 1/1 Running 0 3m20s
keycloak にアクセス
keycloak にアクセスして管理者設定・ユーザー追加を行う。
che にアクセス
ログインできることを確認する。
ユーザー情報エクスポート
Kuberenetes の Keycloak コンテナへログインする。
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl get pods -n che
NAME READY STATUS RESTARTS AGE
che-696449ffff-rlmt9 1/1 Running 0 38m
che-dashboard-649cb64655-jwtsc 1/1 Running 0 61m
devfile-registry-7f5f8fdf4d-fpmtw 1/1 Running 0 61m
keycloak-cccb6d4b8-6jz8f 1/1 Running 0 41s
plugin-registry-558796b4bd-xt96b 1/1 Running 0 61m
postgres-55d7974489-zwkht 1/1 Running 0 57m
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl exec -it -n che -it keycloak-cccb6d4b8-6jz8f -- /bin/bash
ユーザー情報エクスポート。
/opt/jboss/keycloak/bin/standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=dir -Dkeycloak.migration.dir=/opt/jboss/keycloak-export -Dkeycloak.migration.usersExportStrategy=DIFFERENT_FILES -Dkeycloak.migration.usersPerFile=100 -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777 -Djboss.management.https.port=7776
以下のような表示が出たら完了。
22:35:14,133 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: Keycloak 6.0.1 (WildFly Core 8.0.0.Final) started in 11106ms - Started 617 of 880 services (563 services are lazy, passive or on-demand)
Ctrl+C
で終了する。
エクスポートした情報をローカル PC へコピー
別 namespace にデプロイし、ユーザー情報をインポートする
ネームスペースを変更してデプロイする。
kubectl create namespace newnamespace
helm dependency update
helm upgrade --install che --namespace newnamespace --set global.cheWorkspacesNamespace="newnamespace" --set global.ingressDomain=${DOMAIN}.nip.io --set global.multiuser=true ./
pod の確認。
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl get pods -n newnamespace
NAME READY STATUS RESTARTS AGE
che-7b97c6cb46-f6zq7 1/1 Running 0 106s
che-dashboard-649cb64655-pc2sz 1/1 Running 0 106s
devfile-registry-7f5f8fdf4d-9qb4j 1/1 Running 0 106s
keycloak-74d657c877-dgnnc 1/1 Running 0 106s
plugin-registry-558796b4bd-z85zq 1/1 Running 0 106s
postgres-55d7974489-dw94p 1/1 Running 0 106s
ユーザー情報インポート
エクスポートした情報を Kuberenetes の Keycloak コンテナへコピーし、ログインする。
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl get pods -n newnamespace
NAME READY STATUS RESTARTS AGE
che-7cb46784f7-hmz6v 1/1 Running 0 40m
che-dashboard-649cb64655-rvdpz 1/1 Running 0 40m
devfile-registry-7f5f8fdf4d-rpx8j 1/1 Running 0 40m
keycloak-74d657c877-b66gt 1/1 Running 0 40m
plugin-registry-558796b4bd-6k9nw 1/1 Running 0 40m
postgres-55d7974489-r268l 1/1 Running 0 40m
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl cp -n newnamespace ./keycloak-export keycloak-74d657c877-b66gt:./
PS C:\Users\mikoto\project\tmp\che_tmp\che\deploy\kubernetes\helm\che> kubectl exec -it -n newnamespace -it keycloak-74d657c877-b66gt -- /bin/bash
ユーザー情報インポート。
/opt/jboss/keycloak/bin/standalone.sh -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=dir -Dkeycloak.migration.dir=/opt/jboss/keycloak-export -Dkeycloak.migration.usersExportStrategy=DIFFERENT_FILES -Dkeycloak.migration.usersPerFile=100 -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777 -Djboss.management.https.port=7776 -Dkeycloak.migration.realmName=che
以下のような表示が出たら完了。
22:54:15,594 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: Keycloak 6.0.1 (WildFly Core 8.0.0.Final) started in 13818ms - Started 617 of 880 services (563 services are lazy, passive or on-demand)
Ctrl+C
で終了する。
keycloak にアクセス
keycloak にアクセスして管理者設定を行う。
この時点で、 che の namespace で作成したユーザーが登録されているはず。
che にアクセス
ログインできることを確認する。
0 件のコメント:
コメントを投稿