diff --git a/Makefile b/Makefile index 74cd2ff..4ec4a6c 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,11 @@ clean-generated: ## Remove generated Helm values MAESTRO_CONSUMER ?= cluster1 MANIFESTS_DIR := manifests +.PHONY: install-priority-classes +install-priority-classes: check-kubectl ## Install PriorityClasses for critical infrastructure pods + kubectl apply -f $(MANIFESTS_DIR)/priority-classes.yaml --kubeconfig $(KUBECONFIG) + @echo "OK: PriorityClasses applied" + .PHONY: install-rabbitmq install-rabbitmq: check-kubectl check-namespace ## Install RabbitMQ (dev only, for BROKER_TYPE=rabbitmq) kubectl apply -f $(MANIFESTS_DIR)/rabbitmq.yaml --namespace $(NAMESPACE) --kubeconfig $(KUBECONFIG) @@ -262,11 +267,11 @@ install-adapters: install-adapter1 install-adapter2 install-adapter3 ## Install install-hyperfleet: install-api install-sentinels install-adapters ## Install API + sentinels + adapters (no maestro, no terraform) .PHONY: install-all -install-all: install-terraform get-credentials tf-helm-values install-maestro create-maestro-consumer install-hyperfleet ## Full GCP install (terraform + googlepubsub + hyperfleet + maestro) +install-all: install-terraform get-credentials tf-helm-values install-priority-classes install-maestro create-maestro-consumer install-hyperfleet ## Full GCP install (terraform + googlepubsub + hyperfleet + maestro) .PHONY: install-all-rabbitmq install-all-rabbitmq: BROKER_TYPE = rabbitmq -install-all-rabbitmq: install-rabbitmq tf-helm-values install-hyperfleet install-maestro create-maestro-consumer ## Full RabbitMQ install (rabbitmq + hyperfleet + maestro, no terraform) +install-all-rabbitmq: install-rabbitmq tf-helm-values install-priority-classes install-hyperfleet install-maestro create-maestro-consumer ## Full RabbitMQ install (rabbitmq + hyperfleet + maestro, no terraform) # ────────────────────────────────────────────── # CI validation targets diff --git a/helm/maestro/Chart.yaml b/helm/maestro/Chart.yaml index 0b37f93..4c9b813 100644 --- a/helm/maestro/Chart.yaml +++ b/helm/maestro/Chart.yaml @@ -2,16 +2,16 @@ apiVersion: v2 name: maestro-stack description: Umbrella chart for Maestro Server and Agent deployment type: application -version: 0.1.0 +version: 0.1.2 appVersion: "0.0.0-dev" dependencies: - name: maestro-server - version: "0.1.0" + version: "0.1.1" repository: "git+https://github.com/openshift-online/maestro@charts/maestro-server?ref=main" alias: server - name: maestro-agent - version: "0.1.0" + version: "0.1.1" repository: "git+https://github.com/openshift-online/maestro@charts/maestro-agent?ref=main" alias: agent condition: agent.enabled diff --git a/helm/maestro/values.yaml b/helm/maestro/values.yaml index 6449a42..69874a2 100644 --- a/helm/maestro/values.yaml +++ b/helm/maestro/values.yaml @@ -9,6 +9,7 @@ server: name: maestro-server server: + priorityClassName: hyperfleet-critical grpc: tls: enabled: false @@ -31,6 +32,7 @@ server: # Embedded PostgreSQL for development/demo postgresql: + priorityClassName: hyperfleet-critical enabled: true database: name: maestro @@ -44,6 +46,7 @@ server: # Embedded Mosquitto MQTT broker for development/demo mosquitto: + priorityClassName: hyperfleet-critical enabled: true service: name: maestro-mqtt @@ -65,6 +68,8 @@ agent: enabled: true environment: production + priorityClassName: hyperfleet-critical + consumerName: "cluster1" cloudeventsClientId: "cluster1-work-agent" diff --git a/manifests/priority-classes.yaml b/manifests/priority-classes.yaml new file mode 100644 index 0000000..1483943 --- /dev/null +++ b/manifests/priority-classes.yaml @@ -0,0 +1,7 @@ +apiVersion: scheduling.k8s.io/v1 +kind: PriorityClass +metadata: + name: hyperfleet-critical +value: 1000000000 +globalDefault: false +description: "HyperFleet critical infrastructure pods — above default but below system-critical"