Skip to content

Restructure repository into terraform, operators, and controlplane branches #109

Description

@HiranAdikari

Description:

Adopt a multi-branch repository model where each branch ships its own product on its own release cadence, instead of the monolithic main layout that mixes Terraform modules, operator source, and DC-API control-plane services.

Branch model

Branch Holds Status
main Legacy unified layout. Frozen for the restructure but not deleted — existing consumers continue to resolve main tags. Untouched, frozen
terraform Terraform module catalog only. The only branch that ships HCL. Live on this repo at the populated catalog
operators Operator source code — Go controllers, kubebuilder scaffolding, Dockerfiles, CRD definitions. Empty orphan on fork, content to follow
controlplane DC-API control-plane services (cloud-ui, dc-api, dcctl, crds, docs). Empty orphan on fork, content to follow

All three new branches are orphans — no shared ancestry with main or with each other.

terraform branch internals

Five purpose-driven module groups, each answering "when do I need this?":

  • platform/ — always required. Rancher, Harvester integration, identity, observability.
  • tenancy/ — when onboarding users. Projects, quotas, VMs, clusters, VLAN routing.
  • operators/ — Terraform-only deployment modules for managed-service operators (source on the operators branch).
  • cloud/ — optional DC-API self-service layer.
  • addons/ — niche glue for gaps in vanilla Rancher+Harvester.

Tag scheme

<branch>/vMAJOR.MINOR.PATCH — slash separator, strict SemVer. Path-like namespacing keeps tag lineages independent per branch and works in Terraform ?ref=. Initial release will be terraform/v0.1.0.

Promotion mechanic

Orphan branches share no history with main or with each other, so GitHub refuses to open a PR between two orphan branches (no history in common). Promotion from fork to upstream is by direct git push --force-with-lease upstream <branch>:refs/heads/<branch> after fork-side review.

Plan (tracked here — Epic closes when all boxes ticked)

  • Populate fork's terraform branch with the restructured module catalog
  • Clean up stale .terraform.lock.hcl artifacts on the fork
  • Force-push populated terraform to wso2:terraform
  • Cut terraform/v0.1.0 tag against the current upstream terraform HEAD
  • Cherry-pick keyvault-operator from feature/keyvault-operator-module once it merges to main → cut terraform/v0.2.0
  • Populate operators branch with operator source on the fork
  • Force-push populated operators to wso2:operators
  • Cut operators/v0.1.0 tag
  • Populate controlplane branch with DC-API control-plane services on the fork (sanitize secrets/env files first)
  • Force-push populated controlplane to wso2:controlplane
  • Cut controlplane/v0.1.0 tag

Suggested Labels:
epic, restructure

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions