動かざることバグの如し

近づきたいよ 君の理想に

ArgoCDオレオレスタートコマンド

オレオレコマンドセット 「hogehoge」を任意のレポジトリ名に変更すること k create ns hogehoge k create secret generic my-secret --from-env-file=.env argocd app create hogehoge --repo https://github.com/thr3a/kubernetes-manifests.git \ --dest-…

ArgoCDで自動反映(auto-sync)の間隔を変更する方法

環境 Kubernetes 1.24 Argocd v2.4 ArgoCDのsync遅すぎ問題 よく記事に「ArgoCDは自動でgitをsyncしてくれるので自動で反映してくれる」みたいなこと書いてあるけどデフォルトの設定ではやってくれない。 しかもauto-syncを有効にしてもデフォルトでは「3分…

KubernetesでCronjobを手動で即時実行する

環境 Kubernetes 1.24 やりたいこと Kubernetes上に作成したCronjobが正常に動くか手動でテストしたい やり方 例えば元のCronjobがlog_rotateで、即時実行の名前をonetimeとすると kubectl create job onetime --from=cronjob/log_rotate で実行される。 実…

GitHub Actionsでgit差分がある時のみコミットする方法

環境 actions/checkout@v3 やりたいこと GitHub ActionsでCI実行後にgit差分があればコミット&pushする。 なければそのまま終了する どういうとき使うのかって言うと自動定期アップデートとか コード - name: Commit updated files run: | git config core.f…

InferGetStaticPropsTypeを使ってnextjsをよりラクラクに

環境 nextjs 12.3 InferGetStaticPropsTypeってなに getStaticPropsの返却値をもとにNextPageに渡されるPropsの型を推論してくれる機能 よくあるgetStaticPropsの例 例えばこんな感じにあったとして import type { NextPage } from 'next'; import { GetStat…

TypeScriptで配列をグルーピングするgroupBy関数

やりたいこと JSONとかのJavaScriptオブジェクトの配列があったとき、特定のキーとかでグルーピングしたい 例えば const list = [ { "name": "taro", "role": "admin" }, { "name": "jiro", "role": "staff" }, { "name": "hanako", "role": "admin" } ]; っ…

Javascriptでスネークケースをキャメルケース等に相互変換できるライブラリ「change-case」

やりたいこと 「test string」を「testString」に変換したり、「test_string」に変換したりと色々スネークケースやらキャメルケースを相互変換したい。 色々調べた結果、jsの場合はblakeembrey/change-caseのライブラリがよさげだった インストール npm inst…

Typescript PlaywrightでinnerTextを取得する

環境 Playwright 1.25 やりたいこと ページにある要素のinnerTextを取得したい コード ポイントは el: HTMLElement していること。これがないと型がanyになってしまいエラーになる。 import { chromium } from 'playwright'; (async () => { const browser =…

ReactでContext-apiを使うサンプルコード

環境 React v18 問題点 ReactにはProps機能があり、それを使うとコンポーネント間でデータのやり取りが出来る。 が孫とかまでやりとりしようとすると一気に面倒になる import type { NextPage } from 'next'; import { useState } from 'react'; const Home:…

KubernetesでSecretsをファイルから作成する方法

環境 Kubernetes 1.24 シークレットが当たり前過ぎて全然記事がなかったのでまとめ 追加方法 まずは秘匿情報が書かれたキーとバリューの組み合わせが書かれたファイルを用意する NAME=taro PASSWORD=12345 kubectl create secret generic 構文でシークレット…

Reactのpropsメモ

コレを見てくれ https://zenn.dev/ynakamura/articles/e562376735d398

TypeScriptでElement implicitly has an 'any' type because expression of type 'string'エラー

環境 TypeScript 4 問題 例えば以下のようなサンプルコードがあったとする function receivedStringValue() : string { return 'apple'; } const fruits = { apple: 'りんご', banana: 'バナナ', melon: 'メロン' }; const key: string = receivedStringValu…

Kubernetesでコントロールプレーンを増やす方法

環境 Kubernetes 1.24 やりたいこと kubeadmでKubernetesのクラスタを生成すると1台目のノードがマスターノードとなる。つまりcontrol-planeは1台構成 一般的には2台以上が推奨なのでもう1台増やしてみる 手順 まずはkubeadmコマンドでcontrol-plane証明…

マスターノード = コントロールプレーンではない

マスターノード ≠ コントロールプレーン Kubernetesのクラスタにおいてクラスタ管理のみに徹する役割をコントロールプレーンという。てっきり言葉遊びでマスターノードとコントロールプレーンは同じ意味だと思っていたが全く違った。 正確にはマスターノード…

nextjsメモ

種別 データ取得に使う主な関数 データ取得タイミング その他 SSG getStaticProps ビルド時 SSR getServerSideProps ユーザーリクエスト時(サーバーサイド時) getInitialPropsもSSR ISR getStaticProps(revalidateを返却する) ビルド時 デプロイ後もバックグ…

limaで作成した仮想VMにホスト側からアクセスしたい

環境 lima 0.11.3 やりたいこと limaを使うとアーキテクチャの壁を超えて仮想マシンを構築できるが、デフォルトではホストOS側とネットワークの共有されていないため、 Macからネットワーク経由でアクセスすることはできない。 それをいなんとかしたい 昔は…

UbuntuにPreztoをインストールしてみた

環境 Ubuntu 20.04 多分Macもいける やりたいこと 今まではzshのフレームワークでoh-my-zsh使ってたが、起動がやっぱり遅いとかあったのでPreztoに乗り換えてみたメモ github.com インストール 公式のREADMEやれば問題ない 先にzshはbrewなりaptでインストー…

MacのターミナルでCtrl+Aで行頭に瞬間移動する方法

mac

ターミナルで行頭、行末に一発で遷移したい 前のパソコンではできてたのだが、ターミナル上で Ctrl + A を同時押しすると入力行の先頭にジャンプできた。 また Ctrl + E で行末に移動できて非常に便利だったのだがPCとか環境変えたタイミングでその設定が消…

Pryのスクロール時に表示がバグる問題

pryのlsバグる問題 こんな感じになってしまう 解決方法 export PAGER=" less --raw-control-chars -F -X" 詳しい話 qiita.com

M1 lima環境でminikubeをインストールする方法

環境 M1 Macbook minikube v1.26.1 lima 0.11.3 やりたいこと 使い捨てのKubernetes環境が欲しく、ローカルにKubernetesをインストールしようとした。 本番環境ならkubeadm一択なんだろうけど、サクッと構築するだけなら1台で完結するクラスタがいいなと思…

特定の文字から始まる文字だけマッチさせる正規表現

特定の文字から始まる文字だけマッチさせる正規表現を書きたい 「$」記号の後に整数が来る。例えば ¢100 makes $1 という例文があったとして、$1を抽出したい。 この場合は肯定後読み(Positive lookbehind)正規表現機能を使う必要がある。 let str = "¢100 m…

Railsでmodelをフォルダ階層にしてきれいにする方法

環境 Rails 7 Railsのモデルディレクトリ荒れる問題 Railsはデフォルトだとapp/modelsにモデルファイルを生成する。 それはルールなので別にいいのだが、プロジェクトが成長するに従って10ならいいが50を超えてくるとかなりキツくなる。 そこでディレクトリ…

Switchゲーム映像をMacのDiscordで配信する方法

Discordで通話仲間に配信したい ゲームしてると目の前の自分の画面を共有したいことがある。PCの画面だと画面共有押せばすぐに共有できるが、ニンテンドースイッチ自体にはその機能がないためできない。 そこでキャプチャボードを使ってPCを通すことで画面共…

はてなブログのsitemap.xmlをCIで自動送信するようにした

はてなブログのsitemap.xmlひどすぎ問題 これは昔から続いている問題なんだが、はてなブログだとインデックスが上手くいかないケースが有る。 先人の人たちが腐るほどに記事にしてくれている karupoimou.hatenablog.com chateau-vulpes.com www.imaichido.co…

UbuntuでMariaDBを複数起動させる方法(systemd編)

環境 Ubuntu 22.04 MariaDB 10.8 やりたいこと 1つのサーバーで複数のMariaDBを起動させたい。とはいえ全部のポートが3306だとコンフリクトしてしまうので ポート番号 データ格納場所 プロセスファイル、ソケットファイル ログパス は別々にしたい 調べてみ…

KubernetesにMariaDBをマスタースレーブ構成でデプロイする

環境 Kubernetes v1.24 やること MySQLサーバーをKubernetesで構築しようと思ったとき、練習用なら自分でYAML書いてデプロイ出来るが、永続化とかレプリケーションまで考えるとちょっと面倒すぎる。 そもそもKubernetesでMySQLのデプロイが向いているのかは…

CalicoのIP範囲設定を変更する

環境 Kubernetes 1.24 Calico v3.21.6 PodのIP範囲変えるの面倒くさい説 PodのIP範囲とはいわゆる --cluster-cidr を指す。PodのIPが足りなくなってきたので急遽既存のクラスタの cluster-cidrを変更することにした。 変更自体はマスターノードの /etc/kuber…

DockerのPHPは結局どのphp.ini使えばいいんだ問題

環境 PHP 7.4 どのphp.ini使えばいいんだ問題 DockerのPHPでは/usr/local/etc/php/php.iniがルートのphp.iniになっている root@e2459ffbe39f:/var/www/html# php -i|grep php.ini Configuration File (php.ini) Path => /usr/local/etc/php が、肝心の/usr/l…

UbuntuからReadyNASのホームディレクトリをNFSマウントできない問題

環境 ReadyNAS 102 問題 自宅のNASではネットギアのReadyNASを使用している。特に不満はないんだが、気づいたらネットギア自体がコンシューマ向けNAS事業から撤退したので購入後しばらくしたら廃盤になってた( NETGEAR ReadyNAS 102 3年保証 2ベイ Diskless…

Kubernetesにnfs-subdir-external-provisionerをインストール

環境 Kubernetes 1.24 Kubernetesのデータ永続化にNFSを使ってみる。 github.com NFSサーバーの構築 Kubernetesクラスタ以外のサーバーにインストールすること sudo apt-get install -y nfs-kernel-server /etc/exports に以下追記 *は流石に不味いので 172.…