こんにちは
10/5 - 11/13 で RECRUIT Job for Student 2020 ~Engineer/Data Specialist~ に参加していました。
RECRUIT Job for Student 2020 ~Engineer/Data Specialist~
今回、僕はスタディサプリENGLISHのSREチームに配属されました。
桐谷美玲さんがCMに出演しているサービスですね!
待遇とか
基本オンラインでの勤務で、僕は週3.5日出社という形でした。割と頻繁に学校の用事などで抜けたりと、かなり自由に勤務をさせてもらいました🙏
↑のページに詳しく載っていますが、
- 時給2000円
- 交通費/宿泊費
- 技術書補助(上限1万円)
- 食事代
が出ました。 めちゃんめちゃん豪華です
オンラインなので交通費/宿泊費?と思われるかもしれませんが、希望する人は色々制限付きですが数日出社日を設けることができ、その際の費用と言った感じです。
2日間現地出社マンでした pic.twitter.com/RoggMQUoMH
— さんぽし (@sanpo_shiho) October 16, 2020
スタディサプリENGLISHは新しめのオフィスですごくきれいでした。
また、記載がありませんが、技術書補助と一緒に在宅勤務補助ももらう事ができました
書籍購入補助で買ってもらった〜〜 pic.twitter.com/noFwJWd2X2
— さんぽし (@sanpo_shiho) September 14, 2020
という事で積読補助はこの二冊を
在宅!!!補助!!!!!!! pic.twitter.com/PdkhtyM99w
— さんぽし (@sanpo_shiho) September 14, 2020
在宅補助はMagic TrackPadを買ってもらいました🙏
またまた、食事代に関しては、ランチ代が毎勤務分もらえたので、近所のUberEATSを色々食べまくっていました。
やった事
Jenkins/ArgoCDのデプロイ通知の改善を行いました。
現状はArgoCDのsyncの完了の通知を出しておらず、ArgoCDのダッシュボードを見に行かないと完了しているかわからない、syncの失敗にもすぐに気がつけない、と言った問題がありました。
ArgoCD Resource Hooksと言うPreSync(syncの実行前)やPostSync(sync完了)、SyncFail(sync失敗)などのsyncに関するイベントを検知してJobを実行することができる機能を用いて、Slack通知を実現しました。 Resource Hooksの公式の例としてもSlackへの通知を送るサンプルが記載されています。
今回は自前でGoで実装を行った通知用のコンテナを実行します。
実行されるコンテナではArgoCDのApplication CRDを利用してArgoCDのリソースの状態を取得しています。現在syncされた(もしくはsyncに失敗した)リソースのrevisionを取得することや、今までのsyncの履歴なども取得することができます。そのためリソースの状態に応じたかなり自由度の高い動作をさせることが可能になります。
ArgoCD - Application Controller
今回はrevisionからGitHubAPIを通してAuthorを取得し、SlackAPIを通してAuthorに対するメンションを行うという流れで通知を行いました
つまりポイント
この記事の内容で1週間近く進捗が無でした
Kustomizeを利用しているプロジェクトでArgoCD Resource Hooksを用いて複数リソースで同一Jobを使用したいときに詰まるポイント
終わりに
今回1.5ヶ月/週3.5日と言う期間で学校と並列してかなり自由に勤務させていただきとても助かりました🙏
モダンなCI/CD環境の整っている中で多くのことを学べました。短い間でしたがお世話になりました!!
以下で部署の方の記事が出ているので気になる人はチェックしてみてください👀