Skip to content

feat(libraries): add provider-upjet-unifi Crossplane provider submodule#1993

Merged
devantler merged 2 commits into
mainfrom
claude/pensive-kilby-8a714c
Jun 28, 2026
Merged

feat(libraries): add provider-upjet-unifi Crossplane provider submodule#1993
devantler merged 2 commits into
mainfrom
claude/pensive-kilby-8a714c

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Assistant

What

Wires the new devantler-tech/provider-upjet-unifi shared library into the monorepo:

  • libraries/provider-upjet-unifi submodule (pinned at the seed commit, branch = main)
  • Portfolio-map row in AGENTS.md (under the shared libraries)
  • .claude/skills/products/provider-upjet-unifi/SKILL.md product card (thin pointer to the repo's own ## Maintenance)

Why

A Crossplane provider for Ubiquiti UniFi, generated with Upjet from ubiquiti-community/terraform-provider-unifi v0.53.0 (registry source ubiquiti-community/unifi). It lets UniFi networks/WLANs/firewall/VPN-WireGuard/devices/settings be managed as Kubernetes CRDs and reconciled by GitOps — the same way platform consumes provider-upjet-github.

How it was built

  • Repo created declaratively via devantler-tech/.github#78 (Repository + IssueLabels + maintainers TeamRepository). Because provider-upjet-github v0.19.1 can't send the org's required custom properties, the repo was bootstrapped once (org-admin) with Type=Library + the 4 default properties, then the Repository CR adopted it (now Synced/Ready on-cluster).
  • Provider generated from the Upjet template: all 27 upstream resources → 54 managed CRDs (cluster + namespaced) + 5 providerconfig CRDs. Auth wired against the real v0.53.0 schema (api_url/username/password/api_key/site/allow_insecure/hardware_id/cloud_connector).
  • Validated: make generate (no drift), go build/vet/test, golangci-lint (0 issues). Package publishes to ghcr.io/devantler-tech/provider-upjet-unifi.

Follow-ups (separate, tracked)

  • Consume the provider from platform (a Provider CR + ProviderConfig + first managed resources) once the package is published.
  • Live end-to-end reconcile against a real UniFi controller (needs credentials/hardware).

Wire the new devantler-tech/provider-upjet-unifi shared library into the
monorepo: a Crossplane provider for Ubiquiti UniFi generated with Upjet from
ubiquiti-community/terraform-provider-unifi (all 27 resources). Adds the
submodule under libraries/, the portfolio-map row, and the product skill card.

The repo was created declaratively (.github#78) and seeded with the validated
provider; platform can consume it as a Provider CR like provider-upjet-github.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 28, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c5222e74-b303-4ed0-a8a3-f5dbb463bb00

📥 Commits

Reviewing files that changed from the base of the PR and between eeda32c and 5a28659.

📒 Files selected for processing (1)
  • docs/src/content/docs/projects/active.mdx

📝 Walkthrough

Walkthrough

Adds provider-upjet-unifi as a new git submodule under libraries/provider-upjet-unifi, pins it to a specific commit, registers it in AGENTS.md, updates the active projects page, and introduces a maintainer skill card at .claude/skills/products/provider-upjet-unifi/SKILL.md.

Changes

UniFi Provider Submodule Registration

Layer / File(s) Summary
Submodule registration and portfolio map
.gitmodules, libraries/provider-upjet-unifi, AGENTS.md
Adds the [submodule "libraries/provider-upjet-unifi"] block with path, SSH URL, and branch = main; pins the submodule to commit 79867ac; adds a "UniFi Crossplane provider (shared lib)" row to the portfolio map table.
Active projects page update
docs/src/content/docs/projects/active.mdx
Reformats the pinned-submodule marker block and adds a new "UniFi Provider" section with badge links and a short description of the generated provider.
Maintainer skill card
.claude/skills/products/provider-upjet-unifi/SKILL.md
Adds a 32-line skill card describing the provider's role, authoritative task menu location, Upjet generation boundaries, upstream release tracking workflow, and roadmap/planning references.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

A new submodule hops into the warren today,
UniFi's provider has joined the grand fray.
The docs now point, the map gains a row,
A skill card is written so maintainers know.
🐇 Hippity-hop, the library's here to stay!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the main change: adding the provider-upjet-unifi Crossplane provider submodule.
Description check ✅ Passed The description accurately describes the new submodule, AGENTS entry, and skill card added by the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/pensive-kilby-8a714c

Comment @coderabbitai help to get the list of available commands.

@devantler devantler marked this pull request as ready for review June 28, 2026 20:06
@devantler devantler enabled auto-merge (squash) June 28, 2026 20:06
Record the new libraries/provider-upjet-unifi submodule in the projects-submodules
marker (=section) and add its H2 product section, satisfying the active-projects
drift check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@devantler devantler merged commit 9417472 into main Jun 28, 2026
11 of 12 checks passed
@devantler devantler deleted the claude/pensive-kilby-8a714c branch June 28, 2026 20:09
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.

1 participant