Give CD its own Incus project #1638
Labels
No labels
ambition
application-offering
ambition
configure-applications
ambition
front-end
ambition/install-applications
ambition
security
ambition
switch-host
ambition
update-applications
ambition
user-management
blocked
component
api-service
component
fediversity-panel
component
nixops4
documentation
points
0
points
0.5
points
1
points
13
points
2
points
21
points
3
points
34
points
5
points
55
points
8
points
infinite
productisation
project-management
question
role
application-developer
role
application-operator
role
hosting-provider
role
maintainer
security
technical debt
testing
type
bug
type
deliverable
type
key-result
type
objective
type
task
type
unclear
type
user-story
user experience
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#224 automated dev-ops workflows
fediversity/fediversity
Reference
fediversity/fediversity#1638
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
CD puts every Incus instance in the
defaultproject.core/effects/tf/incus/common.nix:667setsproject = "default". That is the only place the value comes from. The graph gives it to the runners, and the runner scripts already read it as a variable with adefaultfallback:core/effects/incus/run.shcore/effects/tf/incus/host/await-incus.shcore/effects/tf/incus/host/bridge-ip.shcore/effects/tf/incus/host/register-ek.shcore/effects/tf/incus/host/retire-ek.shcore/effects/tf/incus/shared-store-state.shThe plumbing thus accepts a different project. Only the value is constant.
Why a project of its own
defaultproject,incus listandincus deleteon the hypervisor show CD's instances together with every other instance on the host. A project makes a boundary that a person can see before they do a destructive command.limits.memory,limits.disk, ...) per project. While the instances stay indefault, there is no way to cap what CD uses.A project is not an access boundary today. Incus 7.0 LTS has no fine-grained authorization, so the deploy identity is an admin of the full server. This is an organizational and blast-radius boundary only.
Work
common.nix:667.incus_projectresource) before the instances, and order the instances after it.Step 3 is the risky one. A project change is not in place:
incus move --projectmoves a stopped instance, and the OpenTofu state must follow the new resource addresses. A-planon a dev host shows whether OpenTofu wants to move the instances or to replace them.Assisted-by: Claude:claude-opus-5