GCPにもAWSにも外部IPを持たないインスタンスを作ることができます。 AWSの場合はプライベートサブネットで作成したEC2インスタンスへアクセスをさせるためには、ALBやNLBなどのロードバランサーを使うかプロキシサーバを経由して外部アクセスを許容する方法…
MemoryStore for Redisを起動するとIPアドレスが発行されます。 クラウド使ってる勢からすると障害が起きて切り替わるようなDBへのアクセスはFQDNがいいわけです。 アプリケーション側でIP切り替えるの嫌ですからね。 で、MemoryStore for RedisでFQDNが使え…
結論 調査過程(コードリーディング) 普通の場合(ArgoCDによって用意されているやつ) 独自に定義する場合(Applicationなど) 結論 ArgoCDにおけるSync-Operationのステータスの意味は以下の通りです。 種類 状態 Healthy 正常 Progressing 正常ではないが、…
ほぼほぼ独力で調べ切った後に全く同じ悩みにヒットした方の記事が出てきた。 argocdでSSOしたいときにclientSecretをSealedSecretで保持したい - うさだのブログ 問題 ArgoCDは自分自身でSecret(argo-secret)を作成します。 それとは別にSSOの設定などをExt…
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…
ちがいます。 インフラエンジニアが思うミドルウェアやApacheやEnvoyなどのアプリを動かすソフトのことをさしています。 しかしGoでAPIサーバを立てるときなどに用いられるMiddlewareという言葉は、HTTPリクエストを途中で処理する層のことを指しています。 …
こんか感じで書くことで、ランダムに取得できます! ![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…
net/httpのHandler周りのコードを読んでいたらよくわからなくなったので理解のため簡単なコードを書いておきます。 HTTPserver package main import ( "fmt" "net/http" ) func main() { // HandlerFunc は与えられたパターン(/hello) をDefaultServeMuxに…
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 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 …
DIとはなにか? Dependency Injection の略(依存性の注入) プログラミングのデザインパターンの一つ DIが嬉しいこと 猿でも分かる! Dependency Injection: 依存性の注入 - Qiita で紹介されていた例がわかりやすかったです。 要点を摘むと以下の通り。 作っ…
Cloud Buildでこんな感じの構成をDockerComposeで構成しビルドやテストをしています。 この時にひたすらビルドコンテナからRedisコンテナへの接続が失敗したので、他の方がすぐに解決できるようにまとめておきます。 ローカル環境 ローカル環境では以下のよ…
Dockerコンテナはポート番号を変更すればいくらでも立てられますが同じポートで立てたいこともありますよね。ここではその方法をお伝えします。 ちなみに大きく分けて4つのやり方があるかなと思います。 macvlanを使う ipvlanを使う vagrant/virtualboxなど…
BazelやBazeliskを利用してクロスコンパイル環境を用意するケースにて、M1 Macがなかなか厄介です。多くのRuleがM1 Macに対応していないことが多いので結構な確率で処理に失敗します。 そこで対策としてx86−64のBazelを導入することで回避しようというわけで…
以下を実行してキャッシュを消す rm -f $HOME/.gcalcli_cache その後はこれをつけるといい gcalcli --nocache
gcalcliを使いたい アプリがGoogleにブロックされることがあります。 そのためにはGCP Projectを作成しClientIDの発行を行う必要がありますので、以下のコメントを参考に対応しましょう! https://github.com/insanum/gcalcli/issues/580#issuecomment-76093…
go getをするとモジュールがインストールされるが、asdfの枠組みの外でインストールされているためasdf reshim golangをしてきちんと読み込めるようにすること。
Goを使おうと思った時にこんな内容が出た時の話です。 Error: Error: Cannot find "go" binary. Update PATH or GOROOT appropriately asdf 問題としてはasdfで作成したShimへのパスがVScode側で読み取られていないことが問題です。解決策は以下に記載の通り…
チーム開発などをしているとさまざまなツールを使うことがあると思います。 それらのバージョンをきちんと合わせていないとうまく環境が構築できず四苦八苦する経験が皆さんあるんじゃないでしょうか? asdfというツールを使うと以下のことができるようにな…
クラッキングの際に用いられるシェルスクリプトを使います。今回Gistに用意したのはHTTPベースでしか動作しません gistdafb2e8d021f1156fc47693873f0d4b6 動かしてみる 下準備 実行するスクリプト #!/bin/bash echo hello functionの読み込み $ function kur…
Graceful Node Shutdown とは? 通常PodとクリティカルPodの話 Critical Podに設定する方法 この記事を読んだ内容を備忘がてらまとめます。 kubernetes.io Graceful Node Shutdown とは? Graceful Shutdownとは「通常のShutdownと比べて丁寧に停止する機能…
TopologySpreadConstraints とは? NodeSelectorやNodeAffinityとの併用 Multiple TopologySpreadConstraints NodeSelector&AffinityとMultiple TopologySpreadConstraintsの違い この記事で紹介されていた「TopologySpreadConstraints」について備忘がてら…
首都圏の一戸建て炭火焼肉をしました。そのときにレビューを見たりして、これが必要だ!ってなったりこの商品がいいはずだ!となって色々購入した知見をまとめておきます。誰かの役に立てばいいかな。 購入したもの 七輪 テーブルと椅子 炭 トング、手袋 炭…
歴史 3層モデルのWebアプリケーション Ajaxの登場 jQueryの登場 HTML5の策定 フレームワークの登場 ReactとFlux RxJS axios BFF (Backends for Frontends) HTMLの生成手法 SPA SSR SSG JAM Stack ホスティングの選択肢 参考 歴史 3層モデルのWebアプリケーシ…
dev.classmethod.jp これを参考に自分でも手を動かしてやってみました。 ついこの間、Go+Gin+VueでTodoアプリを作ってみたのでチュートリアルもTodoで違いわかるなーと思いながら挑戦しました。その結果わかったことは「Amplifyえげつない」ということです…
Seleniumの使い道 めんどくさいなと思ったところ 作ったもの 現場で使うときについて まとめ Seleniumというブラウザに対する自動操作を行うソフトウェアをそろそろ触るかーと思い挑戦しました。 まだ触りしか知らないですがやっていることはスクレイピング…
はじめに 今回紹介する記事 この記事の概略 AaCの便利な点 AaCが使いづらい領域 AaCをもっと使いやすくなる未来を想定する はじめに 世の中にはすごいエンジニアや、よりよい物を作ろうと工夫しているエンジニアがたくさんいます。しかもその工夫や苦労をネ…
今回紹介する技術/仕組み できること / 解決すること 背景 できること 動作イメージ 価格について メリデメ メリット デメリット/できないこと/注意点 参考リンクなど 今回紹介する技術/仕組み aws.amazon.com なんか便利そうなのでたな、どれぐらい早くなる…
構造体の中に含まれる一部の要素を使って構造体のスライスを任意の順番にソートする方法です。 イメージとしては以下のような構造体がスライスに格納されているとします。 type user struct { name: string bloodType: string } Users = []user { {"tanaka",…