
Astroを自前CI/CDでデプロイする――Forgejo、BuildKit、Harbor、Argo CDの実例
個人k3sクラスタで、AstroのDockerイメージをBuildKitで作成し、HarborとArgo CDを通して本番へ反映する構成を解説。push時の401、BuildKitへの接続、Image UpdaterのGit書き戻し、イメージタグを不変に保つ運用まで、実例に沿って記録します。


個人k3sクラスタで、AstroのDockerイメージをBuildKitで作成し、HarborとArgo CDを通して本番へ反映する構成を解説。push時の401、BuildKitへの接続、Image UpdaterのGit書き戻し、イメージタグを不変に保つ運用まで、実例に沿って記録します。

Argo CDのautomated sync・prune・selfHealは便利ですが、同期が途中で失敗したときに何が残るかを理解せず使うと、障害を自動で拡大することがあります。Helm hookを持つ認証基盤が全断した実際の事故と恒久対策から、自動に任せる範囲、慎重に自動化する範囲、手動に残す更新の境界線を整理します。

KustomizeのhelmCharts機能でHelm製品を包み、chartをrepoに同梱する運用を2年続けました。HelmかKustomizeかの一般論ではなく、どの差分をvaluesで書き、どこからpatchで上書きし、いつchartを捨てるかという実運用の判断基準と、chartが6バージョン積もった反省を書きます。

CrowdSecをk3sへ導入した後に必要だった、ログ取得の監視、誤banの確認と解除、検知感度の調整を整理します。さらに、Traefik bouncerをliveモードで使用していた構成で、LAPI障害が複数サービスの403につながった経験と、fail-open・fail-closedの考え方を紹介します。

k3sで複数のサービスを公開すると、DNS、TLS、不正アクセス対策、認証、ルーティングが積み重なり、どの層で止まったのか分かりにくくなります。Traefik、cert-manager、CrowdSec、OAuth2 Proxyの責務をリクエストの通過順に整理し、症状から原因を逆引きする方法を紹介します。

Docker Composeで十分な人と、k3sへ移る価値がある人の違いを、約30個のセルフホストアプリを実際に移行した経験から整理します。GitOps、更新、Secret管理、バックアップ、障害対応まで含めて、移行判断の基準を解説します。

いま読んでいるこのページがそのまま実例です。ヘッドレスCMSのDirectusとAstro SSRを個人k3sクラスタで動かし、Traefikで公開し、Matomoで計測するまでの全体構成と、静的ビルド配信からSSRへ作り直した理由、SSR化で実際に踏んだ罠を記録します。

GitOpsでKubernetesを管理すると、Secretだけが「Gitに入れられない例外」として残ります。個人k3sでraw Secret、SealedSecret、External Secrets+OpenBaoの3方式が混在するに至った経緯と、一斉移行せずに安全へ寄せていく移行期間の進め方を記録します。