Compare commits

...

4 Commits

Author SHA1 Message Date
Andrei Kvapil
fd08fdaa08 fix(build): move backupstrategy-controller image build to backup-controller
The backupstrategy-controller directory was removed but image build
was still referenced separately in root Makefile. Now both images
are built from backup-controller package.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2026-02-04 04:12:24 +01:00
Andrei Kvapil
205d68c6b5 refactor(backup): merge backupstrategy-controller into backup-controller
The two controllers had a circular dependency:
- backup-controller needed strategy.backups.cozystack.io CRD from backupstrategy-controller
- backupstrategy-controller needed backups.cozystack.io CRD from backup-controller

This merges both controllers into a single package to resolve the
dependency cycle. The backup-controller package now includes:
- Both controller deployments
- All CRDs (backups.cozystack.io and strategy.backups.cozystack.io)
- Combined RBAC rules

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2026-02-04 01:21:37 +01:00
Andrei Kvapil
2c3ee85259 fix(platform): make backupstrategy-controller required
backupstrategy-controller provides the CRD that backup-controller
depends on. Since backup-controller is required, backupstrategy-controller
must also be required.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2026-02-04 00:56:55 +01:00
Andrei Kvapil
bf69b5e1c4 fix(backup-controller): add backupstrategy-controller as dependency
backup-controller creates a Velero strategy resource
(strategy.backups.cozystack.io/v1alpha1), but the CRD for this
resource is provided by backupstrategy-controller package.

Without this dependency, Helm fails with:
  no matches for kind "Velero" in version "strategy.backups.cozystack.io/v1alpha1"

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2026-02-04 00:54:54 +01:00
18 changed files with 28 additions and 67 deletions

View File

@@ -18,7 +18,6 @@ build: build-deps
make -C packages/system/cozystack-api image
make -C packages/system/cozystack-controller image
make -C packages/system/backup-controller image
make -C packages/system/backupstrategy-controller image
make -C packages/system/lineage-controller-webhook image
make -C packages/system/cilium image
make -C packages/system/linstor image

View File

@@ -28,7 +28,6 @@ OPERATOR_CRDDIR=packages/core/installer/definitions
COZY_CONTROLLER_CRDDIR=packages/system/cozystack-controller/definitions
COZY_RD_CRDDIR=packages/system/application-definition-crd/definition
BACKUPS_CORE_CRDDIR=packages/system/backup-controller/definitions
BACKUPSTRATEGY_CRDDIR=packages/system/backupstrategy-controller/definitions
trap 'rm -rf ${TMPDIR}' EXIT
@@ -70,6 +69,6 @@ mv ${TMPDIR}/cozystack.io_applicationdefinitions.yaml \
${COZY_RD_CRDDIR}/cozystack.io_applicationdefinitions.yaml
mv ${TMPDIR}/backups.cozystack.io*.yaml ${BACKUPS_CORE_CRDDIR}/
mv ${TMPDIR}/strategy.backups.cozystack.io*.yaml ${BACKUPSTRATEGY_CRDDIR}/
mv ${TMPDIR}/strategy.backups.cozystack.io*.yaml ${BACKUPS_CORE_CRDDIR}/
mv ${TMPDIR}/*.yaml ${COZY_CONTROLLER_CRDDIR}/

View File

@@ -1,22 +0,0 @@
---
apiVersion: cozystack.io/v1alpha1
kind: PackageSource
metadata:
name: cozystack.backupstrategy-controller
spec:
sourceRef:
kind: OCIRepository
name: cozystack-packages
namespace: cozy-system
path: /
variants:
- name: default
dependsOn:
- cozystack.networking
components:
- name: backupstrategy-controller
path: system/backupstrategy-controller
install:
privileged: true
namespace: cozy-backupstrategy-controller
releaseName: backupstrategy-controller

View File

@@ -131,7 +131,6 @@
{{include "cozystack.platform.package.default" (list "cozystack.monitoring-application" $) }}
{{include "cozystack.platform.package.default" (list "cozystack.etcd-application" $) }}
{{include "cozystack.platform.package.default" (list "cozystack.cozystack-basics" $) }}
{{include "cozystack.platform.package.optional.default" (list "cozystack.backupstrategy-controller" $) }}
{{include "cozystack.platform.package.default" (list "cozystack.backup-controller" $) }}
{{include "cozystack.platform.package.optional.default" (list "cozystack.velero" $) }}
{{include "cozystack.platform.package.default" (list "cozystack.vertical-pod-autoscaler" $) }}

View File

@@ -4,7 +4,7 @@ NAMESPACE=cozy-backup-controller
include ../../../hack/common-envs.mk
include ../../../hack/package.mk
image: image-backup-controller
image: image-backup-controller image-backupstrategy-controller
image-backup-controller:
docker buildx build -f images/backup-controller/Dockerfile ../../.. \
@@ -16,3 +16,14 @@ image-backup-controller:
IMAGE="$(REGISTRY)/backup-controller:$(call settag,$(TAG))@$$(yq e '."containerimage.digest"' images/backup-controller.json -o json -r)" \
yq -i '.backupController.image = strenv(IMAGE)' values.yaml
rm -f images/backup-controller.json
image-backupstrategy-controller:
docker buildx build -f images/backupstrategy-controller/Dockerfile ../../.. \
--tag $(REGISTRY)/backupstrategy-controller:$(call settag,$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/backupstrategy-controller:latest \
--cache-to type=inline \
--metadata-file images/backupstrategy-controller.json \
$(BUILDX_ARGS)
IMAGE="$(REGISTRY)/backupstrategy-controller:$(call settag,$(TAG))@$$(yq e '."containerimage.digest"' images/backupstrategy-controller.json -o json -r)" \
yq -i '.backupStrategyController.image = strenv(IMAGE)' values.yaml
rm -f images/backupstrategy-controller.json

View File

@@ -12,3 +12,18 @@ backupController:
limits:
cpu: 500m
memory: 128Mi
backupStrategyController:
image: "ghcr.io/cozystack/cozystack/backupstrategy-controller:v1.0.0-beta.2@sha256:5cbc85679790aa14fb55568439c669a704e29f02236df179abbb3a25c56a2aa7"
replicas: 2
debug: false
metrics:
enabled: true
bindAddress: ":8443"
resources:
requests:
cpu: 10m
memory: 64Mi
limits:
cpu: 500m
memory: 128Mi

View File

@@ -1,3 +0,0 @@
apiVersion: v2
name: cozy-backupstrategy-controller
version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process

View File

@@ -1,18 +0,0 @@
NAME=backupstrategy-controller
NAMESPACE=cozy-backup-controller
include ../../../hack/common-envs.mk
include ../../../hack/package.mk
image: image-backupstrategy-controller
image-backupstrategy-controller:
docker buildx build -f images/backupstrategy-controller/Dockerfile ../../.. \
--tag $(REGISTRY)/backupstrategy-controller:$(call settag,$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/backupstrategy-controller:latest \
--cache-to type=inline \
--metadata-file images/backupstrategy-controller.json \
$(BUILDX_ARGS)
IMAGE="$(REGISTRY)/backupstrategy-controller:$(call settag,$(TAG))@$$(yq e '."containerimage.digest"' images/backupstrategy-controller.json -o json -r)" \
yq -i '.backupStrategyController.image = strenv(IMAGE)' values.yaml
rm -f images/backupstrategy-controller.json

View File

@@ -1 +0,0 @@
*.yaml linguist-generated

View File

@@ -1,4 +0,0 @@
{{- range $path, $_ := .Files.Glob "definitions/*.yaml" }}
---
{{ $.Files.Get $path }}
{{- end }}

View File

@@ -1,14 +0,0 @@
backupStrategyController:
image: "ghcr.io/cozystack/cozystack/backupstrategy-controller:v1.0.0-beta.2@sha256:5cbc85679790aa14fb55568439c669a704e29f02236df179abbb3a25c56a2aa7"
replicas: 2
debug: false
metrics:
enabled: true
bindAddress: ":8443"
resources:
requests:
cpu: 10m
memory: 64Mi
limits:
cpu: 500m
memory: 128Mi