diff --git a/magefiles/alertmanager.go b/magefiles/alertmanager.go index bdcb9198e2..f35345bb64 100644 --- a/magefiles/alertmanager.go +++ b/magefiles/alertmanager.go @@ -55,8 +55,9 @@ func (s Stage) Alertmanager() { ) k8s := alertmanagerKubernetes(alertManagerOptions(), manifestOptions{ - image: defaultAlertManagerImage, - imageTag: alertManagerImageTag, + namespace: s.namespace(), + image: defaultAlertManagerImage, + imageTag: alertManagerImageTag, resourceRequirements: resourceRequirements{ cpuRequest: cpuRequest, cpuLimit: cpuLimit, @@ -65,7 +66,7 @@ func (s Stage) Alertmanager() { }, }) manifests := k8s.Objects() - enc := alertmanagerPostProcess(manifests) + enc := alertmanagerPostProcess(manifests, s.namespace()) gen.Add(alertmanagerTemplate, enc) gen.Generate() @@ -85,6 +86,7 @@ func alertManagerOptions() *alertmanager.AlertManagerOptions { } func alertmanagerKubernetes(opts *alertmanager.AlertManagerOptions, options manifestOptions) *alertmanager.AlertManagerStatefulSet { + namespace := options.namespace alertmanSts := alertmanager.NewAlertManager(opts, namespace, options.imageTag) alertmanSts.Image = options.image alertmanSts.Replicas = defaultAlertmanagerReplicas @@ -106,7 +108,7 @@ func alertmanagerKubernetes(opts *alertmanager.AlertManagerOptions, options mani return alertmanSts } -func alertmanagerPostProcess(manifests []runtime.Object) encoding.Encoder { +func alertmanagerPostProcess(manifests []runtime.Object, namespace string) encoding.Encoder { postProcessServiceMonitor(kghelpers.GetObject[*monv1.ServiceMonitor](manifests, ""), namespace) service := kghelpers.GetObject[*corev1.Service](manifests, alertManagerName) service.ObjectMeta.Annotations[servingCertSecretNameAnnotation] = alertmanagerTLSSecret diff --git a/magefiles/lib.go b/magefiles/lib.go index 1cf0a71b7a..6a63659799 100644 --- a/magefiles/lib.go +++ b/magefiles/lib.go @@ -25,8 +25,9 @@ type resourceRequirements struct { } type manifestOptions struct { - image string - imageTag string + namespace string + image string + imageTag string resourceRequirements } diff --git a/magefiles/magefile.go b/magefiles/magefile.go index 53a4b1d106..529ed414f6 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -24,8 +24,6 @@ type ( ) const ( - namespace = "rhobs" - templatePath = "resources" templateServicesPath = "services" ) @@ -92,6 +90,12 @@ func (Stage) generator(component string) *mimic.Generator { return gen } +const stageNamespace = "rhobs-stage" + +func (Stage) namespace() string { + return stageNamespace +} + // Build Builds the manifests for the production environment. func (Production) Build() { // todo diff --git a/resources/services/alertmanager/staging/alertmanager-template.yaml b/resources/services/alertmanager/staging/alertmanager-template.yaml index a8b1d6e77c..9d74d64ec8 100755 --- a/resources/services/alertmanager/staging/alertmanager-template.yaml +++ b/resources/services/alertmanager/staging/alertmanager-template.yaml @@ -14,7 +14,7 @@ objects: app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: observatorium name: alertmanager-cluster - namespace: rhobs + namespace: rhobs-stage spec: clusterIP: None ports: @@ -43,7 +43,7 @@ objects: app.kubernetes.io/part-of: observatorium app.kubernetes.io/version: v0.26.0 name: alertmanager - namespace: rhobs + namespace: rhobs-stage spec: host: "" port: @@ -69,7 +69,7 @@ objects: app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: observatorium name: alertmanager - namespace: rhobs + namespace: rhobs-stage spec: ports: - name: http @@ -95,7 +95,7 @@ objects: app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: observatorium name: alertmanager - namespace: rhobs + namespace: rhobs-stage - apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: @@ -107,7 +107,7 @@ objects: app.kubernetes.io/part-of: observatorium prometheus: app-sre name: alertmanager - namespace: rhobs + namespace: rhobs-stage spec: endpoints: - port: http @@ -120,7 +120,7 @@ objects: targetLabel: instance namespaceSelector: matchNames: - - rhobs + - rhobs-stage selector: matchLabels: app.kubernetes.io/component: alertmanager @@ -138,7 +138,7 @@ objects: app.kubernetes.io/part-of: observatorium app.kubernetes.io/version: v0.26.0 name: alertmanager - namespace: rhobs + namespace: rhobs-stage spec: replicas: ${{ALERTMANAGER_REPLICAS}} selector: @@ -157,7 +157,7 @@ objects: app.kubernetes.io/name: alertmanager app.kubernetes.io/part-of: observatorium app.kubernetes.io/version: v0.26.0 - namespace: rhobs + namespace: rhobs-stage spec: affinity: podAntiAffinity: @@ -179,8 +179,8 @@ objects: - args: - --config.file=/etc/alertmanager/config/alertmanager.yaml - --storage.path=/data - - --cluster.peer=alertmanager-0.alertmanager-cluster.rhobs.svc.cluster.local:9094 - - --cluster.peer=alertmanager-1.alertmanager-cluster.rhobs.svc.cluster.local:9094 + - --cluster.peer=alertmanager-0.alertmanager-cluster.rhobs-stage.svc.cluster.local:9094 + - --cluster.peer=alertmanager-1.alertmanager-cluster.rhobs-stage.svc.cluster.local:9094 - --cluster.reconnect-timeout=5m0s - --log.level=${ALERTMANAGER_LOG_LEVEL} - --log.format=logfmt @@ -228,10 +228,10 @@ objects: - -email-domain=* - -upstream=http://localhost:9093 - -openshift-service-account=alertmanager - - '-openshift-sar={"resource": "namespaces", "verb": "get", "name": "rhobs", - "namespace": "rhobs"}' + - '-openshift-sar={"resource": "namespaces", "verb": "get", "name": "rhobs-stage", + "namespace": "rhobs-stage"}' - '-openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get", - "name": "rhobs", "namespace": "rhobs"}}' + "name": "rhobs-stage", "namespace": "rhobs-stage"}}' - -tls-cert=/etc/tls/private/tls.crt - -tls-key=/etc/tls/private/tls.key - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token @@ -275,7 +275,7 @@ objects: app.kubernetes.io/part-of: observatorium app.kubernetes.io/version: v0.26.0 name: alertmanager-data - namespace: rhobs + namespace: rhobs-stage spec: accessModes: - ReadWriteOnce