zaki work log

作業ログやら生活ログやらなんやら

「OpenShift.Run Winter 2020 #11」でLT登壇した振り返り

「OpenShift.Run Winter 2020 #11」で「OpenShiftの認証を既存の認証基盤でおこなう」という内容で今年4回目の登壇(LT枠)しました。

openshift.connpass.com

発表資料

speakerdeck.com

配信のアーカイブも見れますのでこちらからどうぞ。
(私の出番は1:32:20頃~です)

内容

「OpenShiftのログイン(oc loginやwebログイン)で使用するユーザー管理に、GitLab(などの)外部のサービスを利用する」という話をしました。
以前ブログに書いたものを改めて紹介する、という内容でした。
LTの実施にあたってCodeReady Containersを使ってOpenShift 4.5.9で再確認しています。

zaki-hmkc.hatenablog.com

ちなみにOpenShift v3 (当時OKDとOpenShift両方で確認)でも可能です。 (が、OpenShiftリソースではなく全コントロールプレーンノード上に設定が必要なのでだいぶ面倒くさいです)

zaki-hmkc.hatenablog.com

組み合わせとして特に便利と紹介したGitLabのDockerを使ったローカル構築はこちらを参照してください。
(オフライン用の内容ではないですが、オンライン環境でコンテナイメージをpull,saveしてtar.gzをオフラインに持って行けば良いです)

zaki-hmkc.hatenablog.com

zaki-hmkc.hatenablog.com

久しぶりのLT登壇

前回のLT参加が6月末だったので、約半年弱ぶりでした。

発表に入らなかったこと

カットしたところ

主にCLI操作用のアカウント権限ということで、ServiceAccountとは別にKubernetesにはないUserというリソースがある、とう話を入れたかったのですが時間の都合で入りませんでした。

[zaki@codeready-ocp4 ~]$ oc api-resources --api-group user.openshift.io
NAME                   SHORTNAMES   APIGROUP            NAMESPACED   KIND
groups                              user.openshift.io   false        Group
identities                          user.openshift.io   false        Identity
useridentitymappings                user.openshift.io   false        UserIdentityMapping
users                               user.openshift.io   false        User

oc get userとかすれば、クラスタ上にあるユーザー一覧も確認できる。(admin系の権限が必要)

[zaki@codeready-ocp4 ~]$ oc get users
NAME        UID                                    FULL NAME   IDENTITIES
developer   2ed7d903-6c01-416b-b8c1-d56b0fac11ef               htpasswd_provider:developer
htuser      d48d3de6-5276-49d5-955c-cb07287be9bb               basicauth:htuser
user1       c58d9add-59fd-4f30-85c1-6abbeb9303ec   user1       gitlabauth:6
zaki        3dc754e9-25ad-44f8-9d91-eb32ff7b2de6   zaki        gitlabauth:2
[zaki@codeready-ocp4 ~]$

こんな感じで、Identitiesのところに「どのアイデンティティプロバイダを使って認証されたユーザーか」を確認できます。

スライドにはあるけど流したところ

スライド17ページの「注意点」は時間の都合でほぼ省略してしまいましたが、あくまでユーザー管理を外部のプロバイダで管理するという機能なので、ロールはOpenShiftクラスタ上で設定する必要があります。

たとえば自分のアカウントにcluster-adminを付与させたい場合はbindしておく必要があります。
ロール設定はクラスタ上の情報になるため、1つのアイデンティティプロバイダを複数クラスタで参照する構成にしても、ロールのバインド設定はクラスタ固有の情報になります。

また、OpenShiftクラスタから(BuildConfigを使った)GitLab上のGitアクセスやコンテナレジストリのイメージpullに必要な認証も、ネームスペースなどに別途必要です。

日程がしんどかった

前回6月の「中5日で次のLT」も大変でしたが、今回はこの1件だけなので日程決まった時は別に何も問題ないだろうーと思ってたのですが、忘れてました、、、アドベントカレンダー

アドベントカレンダーは何となく「最初の方にエントリーした方が他の人とネタ被りの心配が無い」と言う理由で早めの日程に(LTのことを忘れて)入れてしまったため、LTの前に3件(12/3, 12/4, 12/8)も書く羽目になってしまって大変でした(笑) なのでスライドは結構ギリギリまで作ってて、喋る練習をほとんどできなかったので、初LTの時みたいに「LT本番中に呼吸がヤバくなる」感じがあってだいぶ焦りました。 (だったのですが、終わった後に見てくれてた会社の人とかに「全然そんな感じはなかったよ」と言われたのでホッとしています…見てくれてありがとうございました)

todo

機能比較用に「Basic認証アイデンティティプロバイダ設定」を今回試したけど、ブログとかにはまだ何もまとめてないので備忘録がわりにまとめておきたい。
ほぼ小ネタレベルだけどw

おまけ

OpenShiftまださわったことないという方で試してみたい方はこちらをどうぞ。

zaki-hmkc.hatenablog.com