Skip to content

feat: bootstrap Sonarr Kubernetes operator - #2

Merged
Fuochi merged 23 commits into
mainfrom
feat/claudio-bootstrap
Jul 30, 2026
Merged

feat: bootstrap Sonarr Kubernetes operator#2
Fuochi merged 23 commits into
mainfrom
feat/claudio-bootstrap

Conversation

@Fuochi

@Fuochi Fuochi commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Bootstrap the Sonarr Kubernetes operator for the initial v0.1.0 release.

What's included

  • Operator (Rust, kube-rs): 19 CRDs under devopsarr.io/v1alpha1 and controllers reconciling them against a Sonarr instance
  • Helm chart (charts/sonarr-operator/): single source of truth for CRDs; supports crds.install / crds.keep / crds.annotations / crds.additionalLabels
  • CRD generator: cargo run --bin crdgen -- --split ... --helm produces Helm-templated CRDs
  • CI (.github/workflows/ci.yml): lint, unit tests, actionlint, CRD generation, integration tests on a k3d matrix (v1.32/v1.33/latest), full E2E against real Sonarr in-cluster
  • CD (.github/workflows/cd.yml): release-please multi-package (Rust + chart) with linked versions, multi-arch image build, chart push to OCI GHCR, cosign keyless signing, docs generation, and release asset attachment

Verified locally

  • make release-preflight green
  • Integration tests: 65/65 passed against k3d
  • E2E tests: 20/20 passed against k3d with Sonarr + operator deployed via chart
  • actionlint, shellcheck, cargo clippy --all-targets -D warnings, cargo fmt --check all clean

dabrign and others added 23 commits March 7, 2025 15:54
Controller fixes:
- custom_format: map CRD fields (value/min/max) to Sonarr API Field objects
- auto_tag: same field mapping fix as custom_format
- quality_profile: follow Terraform provider approach, fetch all quality
  definitions and custom formats, include all in items/format_items
- quality_profile: default min_upgrade_format_score to 1 (Sonarr v4 requires >= 1)
- traits: write Ready=False status condition on reconcile errors
- sonarr: reduce requeue to 15s when instance not ready

E2E test fixes:
- custom_format_lifecycle: add valid ReleaseTitleSpecification
- cross_resource_dependencies: add specifications to AutoTag and CustomFormat
- quality_profile_lifecycle: set min_upgrade_format_score to 1
- root_folder_lifecycle: use /tmp path that exists in Sonarr container
- sonarr_client: fix autotag API endpoint from /autotag to /autotagging
Co-authored-by: Copilot <copilot@github.com>
…de readability

Co-authored-by: Copilot <copilot@github.com>
- bump K8s matrix from unavailable v1.28/v1.29 to v1.32/v1.33/latest
- add github-token to setup-k3d-k3s (avoid API rate limits)
- quote $GITHUB_OUTPUT to satisfy shellcheck SC2086
- quote basename argument in chart packaging step
- add scripts/verify-release.sh for post-release verification
@Fuochi
Fuochi merged commit a4fe677 into main Jul 30, 2026
10 checks passed
@Fuochi
Fuochi deleted the feat/claudio-bootstrap branch July 30, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants