プログラミング

おうちKubernetesクラスタにImmichを入れてGoogle Photoを代替する

Google Photoは割と便利なのだが,容量無制限で始まったサービスにも関わらずいつの間にか15GBの容量制限ができていた.前はPixel 4aを使っていたので,その容量制限も無効化されていたんだけど,iPhoneに戻ってきたらきっちり容量制限されるし,なにかもっ…

おうちKubernetesにCertManagerを入れてTLS接続できるようにする

宅内LANで動かしているKubernetesクラスタ上のサービスについて,MetalLBとingress-nginxを使ってアクセスできるようにしていたんだけど,TLSでアクセスしたくなった.別にLAN内なのでそこまで気にする必要はないんだけど,アプリケーションとしてhttpsを前…

DHT20で湿度計測してprometheus exporterで出力しGrafanaで可視化する

部屋の湿度を測りたくてDHT20を買った. akizukidenshi.com さて,こいつで計測した湿度を,最終的にはGrafanaで見られるようにしたい. アーキテクチャを考える DHT20はただのセンサーであって,こいつの値を送信・受信するためには別のサーバが必要になる…

RDS Aurora MySQLのPerformance InsightsによるPerformance Schema自動管理はt4g.mediumだけ特殊な動きをするので気をつけろ

言いたいことはタイトルの通り. まずRDSにはPerformance Ingishtsというものがある.これは今までのRDSのMonitoringに加えて,もっと詳細なクエリ等の情報までが見える分析ツールである. www.youtube.com これは AWS RDSによって提供されている機能である…

WhalebirdをReactで書き直した

長らくVue.jsだったWhalebirdをReact.jsで書き直した.というよりNext.jsになった. github.com 当初,Svelteで書き直してみたんだけど,これがあまり思い通りにはならないことがわかって,Next.jsでの書き直しになった. 6.0.0がNext.jsの初版で,6.1.0まで…

GitHub ActionsでTauriアプリのSnapパッケージを自動ビルドする

Tauriでアプリを作っているんだけど,snapパッケージをビルドしてSnap Storeにアップロードしたいと思った. しかしドキュメントにはsnapに関する記述がない. tauri.app また,Tauriは公式でGitHub Actionsを提供していて,こいつを使ってビルドできるのだ…

Native DependencyがあるElectronアプリをビルドする

Electronでsqliteを使いたくなった場合, github.com とか github.com とかを使うと思う.これを組み込んだ状態でアプリをビルドするときに,かなり詰まったので記録しておく. 成果物と同じプラットフォームでビルドする場合は問題なし たとえばLinuxでLinu…

Siderが終わるのでlintをreviewdogに移した

このとおりですが, siderlabs.com siderがサービス終了するらしいです. 今まで個人プロジェクトでも,会社のプロジェクトでも結構お世話になってきました.使い始めた頃は,まだSideCIという名前で,会社名もアクトキャットという名前だった気がしますが,…

AWS Global AcceleratorをKubernetesのリソースから管理する

AWS上に作ったKubernetesでサービスを外部に公開する方法はいくつか存在する.簡単にやるならServiceをtype: LoadBalancerで定義すればNetworkLoadBalancerが作れるし,aws-load-balancer-controllerを使えばApplicationLoadBalancerも作れる.ただ,このLB…

kOpsでIAM Role for Service Account(IRSA)をやる(1.23)

以前こういう記事を書いた. h3poteto.hatenablog.com このときから更に便利になり,kOps 1.23で,ついにeks-pod-identity-webhookさえも自動インストールできるようになったので紹介する. github.com

GitHub ActionsでElectronアプリのリリースを自動化する

やろうやろうと思っていたけど,できていなかったので,いよいよ自動化した. ここにおけるポイントは,ほぼMacOSをどうするかという話に集約すると思うんだけど,一応Windows/Linuxでもちょっと変更しなきゃいけないことはあったので,書いておく.

kOpsでIRSAをやる(1.21)

以前こういう記事を書いた. h3poteto.hatenablog.com この当時はIssuerも自分で作らなければいけなかったが,kOps 1.21からIRSAのサポートが入り,これがだいぶ簡略化されるようになった. というわけでこれを紹介しておく.

自分のためだけにcustom controllerを書く

ふだんkopsで自分用のKubernetesクラスタを立ち上げているんだけど,個人用途なのでAutoScaleはしてほしくないのでClusterAutoscalerは入れていない.だけど,その状態でも可用性はできる限り下げたくない. というわけで,ちょっと自分でノードを管理するカ…

Kubernetes 1.20ではownerReferenceのnamespaceに気を使え

qiita.com ここの話です. github.com Issueの内容を熟知している方には余計なお世話です. いやーこんなの自分には関係ないだろうと思ってたら見事に当たりました. 問題になるケース 問題になるケースはおそらく以下の2パターン. OwnerとChildが別のnames…

kind local registryでCI内でテストを回す

Kubernetes関連のツールを作ったときなどに,E2Eテストをしたいことがある.実際にKubernetesクラスタに入れてみて,動かしてみてどうか,というのは開発環境でやるにしても結構手間だ. そういうときにkindはすごく便利なんだけど,これのlocal registryは…

Fediverse用のclient libraryを探す旅

この記事はFediverse (2) Advent Calendar 2020 の9日目です.大遅刻です. ちょうどこの週に引っ越しをすることになってしまって,「書く時間くらいあるやろー」と思ってたら,全然時間がなかったです.片付けて引っ越しして荷解きして,仕事できる状態まで…

fluentd-sidecar-injectorをhelmでインストールできるようにした

以前fluentd-sidecar-injectorというものを作った. h3poteto.hatenablog.com AdmissionWebhookを使って,任意のPodにログ転送用のfluentdをサイドカーとして差し込むものだ.これの目的は, 標準出力以外の,例えばファイルに吐き出すようなログはどうなる…

Swiftで書いていたiOSアプリをReactNativeで書き直した

以前書いていた h3poteto.hatenablog.com のiOSアプリをReactNativeで書き直した.なんのことはない,手持ちのスマートフォンをAndroidに変えたので,アプリもAndroid対応をする必要があっただけなのだが. github.com 流石にSwiftで作っていたUIをそっくり…

dap-modeでEmacs上でgoをデバッグする

goでもなんでもいいんだけれど,最近Emacsでプログラムを書くときはLSPのお世話になることが非常に多い.ここまでEmacsでいろいろとできると,デバッグもやりたくなってくる. LSPが流行るのと同時にDAPというのも流行っていて,LSPと同じようにエディタを問…

The hard wayしたKubernetesにArgoCDを入れる

先日書いた h3poteto.hatenablog.com のクラスタにArgoCDを入れるところまでやった.

Emacsのlsp-requestがtimeoutする

新しいMacにEmacsの設定を入れているときに,ほかはいつもどおり行ったのだが,goのlspだけがTimeoutするようになってしまった. 具体的には, lsp-request: Timeout while waiting for response. Method: textDocument/definition. というエラーが出る. ち…

Kubernetes the hard wayを自宅のPCでやってみる

古いPCが余っていて,こいつでKubernetesクラスタを作ろうと思って公式ガイドを久しぶりに見に行ったのだが,デプロイツールを使ってインストールする方法しか案内されていない. 昔俺がKubernetesをインストールしようとしたときは,まだkubeadmをここまで…

MacのEmacsを複数起動する

LinuxでEmacsを使っていると,Emacsを起動するごとにプロセスが立ち上がり,別のウィンドウが生成される.これに対して,Macの場合,基本的に複数のプロセスが起動することはないし,ウィンドウも一つしか生成されないのが普通だ. これを複数起動できるよう…

fluentd自身のログのカウントをdatadogに送る

ログを集めるのにfluentdをよく使っているのだが,fluentd自身も実はログを吐いており,それをfluentdでハンドリングできる.できるというか,何もケアしてやらないと 2020-06-17 03:41:01 +0000 [warn]: #0 no patterns matched tag="fluent.warn" みたいな…

DaemonSetで立ち上げたDatadogにカスタムメトリクスを送りつける

helmでDatadogを入れることが多いんだけど,これで立ち上がるDogStatsDにアプリケーションからカスタムメトリクスを送りたいことがある. https://github.com/helm/charts/tree/73e2adc5d2250d02cb02ef4602b7eeda05e6aaf4/stable/datadog 現状のdatadogのcha…

kopsで構築したKubernetesクラスタでIRSAを使う

IAM Role for Service Account(IRSA)自体はEKS以外でも利用可能ということだったので,自前のkopsクラスタで構築してみた. ほぼ,こちらのお世話になっている. blog.hatappi.me ほぼ同じことをしているのだが,いかんせん複雑なので自分用の記録として残し…

ArgoCDをAWS EKS上で構築する

GitOpsがやりたくてArgoCDを導入しようと思ったんだけど,そもそもArgoCD自体はみんなどこで動かしてるんです? もちろんin clusterでも動くので,デプロイ対象のアプリケーションが乗っているKubernetesクラスタに構築しようと思いました. が,ArgoCDのチ…

AWS KMSで暗号化したSecretsをそのままapplyしたい!

KubernetesでGitOpsを実践しようと思うときに,Secretsをどうするかという問題は結構大きい.GitOpsをしていなかったとしても,Kubernetesのyamlファイルをgitにコミットしようと思うとき,Secretsをどうするかというのは結構大きな問題ではないだろうか. P…

WhalebirdはMisskeyサポートを開始します

Whalebird 4.0.0より,Misskeyをサポートします. Misskeyのドメインを入れていただければ,ログインできるようになってます. ただし,一部機能は使えない(かもしれない)のと,対応していない機能はあります. 対応予定 絵文字リアクション 引用Renote そ…

PodにfluentdのSidecarを自動でinjectする

本番でWebアプリケーションを運用していると,様々なログを取り扱う必要がある.これはKubernetesでも同じで,Kubernetes上で動かしているコンテナのログも,何かしらの方法で集約してどこかに蓄えておいて,分析とか検索とかをしたくなる. こういう用途で…