お久しぶりです。レッドハットでクラウドインフラを生業にしている宇都宮です。
さてこれは OpenShift Advent Calendar 2022 の5日目の記事なのですが、名だたる超人達がディープな記事を書いているので、それはそちらにおまかせして、僕は相当どうでもいいネタをダラダラと書きます。
OpenShift は何でもつ?
伊勢は津でもつ 津は伊勢でもつ 尾張名古屋は城でもつ
超有名な言い回しがありますが、これを見て私はこう思う。それでは、OpenShift は何でもつ?
OpenShift は Kubernetes でもつ。
うん、そうだ。間違いない。が、そういうことじゃない。あと語呂が悪い。
OpenShift は Operator でもつ。
おお、これはかなり核心を突いている。これでいいじゃないかと思えるくらいだ。でもやっぱり語呂が悪い。
生来のへそ曲がりなうつぼは変化球を投げたい。色々考えた結果、あえて私はこう叫びたい。
OpenShift は GUI でもつ
OpenShift の GUI のよさ
OpenShift の GUI は OpenShift Web Console と呼ばれるものですが、これが素晴らしい。
まず、日本語表示が選べる。この手のソフトウェアで日本語 GUI があるのは相当レアです。たぶんレアだと思う。レアなんじゃないかな。まちょっと覚悟はしておけ?
しかも中国語や韓国語も選べて、英語も入れると4ヵ国語も話せる。珍しいと思ってハングルも読めないのに韓国語に変えてしまう、そして言語設定の画面に戻れなくて焦る、という経験は皆さんも頷かれると思います。
そして管理者画面と開発者画面があることは、OpenShift な諸兄姉はご存知でしょう。
管理者画面では、ユーザの権限によって表示されるメニューがダイナミックに変わるのは当たり前。Deployment
などのリソースを YAML だけでなくウィザード的な画面を使って作ることもできます。
開発者画面では、アプリソースコードからコンテナイメージをビルドし、それをデプロイするまでを GUI だけで設定できます。デプロイしたアプリのトポロジーをビジュアルに表示できる機能もあります。
今紹介した素晴らしさは Web Console のメジャーな面です。しかし私はこんなメジャーなことを紹介するために記事を書く男ではない。
今日私が紹介したいのはここ。
ここって何て呼ぶんでしょうかね。ヘッダー?
正直、Web Consoleでも頻繁に触らない部分と言えます。しかしここには面白い秘密が隠されているので、今日はそれを順番に簡単に紹介していきます。
OpenShift Web Console の上のメニュー
ハンバーガーボタン(三本線のやつ)
はい、まずは左端の三本線のアイコンです。ハンバーガーボタンとかハンバーガーアイコンとか呼ぶそうなので、こう呼ぶとそこはかとなくプロっぽい感じが出せます。
これは単純に、左側のメニューを出したり隠したりするだけのボタンです。
モニター全画面で表示するときは別に隠さなくてもいいんだけど、モニター左半分にGUI、右半分にターミナルとか両方開いておきたい場合に使ったりします。
ここはこれ以上言うこともないので次へ。
ロゴ
次にロゴです。ここには "Red Hat OpenShift" とか "Red Hat OpenShift Service on AWS" とか、プラットフォームごとに違うロゴが表示されてます。
実はこのロゴ、好きなものにカスタマイズできるんですよ。知ってました?
ちょっとやってみましょうか。例えば、冒頭のいらすとやさんの画像に変えてみましょう。
まずは変更先の画像を ConfigMap
として up します。GUI の紹介の記事で CLI でやるのは悔しい気持ちもあるんですが、CLI でやるほうが話早いので、CLI でやります(おい)
$ ll total 376 -rwxr-xr-x. 1 lab-user users 381226 Dec 1 08:56 text_animals_ogenki.png $ oc create configmap console-custom-logo --from-file ./text_animals_ogenki.png -n openshift-config configmap/console-custom-logo created
あとはデフォルトで作られてる consoles.operator.openshift.io
カスタムリソースを変更していきます。ここは GUI でも構いません。
管理者画面で、
管理 (Administration) > クラスター設定 (Cluster Settings) > 設定 (Configuration) > Console; operator.openshift.io
と行って、YAML で次のように spec.customization.
以下を追記してセーブ。
customProductName
の部分は自由で、ブラウザのタブの部分に表示されます。
spec: customization: customLogoFile: key: text_animals_ogenki.png name: console-custom-logo customProductName: OGENKI Logo
oc edit
コマンドや oc patch
コマンドを使ってももちろんOK。
後は openshift-console Operator が自動的に Pod を作り直すので2,3分待って画面をリロードすると、
とこんな感じになります。
誰得だよこれ?と思うかもですが、例えば外販事業として Kubernetes as a Service 的なサービスを提供したいユーザーさんが、Web Console は使いたいけど自前のロゴを表示したい、という場合に便利ですね。
ちなみにここの画像の大きさは高さ 60px が最大です。それより大きな画像は、アスペクト比固定で高さ 60px に縮小されます。
ベントーメニュー(ルービックキューブみたいなやつ)
次に9個のドットが並んだルービックキューブみたいなアイコンです。お弁当みたいだからベントーメニューとか呼ばれるらしい、1800円くらいするちょっとええ弁当やね。
ここにはいろんなリンクが表示されます。
OpenShift Container Platform だとデフォルトで OpenShift Cluster Manager での当該クラスタのページと、Red Hat Hybrid Cloud Console のリンクが表示されてます。
OpenShift でインストールする Operator によっては、別の GUI のページが用意されるものがあります。
そういう GUI のページへのリンクが、Operator インストールと同時に自動的にここに追加されることもあります。
例えば、OpenShift GitOps Operator をインストールすると、Argo CD の GUI へのリンクが追加されます。
このリンクのエントリーは、ConsoleLink
というカスタムリソースで管理されてます。ゆえに、このカスタムリソースを作ってやれば、自由にリンクを追加することができます。
試しにこの赤帽エンジニアブログのリンクを追加してみましょう。 管理者画面で、
管理 (Administration) > カスタムリソース定義 (CustomResourceDefinitions) > ConsoleLink > インスタンス(Instance) > コンソールのリンクの作成(Create ConsoleLink)
と行って、次のようにYAMLを書いて作成ボタンを押す。
apiVersion: console.openshift.io/v1 kind: ConsoleLink metadata: name: rheb spec: applicationMenu: imageURL: https://cdn.profile-image.st-hatena.com/users/rheb/profile.gif?1538617339 section: 参考になるサイト達 href: 'https://rheb.hatenablog.com/' location: ApplicationMenu text: 赤帽エンジニアブログ
そうすると、次のようにリンクが追加されます。
localtion
の部分に "ApplicationMenu" を選ぶとこのベントーメニューに追加されますが、他にも "HelpMenu" や "UserMenu" など、別のところにリンクを表示されることもできます。
通知
お次はベルのアイコンです。ここには OpenShift Monitoring のアラートルールに引っ掛かって Firing 状態のアラートが表示されます。
これは OpenShift Monitoring の View 権限があるユーザーにのみ表示されます。
アラートの Severity に合わせて、"重大なアラート(Critical Alerts)"、"他のアラート(Other Alerts)"、"推奨事項(Recommendations)" と分けて表示されます。
ベルの横には、"重大なアラート(Critical Alerts)" と "他のアラート(Other Alerts)" の合計数が表示されます。
ネジ頭みたいなやつ
ネジ頭みたいなプラスのアイコン、これが私の超多用する便利機能です。この記事はここだけ覚えてもらえば8000点。
これを押すと、YAMLを直に書いてリソースを作れる画面に行きます。
よくありますよね、githubとかで見つけたYAMLをパクりたい時。
そういう時、CLI で curl
とか wget
とかでファイルダウンロードしてませんか?
もしくはブラウザでコピーしてvimとかemacsとかにペーストとかしていませんか?ヒアドキュメントでやってませんか?
今日からは、ブラウザでYAMLをコピーしたら、そのまま Web Console にペースト!よしなに編集したらボタン押して以上終わり!
いやもちろんね、CLI でやるのが悪いとは言いませんよ。マニフェストはファイルとして保管しないといけないルールとかもあるでしょうし、そういう場合は話は別です。
ただ、単純にYAMLをコピーしてそのまま oc create/apply
したいケースって割とあると思うんです。その場合は、このネジ頭を使ってやると話が早いです。
ヘルプ
次はハテナマークで、シンプルにこれはヘルプです。OpenShift のドキュメントやサポートケースなどへのリンクが表示されています。
CLIツールのダウンロード先にもここから行けます。oc
だけでなく helm
とか odo
とかもダウンロードできるので、開発者の人が自身の端末にこれらの CLI をインストールしたいときに便利です。
ちなみに、前述の ConsoleLink
で location
に "HelpMenu" を指定すると、ここにリンクが作られます。
ユーザー
最後はユーザーメニューです。ここは結構触ったことがある諸兄姉も多いのではないでしょうか。
"ログインコマンドのコピー"と書いているけど、実質的には API トークンの発行ですね。
発行されたトークンを含めて、CLI で oc login
する時のワンライナーや、直接 curl
で叩くコマンドが表示されます。
"ユーザー設定"は、言語とか表示系のいろんな設定ができます。
まとめ
さて、ためになるようなならないような話をダラダラしてきましたが、OpenShift の GUI のマイナーな部分について紹介しました。
クラウドネイティブ界隈では、CLI をバリバリ叩けるのが必要不可欠~みたいに思われる人もいらっしゃるかもしれません。 どうしても GUI は操作履歴を残すのが CLI より大変なので、CLI 指向になるのは仕方ないところかなと思います。
ですが、OpenShift は GUI が結構イケます。GUI のいいところは、間違えないところと結果的に早いところかなと思います。
例えば、私も常々お世話になっている OperatorHub。CLI で OperatorGroup
や Subscription
といったカスタムリソースを作って Operator をインストールするのも悪くないですが、GUI が使えるならそのほうがまず syntax を間違えないし、その結果早いです。
OpenShift Data Foundation のように、結構多くのカスタムリソースを作るソフトウェアでも、GUI でウィザードがあると誰でも簡単に間違いなく構成できるようになります。
そういうわけで、みんなもっと OpenShift の GUI を使いましょう。
伊勢は津でもつ 津は伊勢でもつ OpenShift は GUI でもつ
うーん、語呂がいい。
ということで今日はここまで。