フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

GKE IngressでCustom Headerを少し触ってみる

GKEのIngress=外部HTTP(S)ロードバランサを触ってカスタムヘッダの追加や上書きの挙動を確認してみます。 使用したのは以下のmanifestです。 apiVersion: v1 kind: Service metadata: name: web annotations: cloud.google.com/neg: '{"ingress": true}' cl…

シェルで紙芝居っぽくちょっとづつ文字を表示する

これを実現したい! Gatekeeperのハンズオンをやっていたらシェルでデモが行われていて裏側が気になったので追っかけてみました。するとdemo-magicというスクリプトが使われていたので紹介です。 GitHub - paxtonhare/demo-magic: A handy shell script that…

middlewareってなに?インフラが思うミドルウェアとはちがうの?

ちがいます。 インフラエンジニアが思うミドルウェアやApacheやEnvoyなどのアプリを動かすソフトのことをさしています。 しかしGoでAPIサーバを立てるときなどに用いられるMiddlewareという言葉は、HTTPリクエストを途中で処理する層のことを指しています。 …

Alfredで動的なLGTM画像を引っ張ってくる

こんか感じで書くことで、ランダムに取得できます! ![LGTM](https://image.lgtmoon.dev/{random:120000..130000}) ![LGTM](https://image.lgtmoon.dev/{random:120000..130000}) ![LGTM](https://image.lgtmoon.dev/{random:120000..130000}) ![LGTM](https…

Type funcを使ってみて動作イメージを掴む

net/httpのHandler周りのコードを読んでいたらよくわからなくなったので理解のため簡単なコードを書いておきます。 HTTPserver package main import ( "fmt" "net/http" ) func main() { // HandlerFunc は与えられたパターン(/hello) をDefaultServeMuxに…

備忘:GKE CSIでPVCを作成するときに発生したエラー

Warning ProvisioningFailed 1s (x2 over 3s) pd.csi.storage.gke.io_gke-5e27e4c13f914c63a047-5131-44b0-vm_d6569e4a-5b72-46f5-9b98-2b1a87a061a3 failed to provision volume with StorageClass "regionalpd-storageclass": rpc error: code = Internal …

kubectl apply / diff をxargsを使って高速で終わらせる

kubectl diff -f . ↓ ls . | xargs -t -P$(ls | wc -l) -I {} kubectl diff -f {} or ls . | xargs -t -P$(ls | wc -l) -I {} sh -c 'kubectl diff -f {} | tee -a /tmp/diff/{}.diff' kubectl apply -f . ↓ ls . | xargs -t -P$(ls | wc -l) -I {} kubectl …

GoでDIを理解してみる(コードあり)

DIとはなにか? Dependency Injection の略(依存性の注入) プログラミングのデザインパターンの一つ DIが嬉しいこと 猿でも分かる! Dependency Injection: 依存性の注入 - Qiita で紹介されていた例がわかりやすかったです。 要点を摘むと以下の通り。 作っ…

Cloud Buildでローカルホストにアサインしたポートに接続できない問題

Cloud Buildでこんな感じの構成をDockerComposeで構成しビルドやテストをしています。 この時にひたすらビルドコンテナからRedisコンテナへの接続が失敗したので、他の方がすぐに解決できるようにまとめておきます。 ローカル環境 ローカル環境では以下のよ…

【Docker】ローカルPCで同じポート番号をもったコンテナを複数立ち上げる

Dockerコンテナはポート番号を変更すればいくらでも立てられますが同じポートで立てたいこともありますよね。ここではその方法をお伝えします。 ちなみに大きく分けて4つのやり方があるかなと思います。 macvlanを使う ipvlanを使う vagrant/virtualboxなど…

ARMでIntel(x86-64)のBazelやBazeliskを使用する

BazelやBazeliskを利用してクロスコンパイル環境を用意するケースにて、M1 Macがなかなか厄介です。多くのRuleがM1 Macに対応していないことが多いので結構な確率で処理に失敗します。 そこで対策としてx86−64のBazelを導入することで回避しようというわけで…

gcalcliで共有カレンダーが読み取れない時にやること

以下を実行してキャッシュを消す rm -f $HOME/.gcalcli_cache その後はこれをつけるといい gcalcli --nocache