From 5d10aa729c8514aa90abe90f65d7ee08b3890ee8 Mon Sep 17 00:00:00 2001 From: Fernando Freire Date: Wed, 14 Sep 2022 18:56:30 -0700 Subject: [PATCH] feat(canary): add prometheus component --- features/canary/prometheus/kustomization.yml | 25 +++++++++++++++++++ .../canary/prometheus}/prometheus-grafana.yml | 4 +-- .../canary/prometheus/spinnaker-config.yml | 15 ++++++++--- .../prometheus}/spinnaker-dashboards.json | 0 .../canary/prometheus/tfr-namespace-roles.yml | 8 ++++++ .../prometheus-grafana/kustomization.yml | 13 ---------- 6 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 features/canary/prometheus/kustomization.yml rename {infrastructure/prometheus-grafana => features/canary/prometheus}/prometheus-grafana.yml (99%) rename accounts/canary/prometheus.yml => features/canary/prometheus/spinnaker-config.yml (81%) rename {infrastructure/prometheus-grafana => features/canary/prometheus}/spinnaker-dashboards.json (100%) create mode 100644 features/canary/prometheus/tfr-namespace-roles.yml delete mode 100644 infrastructure/prometheus-grafana/kustomization.yml diff --git a/features/canary/prometheus/kustomization.yml b/features/canary/prometheus/kustomization.yml new file mode 100644 index 0000000..e38fc80 --- /dev/null +++ b/features/canary/prometheus/kustomization.yml @@ -0,0 +1,25 @@ +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component + +resources: + - prometheus-grafana.yml + +patchesStrategicMerge: + - spinnaker-config.yml + +configMapGenerator: + - name: grafana-dashboard-spinnaker + files: + - spinnaker-dashboards.json + +secretGenerator: + - name: prometheus-secrets + literals: + - grafanaDefaultUser=DefaultUser1! + - grafanaDefaultPassword=DefaultPass1! + +generatorOptions: + disableNameSuffixHash: true + +transformers: + - tfr-namespace-roles.yml diff --git a/infrastructure/prometheus-grafana/prometheus-grafana.yml b/features/canary/prometheus/prometheus-grafana.yml similarity index 99% rename from infrastructure/prometheus-grafana/prometheus-grafana.yml rename to features/canary/prometheus/prometheus-grafana.yml index df57612..75736d2 100644 --- a/infrastructure/prometheus-grafana/prometheus-grafana.yml +++ b/features/canary/prometheus/prometheus-grafana.yml @@ -1375,12 +1375,12 @@ spec: - name: GF_SECURITY_ADMIN_USER valueFrom: secretKeyRef: - name: spin-secrets + name: prometheus-secrets key: grafanaDefaultUser - name: GF_SECURITY_ADMIN_PASSWORD valueFrom: secretKeyRef: - name: spin-secrets + name: prometheus-secrets key: grafanaDefaultPassword - name: GF_AUTH_ANONYMOUS_ENABLED value: "false" diff --git a/accounts/canary/prometheus.yml b/features/canary/prometheus/spinnaker-config.yml similarity index 81% rename from accounts/canary/prometheus.yml rename to features/canary/prometheus/spinnaker-config.yml index 839e3dc..5a894cb 100644 --- a/accounts/canary/prometheus.yml +++ b/features/canary/prometheus/spinnaker-config.yml @@ -1,11 +1,15 @@ -#----------------------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------- # Example configuration for enabling canary through prometheus endpoints -#----------------------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------- apiVersion: spinnaker.armory.io/v1alpha2 kind: SpinnakerService metadata: name: spinnaker spec: + validation: + providers: + canary: + enabled: false spinnakerConfig: config: canary: @@ -16,12 +20,17 @@ spec: accounts: - name: prometheus endpoint: - baseUrl: http://myprometheus # (Required). The base URL to the Prometheus server. + baseUrl: http://prometheus:9090 # (Required). The base URL to the Prometheus server. supportedTypes: - METRICS_STORE #username: admin # (Optional). Username for Prometheus Basic Auth #password: encrypted:k8s!n:spin-secrets!k:prometheus-password # (Optional). Password for Prometheus Basic Auth + # NOTE: Needed to get past an operator/halyard validation issue + - name: aws + enabled: false + accounts: [] + reduxLoggerEnabled: true # Whether or not to enable redux logging in the canary module in deck (Default: true). defaultJudge: NetflixACAJudge-v1.0 # Name of canary judge to use by default (Default: NetflixACAJudge-v1.0). stagesEnabled: true # Whether or not to enable canary stages in deck (Default: true). diff --git a/infrastructure/prometheus-grafana/spinnaker-dashboards.json b/features/canary/prometheus/spinnaker-dashboards.json similarity index 100% rename from infrastructure/prometheus-grafana/spinnaker-dashboards.json rename to features/canary/prometheus/spinnaker-dashboards.json diff --git a/features/canary/prometheus/tfr-namespace-roles.yml b/features/canary/prometheus/tfr-namespace-roles.yml new file mode 100644 index 0000000..9374dc4 --- /dev/null +++ b/features/canary/prometheus/tfr-namespace-roles.yml @@ -0,0 +1,8 @@ +apiVersion: builtin +kind: NamespaceTransformer +metadata: + name: add-namespace-to-service-account-resources +fieldSpecs: + - kind: ClusterRoleBinding + group: rbac.authorization.k8s.io + path: subjects/namespace diff --git a/infrastructure/prometheus-grafana/kustomization.yml b/infrastructure/prometheus-grafana/kustomization.yml deleted file mode 100644 index 33e8f30..0000000 --- a/infrastructure/prometheus-grafana/kustomization.yml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: - - prometheus-grafana.yml - -configMapGenerator: - - name: grafana-dashboard-spinnaker - files: - - spinnaker-dashboards.json - -generatorOptions: - disableNameSuffixHash: true