@@ -18,10 +18,12 @@ SHELL = /usr/bin/env bash -o pipefail
1818.SHELLFLAGS = -ec
1919
2020# Limit the scope of generation otherwise it will try to generate configs for non-controller code
21- GENPATH = "./api/v1;"
21+ GENPATH = "./api/v1;./api/v1alpha1; "
2222
2323CHART_PATH = helm
2424CHART_OPERATOR_PATH = $(CHART_PATH ) /soperator
25+ CHART_SOPERATORCHECKS_PATH = $(CHART_PATH ) /soperatorchecks
26+ CHART_NODECONFIGURATOR_PATH = $(CHART_PATH ) /nodeconfigurator
2527CHART_OPERATOR_CRDS_PATH = $(CHART_PATH ) /soperator-crds
2628CHART_CLUSTER_PATH = $(CHART_PATH ) /slurm-cluster
2729CHART_STORAGE_PATH = $(CHART_PATH ) /slurm-cluster-storage
@@ -79,8 +81,9 @@ help: ## Display this help.
7981.PHONY : manifests
8082manifests : controller-gen # # Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
8183 $(CONTROLLER_GEN ) crd webhook paths=$(GENPATH ) output:crd:artifacts:config=config/crd/bases
82- $(CONTROLLER_GEN ) rbac:roleName=manager-role paths=" ./internal/controller/clustercontroller/..." output:artifacts:config=config/rbac/clustercontroller/
83- $(CONTROLLER_GEN ) rbac:roleName=node-configurator-role paths=" ./internal/rebooter/..." output:artifacts:config=config/rbac/node-configurator/
84+ $(CONTROLLER_GEN ) rbac:roleName=manager-role paths=" ./internal/controller/..." output:artifacts:config=config/rbac/clustercontroller/
85+ $(CONTROLLER_GEN ) rbac:roleName=nodeconfigurator-role paths=" ./internal/rebooter/..." output:artifacts:config=config/rbac/nodeconfigurator/
86+ $(CONTROLLER_GEN ) rbac:roleName=soperator-checks-role paths=" ./internal/soperatorchecks/..." output:artifacts:config=config/rbac/soperatorchecks/
8487.PHONY : generate
8588generate : controller-gen # # Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
8689 $(CONTROLLER_GEN ) object paths=$(GENPATH )
@@ -107,11 +110,19 @@ lint-fix: golangci-lint ## Run golangci-lint linter and perform fixes
107110
108111.PHONY : helm
109112helm : generate manifests # # Update soperator Helm chart
110- $(KUSTOMIZE ) build config/crd > $(CHART_OPERATOR_PATH ) /crds/slurmcluster-crd.yaml
111- $(KUSTOMIZE ) build config/crd > $(CHART_OPERATOR_CRDS_PATH ) /templates/slurmcluster-crd.yaml
113+ $(KUSTOMIZE ) build config/crd/bases > $(CHART_OPERATOR_PATH ) /crds/slurmcluster-crd.yaml
114+ $(KUSTOMIZE ) build config/crd/bases > $(CHART_OPERATOR_CRDS_PATH ) /templates/slurmcluster-crd.yaml
115+ # Because of helmify rewrite a file we need to make backup of values.yaml
112116 mv $(CHART_OPERATOR_PATH)/values.yaml $(CHART_OPERATOR_PATH)/values.yaml.bak
113- $(KUSTOMIZE ) build --load-restrictor LoadRestrictionsNone config/rbac/soperator-helm | $(HELMIFY ) $(CHART_OPERATOR_PATH )
117+ mv $(CHART_NODECONFIGURATOR_PATH)/values.yaml $(CHART_NODECONFIGURATOR_PATH)/values.yaml.bak
118+ $(KUSTOMIZE) build --load-restrictor LoadRestrictionsNone config/rbac/clustercontroller | $(HELMIFY) $(CHART_OPERATOR_PATH)
119+ $(KUSTOMIZE) build --load-restrictor LoadRestrictionsNone config/rbac/nodeconfigurator | $(HELMIFY) $(CHART_NODECONFIGURATOR_PATH)
120+ $(KUSTOMIZE) build --load-restrictor LoadRestrictionsNone config/soperatorchecks | $(HELMIFY) $(CHART_SOPERATORCHECKS_PATH)
114121 mv $(CHART_OPERATOR_PATH)/values.yaml.bak $(CHART_OPERATOR_PATH)/values.yaml
122+ mv $(CHART_NODECONFIGURATOR_PATH)/values.yaml.bak $(CHART_NODECONFIGURATOR_PATH)/values.yaml
123+ # Because of helmify rewrite a file we need to add the missing if statement
124+ @$(SED_COMMAND) '1s|^|{{- if and .Values.rebooter.generateRBAC .Values.rebooter.enabled }}\n|' $(CHART_NODECONFIGURATOR_PATH)/templates/nodeconfigurator-rbac.yaml
125+ @echo -e "\n{{- end }}" >> $(CHART_NODECONFIGURATOR_PATH)/templates/nodeconfigurator-rbac.yaml
115126
116127.PHONY : get-version
117128get-version :
@@ -151,6 +162,11 @@ sync-version: yq ## Sync versions from file
151162 @$(YQ ) -i " .images.[0].newTag = \" $( OPERATOR_IMAGE_TAG) \" " " config/manager/kustomization.yaml"
152163 @# endregion config/manager/kustomization.yaml
153164
165+ @echo 'Syncing config/soperatorchecks/kustomization.yaml'
166+ @$(YQ) -i ".images.[0].newName = \"$(IMAGE_REPO)/soperatorchecks\"" "config/soperatorchecks/kustomization.yaml"
167+ @$(YQ) -i ".images.[0].newTag = \"$(OPERATOR_IMAGE_TAG)\"" "config/soperatorchecks/kustomization.yaml"
168+ @# endregion config/soperatorchecks/kustomization.yaml
169+
154170 @# region config/manager/manager.yaml
155171 @echo 'Syncing config/manager/manager.yaml'
156172 @$(SED_COMMAND) "s/image: controller:[^ ]*/image: controller:$(OPERATOR_IMAGE_TAG)/" config/manager/manager.yaml
@@ -162,10 +178,14 @@ sync-version: yq ## Sync versions from file
162178 @$(YQ) -i ".version = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_OPERATOR_CRDS_PATH)/Chart.yaml"
163179 @$(YQ) -i ".version = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_CLUSTER_PATH)/Chart.yaml"
164180 @$(YQ) -i ".version = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_STORAGE_PATH)/Chart.yaml"
181+ @$(YQ) -i ".version = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_SOPERATORCHECKS_PATH)/Chart.yaml"
182+ @$(YQ) -i ".version = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_NODECONFIGURATOR_PATH)/Chart.yaml"
165183 @$(YQ) -i ".appVersion = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_OPERATOR_PATH)/Chart.yaml"
166184 @$(YQ) -i ".appVersion = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_OPERATOR_CRDS_PATH)/Chart.yaml"
167185 @$(YQ) -i ".appVersion = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_CLUSTER_PATH)/Chart.yaml"
168186 @$(YQ) -i ".appVersion = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_STORAGE_PATH)/Chart.yaml"
187+ @$(YQ) -i ".appVersion = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_SOPERATORCHECKS_PATH)/Chart.yaml"
188+ @$(YQ) -i ".appVersion = \"$(OPERATOR_IMAGE_TAG)\"" "$(CHART_NODECONFIGURATOR_PATH)/Chart.yaml"
169189 @# endregion helm chart versions
170190#
171191 @# region helm/slurm-cluster/values.yaml
@@ -181,6 +201,18 @@ sync-version: yq ## Sync versions from file
181201 @$(YQ) -i ".images.exporter = \"$(IMAGE_REPO)/exporter:$(IMAGE_VERSION)\"" "helm/slurm-cluster/values.yaml"
182202 @# endregion helm/slurm-cluster/values.yaml
183203
204+ @# region helm/nodeconfigurator/values.yaml
205+ @echo 'Syncing helm/nodeconfigurator/values.yaml'
206+ @$(YQ) -i ".rebooter.image.repository = \"$(IMAGE_REPO)/rebooter\"" "helm/nodeconfigurator/values.yaml"
207+ @$(YQ) -i ".rebooter.image.tag = \"$(OPERATOR_IMAGE_TAG)\"" "helm/nodeconfigurator/values.yaml"
208+ @# endregion helm/nodeconfigurator/values.yaml
209+
210+ @# region helm/soperatorchecks/values.yaml
211+ @echo 'Syncing helm/soperatorchecks/values.yaml'
212+ @$(YQ) -i ".checks.manager.image.repository = \"$(IMAGE_REPO)/soperatorchecks\"" "helm/soperatorchecks/values.yaml"
213+ @$(YQ) -i ".checks.manager.image.tag = \"$(OPERATOR_IMAGE_TAG)\"" "helm/soperatorchecks/values.yaml"
214+ @# endregion helm/soperatorchecks/values.yaml
215+
184216 @# region helm/slurm-cluster/templates/_registry_helpers.tpl
185217 @echo "Syncing $(CHART_CLUSTER_PATH)/templates/_registry_helpers.tpl"
186218 @echo '{{/* This file is generated by make sync-version. */}}' > $(CHART_CLUSTER_PATH)/templates/_registry_helpers.tpl
@@ -228,9 +260,7 @@ endif
228260ifndef DOCKERFILE
229261 $(error DOCKERFILE is not set, docker image cannot be built)
230262endif
231- ifeq (${IMAGE_NAME},slurm-operator)
232- docker build $(DOCKER_BUILD_ARGS) --tag $(IMAGE_REPO)/${IMAGE_NAME}:${IMAGE_VERSION} --target ${IMAGE_NAME} ${DOCKER_IGNORE_CACHE} ${DOCKER_LOAD} ${DOCKER_BUILD_PLATFORM} -f ${DOCKERFILE} ${DOCKER_OUTPUT} .
233- else ifeq ($(IMAGE_NAME),rebooter)
263+ ifeq ($(filter ${IMAGE_NAME},slurm-operator rebooter soperatorchecks) ,${IMAGE_NAME})
234264 docker build $(DOCKER_BUILD_ARGS) --tag $(IMAGE_REPO)/${IMAGE_NAME}:${IMAGE_VERSION} --target ${IMAGE_NAME} ${DOCKER_IGNORE_CACHE} ${DOCKER_LOAD} ${DOCKER_BUILD_PLATFORM} -f ${DOCKERFILE} ${DOCKER_OUTPUT} .
235265else
236266 cd images && docker build $(DOCKER_BUILD_ARGS) --tag $(IMAGE_REPO)/${IMAGE_NAME}:${IMAGE_VERSION} --target ${IMAGE_NAME} ${DOCKER_IGNORE_CACHE} ${DOCKER_LOAD} ${DOCKER_BUILD_PLATFORM} -f ${DOCKERFILE} ${DOCKER_OUTPUT} .
0 commit comments