weblogseries

Post series

Multi-part write-ups: 13 series, 82 posts. Posts in a series are listed in reading order.

01k0s Cluster Setup9 posts

  1. 01Traefik Middleware for security headers: HSTS, CSP, and frame protection
  2. 02cert-manager: wildcard certificates with DNS-01 challenge
  3. 03Setting up a Debian VPS for k0s: sysctl, kernel modules, and the install
  4. 04Helm charts declared in k0s config: Flannel, Traefik, cert-manager, Prometheus
  5. 05Automatic TLS with cert-manager, Let's Encrypt, and Traefik IngressRoutes
  6. 06Self-hosted Docker registry inside the k0s cluster
  7. 07Deploying to k0s with a shell script instead of CI/CD
  8. 08Full observability on one VPS: metrics, logs, alerts, dashboards — 452 MiB requested
  9. 09Traefik → APISIX on a single node: what broke during the ingress migration

02Cilium Deep-Dive6 posts

  1. 01Cilium as kube-proxy replacement with L2 LoadBalancer on k3s
  2. 02Hubble: network observability built into Cilium
  3. 03Cilium network policy: default-deny and workload isolation
  4. 04Cilium NetworkPolicy: default-deny and DNS-aware rules
  5. 05Cilium L2 LoadBalancer on bare-metal k3s
  6. 06Bare-metal k8s: keep Cilium L2 LoadBalancer & node maintenance reliable

03FluxCD & GitOps10 posts

  1. 01FluxCD hub-and-spoke: managing multiple Kubernetes clusters from one git repo
  2. 02Kustomize base/custom/patch: DRY Helm values across environments
  3. 03FluxCD hub-and-spoke: one cluster to manage them all
  4. 04Flux Notification Controller: commit status, Telegram, Mattermost
  5. 05GitLab CI for an infra repo: lint, validate, and flux reconcile
  6. 06Flux Image Update Automation: auto-bump image tags in git
  7. 07Kustomize configMapGenerator and secretGenerator
  8. 08Adding a new environment to a FluxCD hub-and-spoke cluster
  9. 09Debugging Flux reconciliation: a field guide
  10. 10Wildcard TLS with ACME and cert-manager: Automating Let's Encrypt via Yandex Cloud DNS

04Logs & Observability8 posts

  1. 01Elastic APM Server in Kubernetes
  2. 02VictoriaLogs + Vector: replacing EFK with a lightweight log stack
  3. 03Elasticsearch in Kubernetes: HelmRelease, ingest pipelines, and bootstrap
  4. 04Vector: log pipeline from Kubernetes to Elasticsearch
  5. 05Loki and LogQL: logs without Elasticsearch overhead
  6. 06Elasticsearch Index Lifecycle Management
  7. 07VictoriaLogs on k0s: a log database that fits in 128 MiB
  8. 08Promtail: shipping Traefik access logs to VictoriaLogs

05Prometheus Monitoring Stack12 posts

  1. 01Writing good PrometheusRules: structure, labels, and unit tests
  2. 02Kafka alerting in Kubernetes: from broker down to consumer lag
  3. 03node-exporter alerting: clocks, disks, and inotify limits
  4. 04Prometheus exporters in Kubernetes: kafka, mongodb, redis, and more
  5. 05kube-prometheus-stack on multi-cluster: spoke Prometheus, central Grafana
  6. 06VictoriaMetrics Operator: VMAgent, VMSingle, VMServiceScrape
  7. 07Prometheus recording rules: pre-aggregating expensive queries
  8. 08Grafana datasource and dashboard provisioning via ConfigMap
  9. 09kube-prometheus-stack: the full monitoring setup
  10. 10Blackbox exporter and Prometheus Probes for endpoint monitoring
  11. 11Multi-cluster Prometheus: remote_write to central VictoriaMetrics
  12. 12vmsingle: one VictoriaMetrics binary instead of the whole Prometheus stack

06This Site: FastAPI3 posts

  1. 01Security defaults in a FastAPI app: headers, auth, and input validation
  2. 02How this site is built
  3. 03Technical SEO on a FastAPI blog: what this site actually does

07Proxy & VPN6 posts

  1. 01Proxy mesh in Kubernetes: Tor exit nodes and geo-routing with hola-proxy
  2. 02Three proxies on one server: HTTP, SOCKS5, and Shadowsocks
  3. 03IKEv2 and WireGuard running in separate Kubernetes namespaces
  4. 04VPN status monitoring: WireGuard + IKEv2 in real time
  5. 05Rotating Tor HTTP proxy in Kubernetes
  6. 06Shadowsocks proxy in Kubernetes

08.NET on Kubernetes5 posts

  1. 01Multi-stage Dockerfile for .NET: build once, run lean
  2. 02OpenTelemetry in .NET: traces, metrics, and logs with minimal boilerplate
  3. 03ELK in Kubernetes: Elasticsearch, APM Server, and Kibana
  4. 04SonarQube in GitLab CI: dotnet-sonarscanner and coverage delta
  5. 05NuGet library CI: versioning from branch name and dual-registry publish

09GitLab CI Pipelines7 posts

  1. 01SonarQube in Kubernetes: deployment and GitLab CI integration
  2. 02GitLab Runner in Kubernetes
  3. 03GitLab CI Docker deploy pipeline: build, push, and rolling update
  4. 04GitLab CI DinD: Docker builds with BuildKit caching
  5. 05Helm chart testing: lint, unit tests, and ct in CI
  6. 06Trivy + SonarQube: security scanning in a GitLab CI pipeline
  7. 07GitLab CI multi-environment pipeline: workflow rules and deploy gates

10Secrets Management7 posts

  1. 01HashiCorp Vault: bootstrap, unseal, and Kubernetes auth
  2. 02Sealed Secrets: the full ceremony from install to cluster migration
  3. 03External Secrets Operator with HashiCorp Vault: JWT auth and KV v2
  4. 04SealedSecrets: storing encrypted kubeconfigs in git
  5. 05External Secrets Operator + HashiCorp Vault: Kubernetes auth flow
  6. 06Vault JWT auth from GitLab CI: no static tokens
  7. 07consul-template in the GitLab CI deploy job

11AlertManager Routing3 posts

  1. 01Alertmanager routing to Telegram and Mattermost
  2. 02Alertmanager routing: Telegram notifications with inhibition rules
  3. 03abot: Alertmanager proxy for Telegram and Mattermost notifications

12k3s with Ansible3 posts

  1. 01Ansible playbook for k3s: sysctl, kernel modules, and Cilium bootstrap
  2. 02Bootstrapping k3s clusters with Ansible and Flux
  3. 03Ansible for multi-cluster k3s management

13APISIX Ingress3 posts

  1. 01APISIX as a Kubernetes ingress: global rules, TLS, and OpenTelemetry
  2. 02APISIX as Kubernetes ingress: rate limiting, JWT routing, and Lua plugins
  3. 03OpenTelemetry bridge: APISIX → otel-collector → Elasticsearch APM