839の日記

業務とは関係ない趣味の話を書くブログです。

GitHub Actionsライブラリのリリースを自動化する

action-slackというGitHub ActionsでSlack通知を行えるライブラリのリリースを自動化した。 package.jsonのバージョンを更新し、npm i を行ってmasterにpushすると変更されたバージョンでリリース作成まで行う。 流れとしては以下のような形。 各ブランチにp…

NewSQLのTiDBをローカルに立ててみる

34. NewSQLとは w/ tzkb | fukabori.fm を聞いてNewSQLをローカルで試してみたいなと思って調べてみた。 紹介されてたのはSpanner以外で3つほどあったけど、よく触る機会があるMySQLに互換があるTiDBを選択。 最初に Quick Start Guide for the TiDB Databas…

じぶん ReleaseNote v1.3

2020年、4月版です。 action-slack v3をリリース v2と比べて柔軟に設定を行えるようにした ドキュメントの配信をnetlifyで行うようにした ミドルウェアの更新 go/ruby/gem/node/npm/k8sなどなど... 使ってるGitHub Actionsのバージョンも全体的に最新に更新 …

isucon9予選の本番環境を模してAWSで素振りをした

今年はコロナの影響かisuconの案内は出ていないが、isuconっぽいことがしたい気分だったので素振りをしていた。 最初はローカル環境で構築していたが、どうせなら本番環境と同じ条件で素振りしたいよなーと思い始めてAWS環境に同等の環境を準備することにし…

じぶん ReleaseNote v1.2

2020年、3月版です。 最近全体的に家での作業がやる気ダウンしていて3月はサボりまくりでした…。 なので今月は全然作業していません。 bundle update x2 deprecatedなページの整理 関連サービスの不具合調査 ぐらいです(JIRA5課題...)。 2月末に始めたv3作業…

じぶん ReleaseNote v1.1

2020年、2月版です。 タスク管理をJIRAに移してJIRAしか見てなかったのですが、ややGitHub issueのタスクもあったので1月版と合わせてお送りします。 action-slack github.com GitHub Actionsでslack通知を行うためのプラグインです。 βの頃にとりあえずで作…

replicas: 1のStatefulSetのPersistent Volumeサイズを変更する

まず前提としてPVはリサイズが可能です。 refs: Resizing Persistent Volumes using Kubernetes - Kubernetes 1.11以降のクラスタで利用可能な機能で、事前にstorageclassの定義で allowVolumeExpansion: true を付ける必要があります。 自分が検証した際は…

firestoreのページネーションプラクティス

以下のようなシンプルなデータセットに対してのページネーションを考える。 DocumentID likeCount 0 20 1 10 2 30 3 20 4 10 5 20 6 10 これを2件ずつlikeCountで降順ソートしたページネーションを実現したい場合は以下のような形になる。 Page DocumentID(l…

firebase hostingのSSL証明書の更新が遅れていた

firebase hostingで静的配信しているコンテンツに対してユーザから証明書のエラーが起きたという報告がありました。 この記事は同じ問題を踏んでいる人がいるかもしれないのでメモがてら書いています。 最初に結論を述べておくとGoogleの不具合だったようで…

じぶん ReleaseNote v1.0

2020年、1月版です。 年を跨いだのでメジャーバージョンが上がりました。 来年も引き続き更新できればメジャーバージョンが上がります。 Tech寄り firebaseの静的サイトの自動デプロイ masterにマージされたら自動でデプロイするようにした bundler2系への更…

Ruby 2.7.0に上げてFrozenErrorを踏んだ

最初に結論ですが自分のミスなので言語やライブラリの問題ではないです。 自分のサービスを全部2.6.5から2.7.0にあげていったときにFrozenErrorを踏んでしまったのですが、 該当箇所のコードは以下のようなものでした。 endpoint = 'https://hoge.com/api/v1…

趣味のGKEクラスタを安価に運用する

元々VPSサーバ2台で運用していたものをGKEに移した際に色々やったことをざっくりと書く。 GKEノード構成 GCPのマネージドLB、RDSなどを使わない preemptive VMが落ちたときに503が返る問題 podの冗長化 preemptive VMのプリエンプト通知hook まとめ おまけ d…

じぶん ReleaseNote v0.2

839.hateblo.jp 11月と比べると全体のトピックは少なく、やってることが重たかったなぁという印象。 Tech寄り O'Reilly Japan - Go言語でつくるインタプリタ を読んだ 軽く一通り読んだ程度なので復習したい… CKADを取得した Certified Kubernetes Applicati…

macOSのpostgresqlを更新する

メジャーバージョンアップがあるたびに調べているので次から自分のブログ内で検索を完結できるように書いておく。 今回はbrewで入れたpostgres11から12に更新する作業を行った。 TLDR brew postgresql-upgrade-database を叩くと移行が完了する。 ただし古い…

2019年振り返り

今年の目標はアウトプットを増やすこととして4月にブログを開設し、今24記事なので1ヶ月3記事ぐらいのアウトプットだった。 言語的には去年と比べて圧倒的にGoを書いた。 もともとはRuby/TSあたりをよく触っていてVSCodeのvimキーバインドで書いていたけど、…

Certified Kubernetes Application Developer(CKAD)を取得した(19/12 v1.16)

CyberMondayで安くなっていたのでCKADを取得した。 Certified Kubernetes Application Developer 6月に Certified Kubernetes Administrator(CKA)を取得した(19/06 v1.14) - 839の日記 でCKAを取得したのだが、勉強方法はほぼ同じで GitHub - dgkanatsios/CK…

nginxのログをjsonでStackdriver Loggingに送る

Stackdriver Loggingは構造化ロギングをサポートしており、jsonPayloadの特定フィールドに構造を追加できる。 refs: https://cloud.google.com/logging/docs/structured-logging?hl=ja GKEからStackdriver Loggingに送る場合、ロギングを有効化しているとDae…

JIRA CloudとGitHubを連携する

Jira の価格 - 1 ユーザーあたりの月間および年間サブスクリプション料金 | Atlassian JIRA Cloudがちょっと前に無料で使えるようになりました。 無料になったときからすぐに試していたのですが、そのときにはGitHubのcommit/PRなどがJIRAの課題と紐付かず移…

EKS on FargateでALBからアプリにアクセスする

金額的に自分の趣味でEKSやFargateを使うことはないのですが、興味があったので少し触ってみました。 現時点ではドキュメントが揃っておらず、試行錯誤が必要だったので記事に残しておきます。 ...と思ったのですが、AWS Advent Calendarが代わりに投稿でき…

GCP Projectを消しちゃった話

ops

この記事は「本番環境でやらかしちゃった人 Advent Calendar 2019」の7日目です。 qiita.com 個人の趣味でやっていたやらかしなので、あまり大した内容ではありませんがご容赦ください。。 背景 趣味で運用していたVPSのサーバをGKEに移そうとしていました。…

k8sのingressでクライアント認証を行う

クライアント証明書をiPhoneに入れる - 839の日記 の続きです。 k8s側にセットするのも書いておきます。 とは言ってもingressにクライアント証明書をセットするのは非常に簡単です。 まず先の記事で作成したkey/certを使ってk8sのsecretを作成します。 kubec…

クライアント証明書をiPhoneに入れる

背景 自分しか使わないけどhttp経由で家以外でも見たい、というケースがたまにありクライアント認証を挟むようにしています。 そしてiPhoneにクライアント証明書を入れたくなり、毎回忘れて調べているので記事としてまとめます。 作業はmacOS前提です。 方法…

じぶん ReleaseNote v0.1

ふと月1ぐらいでその月何をやってたのかまとめてみようかな、と思いたったのでまとめます。 基本的にGitHubのprivate repoで行ってた作業のまとめになると思います。 ActiveRecordのissueを立てた Test fixtures don't raise ReadonlyError when using repli…

Windows10でMicrosoftアカウントに切り替えるための対応

経緯 microsoft storeでwindows terminalを入れようとしたところ、microsoftアカウントが連携されてないよ、的なメッセージが出た。 連携してるはずだけどなー、と思いつつ一旦リンクを切って、再度切り替えようとしたら「このデバイスの他のユーザーがこの …

GitHub Contributionsを通知してモチベを監視する

最近継続して開発ができているので監視するようにした。 連続Contributionsを絶やさないようにするのが主な目的。 slackに通知するCronJobをk8s上に置いておいた。 そのCronJobがやることは以下のようなことを行う。 20時と23時の2回に分けてslackにその日の…

Heroic Verse対応で行ったこと

ops

来年の自分に込めてメモをとっています。 ロジックの修正 SP☆12参考表 iidxme/クリアランプマネージャの同期を切りました。 主にleggendaria周りの表記ゆれの対応が各サイトに異なってくると思ったので、その対応コストを減らすためです。 表記ゆれは既に公…

Railsでk8sのRollingUpdate時のassets解決問題を考える

Railsで assets:precompile したときに吐き出されるapplication.js/application.cssなどの解決方法についての検討です。 webpackerで吐き出されるファイルたちも範疇に入っています。 前提として、 assets:precomile をするとdigestが付与されたファイルたち…

GitHub Actionsでcontainerの挙動を調査した

ops

備忘録としてまとめる。 TL;DR container.image に指定するimageに現状alpineベースは使えないのでslimベースを使う services側に指定するimageはalpineベースのimageも利用可能 container.imageに指定された場合はHOMEが /github/home に置換されるのでそれ…

GitHub Actions(beta)向けにslack通知プラグインを作った

ops

github.com 839.hateblo.jp でcircleciからgithub actionsに移行したもののslack通知周りが整ってないので作った。 自分が観測している範囲だと現状 https://github.com/pullreminders/slack-action しかなかったけど、あまりにもpayloadを書くのがきつそう…

circleciのbuild/test/deployをgithub actions(beta)に移行した

ops

まだ機能的に足りないところもあるが、頑張ったら使える感覚だった。 githubにもfeedbackが送れる所があれば送ろうと思う。 circleciでやっていたことはざっくり書くと以下。 test系 golangのbuild/lint/test helm chartのlint helm templateで吐き出されたy…