プログラミング

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上で動かしているコンテナのログも,何かしらの方法で集約してどこかに蓄えておいて,分析とか検索とかをしたくなる. こういう用途で…

Slackの盛り上がりを検出するbotを作った

みなさんリモートワークしてますか? リモートワークのときのコミュニケーションツールはSlackですか?Chatworkですか?Discordですか? リモートワークをしていると,全体的にコミュニケーション量は減ると思います. オフィスにいれば,たとえSlackで会話…

ElectronのアプリをAppStoreで配信する(2020年)

以前 h3poteto.hatenablog.com こういう記事を書いた. あれから1年半経ち,少し変わったことがあるので記事にしておく.

kubernetesとhelmで作る最強のオレオレheroku,yadockeri

この記事は LAPRAS Advent Calendar 2019 の18日目です. 会社でWebサービスを開発していると,検証したりレビューしたりするときに専用の環境が欲しくなる.それは開発しているブランチごとに独立した環境であって欲しいし,なんなら本番っぽいデータが入っ…

Pleromaはいいぞ

この記事は分散SNS Advent Calendar 2019 の9日目です. ふだんはMastodon/Pleromaのクライアントアプリケーションである,Whalebirdの話が多いけど,実は https://pleroma.io というPleromaサーバも運用しています. なお,この記事は,分散SNSのサーバを自…

kube2iamをIAM Role for Service Accountに載せ替えた

この記事は LAPRAS Advent Calendar 2019 の4日目です. AWS上にkubernetesクラスタを構築していると,Pod内のコンテナから,AWSのAPIを叩きたいことがある. そのためにはもちろんAWSの認証を通す必要があり,AWSのAccess Tokenとか,IAM Roleを使って認証…