Azure / Azure/unbounded

Idea: Elevate Site CRD to top-level config and introduce Site Controller

Open
#318 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
28
Forks
11
Avg merge
1d 8h
Merged PRs (30d)
55

Description

# Problems

1. No site-level concept of configuration that all components can consume. The net component owns the Site resource currently and the pattern is to make configuration resources per-component which is both annoying to implement and frustrating to manage.

2. Initialization and upgrade of a Site is complicated. Init right now relies on the user invoking the `kubectl-unbounded site init` plugin with potentially a plethora of command line switches. The upgrade path is currently non-existent and unguided and can basically be summed up as "take the latest tarball and run `kubectl apply -f` and hope for the best. Because we don't have any complex migrations or upgrade logic this works right now but it is an overly simplistic model.

# Idea

- Promote the Site CR to the global unbounded namespace and make it a top-level configuration resource.
- Make it so specific features in a Site can be configured through the Site CR.
- Implement a Site controller which reconciles the Site state with the Site CR. In the future the installation of Unbounded thus become basically `kubectl apply -f ` and then you create a Site CR. The Site controller is responsible for deploying, net, machina, storage, gantry and any other desired components.
- The Site controller becomes the orchestration for upgrades. The site controller knows how to gracefully upgrade each component. We can have features like "auto-upgrade" which can automatically keep Unbounded components up-to-date OR operators can specify specific versions on the Site CR and the Site controller will ensure those versions are brought online. Upgrades become just a matter of repointing the version and waiting for the controller to operate.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing net-owned Site resource and the `kubectl-unbounded site init` plugin entry point. Map how net, machina, storage, and gantry are currently initialized and upgraded. Done would require an agreed Site CR shape, controller responsibilities, and upgrade behavior, followed by implementation and validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.