isala404/dotfiles · Archived

cumulus-infra

Use when working on the cumulus k3s cluster, including kubectl, pods, deployments, GitOps and Flux changes, ingress, DNS, certs, Longhorn storage, the registry and CI, or debugging why something is down.

First seen Aug 21, 2026

Installation

$ npx skills add isala404/dotfiles --skill cumulus-infra

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from isala404/dotfiles.

npx skills add isala404/dotfiles

Browse all from isala404/dotfiles

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,237 B
  • docs SUMMARY.md 224 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

Cumulus infrastructure

A single k3s node on one rented cloud VM. Cilium is CNI and ingress via Gateway API, with the Gateway's Envoy on the host network. FluxCD drives GitOps and image automation. Longhorn stores state at one replica, backed up off-box to S3-compatible object storage. External Secrets Operator pulls from the configured secret provider; Reloader restarts on change. cert-manager and external-dns handle TLS and records automatically. Images come from a self-hosted registry that CI authenticates to by OIDC.

Being one rented VM shapes most of the decisions below: no HA, one public address, and object storage as the only thing that survives losing the box.

This skill holds what's true because of how this cluster is built, not general Kubernetes knowledge. Assume you already know the rest.

Domains, namespaces, and versions are deliberately absent. They're in the repo's CLAUDE.md, or discover them:

kubectl get gateway -A -o wide
kubectl get ns

Rule zero: use the right secret skill

When a task involves BWS, Bitwarden, or provider-side credential retrieval, creation, or rotation, use the bws-secrets skill first. It owns credential access and handling; do not reproduce its commands or policies here.

For Kubernetes Secret objects, ExternalSecrets, or secret-sync behavior, read references/secrets.md. Never display a cluster-managed secret value.

Rule one: always pass --context polaris-v2

The kubeconfig has several contexts and a bare kubectl may hit the wrong cluster. Every command needs the flag; reference files omit it for brevity, you must not.

kubectl --context polaris-v2 get pods -A

Confirm it's the one you think with kubectl config get-contexts.

Auth is an exec credential plugin: kubectl shells out to ~/.kube/bws-credential-helper.sh, which streams the kubeconfig out of the secret store and hands back client certs. It needs no prompt and no unlock, so kubectl works unattended. If it starts failing, the store is the thing to check, not the operator — see the bws-secrets skill.

References

Task Load
Kubernetes secrets and ExternalSecrets secrets.md
Routing, DNS, TLS, network policy platform.md
Manifests, image automation, adding an app gitops.md
Build pipelines, dev vs prod images, registry auth ci-cd.md
Upgrades, storage, backups, hardening operations.md
Debugging troubleshooting.md

Gotchas

  • Flux does not watch main. It watches a separate deployment branch and commits image bumps back to it.
  • Kustomize commonLabels is deprecated but used everywhere. Keep it; migrate in one bulk change or not at all.
  • EXPOSE in a Dockerfile lies. Check the runtime config for the real port.
  • Single node means no HA. Any node-level operation is downtime; say so before starting one.
  • Prefer the flux CLI over raw kubectl for kustomizations, HelmReleases, and image automation.