Istio Proxy が使用している Envoy のバージョンを確認する

公式サイトだと実際に動いている istio-proxy を使用して確認をする。 $ kubectl \ exec \ -it productpage-v1-6b746f74dc-9stvs \ -c istio-proxy \ -n default \ -- pilot-agent request GET server_info --log_as_json \ | jq {version} { "version": "2d…

Istio で main thread と worker thread で Wasm module を動かす

hatappi.blog 前回の記事では最近作成した Wasm module を Envoy 上で動かす部分を解説しました。この記事ではそれを Istio 上で動かす部分を解説します。 Istio の Wasm 周りの歴史 実際の設定に入っていく前に Istio と Wasm の歴史を軽くおさらいしたいと…

Prxoy-Wasm で Envoy を拡張して AWS CloudWatch にメトリクスを送る

最近 Envoy の拡張手段の1つである Wasm filter に興味をもったので Proxy-Wasm の spec 読んだり、関連ドキュメントを読んでました。ただ折角やるなら学ぶだけでなく学んだことの確認もかねて何か作りたいなと思って1つ Wasm module を作成したので、この…

Proxy-Wasm を学ぶために見たアレコレ

最近 Proxy-Wasm が気になったのでドキュメント見たり動画を見たりしてキャッチアップした。この記事はそのメモ。 WebAssembly (Wasm) Wasm はなんとなく知っている程度だったので Proxy-Wasm を学ぶ前に Wasm とは何か?何を解決するためのものかを学んだ。…

Roppongi.rb を支える技術 ~Github Actions 編 その1~

背景 自分は数年前から Roppongi.rb のオーガナイザーをやってます。最近は他のオーガナイザーの方と一緒にイベントの方針を変えてオープンスペーステクノロジー(OST)というワークショップの手法の1つを採用してイベントを毎月1回開催しています。流れと…

Argo CD Image Updater を使用したコンテナイメージの自動更新

背景 プライベートでは web サービスや定期実行されるバッチ、Slack bot や LINE bot などを開発しています。これらはすべて Kubernetes 上で動いておりリリースには Argo CD を使用しています。 アプリケーションは基本別々のリポジトリで管理しており Argo…

kOps + Amazon VPC CNI で IP prefixes を使って多くのコンテナを EC2 インスタンスにたてる

2021年7月までは Kubernetes で AWS VPC CNI を使い EC2 を Node として使用していた場合の Pod の最大数は Elastic Network Interface (ENI) の数と各 ENI の IP Address の数に依存していた。 計算式は下記に記載されていて max Pods = ENI * (IPv4 per EN…

チェアコンシェルジュのススメ

自分は普段作業をする時は以前下記のブログでも書いた昇降台を使っている。 blog.hatappi.me 座って作業しつつ会議があったり気分転換したい時は立って作業ができるので昇降台は本当に買って良かったと思っている。 ただ座ってる時に使っている椅子はどこか…

Github Actions で OIDC を使ったクレデンシャルを取得する機能の Dependabot の挙動確認

先日 Github から OIDC を使用して AWS や GCP などの Cloud Provider からクレデンシャルを取得する方法に関する発表がありました。 github.blog これを使うことで今までのように Github Secrets に各 Cloud Provider のクレデンシャルを設定する必要がなく…

iTerm2 + tmux でトラックパッドを使ってスクロールする

タイトルの通りで iTerm2 + tmux を使っている時にtmuxのプレフィックスの ctrl + b から [ を押した時にスクロールモードになるのだけど、ここでトラックパッドでスクロールをすると、画面ごと?スクロールされて意図した通りに動かない。 調べると .tmux.c…

kOps v1.21.0 を使い Amazon EKS Pod Identity webhook をやめて IRSA を実現する

kOps の v1.21.0 が今月の頭にリリースされて、その中の1つに "Service Account Issuer Discovery and AWS IAM Roles for Service Accounts (IRSA)" という変更が入りました。 この変更を使うことで kOps は OIDC ディスカバリ ドキュメント を S3 に公開し…

Mac のキー入力が遅かった原因は Mac 標準の入力ソースだった

在宅勤務が続く中で仕事用の Mac と 個人用の Mac を切り替えて使っているときに体感で感じるほどに個人用の Mac のキー入力に対するディスプレイへの反応が遅いことに気がついた。 分かりやすい例だと長ーい文章を開いて↓矢印キーを押し続けたときに、画面…

FlexiSpot で脚を買って天板は自作した

タイトルの通り最近 FlexiSpot で脚を買って天板を自作しました。 このブログではなぜ買うことにしたのか、なぜ天板を自作したのか、どうやって自作したのかの過程を書いていきます。 なぜステンディングデスクを買うことにしたのか もともと自宅の開発環境…

IstioのEnvoyFilterでgzip圧縮をしていく

今回はIstioのEnvoyFilterでのgzip圧縮をしたのでそれを書いていきます。 gzip圧縮自体は Envoy が提供しているのでこれを使用するだけなのですが、EnvoyFilter を初めて使ったのでそれのメモがてらの記事でもあります。 https://www.envoyproxy.io/docs/env…

リリースノート作るのは Release Drafter で良さそう

自分の中でやりたいけどやらないことの1つにリリースノート作りがある。 手動で作るのは面倒なので、自動で作成したい。 後は個人で作っている Rails アプリケーションや Go で作った CLI などがあるので、言語とかアプリケーションに依存しない方法で探して…

Rails の Controller の params ってどうやって生成されているの?

Rails を使っている時 Controller で params を呼び出すと GET リクエストだったらクエリパラメータは取得できるし POST であれば Content-Type が multipart/form-data や application/json とかに関係なく値を取得できるようになっている。 便利!!! Rails …

Argo CD と Argo Workflows で SSO + RBAC

blog.hatappi.me 上記の記事で紹介したように最近プライベートKubernetesの構成を変更したことで複数のドメインを設定できるようになった(金銭面)ので、今まで Port Forward でアクセスしていた Argo Workflows を ALB にぶら下げて https 経由でアクセス…

ALB Ingress Controller から Istio Ingress Gateway + AWS Load Balancer Controller に変更する

ALB Ingress Controller から Istio Ingress Gateway + AWS Load Balancer Controller に変更しました

BAROCCO MD770 RGB BT を買いました。

blog.hatappi.me 前回キーボード買ったのが2018年12月21日なので、約2年いかないくらいのタイミングでキーボードを買い換えました。 キッカケとして何かのタイミングで前のキーボードを作ってるMistel社が新しいキーボードを今年出したのを知ったからです。 …

Gomodoroの記録をPixelaでつける

最近 Github の Profile を作ったけど、置くものも特になくてとりあえず Most Used Language だけ置いていた。 github.com しかしさすがに寂しいなと思ったので、何かを追加することにした。 そこで思いついたのが仕事やプライベートで作業する時にポモドー…

goplsをdaemon化して使う

普段コードは vim + vim-lsp で書いていて Go を書く時は language server として gopls を使っている。 engineering.mercari.com このイベントに参加した時に gopls が daemon で起動できるのを知って、今回 Mac で daemon 化して使用することにした。 公式…

GitHub Actions で失敗した時も step を実行する

今日ふと下記のようなことを思った。 Github Actionsでワークフロー失敗したらslack通知みたいなのどうやると良いかなと思ってたけどworkflow_runというイベント使って別のワークフロー作ってあげる感じかな?— はたっぴ (@hatappi) 2020年9月21日 たしかに …

Argo CD で 個人の Github アカウントでログインして権限管理をする

最近 Argo CD を使いはじめた。 argoproj.github.io ログインはID, Passwordによる方法も提供されていますが、SSO によるログインも可能になっています。 Github や Google アカウントを使う場合は Argo CD では build-in されている dexidp/dex というライ…

GCP のプロジェクトを Terraform で作成する

題名の通りで今回は GCP のプロジェクトを Terraform で作成します。 Google Provider には google_project があるので、これを使うだけなのですが、ちょっとハマったのでそのメモの記事です。 www.terraform.io まずは Terraform で GCP 上のリソースを扱う…

Kubernetes で Spinnaker を使う ~インストール編~

blog.hatappi.me 前回の記事でクラスタのPodがたくさん作れるようになったので今回は気になっていた Spinnaker をインストールして使ってみることにしました。 動機としては会社で Spinnaker を使っているのが理由です。 会社だとメンテナンスされた Spinnak…

kopsでNetworkをamazon-vpc-cniからCalicoに切り替えた

プライベートで使用している Kubernetes のクラスタは今まで amazon-vpc-cni-k8s を使用していました。 amazon-vpc-cni-k8s は EKS で公式でサポートされています。 基本的にはこれを使うで良いのですが、個人的に辛い欠点がありました。 それは Node あたり…

Goで開発してる時のデバッグ

blog.golang.org 4月20日に出たこの Go Developer Survey 2019 Results 眺めていて、 I depend upon the following techniques when developing in Go が気になった。 これは Go で開発する時にどういう手法に頼ってるかみたいな内容で、一番は fmt.Print() …

kops で構築した k8s クラスターの apiserver を ACM で https にしてアクセスする

ある日 kops で構築した k8s の apiserver にブラウザからアクセスした時にオレオレ証明書使った時とかにでるようなプライバシーエラーになっていて、これを解消するために試行錯誤した話。 今回は kops の 1.18.0-alpha.3 を使っています。 cluster_spec に…

Goでlive reloadingツール作った

GW もうすぐ終わりですね。 今回はコロナの影響で家でゆっくりでした。 今回はタイトルにあるように live reloading するツールを Go で作成しました。 コードを変更したらアプリケーション全体が実行され直すやつです。 github.com 特徴 特徴としては設定フ…

Goで良い感じにencrypt, decryptしたい

Go で暗号化、複合化を良い感じにやりたい。 良い感じとはプロダクションはAWS KMSを使用しつつローカルはKMSに依存しないものを使いたい。という感じ。 自分で作っても良いかなと思ったけど既存でないかと探したらThe Go Cloud Development Kitというものを…