diff --git a/otc/backup-test-manu.t09.de/edfbuilder.yaml b/otc/backup-test-manu.t09.de/edfbuilder.yaml deleted file mode 100644 index 49de533..0000000 --- a/otc/backup-test-manu.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/backup-test-manu.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/backup-test-manu.t09.de/registry/core.yaml b/otc/backup-test-manu.t09.de/registry/core.yaml deleted file mode 100644 index b28c9b2..0000000 --- a/otc/backup-test-manu.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/backup-test-manu.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/backup-test-manu.t09.de/registry/forgejo.yaml b/otc/backup-test-manu.t09.de/registry/forgejo.yaml deleted file mode 100644 index 18c6a4d..0000000 --- a/otc/backup-test-manu.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/backup-test-manu.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/backup-test-manu.t09.de/registry/observability-client.yaml b/otc/backup-test-manu.t09.de/registry/observability-client.yaml deleted file mode 100644 index 1ab7542..0000000 --- a/otc/backup-test-manu.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/backup-test-manu.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/backup-test-manu.t09.de/registry/observability.yaml b/otc/backup-test-manu.t09.de/registry/observability.yaml deleted file mode 100644 index dd07258..0000000 --- a/otc/backup-test-manu.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/backup-test-manu.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/backup-test-manu.t09.de/registry/otc.yaml b/otc/backup-test-manu.t09.de/registry/otc.yaml deleted file mode 100644 index 5a32985..0000000 --- a/otc/backup-test-manu.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/backup-test-manu.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/backup-test-manu.t09.de/stacks/core/argocd.yaml b/otc/backup-test-manu.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index c3fa8e4..0000000 --- a/otc/backup-test-manu.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/argocd-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.14-depends - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/backup-test-manu.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/backup-test-manu.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index c0648d3..0000000 --- a/otc/backup-test-manu.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.backup-test-manu.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.backup-test-manu.t09.de - secretName: argocd-net-tls diff --git a/otc/backup-test-manu.t09.de/stacks/core/argocd/values.yaml b/otc/backup-test-manu.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index b5e3ae6..0000000 --- a/otc/backup-test-manu.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.backup-test-manu.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.backup-test-manu.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 132adf2..0000000 --- a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 3fee2b0..0000000 --- a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 1 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.3.1 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://backup-test-manu.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.3.1 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 6a8a428..0000000 --- a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,38 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/forgejo-helm.git - path: . - # first check out the desired version (example v9.0.0): https://code.forgejo.org/forgejo-helm/forgejo-helm/src/tag/v9.0.0/Chart.yaml - # (note that the chart version is not the same as the forgejo application version, which is specified in the above Chart.yaml file) - # then use the devops pipeline and select development, forgejo and the desired version (example v9.0.0): - # https://edp.buildth.ing/DevFW-CICD/devops-pipelines/actions?workflow=update-helm-depends.yaml&actor=0&status=0 - # finally update the desired version here and include "-depends", it is created by the devops pipeline. - # why do we have an added "-depends" tag? it resolves rate limitings when downloading helm OCI dependencies - targetRevision: v12.0.0-depends - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index d88cabb..0000000 --- a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: backup-test-manu.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - backup-test-manu.t09.de - secretName: forgejo-net-tls diff --git a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 81d9b2b..0000000 --- a/otc/backup-test-manu.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,188 +0,0 @@ -# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - annotations: - everest.io/crypt-key-id: 3e0bb621-134f-42a1-b4f6-1fa8ba1c717f - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: edp-forgejo-backup-test-manu - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'backup-test-manu.t09.de' - ROOT_URL: 'https://backup-test-manu.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 1de4698f-e141-4ff8-a8cf-8a92993d9269 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 2bbf459..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/vector.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 0037c8b..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/vector/values.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 4bbcc05..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "backup-test-manu" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index eb4b221..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 5a6732b..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.backup-test-manu.t09.de - tlsHosts: - - o12y.backup-test-manu.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "backup-test-manu" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator.yaml b/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 9e423ae..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 495e56f..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.backup-test-manu.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.backup-test-manu.t09.de - secretName: grafana-net-tls diff --git a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 0d583a9..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index f884bd9..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 2c961dc..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 3e0bb621-134f-42a1-b4f6-1fa8ba1c717f - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 \ No newline at end of file diff --git a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 5949939..0000000 --- a/otc/backup-test-manu.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1306 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 3e0bb621-134f-42a1-b4f6-1fa8ba1c717f - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/values.yaml b/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/backup-test-manu.t09.de/stacks/otc/cert-manger.yaml b/otc/backup-test-manu.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index cd7552e..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx.yaml b/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 6cfd962..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/ingress-nginx-helm.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1-depends - helm: - valueFiles: - - $values/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index 7a3c96e..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 1de4698f-e141-4ff8-a8cf-8a92993d9269 - kubernetes.io/elb.ip: 164.30.13.148 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/backup-test-manu.t09.de/stacks/otc/storageclass.yaml b/otc/backup-test-manu.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 8d19873..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/backup-test-manu.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/backup-test-manu.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/backup-test-manu.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/backup-test-manu.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/delete-me.t09.de/edfbuilder.yaml b/otc/delete-me.t09.de/edfbuilder.yaml deleted file mode 100644 index 5808bb6..0000000 --- a/otc/delete-me.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/delete-me.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/delete-me.t09.de/registry/core.yaml b/otc/delete-me.t09.de/registry/core.yaml deleted file mode 100644 index 0a9e31c..0000000 --- a/otc/delete-me.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/delete-me.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/delete-me.t09.de/registry/forgejo.yaml b/otc/delete-me.t09.de/registry/forgejo.yaml deleted file mode 100644 index fa7e4b4..0000000 --- a/otc/delete-me.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/delete-me.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/delete-me.t09.de/registry/observability-client.yaml b/otc/delete-me.t09.de/registry/observability-client.yaml deleted file mode 100644 index 717c785..0000000 --- a/otc/delete-me.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/delete-me.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/delete-me.t09.de/registry/observability.yaml b/otc/delete-me.t09.de/registry/observability.yaml deleted file mode 100644 index 345fe46..0000000 --- a/otc/delete-me.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/delete-me.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/delete-me.t09.de/registry/otc.yaml b/otc/delete-me.t09.de/registry/otc.yaml deleted file mode 100644 index 7edf255..0000000 --- a/otc/delete-me.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/delete-me.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/delete-me.t09.de/stacks/core/argocd.yaml b/otc/delete-me.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 3eae9e4..0000000 --- a/otc/delete-me.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/delete-me.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/delete-me.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 1a7d044..0000000 --- a/otc/delete-me.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.delete-me.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.delete-me.t09.de - secretName: argocd-net-tls diff --git a/otc/delete-me.t09.de/stacks/core/argocd/values.yaml b/otc/delete-me.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index e22a23f..0000000 --- a/otc/delete-me.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.delete-me.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.delete-me.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/delete-me.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/delete-me.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index b7f1e74..0000000 --- a/otc/delete-me.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/delete-me.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/delete-me.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 722b2ed..0000000 --- a/otc/delete-me.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://delete-me.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/delete-me.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index fb30995..0000000 --- a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 3cae546..0000000 --- a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: delete-me.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - delete-me.t09.de - secretName: forgejo-net-tls diff --git a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index 9b85821..0000000 --- a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 3b00d925-3d87-4b60-b7ee-3a04b84783a9 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 34fcde2..0000000 --- a/otc/delete-me.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 3b00d925-3d87-4b60-b7ee-3a04b84783a9 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-delete-me" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'delete-me.t09.de' - ROOT_URL: 'https://delete-me.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 9999a929-3498-46dc-9840-23437355d9be - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/delete-me.t09.de/stacks/observability-client/metrics-server.yaml b/otc/delete-me.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 226811d..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/delete-me.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/delete-me.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/delete-me.t09.de/stacks/observability-client/vector.yaml b/otc/delete-me.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 3d0cd6d..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/delete-me.t09.de/stacks/observability-client/vector/values.yaml b/otc/delete-me.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 53ea0f8..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "delete-me" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index bdbb8c1..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 9546deb..0000000 --- a/otc/delete-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.delete-me.t09.de - tlsHosts: - - o12y.delete-me.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "delete-me" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/delete-me.t09.de/stacks/observability/grafana-operator.yaml b/otc/delete-me.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 5404b81..0000000 --- a/otc/delete-me.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index cbaaa4b..0000000 --- a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 3b00d925-3d87-4b60-b7ee-3a04b84783a9 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.delete-me.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.delete-me.t09.de - secretName: grafana-net-tls diff --git a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/delete-me.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index c8cb20b..0000000 --- a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 9419609..0000000 --- a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index d2eca12..0000000 --- a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 3b00d925-3d87-4b60-b7ee-3a04b84783a9 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 0652420..0000000 --- a/otc/delete-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 3b00d925-3d87-4b60-b7ee-3a04b84783a9 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/delete-me.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/delete-me.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/delete-me.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/delete-me.t09.de/stacks/otc/cert-manager/values.yaml b/otc/delete-me.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/delete-me.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/delete-me.t09.de/stacks/otc/cert-manger.yaml b/otc/delete-me.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 495221e..0000000 --- a/otc/delete-me.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/delete-me.t09.de/stacks/otc/ingress-nginx.yaml b/otc/delete-me.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 1b9f0b4..0000000 --- a/otc/delete-me.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/delete-me.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/delete-me.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/delete-me.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index dd991ef..0000000 --- a/otc/delete-me.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 9999a929-3498-46dc-9840-23437355d9be - kubernetes.io/elb.ip: 80.158.110.10 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/delete-me.t09.de/stacks/otc/storageclass.yaml b/otc/delete-me.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index cad28d5..0000000 --- a/otc/delete-me.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/delete-me.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/delete-me.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/delete-me.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/delete-me.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/deleteme.t09.de/edfbuilder.yaml b/otc/deleteme.t09.de/edfbuilder.yaml deleted file mode 100644 index a6c678a..0000000 --- a/otc/deleteme.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/coder.yaml b/otc/deleteme.t09.de/registry/coder.yaml deleted file mode 100644 index 4142785..0000000 --- a/otc/deleteme.t09.de/registry/coder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coder-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/coder" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/core.yaml b/otc/deleteme.t09.de/registry/core.yaml deleted file mode 100644 index f3bb7a7..0000000 --- a/otc/deleteme.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/forgejo.yaml b/otc/deleteme.t09.de/registry/forgejo.yaml deleted file mode 100644 index e86dca6..0000000 --- a/otc/deleteme.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/garm.yaml b/otc/deleteme.t09.de/registry/garm.yaml deleted file mode 100644 index 5599397..0000000 --- a/otc/deleteme.t09.de/registry/garm.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: garm-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/garm" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/observability-client.yaml b/otc/deleteme.t09.de/registry/observability-client.yaml deleted file mode 100644 index aa0f7ec..0000000 --- a/otc/deleteme.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/observability.yaml b/otc/deleteme.t09.de/registry/observability.yaml deleted file mode 100644 index 73cbfde..0000000 --- a/otc/deleteme.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/otc.yaml b/otc/deleteme.t09.de/registry/otc.yaml deleted file mode 100644 index 6026a45..0000000 --- a/otc/deleteme.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/registry/terralist.yaml b/otc/deleteme.t09.de/registry/terralist.yaml deleted file mode 100644 index 1f381ee..0000000 --- a/otc/deleteme.t09.de/registry/terralist.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: terralist-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/deleteme.t09.de/stacks/terralist" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/deleteme.t09.de/stacks/coder/coder.yaml b/otc/deleteme.t09.de/stacks/coder/coder.yaml deleted file mode 100644 index d98c245..0000000 --- a/otc/deleteme.t09.de/stacks/coder/coder.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coder - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: coder - sources: - - repoURL: https://helm.coder.com/v2 - chart: coder - targetRevision: 2.28.3 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/coder/coder/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/coder/coder/manifests" diff --git a/otc/deleteme.t09.de/stacks/coder/coder/manifests/postgres.yaml b/otc/deleteme.t09.de/stacks/coder/coder/manifests/postgres.yaml deleted file mode 100644 index cae4b97..0000000 --- a/otc/deleteme.t09.de/stacks/coder/coder/manifests/postgres.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Cluster -metadata: - name: coder-db - namespace: coder -spec: - instances: 1 - primaryUpdateStrategy: unsupervised - resources: - requests: - memory: "1Gi" - cpu: "1" - limits: - memory: "1Gi" - cpu: "1" - managed: - roles: - - name: coder - createdb: true - login: true - passwordSecret: - name: coder-db-user - storage: - size: 10Gi - storageClass: csi-disk ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: coder - namespace: coder -spec: - cluster: - name: coder-db - name: coder - owner: coder ---- diff --git a/otc/deleteme.t09.de/stacks/coder/coder/values.yaml b/otc/deleteme.t09.de/stacks/coder/coder/values.yaml deleted file mode 100644 index f4e89a6..0000000 --- a/otc/deleteme.t09.de/stacks/coder/coder/values.yaml +++ /dev/null @@ -1,61 +0,0 @@ -coder: - # You can specify any environment variables you'd like to pass to Coder - # here. Coder consumes environment variables listed in - # `coder server --help`, and these environment variables are also passed - # to the workspace provisioner (so you can consume them in your Terraform - # templates for auth keys etc.). - # - # Please keep in mind that you should not set `CODER_HTTP_ADDRESS`, - # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as - # they are already set by the Helm chart and will cause conflicts. - env: - - name: CODER_ACCESS_URL - value: https://coder.deleteme.t09.de - - name: CODER_PG_CONNECTION_URL - valueFrom: - secretKeyRef: - # You'll need to create a secret called coder-db-url with your - # Postgres connection URL like: - # postgres://coder:password@postgres:5432/coder?sslmode=disable - name: coder-db-user - key: url - # For production deployments, we recommend configuring your own GitHub - # OAuth2 provider and disabling the default one. - - name: CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER_ENABLE - value: "false" - - name: EDGE_CONNECT_ENDPOINT - valueFrom: - secretKeyRef: - name: edge-credential - key: endpoint - - name: EDGE_CONNECT_USERNAME - valueFrom: - secretKeyRef: - name: edge-credential - key: username - - name: EDGE_CONNECT_PASSWORD - valueFrom: - secretKeyRef: - name: edge-credential - key: password - - # (Optional) For production deployments the access URL should be set. - # If you're just trying Coder, access the dashboard via the service IP. - # - name: CODER_ACCESS_URL - # value: "https://coder.example.com" - - #tls: - # secretNames: - # - my-tls-secret-name - service: - type: ClusterIP - - ingress: - enable: true - className: nginx - host: coder.deleteme.t09.de - annotations: - cert-manager.io/cluster-issuer: main - tls: - enable: true - secretName: coder-tls-secret diff --git a/otc/deleteme.t09.de/stacks/core/argocd.yaml b/otc/deleteme.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index c8784d0..0000000 --- a/otc/deleteme.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-9.1.5 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/core/argocd/manifests" diff --git a/otc/deleteme.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/deleteme.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 4837465..0000000 --- a/otc/deleteme.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.deleteme.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.deleteme.t09.de - secretName: argocd-net-tls diff --git a/otc/deleteme.t09.de/stacks/core/argocd/values.yaml b/otc/deleteme.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index fc338d8..0000000 --- a/otc/deleteme.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -global: - domain: argocd.deleteme.t09.de - -configs: - params: - server.insecure: true - cm: - oidc.config: | - name: FORGEJO - issuer: https://dex.deleteme.t09.de - clientID: controller-argocd-dex - clientSecret: $dex-argo-client:clientSecret - requestedScopes: - - openid - - profile - - email - - groups - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - url: https://argocd.deleteme.t09.de - rbac: - policy.csv: 'g, DevFW, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/deleteme.t09.de/stacks/core/cloudnative-pg.yaml b/otc/deleteme.t09.de/stacks/core/cloudnative-pg.yaml deleted file mode 100644 index 7ac0187..0000000 --- a/otc/deleteme.t09.de/stacks/core/cloudnative-pg.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cloudnative-pg - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cloudnative-pg - sources: - - repoURL: https://cloudnative-pg.github.io/charts - chart: cloudnative-pg - targetRevision: 0.26.1 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/core/cloudnative-pg/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/core/dex.yaml b/otc/deleteme.t09.de/stacks/core/dex.yaml deleted file mode 100644 index 25fd6ef..0000000 --- a/otc/deleteme.t09.de/stacks/core/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dex - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: dex - sources: - - repoURL: https://charts.dexidp.io - chart: dex - targetRevision: 0.23.0 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/core/dex/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/core/dex/values.yaml b/otc/deleteme.t09.de/stacks/core/dex/values.yaml deleted file mode 100644 index 997693c..0000000 --- a/otc/deleteme.t09.de/stacks/core/dex/values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: dex.deleteme.t09.de - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - dex.deleteme.t09.de - secretName: dex-cert - -envVars: - - name: FORGEJO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientSecret - - name: FORGEJO_CLIENT_ID - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientID - - name: OIDC_DEX_GRAFANA_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-grafana-client - key: clientSecret - - name: OIDC_DEX_ARGO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-argo-client - key: clientSecret - - name: LOG_LEVEL - value: debug - -config: - # Set it to a valid URL - issuer: https://dex.deleteme.t09.de - - # See https://dexidp.io/docs/storage/ for more options - storage: - type: memory - - oauth2: - skipApprovalScreen: true - alwaysShowLoginScreen: false - - connectors: - - type: gitea - id: gitea - name: Forgejo - config: - clientID: "$FORGEJO_CLIENT_ID" - clientSecret: "$FORGEJO_CLIENT_SECRET" - redirectURI: https://dex.deleteme.t09.de/callback - baseURL: https://edp.buildth.ing - # loadAllGroups: true - orgs: - - name: DevFW - enablePasswordDB: false - - staticClients: - - id: controller-argocd-dex - name: ArgoCD Client - redirectURIs: - - "https://argocd.deleteme.t09.de/auth/callback" - secretEnv: "OIDC_DEX_ARGO_CLIENT_SECRET" - - id: grafana - redirectURIs: - - "https://grafana.deleteme.t09.de/login/generic_oauth" - name: "Grafana" - secretEnv: "OIDC_DEX_GRAFANA_CLIENT_SECRET" diff --git a/otc/deleteme.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/deleteme.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 244746f..0000000 --- a/otc/deleteme.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/deleteme.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/deleteme.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 5a6397e..0000000 --- a/otc/deleteme.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://deleteme.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/deleteme.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index b81bd4f..0000000 --- a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 87f0e1f..0000000 --- a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: deleteme.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - deleteme.t09.de - secretName: forgejo-net-tls diff --git a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index ef55e4e..0000000 --- a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 11101e0d-7af5-4065-801c-0cd3b7baedc8 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 070b29d..0000000 --- a/otc/deleteme.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 11101e0d-7af5-4065-801c-0cd3b7baedc8 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-deleteme" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'deleteme.t09.de' - ROOT_URL: 'https://deleteme.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 14722cae-bad8-45c6-8a29-029711246506 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:2a8cc35e3232664f71414835521ca2d2689771c2 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/deleteme.t09.de/stacks/garm/garm.yaml b/otc/deleteme.t09.de/stacks/garm/garm.yaml deleted file mode 100644 index 6f47fa2..0000000 --- a/otc/deleteme.t09.de/stacks/garm/garm.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: garm - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: garm - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/garm-helm - path: charts/garm - targetRevision: v0.0.4 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/garm/garm/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/garm/garm/values.yaml b/otc/deleteme.t09.de/stacks/garm/garm/values.yaml deleted file mode 100644 index fe3c3dc..0000000 --- a/otc/deleteme.t09.de/stacks/garm/garm/values.yaml +++ /dev/null @@ -1,23 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - hosts: - - host: garm.deleteme.t09.de - paths: - - path: / - pathType: Prefix - tls: - - secretName: garm-net-tls - hosts: - - garm.deleteme.t09.de - -# Credentials and Secrets -credentials: - edgeConnect: - existingSecretName: "edge-credential" - gitea: - url: "https://deleteme.t09.de" # Required diff --git a/otc/deleteme.t09.de/stacks/observability-client/metrics-server.yaml b/otc/deleteme.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index db6ebb2..0000000 --- a/otc/deleteme.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/deleteme.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/deleteme.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/deleteme.t09.de/stacks/observability-client/vector.yaml b/otc/deleteme.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index d36b707..0000000 --- a/otc/deleteme.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/observability-client/vector/values.yaml b/otc/deleteme.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index d6c73d9..0000000 --- a/otc/deleteme.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "deleteme" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index a2cbf88..0000000 --- a/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 0b1994b..0000000 --- a/otc/deleteme.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.deleteme.t09.de - tlsHosts: - - o12y.deleteme.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "deleteme" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/deleteme.t09.de/stacks/observability/grafana-operator.yaml b/otc/deleteme.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 4f394af..0000000 --- a/otc/deleteme.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index c3e1095..0000000 --- a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 11101e0d-7af5-4065-801c-0cd3b7baedc8 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - deployment: - spec: - template: - spec: - containers: - - name: grafana - env: - - name: OAUTH_CLIENT_SECRET - valueFrom: - secretKeyRef: - key: clientSecret - name: dex-grafana-client - config: - log.console: - level: debug - server: - root_url: "https://grafana.deleteme.t09.de" - auth: - disable_login: "true" - disable_login_form: "true" - auth.generic_oauth: - enabled: "true" - name: Forgejo - allow_sign_up: "true" - use_refresh_token: "true" - client_id: grafana - client_secret: $__env{OAUTH_CLIENT_SECRET} - scopes: openid email profile offline_access groups - auth_url: https://dex.deleteme.t09.de/auth - token_url: https://dex.deleteme.t09.de/token - api_url: https://dex.deleteme.t09.de/userinfo - redirect_uri: https://grafana.deleteme.t09.de/login/generic_oauth - role_attribute_path: "contains(groups[*], 'DevFW') && 'GrafanaAdmin' || 'None'" - allow_assign_grafana_admin: "true" - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.deleteme.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.deleteme.t09.de - secretName: grafana-net-tls diff --git a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/deleteme.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 58a1bdf..0000000 --- a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 110ee7e..0000000 --- a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' - - name: disk-consumption-high - rules: - - alert: disk consumption high - expr: 1-(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) > 0.6 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'disk consumption of pvc {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is high in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 1da6783..0000000 --- a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 11101e0d-7af5-4065-801c-0cd3b7baedc8 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 5759093..0000000 --- a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - passwordRef: - key: password - name: simple-user-secret - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] \ No newline at end of file diff --git a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index a0b6baf..0000000 --- a/otc/deleteme.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: false - rules: {} - kubeScheduler: - create: false - rules: {} - kubernetesSystemScheduler: - create: false - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 11101e0d-7af5-4065-801c-0cd3b7baedc8 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/deleteme.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/deleteme.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/deleteme.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/deleteme.t09.de/stacks/otc/cert-manager/values.yaml b/otc/deleteme.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/deleteme.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/deleteme.t09.de/stacks/otc/cert-manger.yaml b/otc/deleteme.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index ef52956..0000000 --- a/otc/deleteme.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/deleteme.t09.de/stacks/otc/ingress-nginx.yaml b/otc/deleteme.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 8906d5b..0000000 --- a/otc/deleteme.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/deleteme.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index be4f687..0000000 --- a/otc/deleteme.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 14722cae-bad8-45c6-8a29-029711246506 - kubernetes.io/elb.ip: 164.30.18.171 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/deleteme.t09.de/stacks/otc/storageclass.yaml b/otc/deleteme.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 8951722..0000000 --- a/otc/deleteme.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/deleteme.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/deleteme.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/deleteme.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/deleteme.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/deleteme.t09.de/stacks/terralist/terralist.yaml b/otc/deleteme.t09.de/stacks/terralist/terralist.yaml deleted file mode 100644 index c6dbbfd..0000000 --- a/otc/deleteme.t09.de/stacks/terralist/terralist.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# helm upgrade --install --create-namespace --namespace terralist terralist oci://ghcr.io/terralist/helm-charts/terralist -f terralist-values.yaml -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: terralist - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: terralist - sources: - - repoURL: https://github.com/terralist/helm-charts - path: charts/terralist - targetRevision: terralist-0.8.1 - helm: - valueFiles: - - $values/otc/deleteme.t09.de/stacks/terralist/terralist/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/deleteme.t09.de/stacks/terralist/terralist/values.yaml b/otc/deleteme.t09.de/stacks/terralist/terralist/values.yaml deleted file mode 100644 index 91f3d71..0000000 --- a/otc/deleteme.t09.de/stacks/terralist/terralist/values.yaml +++ /dev/null @@ -1,87 +0,0 @@ -controllers: - main: - strategy: Recreate - containers: - app: - env: - - name: TERRALIST_OAUTH_PROVIDER - value: oidc - - name: TERRALIST_OI_CLIENT_ID - valueFrom: - secretKeyRef: - name: oidc-credentials - key: client-id - - name: TERRALIST_OI_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: oidc-credentials - key: client-secret - - name: TERRALIST_OI_AUTHORIZE_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: authorize-url - - name: TERRALIST_OI_TOKEN_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: token-url - - name: TERRALIST_OI_USERINFO_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: userinfo-url - - name: TERRALIST_OI_SCOPE - valueFrom: - secretKeyRef: - name: oidc-credentials - key: scope - - name: TERRALIST_TOKEN_SIGNING_SECRET - valueFrom: - secretKeyRef: - name: terralist-secret - key: token-signing-secret - - name: TERRALIST_COOKIE_SECRET - valueFrom: - secretKeyRef: - name: terralist-secret - key: cookie-secret - - name: TERRALIST_URL - value: https://terralist.deleteme.t09.de - - name: TERRALIST_SQLITE_PATH - value: /data/db.sqlite - - name: TERRALIST_LOCAL_STORE - value: /data/modules - - name: TERRALIST_PROVIDERS_ANONYMOUS_READ - value: "true" - -ingress: - main: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: terralist.deleteme.t09.de - paths: - - path: / - pathType: Prefix - service: - identifier: main - port: http - tls: - - hosts: - - terralist.deleteme.t09.de - secretName: terralist-tls-secret - -persistence: - data: - enabled: true - accessMode: ReadWriteOnce - size: 10Gi - retain: false - storageClass: "csi-disk" - annotations: - everest.io/disk-volume-type: GPSSD - globalMounts: - - path: /data diff --git a/otc/dev.t09.de/edfbuilder.yaml b/otc/dev.t09.de/edfbuilder.yaml deleted file mode 100644 index 3bb1fe4..0000000 --- a/otc/dev.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/coder.yaml b/otc/dev.t09.de/registry/coder.yaml deleted file mode 100644 index f6d34e2..0000000 --- a/otc/dev.t09.de/registry/coder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coder-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/coder" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/core.yaml b/otc/dev.t09.de/registry/core.yaml deleted file mode 100644 index bf1b8cc..0000000 --- a/otc/dev.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/forgejo.yaml b/otc/dev.t09.de/registry/forgejo.yaml deleted file mode 100644 index 1ead3a0..0000000 --- a/otc/dev.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/garm.yaml b/otc/dev.t09.de/registry/garm.yaml deleted file mode 100644 index c5aad23..0000000 --- a/otc/dev.t09.de/registry/garm.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: garm-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/garm" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/observability-client.yaml b/otc/dev.t09.de/registry/observability-client.yaml deleted file mode 100644 index f47eb7e..0000000 --- a/otc/dev.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/observability.yaml b/otc/dev.t09.de/registry/observability.yaml deleted file mode 100644 index 6e64fa2..0000000 --- a/otc/dev.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/otc.yaml b/otc/dev.t09.de/registry/otc.yaml deleted file mode 100644 index f22dff4..0000000 --- a/otc/dev.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/registry/terralist.yaml b/otc/dev.t09.de/registry/terralist.yaml deleted file mode 100644 index 9a6a96c..0000000 --- a/otc/dev.t09.de/registry/terralist.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: terralist-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/dev.t09.de/stacks/terralist" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/dev.t09.de/stacks/coder/coder.yaml b/otc/dev.t09.de/stacks/coder/coder.yaml deleted file mode 100644 index 3755276..0000000 --- a/otc/dev.t09.de/stacks/coder/coder.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coder - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: coder - sources: - - repoURL: https://helm.coder.com/v2 - chart: coder - targetRevision: 2.28.3 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/coder/coder/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/coder/coder/manifests" diff --git a/otc/dev.t09.de/stacks/coder/coder/manifests/postgres.yaml b/otc/dev.t09.de/stacks/coder/coder/manifests/postgres.yaml deleted file mode 100644 index cae4b97..0000000 --- a/otc/dev.t09.de/stacks/coder/coder/manifests/postgres.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Cluster -metadata: - name: coder-db - namespace: coder -spec: - instances: 1 - primaryUpdateStrategy: unsupervised - resources: - requests: - memory: "1Gi" - cpu: "1" - limits: - memory: "1Gi" - cpu: "1" - managed: - roles: - - name: coder - createdb: true - login: true - passwordSecret: - name: coder-db-user - storage: - size: 10Gi - storageClass: csi-disk ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: coder - namespace: coder -spec: - cluster: - name: coder-db - name: coder - owner: coder ---- diff --git a/otc/dev.t09.de/stacks/coder/coder/values.yaml b/otc/dev.t09.de/stacks/coder/coder/values.yaml deleted file mode 100644 index 9a2e7da..0000000 --- a/otc/dev.t09.de/stacks/coder/coder/values.yaml +++ /dev/null @@ -1,61 +0,0 @@ -coder: - # You can specify any environment variables you'd like to pass to Coder - # here. Coder consumes environment variables listed in - # `coder server --help`, and these environment variables are also passed - # to the workspace provisioner (so you can consume them in your Terraform - # templates for auth keys etc.). - # - # Please keep in mind that you should not set `CODER_HTTP_ADDRESS`, - # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as - # they are already set by the Helm chart and will cause conflicts. - env: - - name: CODER_ACCESS_URL - value: https://coder.dev.t09.de - - name: CODER_PG_CONNECTION_URL - valueFrom: - secretKeyRef: - # You'll need to create a secret called coder-db-url with your - # Postgres connection URL like: - # postgres://coder:password@postgres:5432/coder?sslmode=disable - name: coder-db-user - key: url - # For production deployments, we recommend configuring your own GitHub - # OAuth2 provider and disabling the default one. - - name: CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER_ENABLE - value: "false" - - name: EDGE_CONNECT_ENDPOINT - valueFrom: - secretKeyRef: - name: edge-credential - key: endpoint - - name: EDGE_CONNECT_USERNAME - valueFrom: - secretKeyRef: - name: edge-credential - key: username - - name: EDGE_CONNECT_PASSWORD - valueFrom: - secretKeyRef: - name: edge-credential - key: password - - # (Optional) For production deployments the access URL should be set. - # If you're just trying Coder, access the dashboard via the service IP. - # - name: CODER_ACCESS_URL - # value: "https://coder.example.com" - - #tls: - # secretNames: - # - my-tls-secret-name - service: - type: ClusterIP - - ingress: - enable: true - className: nginx - host: coder.dev.t09.de - annotations: - cert-manager.io/cluster-issuer: main - tls: - enable: true - secretName: coder-tls-secret diff --git a/otc/dev.t09.de/stacks/core/argocd.yaml b/otc/dev.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 15ae075..0000000 --- a/otc/dev.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-9.1.5 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/core/argocd/manifests" diff --git a/otc/dev.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/dev.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 1906565..0000000 --- a/otc/dev.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.dev.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.dev.t09.de - secretName: argocd-net-tls diff --git a/otc/dev.t09.de/stacks/core/argocd/values.yaml b/otc/dev.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index dd5b83d..0000000 --- a/otc/dev.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -global: - domain: argocd.dev.t09.de - -configs: - params: - server.insecure: true - cm: - oidc.config: | - name: FORGEJO - issuer: https://dex.dev.t09.de - clientID: controller-argocd-dex - clientSecret: $dex-argo-client:clientSecret - requestedScopes: - - openid - - profile - - email - - groups - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - url: https://argocd.dev.t09.de - rbac: - policy.csv: 'g, DevFW, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/dev.t09.de/stacks/core/cloudnative-pg.yaml b/otc/dev.t09.de/stacks/core/cloudnative-pg.yaml deleted file mode 100644 index b8be054..0000000 --- a/otc/dev.t09.de/stacks/core/cloudnative-pg.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cloudnative-pg - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cloudnative-pg - sources: - - repoURL: https://cloudnative-pg.github.io/charts - chart: cloudnative-pg - targetRevision: 0.26.1 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/core/cloudnative-pg/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/core/dex.yaml b/otc/dev.t09.de/stacks/core/dex.yaml deleted file mode 100644 index 5da98f5..0000000 --- a/otc/dev.t09.de/stacks/core/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dex - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: dex - sources: - - repoURL: https://charts.dexidp.io - chart: dex - targetRevision: 0.23.0 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/core/dex/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/core/dex/values.yaml b/otc/dev.t09.de/stacks/core/dex/values.yaml deleted file mode 100644 index 8a2a79d..0000000 --- a/otc/dev.t09.de/stacks/core/dex/values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: dex.dev.t09.de - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - dex.dev.t09.de - secretName: dex-cert - -envVars: - - name: FORGEJO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientSecret - - name: FORGEJO_CLIENT_ID - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientID - - name: OIDC_DEX_GRAFANA_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-grafana-client - key: clientSecret - - name: OIDC_DEX_ARGO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-argo-client - key: clientSecret - - name: LOG_LEVEL - value: debug - -config: - # Set it to a valid URL - issuer: https://dex.dev.t09.de - - # See https://dexidp.io/docs/storage/ for more options - storage: - type: memory - - oauth2: - skipApprovalScreen: true - alwaysShowLoginScreen: false - - connectors: - - type: gitea - id: gitea - name: Forgejo - config: - clientID: "$FORGEJO_CLIENT_ID" - clientSecret: "$FORGEJO_CLIENT_SECRET" - redirectURI: https://dex.dev.t09.de/callback - baseURL: https://edp.buildth.ing - # loadAllGroups: true - orgs: - - name: DevFW - enablePasswordDB: false - - staticClients: - - id: controller-argocd-dex - name: ArgoCD Client - redirectURIs: - - "https://argocd.dev.t09.de/auth/callback" - secretEnv: "OIDC_DEX_ARGO_CLIENT_SECRET" - - id: grafana - redirectURIs: - - "https://grafana.dev.t09.de/login/generic_oauth" - name: "Grafana" - secretEnv: "OIDC_DEX_GRAFANA_CLIENT_SECRET" diff --git a/otc/dev.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/dev.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 30180fc..0000000 --- a/otc/dev.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/dev.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/dev.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index abc48e7..0000000 --- a/otc/dev.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://dev.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/dev.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/dev.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 13d1473..0000000 --- a/otc/dev.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index bcefb1d..0000000 --- a/otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: dev.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - dev.t09.de - secretName: forgejo-net-tls diff --git a/otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index 860acf0..0000000 --- a/otc/dev.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 873cc580-0d9c-476b-8845-8c0e11a402f2 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/dev.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/dev.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 86a49a4..0000000 --- a/otc/dev.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 873cc580-0d9c-476b-8845-8c0e11a402f2 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-dev" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'dev.t09.de' - ROOT_URL: 'https://dev.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: cc12a87a-6195-4d74-bb12-33eb79f55b1b - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/dev.t09.de/stacks/garm/garm.yaml b/otc/dev.t09.de/stacks/garm/garm.yaml deleted file mode 100644 index dfecc3a..0000000 --- a/otc/dev.t09.de/stacks/garm/garm.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: garm - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: garm - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/garm-helm - path: charts/garm - targetRevision: v0.0.4 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/garm/garm/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/garm/garm/values.yaml b/otc/dev.t09.de/stacks/garm/garm/values.yaml deleted file mode 100644 index a023aba..0000000 --- a/otc/dev.t09.de/stacks/garm/garm/values.yaml +++ /dev/null @@ -1,23 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - hosts: - - host: garm.dev.t09.de - paths: - - path: / - pathType: Prefix - tls: - - secretName: garm-net-tls - hosts: - - garm.dev.t09.de - -# Credentials and Secrets -credentials: - edgeConnect: - existingSecretName: "edge-credential" - gitea: - url: "https://dev.t09.de" # Required diff --git a/otc/dev.t09.de/stacks/observability-client/metrics-server.yaml b/otc/dev.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 726aa70..0000000 --- a/otc/dev.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/dev.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/dev.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/dev.t09.de/stacks/observability-client/vector.yaml b/otc/dev.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 43b45e3..0000000 --- a/otc/dev.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/observability-client/vector/values.yaml b/otc/dev.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 0012c76..0000000 --- a/otc/dev.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "dev" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/dev.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/dev.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index ae9fd9e..0000000 --- a/otc/dev.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/dev.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/dev.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 1e67d6e..0000000 --- a/otc/dev.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.dev.t09.de - tlsHosts: - - o12y.dev.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "dev" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/dev.t09.de/stacks/observability/grafana-operator.yaml b/otc/dev.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 19a2d2d..0000000 --- a/otc/dev.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index ae15499..0000000 --- a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 873cc580-0d9c-476b-8845-8c0e11a402f2 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - deployment: - spec: - template: - spec: - containers: - - name: grafana - env: - - name: OAUTH_CLIENT_SECRET - valueFrom: - secretKeyRef: - key: clientSecret - name: dex-grafana-client - config: - log.console: - level: debug - server: - root_url: "https://grafana.dev.t09.de" - auth: - disable_login: "true" - disable_login_form: "true" - auth.generic_oauth: - enabled: "true" - name: Forgejo - allow_sign_up: "true" - use_refresh_token: "true" - client_id: grafana - client_secret: $__env{OAUTH_CLIENT_SECRET} - scopes: openid email profile offline_access groups - auth_url: https://dex.dev.t09.de/auth - token_url: https://dex.dev.t09.de/token - api_url: https://dex.dev.t09.de/userinfo - redirect_uri: https://grafana.dev.t09.de/login/generic_oauth - role_attribute_path: "contains(groups[*], 'DevFW') && 'GrafanaAdmin' || 'None'" - allow_assign_grafana_admin: "true" - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.dev.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.dev.t09.de - secretName: grafana-net-tls diff --git a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/dev.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/dev.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 3011a2f..0000000 --- a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 110ee7e..0000000 --- a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' - - name: disk-consumption-high - rules: - - alert: disk consumption high - expr: 1-(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) > 0.6 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'disk consumption of pvc {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is high in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 58f5691..0000000 --- a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 873cc580-0d9c-476b-8845-8c0e11a402f2 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 5759093..0000000 --- a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - passwordRef: - key: password - name: simple-user-secret - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] \ No newline at end of file diff --git a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index f145b59..0000000 --- a/otc/dev.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: false - rules: {} - kubeScheduler: - create: false - rules: {} - kubernetesSystemScheduler: - create: false - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 873cc580-0d9c-476b-8845-8c0e11a402f2 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/dev.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/dev.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/dev.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/dev.t09.de/stacks/otc/cert-manager/values.yaml b/otc/dev.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/dev.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/dev.t09.de/stacks/otc/cert-manger.yaml b/otc/dev.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index b1a6148..0000000 --- a/otc/dev.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/dev.t09.de/stacks/otc/ingress-nginx.yaml b/otc/dev.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 4323d81..0000000 --- a/otc/dev.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/dev.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index 70ead69..0000000 --- a/otc/dev.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: cc12a87a-6195-4d74-bb12-33eb79f55b1b - kubernetes.io/elb.ip: 80.158.39.181 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/dev.t09.de/stacks/otc/storageclass.yaml b/otc/dev.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 07fd773..0000000 --- a/otc/dev.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/dev.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/dev.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/dev.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/dev.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/dev.t09.de/stacks/terralist/terralist.yaml b/otc/dev.t09.de/stacks/terralist/terralist.yaml deleted file mode 100644 index d13aaba..0000000 --- a/otc/dev.t09.de/stacks/terralist/terralist.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# helm upgrade --install --create-namespace --namespace terralist terralist oci://ghcr.io/terralist/helm-charts/terralist -f terralist-values.yaml -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: terralist - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: terralist - sources: - - repoURL: https://github.com/terralist/helm-charts - path: charts/terralist - targetRevision: terralist-0.8.1 - helm: - valueFiles: - - $values/otc/dev.t09.de/stacks/terralist/terralist/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/dev.t09.de/stacks/terralist/terralist/values.yaml b/otc/dev.t09.de/stacks/terralist/terralist/values.yaml deleted file mode 100644 index e7cdf51..0000000 --- a/otc/dev.t09.de/stacks/terralist/terralist/values.yaml +++ /dev/null @@ -1,87 +0,0 @@ -controllers: - main: - strategy: Recreate - containers: - app: - env: - - name: TERRALIST_OAUTH_PROVIDER - value: oidc - - name: TERRALIST_OI_CLIENT_ID - valueFrom: - secretKeyRef: - name: oidc-credentials - key: client-id - - name: TERRALIST_OI_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: oidc-credentials - key: client-secret - - name: TERRALIST_OI_AUTHORIZE_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: authorize-url - - name: TERRALIST_OI_TOKEN_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: token-url - - name: TERRALIST_OI_USERINFO_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: userinfo-url - - name: TERRALIST_OI_SCOPE - valueFrom: - secretKeyRef: - name: oidc-credentials - key: scope - - name: TERRALIST_TOKEN_SIGNING_SECRET - valueFrom: - secretKeyRef: - name: terralist-secret - key: token-signing-secret - - name: TERRALIST_COOKIE_SECRET - valueFrom: - secretKeyRef: - name: terralist-secret - key: cookie-secret - - name: TERRALIST_URL - value: https://terralist.dev.t09.de - - name: TERRALIST_SQLITE_PATH - value: /data/db.sqlite - - name: TERRALIST_LOCAL_STORE - value: /data/modules - - name: TERRALIST_PROVIDERS_ANONYMOUS_READ - value: "true" - -ingress: - main: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: terralist.dev.t09.de - paths: - - path: / - pathType: Prefix - service: - identifier: main - port: http - tls: - - hosts: - - terralist.dev.t09.de - secretName: terralist-tls-secret - -persistence: - data: - enabled: true - accessMode: ReadWriteOnce - size: 10Gi - retain: false - storageClass: "csi-disk" - annotations: - everest.io/disk-volume-type: GPSSD - globalMounts: - - path: /data diff --git a/otc/ephemeral-runners.t09.de/edfbuilder.yaml b/otc/ephemeral-runners.t09.de/edfbuilder.yaml deleted file mode 100644 index 3ef045c..0000000 --- a/otc/ephemeral-runners.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/coder.yaml b/otc/ephemeral-runners.t09.de/registry/coder.yaml deleted file mode 100644 index 7563dcb..0000000 --- a/otc/ephemeral-runners.t09.de/registry/coder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coder-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/coder" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/core.yaml b/otc/ephemeral-runners.t09.de/registry/core.yaml deleted file mode 100644 index efae97d..0000000 --- a/otc/ephemeral-runners.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/forgejo.yaml b/otc/ephemeral-runners.t09.de/registry/forgejo.yaml deleted file mode 100644 index 7b83170..0000000 --- a/otc/ephemeral-runners.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/garm.yaml b/otc/ephemeral-runners.t09.de/registry/garm.yaml deleted file mode 100644 index 1ff515b..0000000 --- a/otc/ephemeral-runners.t09.de/registry/garm.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: garm-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/garm" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/observability-client.yaml b/otc/ephemeral-runners.t09.de/registry/observability-client.yaml deleted file mode 100644 index 836509c..0000000 --- a/otc/ephemeral-runners.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/observability.yaml b/otc/ephemeral-runners.t09.de/registry/observability.yaml deleted file mode 100644 index 665313c..0000000 --- a/otc/ephemeral-runners.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/otc.yaml b/otc/ephemeral-runners.t09.de/registry/otc.yaml deleted file mode 100644 index 35e1619..0000000 --- a/otc/ephemeral-runners.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/registry/terralist.yaml b/otc/ephemeral-runners.t09.de/registry/terralist.yaml deleted file mode 100644 index bc04b5b..0000000 --- a/otc/ephemeral-runners.t09.de/registry/terralist.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: terralist-reg - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/ephemeral-runners.t09.de/stacks/terralist" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/ephemeral-runners.t09.de/stacks/coder/coder.yaml b/otc/ephemeral-runners.t09.de/stacks/coder/coder.yaml deleted file mode 100644 index 5ed0bd4..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/coder/coder.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: coder - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: coder - sources: - - repoURL: https://helm.coder.com/v2 - chart: coder - targetRevision: 2.28.3 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/coder/coder/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/coder/coder/manifests" diff --git a/otc/ephemeral-runners.t09.de/stacks/coder/coder/manifests/postgres.yaml b/otc/ephemeral-runners.t09.de/stacks/coder/coder/manifests/postgres.yaml deleted file mode 100644 index cae4b97..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/coder/coder/manifests/postgres.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Cluster -metadata: - name: coder-db - namespace: coder -spec: - instances: 1 - primaryUpdateStrategy: unsupervised - resources: - requests: - memory: "1Gi" - cpu: "1" - limits: - memory: "1Gi" - cpu: "1" - managed: - roles: - - name: coder - createdb: true - login: true - passwordSecret: - name: coder-db-user - storage: - size: 10Gi - storageClass: csi-disk ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: coder - namespace: coder -spec: - cluster: - name: coder-db - name: coder - owner: coder ---- diff --git a/otc/ephemeral-runners.t09.de/stacks/coder/coder/values.yaml b/otc/ephemeral-runners.t09.de/stacks/coder/coder/values.yaml deleted file mode 100644 index c64f2e9..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/coder/coder/values.yaml +++ /dev/null @@ -1,61 +0,0 @@ -coder: - # You can specify any environment variables you'd like to pass to Coder - # here. Coder consumes environment variables listed in - # `coder server --help`, and these environment variables are also passed - # to the workspace provisioner (so you can consume them in your Terraform - # templates for auth keys etc.). - # - # Please keep in mind that you should not set `CODER_HTTP_ADDRESS`, - # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as - # they are already set by the Helm chart and will cause conflicts. - env: - - name: CODER_ACCESS_URL - value: https://coder.ephemeral-runners.t09.de - - name: CODER_PG_CONNECTION_URL - valueFrom: - secretKeyRef: - # You'll need to create a secret called coder-db-url with your - # Postgres connection URL like: - # postgres://coder:password@postgres:5432/coder?sslmode=disable - name: coder-db-user - key: url - # For production deployments, we recommend configuring your own GitHub - # OAuth2 provider and disabling the default one. - - name: CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER_ENABLE - value: "false" - - name: EDGE_CONNECT_ENDPOINT - valueFrom: - secretKeyRef: - name: edge-credential - key: endpoint - - name: EDGE_CONNECT_USERNAME - valueFrom: - secretKeyRef: - name: edge-credential - key: username - - name: EDGE_CONNECT_PASSWORD - valueFrom: - secretKeyRef: - name: edge-credential - key: password - - # (Optional) For production deployments the access URL should be set. - # If you're just trying Coder, access the dashboard via the service IP. - # - name: CODER_ACCESS_URL - # value: "https://coder.example.com" - - #tls: - # secretNames: - # - my-tls-secret-name - service: - type: ClusterIP - - ingress: - enable: true - className: nginx - host: coder.ephemeral-runners.t09.de - annotations: - cert-manager.io/cluster-issuer: main - tls: - enable: true - secretName: coder-tls-secret diff --git a/otc/ephemeral-runners.t09.de/stacks/core/argocd.yaml b/otc/ephemeral-runners.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 8de3a85..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-9.1.5 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/core/argocd/manifests" diff --git a/otc/ephemeral-runners.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/ephemeral-runners.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index a508750..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.ephemeral-runners.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.ephemeral-runners.t09.de - secretName: argocd-net-tls diff --git a/otc/ephemeral-runners.t09.de/stacks/core/argocd/values.yaml b/otc/ephemeral-runners.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index 8afed79..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -global: - domain: argocd.ephemeral-runners.t09.de - -configs: - params: - server.insecure: true - cm: - oidc.config: | - name: FORGEJO - issuer: https://dex.ephemeral-runners.t09.de - clientID: controller-argocd-dex - clientSecret: $dex-argo-client:clientSecret - requestedScopes: - - openid - - profile - - email - - groups - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - url: https://argocd.ephemeral-runners.t09.de - rbac: - policy.csv: 'g, DevFW, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/ephemeral-runners.t09.de/stacks/core/cloudnative-pg.yaml b/otc/ephemeral-runners.t09.de/stacks/core/cloudnative-pg.yaml deleted file mode 100644 index 302b1bf..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/core/cloudnative-pg.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cloudnative-pg - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cloudnative-pg - sources: - - repoURL: https://cloudnative-pg.github.io/charts - chart: cloudnative-pg - targetRevision: 0.26.1 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/core/cloudnative-pg/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/core/dex.yaml b/otc/ephemeral-runners.t09.de/stacks/core/dex.yaml deleted file mode 100644 index c17d144..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/core/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dex - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: dex - sources: - - repoURL: https://charts.dexidp.io - chart: dex - targetRevision: 0.23.0 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/core/dex/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/core/dex/values.yaml b/otc/ephemeral-runners.t09.de/stacks/core/dex/values.yaml deleted file mode 100644 index 6c86cee..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/core/dex/values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: dex.ephemeral-runners.t09.de - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - dex.ephemeral-runners.t09.de - secretName: dex-cert - -envVars: - - name: FORGEJO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientSecret - - name: FORGEJO_CLIENT_ID - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientID - - name: OIDC_DEX_GRAFANA_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-grafana-client - key: clientSecret - - name: OIDC_DEX_ARGO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-argo-client - key: clientSecret - - name: LOG_LEVEL - value: debug - -config: - # Set it to a valid URL - issuer: https://dex.ephemeral-runners.t09.de - - # See https://dexidp.io/docs/storage/ for more options - storage: - type: memory - - oauth2: - skipApprovalScreen: true - alwaysShowLoginScreen: false - - connectors: - - type: gitea - id: gitea - name: Forgejo - config: - clientID: "$FORGEJO_CLIENT_ID" - clientSecret: "$FORGEJO_CLIENT_SECRET" - redirectURI: https://dex.ephemeral-runners.t09.de/callback - baseURL: https://edp.buildth.ing - # loadAllGroups: true - orgs: - - name: DevFW - enablePasswordDB: false - - staticClients: - - id: controller-argocd-dex - name: ArgoCD Client - redirectURIs: - - "https://argocd.ephemeral-runners.t09.de/auth/callback" - secretEnv: "OIDC_DEX_ARGO_CLIENT_SECRET" - - id: grafana - redirectURIs: - - "https://grafana.ephemeral-runners.t09.de/login/generic_oauth" - name: "Grafana" - secretEnv: "OIDC_DEX_GRAFANA_CLIENT_SECRET" diff --git a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 5f392b9..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 2c7ca20..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://ephemeral-runners.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 822dd41..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 3148ca1..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: ephemeral-runners.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - ephemeral-runners.t09.de - secretName: forgejo-net-tls diff --git a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index 0f298a4..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 8b1f5d1d-6dcb-424d-bb05-64f7987d8d45 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 954e3e6..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 8b1f5d1d-6dcb-424d-bb05-64f7987d8d45 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-ephemeral-runners" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'ephemeral-runners.t09.de' - ROOT_URL: 'https://ephemeral-runners.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 5c24d8e1-9163-4cc0-8f70-b51a49b4a292 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:259a5ad73030052d6743d54ed46d5148218d24f6 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/ephemeral-runners.t09.de/stacks/garm/garm.yaml b/otc/ephemeral-runners.t09.de/stacks/garm/garm.yaml deleted file mode 100644 index 63ccfbe..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/garm/garm.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: garm - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: garm - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/garm-helm - path: charts/garm - targetRevision: v0.0.4 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/garm/garm/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/garm/garm/values.yaml b/otc/ephemeral-runners.t09.de/stacks/garm/garm/values.yaml deleted file mode 100644 index 8f7b52e..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/garm/garm/values.yaml +++ /dev/null @@ -1,23 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - hosts: - - host: garm.ephemeral-runners.t09.de - paths: - - path: / - pathType: Prefix - tls: - - secretName: garm-net-tls - hosts: - - garm.ephemeral-runners.t09.de - -# Credentials and Secrets -credentials: - edgeConnect: - existingSecretName: "edge-credential" - gitea: - url: "https://ephemeral-runners.t09.de" # Required diff --git a/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server.yaml b/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 1db0891..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/ephemeral-runners.t09.de/stacks/observability-client/vector.yaml b/otc/ephemeral-runners.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index e81cc6e..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/observability-client/vector/values.yaml b/otc/ephemeral-runners.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index c195226..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "ephemeral-runners" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index dff3874..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index c834c36..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.ephemeral-runners.t09.de - tlsHosts: - - o12y.ephemeral-runners.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "ephemeral-runners" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 93e1542..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 13fdbd2..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 8b1f5d1d-6dcb-424d-bb05-64f7987d8d45 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - deployment: - spec: - template: - spec: - containers: - - name: grafana - env: - - name: OAUTH_CLIENT_SECRET - valueFrom: - secretKeyRef: - key: clientSecret - name: dex-grafana-client - config: - log.console: - level: debug - server: - root_url: "https://grafana.ephemeral-runners.t09.de" - auth: - disable_login: "true" - disable_login_form: "true" - auth.generic_oauth: - enabled: "true" - name: Forgejo - allow_sign_up: "true" - use_refresh_token: "true" - client_id: grafana - client_secret: $__env{OAUTH_CLIENT_SECRET} - scopes: openid email profile offline_access groups - auth_url: https://dex.ephemeral-runners.t09.de/auth - token_url: https://dex.ephemeral-runners.t09.de/token - api_url: https://dex.ephemeral-runners.t09.de/userinfo - redirect_uri: https://grafana.ephemeral-runners.t09.de/login/generic_oauth - role_attribute_path: "contains(groups[*], 'DevFW') && 'GrafanaAdmin' || 'None'" - allow_assign_grafana_admin: "true" - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.ephemeral-runners.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.ephemeral-runners.t09.de - secretName: grafana-net-tls diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 3ca6561..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 110ee7e..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' - - name: disk-consumption-high - rules: - - alert: disk consumption high - expr: 1-(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) > 0.6 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'disk consumption of pvc {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is high in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 5edc75e..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 8b1f5d1d-6dcb-424d-bb05-64f7987d8d45 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 5759093..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - passwordRef: - key: password - name: simple-user-secret - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] \ No newline at end of file diff --git a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 6d96095..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: false - rules: {} - kubeScheduler: - create: false - rules: {} - kubernetesSystemScheduler: - create: false - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 8b1f5d1d-6dcb-424d-bb05-64f7987d8d45 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/values.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/cert-manger.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index c08f4f2..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 4a59339..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index 2ce2c49..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 5c24d8e1-9163-4cc0-8f70-b51a49b4a292 - kubernetes.io/elb.ip: 80.158.38.1 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/storageclass.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index ecc9e31..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/ephemeral-runners.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/ephemeral-runners.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/ephemeral-runners.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/ephemeral-runners.t09.de/stacks/terralist/terralist.yaml b/otc/ephemeral-runners.t09.de/stacks/terralist/terralist.yaml deleted file mode 100644 index a5d740a..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/terralist/terralist.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# helm upgrade --install --create-namespace --namespace terralist terralist oci://ghcr.io/terralist/helm-charts/terralist -f terralist-values.yaml -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: terralist - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: terralist - sources: - - repoURL: https://github.com/terralist/helm-charts - path: charts/terralist - targetRevision: terralist-0.8.1 - helm: - valueFiles: - - $values/otc/ephemeral-runners.t09.de/stacks/terralist/terralist/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/ephemeral-runners.t09.de/stacks/terralist/terralist/values.yaml b/otc/ephemeral-runners.t09.de/stacks/terralist/terralist/values.yaml deleted file mode 100644 index a5edfff..0000000 --- a/otc/ephemeral-runners.t09.de/stacks/terralist/terralist/values.yaml +++ /dev/null @@ -1,87 +0,0 @@ -controllers: - main: - strategy: Recreate - containers: - app: - env: - - name: TERRALIST_OAUTH_PROVIDER - value: oidc - - name: TERRALIST_OI_CLIENT_ID - valueFrom: - secretKeyRef: - name: oidc-credentials - key: client-id - - name: TERRALIST_OI_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: oidc-credentials - key: client-secret - - name: TERRALIST_OI_AUTHORIZE_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: authorize-url - - name: TERRALIST_OI_TOKEN_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: token-url - - name: TERRALIST_OI_USERINFO_URL - valueFrom: - secretKeyRef: - name: oidc-credentials - key: userinfo-url - - name: TERRALIST_OI_SCOPE - valueFrom: - secretKeyRef: - name: oidc-credentials - key: scope - - name: TERRALIST_TOKEN_SIGNING_SECRET - valueFrom: - secretKeyRef: - name: terralist-secret - key: token-signing-secret - - name: TERRALIST_COOKIE_SECRET - valueFrom: - secretKeyRef: - name: terralist-secret - key: cookie-secret - - name: TERRALIST_URL - value: https://terralist.ephemeral-runners.t09.de - - name: TERRALIST_SQLITE_PATH - value: /data/db.sqlite - - name: TERRALIST_LOCAL_STORE - value: /data/modules - - name: TERRALIST_PROVIDERS_ANONYMOUS_READ - value: "true" - -ingress: - main: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: terralist.ephemeral-runners.t09.de - paths: - - path: / - pathType: Prefix - service: - identifier: main - port: http - tls: - - hosts: - - terralist.ephemeral-runners.t09.de - secretName: terralist-tls-secret - -persistence: - data: - enabled: true - accessMode: ReadWriteOnce - size: 10Gi - retain: false - storageClass: "csi-disk" - annotations: - everest.io/disk-volume-type: GPSSD - globalMounts: - - path: /data diff --git a/otc/final-test.t09.de/edfbuilder.yaml b/otc/final-test.t09.de/edfbuilder.yaml deleted file mode 100644 index 38bba36..0000000 --- a/otc/final-test.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/final-test.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/final-test.t09.de/registry/core.yaml b/otc/final-test.t09.de/registry/core.yaml deleted file mode 100644 index f823241..0000000 --- a/otc/final-test.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/final-test.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/final-test.t09.de/registry/forgejo.yaml b/otc/final-test.t09.de/registry/forgejo.yaml deleted file mode 100644 index 77230a9..0000000 --- a/otc/final-test.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/final-test.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/final-test.t09.de/registry/observability-client.yaml b/otc/final-test.t09.de/registry/observability-client.yaml deleted file mode 100644 index d457329..0000000 --- a/otc/final-test.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/final-test.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/final-test.t09.de/registry/observability.yaml b/otc/final-test.t09.de/registry/observability.yaml deleted file mode 100644 index d321291..0000000 --- a/otc/final-test.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/final-test.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/final-test.t09.de/registry/otc.yaml b/otc/final-test.t09.de/registry/otc.yaml deleted file mode 100644 index c610e94..0000000 --- a/otc/final-test.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/final-test.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/final-test.t09.de/stacks/core/argocd.yaml b/otc/final-test.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index b305716..0000000 --- a/otc/final-test.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/final-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/final-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 556a08e..0000000 --- a/otc/final-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.final-test.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.final-test.t09.de - secretName: argocd-net-tls diff --git a/otc/final-test.t09.de/stacks/core/argocd/values.yaml b/otc/final-test.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index b7769c3..0000000 --- a/otc/final-test.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -global: - domain: argocd.final-test.t09.de - -configs: - params: - server.insecure: true - cm: - oidc.config: | - name: FORGEJO - issuer: https://dex.final-test.t09.de - clientID: controller-argocd-dex - clientSecret: $dex-argo-client:clientSecret - requestedScopes: - - openid - - profile - - email - - groups - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - url: https://argocd.final-test.t09.de - rbac: - policy.csv: 'g, DevFW, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/final-test.t09.de/stacks/core/dex.yaml b/otc/final-test.t09.de/stacks/core/dex.yaml deleted file mode 100644 index bacffd4..0000000 --- a/otc/final-test.t09.de/stacks/core/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dex - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: dex - sources: - - repoURL: https://charts.dexidp.io - chart: dex - targetRevision: 0.23.0 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/core/dex/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/final-test.t09.de/stacks/core/dex/values.yaml b/otc/final-test.t09.de/stacks/core/dex/values.yaml deleted file mode 100644 index ce0a8de..0000000 --- a/otc/final-test.t09.de/stacks/core/dex/values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: dex.final-test.t09.de - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - dex.final-test.t09.de - secretName: dex-cert - -envVars: - - name: FORGEJO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientSecret - - name: FORGEJO_CLIENT_ID - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientID - - name: OIDC_DEX_GRAFANA_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-grafana-client - key: clientSecret - - name: OIDC_DEX_ARGO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-argo-client - key: clientSecret - - name: LOG_LEVEL - value: debug - -config: - # Set it to a valid URL - issuer: https://dex.final-test.t09.de - - # See https://dexidp.io/docs/storage/ for more options - storage: - type: memory - - oauth2: - skipApprovalScreen: true - alwaysShowLoginScreen: false - - connectors: - - type: gitea - id: gitea - name: Forgejo - config: - clientID: "$FORGEJO_CLIENT_ID" - clientSecret: "$FORGEJO_CLIENT_SECRET" - redirectURI: https://dex.final-test.t09.de/callback - baseURL: https://edp.buildth.ing - # loadAllGroups: true - orgs: - - name: DevFW - enablePasswordDB: false - - staticClients: - - id: controller-argocd-dex - name: ArgoCD Client - redirectURIs: - - "https://argocd.final-test.t09.de/auth/callback" - secretEnv: "OIDC_DEX_ARGO_CLIENT_SECRET" - - id: grafana - redirectURIs: - - "https://grafana.final-test.t09.de/login/generic_oauth" - name: "Grafana" - secretEnv: "OIDC_DEX_GRAFANA_CLIENT_SECRET" diff --git a/otc/final-test.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/final-test.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 49c0007..0000000 --- a/otc/final-test.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/final-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/final-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index b1cf32e..0000000 --- a/otc/final-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://final-test.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/final-test.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/final-test.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index ab7e7dc..0000000 --- a/otc/final-test.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 52f7121..0000000 --- a/otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: final-test.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - final-test.t09.de - secretName: forgejo-net-tls diff --git a/otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index 7cad018..0000000 --- a/otc/final-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 2e68a219-8c2c-4ef6-982e-6371fa897626 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/final-test.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/final-test.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 2079b72..0000000 --- a/otc/final-test.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 2e68a219-8c2c-4ef6-982e-6371fa897626 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-final-test" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'final-test.t09.de' - ROOT_URL: 'https://final-test.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: b01d3105-7d9b-4118-9168-588639f22b47 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/final-test.t09.de/stacks/observability-client/metrics-server.yaml b/otc/final-test.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 421a182..0000000 --- a/otc/final-test.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/final-test.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/final-test.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/final-test.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/final-test.t09.de/stacks/observability-client/vector.yaml b/otc/final-test.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index adea8bb..0000000 --- a/otc/final-test.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/final-test.t09.de/stacks/observability-client/vector/values.yaml b/otc/final-test.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index fddc62e..0000000 --- a/otc/final-test.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "final-test" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/final-test.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/final-test.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index 79880b1..0000000 --- a/otc/final-test.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/final-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/final-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 314582d..0000000 --- a/otc/final-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.final-test.t09.de - tlsHosts: - - o12y.final-test.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "final-test" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/final-test.t09.de/stacks/observability/grafana-operator.yaml b/otc/final-test.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index c75b567..0000000 --- a/otc/final-test.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 4042bb7..0000000 --- a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 2e68a219-8c2c-4ef6-982e-6371fa897626 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - deployment: - spec: - template: - spec: - containers: - - name: grafana - env: - - name: OAUTH_CLIENT_SECRET - valueFrom: - secretKeyRef: - key: clientSecret - name: dex-grafana-client - config: - log.console: - level: debug - server: - root_url: "https://grafana.final-test.t09.de" - auth: - disable_login: "true" - disable_login_form: "true" - auth.generic_oauth: - enabled: "true" - name: Forgejo - allow_sign_up: "true" - use_refresh_token: "true" - client_id: grafana - client_secret: $__env{OAUTH_CLIENT_SECRET} - scopes: openid email profile offline_access groups - auth_url: https://dex.final-test.t09.de/auth - token_url: https://dex.final-test.t09.de/token - api_url: https://dex.final-test.t09.de/userinfo - redirect_uri: https://grafana.final-test.t09.de/login/generic_oauth - role_attribute_path: "contains(groups[*], 'DevFW') && 'GrafanaAdmin' || 'None'" - allow_assign_grafana_admin: "true" - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.final-test.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.final-test.t09.de - secretName: grafana-net-tls diff --git a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/final-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index c99f87e..0000000 --- a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 110ee7e..0000000 --- a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' - - name: disk-consumption-high - rules: - - alert: disk consumption high - expr: 1-(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) > 0.6 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'disk consumption of pvc {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is high in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 1ba1e30..0000000 --- a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 2e68a219-8c2c-4ef6-982e-6371fa897626 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 5759093..0000000 --- a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - passwordRef: - key: password - name: simple-user-secret - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] \ No newline at end of file diff --git a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index d509126..0000000 --- a/otc/final-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 2e68a219-8c2c-4ef6-982e-6371fa897626 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/final-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/final-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/final-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/final-test.t09.de/stacks/otc/cert-manager/values.yaml b/otc/final-test.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/final-test.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/final-test.t09.de/stacks/otc/cert-manger.yaml b/otc/final-test.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 285e355..0000000 --- a/otc/final-test.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/final-test.t09.de/stacks/otc/ingress-nginx.yaml b/otc/final-test.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 692dc86..0000000 --- a/otc/final-test.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/final-test.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/final-test.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/final-test.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index f28e783..0000000 --- a/otc/final-test.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: b01d3105-7d9b-4118-9168-588639f22b47 - kubernetes.io/elb.ip: 164.30.1.79 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/final-test.t09.de/stacks/otc/storageclass.yaml b/otc/final-test.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index eed6318..0000000 --- a/otc/final-test.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/final-test.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/final-test.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/final-test.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/final-test.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/forgejo-test.t09.de/edfbuilder.yaml b/otc/forgejo-test.t09.de/edfbuilder.yaml deleted file mode 100644 index a06531d..0000000 --- a/otc/forgejo-test.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/forgejo-test.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/forgejo-test.t09.de/registry/core.yaml b/otc/forgejo-test.t09.de/registry/core.yaml deleted file mode 100644 index 88547cc..0000000 --- a/otc/forgejo-test.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/forgejo-test.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/forgejo-test.t09.de/registry/forgejo.yaml b/otc/forgejo-test.t09.de/registry/forgejo.yaml deleted file mode 100644 index 6d517cc..0000000 --- a/otc/forgejo-test.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/forgejo-test.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/forgejo-test.t09.de/registry/observability-client.yaml b/otc/forgejo-test.t09.de/registry/observability-client.yaml deleted file mode 100644 index a5908be..0000000 --- a/otc/forgejo-test.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/forgejo-test.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/forgejo-test.t09.de/registry/observability.yaml b/otc/forgejo-test.t09.de/registry/observability.yaml deleted file mode 100644 index c80934f..0000000 --- a/otc/forgejo-test.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/forgejo-test.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/forgejo-test.t09.de/registry/otc.yaml b/otc/forgejo-test.t09.de/registry/otc.yaml deleted file mode 100644 index 8a95b89..0000000 --- a/otc/forgejo-test.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/forgejo-test.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/forgejo-test.t09.de/stacks/core/argocd.yaml b/otc/forgejo-test.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 1381fdd..0000000 --- a/otc/forgejo-test.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/forgejo-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/forgejo-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 086f26d..0000000 --- a/otc/forgejo-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.forgejo-test.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.forgejo-test.t09.de - secretName: argocd-net-tls diff --git a/otc/forgejo-test.t09.de/stacks/core/argocd/values.yaml b/otc/forgejo-test.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index 566e0b8..0000000 --- a/otc/forgejo-test.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.forgejo-test.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.forgejo-test.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index f2d5aa2..0000000 --- a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 1f7e430..0000000 --- a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://forgejo-test.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 5065bac..0000000 --- a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 263add5..0000000 --- a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: forgejo-test.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - forgejo-test.t09.de - secretName: forgejo-net-tls diff --git a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index 04be392..0000000 --- a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: SATA - everest.io/crypt-key-id: b0e0a24d-d5a6-4a16-b745-8af2ed8bf46d -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index ea53801..0000000 --- a/otc/forgejo-test.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: b0e0a24d-d5a6-4a16-b745-8af2ed8bf46d - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-forgejo-test" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'forgejo-test.t09.de' - ROOT_URL: 'https://forgejo-test.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 44374e25-d0f4-4251-aa27-ad2f4aaf68a1 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index e185c35..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/vector.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 220d39c..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/vector/values.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 4d43aa0..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "forgejo-test" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index 53d804a..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 11a3411..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.forgejo-test.t09.de - tlsHosts: - - o12y.forgejo-test.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "forgejo-test" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator.yaml b/otc/forgejo-test.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 319944b..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 852fe58..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: SATA - everest.io/crypt-key-id: b0e0a24d-d5a6-4a16-b745-8af2ed8bf46d - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.forgejo-test.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.forgejo-test.t09.de - secretName: grafana-net-tls diff --git a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index bf4171e..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 9419609..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 33d8096..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: b0e0a24d-d5a6-4a16-b745-8af2ed8bf46d - everest.io/disk-volume-type: SATA - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 670dc1f..0000000 --- a/otc/forgejo-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: b0e0a24d-d5a6-4a16-b745-8af2ed8bf46d - everest.io/disk-volume-type: SATA - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/forgejo-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/forgejo-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/forgejo-test.t09.de/stacks/otc/cert-manager/values.yaml b/otc/forgejo-test.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/forgejo-test.t09.de/stacks/otc/cert-manger.yaml b/otc/forgejo-test.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index d609f77..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx.yaml b/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index d30d858..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index e2d9045..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 44374e25-d0f4-4251-aa27-ad2f4aaf68a1 - kubernetes.io/elb.ip: 80.158.60.63 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/forgejo-test.t09.de/stacks/otc/storageclass.yaml b/otc/forgejo-test.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 2e483b7..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/forgejo-test.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/forgejo-test.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/forgejo-test.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/forgejo-test.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/garm-test.t09.de/edfbuilder.yaml b/otc/garm-test.t09.de/edfbuilder.yaml deleted file mode 100644 index 1346915..0000000 --- a/otc/garm-test.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/garm-test.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/garm-test.t09.de/registry/core.yaml b/otc/garm-test.t09.de/registry/core.yaml deleted file mode 100644 index 3b91c9a..0000000 --- a/otc/garm-test.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/garm-test.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/garm-test.t09.de/registry/forgejo.yaml b/otc/garm-test.t09.de/registry/forgejo.yaml deleted file mode 100644 index c86b0cd..0000000 --- a/otc/garm-test.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/garm-test.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/garm-test.t09.de/registry/observability-client.yaml b/otc/garm-test.t09.de/registry/observability-client.yaml deleted file mode 100644 index 914f573..0000000 --- a/otc/garm-test.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/garm-test.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/garm-test.t09.de/registry/observability.yaml b/otc/garm-test.t09.de/registry/observability.yaml deleted file mode 100644 index 8070f88..0000000 --- a/otc/garm-test.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/garm-test.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/garm-test.t09.de/registry/otc.yaml b/otc/garm-test.t09.de/registry/otc.yaml deleted file mode 100644 index af18833..0000000 --- a/otc/garm-test.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/garm-test.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/garm-test.t09.de/stacks/core/argocd.yaml b/otc/garm-test.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 3b3e981..0000000 --- a/otc/garm-test.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/garm-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/garm-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 16b43b1..0000000 --- a/otc/garm-test.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.garm-test.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.garm-test.t09.de - secretName: argocd-net-tls diff --git a/otc/garm-test.t09.de/stacks/core/argocd/values.yaml b/otc/garm-test.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index 39bb56a..0000000 --- a/otc/garm-test.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -global: - domain: argocd.garm-test.t09.de - -configs: - params: - server.insecure: true - cm: - oidc.config: | - name: FORGEJO - issuer: https://dex.garm-test.t09.de - clientID: controller-argocd-dex - clientSecret: $dex-argo-client:clientSecret - requestedScopes: - - openid - - profile - - email - - groups - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - url: https://argocd.garm-test.t09.de - rbac: - policy.csv: 'g, DevFW, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/garm-test.t09.de/stacks/core/dex.yaml b/otc/garm-test.t09.de/stacks/core/dex.yaml deleted file mode 100644 index 2c1a6bb..0000000 --- a/otc/garm-test.t09.de/stacks/core/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dex - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: dex - sources: - - repoURL: https://charts.dexidp.io - chart: dex - targetRevision: 0.23.0 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/core/dex/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/garm-test.t09.de/stacks/core/dex/values.yaml b/otc/garm-test.t09.de/stacks/core/dex/values.yaml deleted file mode 100644 index ccfbc07..0000000 --- a/otc/garm-test.t09.de/stacks/core/dex/values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: dex.garm-test.t09.de - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - dex.garm-test.t09.de - secretName: dex-cert - -envVars: - - name: FORGEJO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientSecret - - name: FORGEJO_CLIENT_ID - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientID - - name: OIDC_DEX_GRAFANA_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-grafana-client - key: clientSecret - - name: OIDC_DEX_ARGO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-argo-client - key: clientSecret - - name: LOG_LEVEL - value: debug - -config: - # Set it to a valid URL - issuer: https://dex.garm-test.t09.de - - # See https://dexidp.io/docs/storage/ for more options - storage: - type: memory - - oauth2: - skipApprovalScreen: true - alwaysShowLoginScreen: false - - connectors: - - type: gitea - id: gitea - name: Forgejo - config: - clientID: "$FORGEJO_CLIENT_ID" - clientSecret: "$FORGEJO_CLIENT_SECRET" - redirectURI: https://dex.garm-test.t09.de/callback - baseURL: https://edp.buildth.ing - # loadAllGroups: true - orgs: - - name: DevFW - enablePasswordDB: false - - staticClients: - - id: controller-argocd-dex - name: ArgoCD Client - redirectURIs: - - "https://argocd.garm-test.t09.de/auth/callback" - secretEnv: "OIDC_DEX_ARGO_CLIENT_SECRET" - - id: grafana - redirectURIs: - - "https://grafana.garm-test.t09.de/login/generic_oauth" - name: "Grafana" - secretEnv: "OIDC_DEX_GRAFANA_CLIENT_SECRET" diff --git a/otc/garm-test.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/garm-test.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 54df547..0000000 --- a/otc/garm-test.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/garm-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/garm-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 77beffd..0000000 --- a/otc/garm-test.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://garm-test.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/garm-test.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 9b6210f..0000000 --- a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 494023c..0000000 --- a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: garm-test.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - garm-test.t09.de - secretName: forgejo-net-tls diff --git a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index da9e45a..0000000 --- a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 86a0aeae-35c6-4ec6-a302-dcf79ce6f008 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index f644208..0000000 --- a/otc/garm-test.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 86a0aeae-35c6-4ec6-a302-dcf79ce6f008 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-garm-test" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'garm-test.t09.de' - ROOT_URL: 'https://garm-test.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 9e445ee1-a6cc-4057-942e-dcdc96111dfc - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/garm-forgejo-test:webhook-3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/garm-test.t09.de/stacks/observability-client/metrics-server.yaml b/otc/garm-test.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 09e0d8a..0000000 --- a/otc/garm-test.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/garm-test.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/garm-test.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/garm-test.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/garm-test.t09.de/stacks/observability-client/vector.yaml b/otc/garm-test.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 0c8063d..0000000 --- a/otc/garm-test.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/garm-test.t09.de/stacks/observability-client/vector/values.yaml b/otc/garm-test.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 79c04e7..0000000 --- a/otc/garm-test.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "garm-test" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index 1821bda..0000000 --- a/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 0a01215..0000000 --- a/otc/garm-test.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.garm-test.t09.de - tlsHosts: - - o12y.garm-test.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "garm-test" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/garm-test.t09.de/stacks/observability/grafana-operator.yaml b/otc/garm-test.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index fcc339c..0000000 --- a/otc/garm-test.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 333c7a7..0000000 --- a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: 86a0aeae-35c6-4ec6-a302-dcf79ce6f008 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - deployment: - spec: - template: - spec: - containers: - - name: grafana - env: - - name: OAUTH_CLIENT_SECRET - valueFrom: - secretKeyRef: - key: clientSecret - name: dex-grafana-client - config: - log.console: - level: debug - server: - root_url: "https://grafana.garm-test.t09.de" - auth: - disable_login: "true" - disable_login_form: "true" - auth.generic_oauth: - enabled: "true" - name: Forgejo - allow_sign_up: "true" - use_refresh_token: "true" - client_id: grafana - client_secret: $__env{OAUTH_CLIENT_SECRET} - scopes: openid email profile offline_access groups - auth_url: https://dex.garm-test.t09.de/auth - token_url: https://dex.garm-test.t09.de/token - api_url: https://dex.garm-test.t09.de/userinfo - redirect_uri: https://grafana.garm-test.t09.de/login/generic_oauth - role_attribute_path: "contains(groups[*], 'DevFW') && 'GrafanaAdmin' || 'None'" - allow_assign_grafana_admin: "true" - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.garm-test.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.garm-test.t09.de - secretName: grafana-net-tls diff --git a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/garm-test.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 0955909..0000000 --- a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 110ee7e..0000000 --- a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' - - name: disk-consumption-high - rules: - - alert: disk consumption high - expr: 1-(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) > 0.6 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'disk consumption of pvc {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is high in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 2f97d86..0000000 --- a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 86a0aeae-35c6-4ec6-a302-dcf79ce6f008 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 5759093..0000000 --- a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - passwordRef: - key: password - name: simple-user-secret - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] \ No newline at end of file diff --git a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 8345460..0000000 --- a/otc/garm-test.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 86a0aeae-35c6-4ec6-a302-dcf79ce6f008 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/garm-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/garm-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/garm-test.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/garm-test.t09.de/stacks/otc/cert-manager/values.yaml b/otc/garm-test.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/garm-test.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/garm-test.t09.de/stacks/otc/cert-manger.yaml b/otc/garm-test.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 68526b0..0000000 --- a/otc/garm-test.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/garm-test.t09.de/stacks/otc/ingress-nginx.yaml b/otc/garm-test.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 29b4406..0000000 --- a/otc/garm-test.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/garm-test.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/garm-test.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/garm-test.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index 97a7163..0000000 --- a/otc/garm-test.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 9e445ee1-a6cc-4057-942e-dcdc96111dfc - kubernetes.io/elb.ip: 164.30.20.88 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/garm-test.t09.de/stacks/otc/storageclass.yaml b/otc/garm-test.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 9ae450a..0000000 --- a/otc/garm-test.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/garm-test.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/garm-test.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/garm-test.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/garm-test.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/observability.t09.de/edfbuilder.yaml b/otc/observability.t09.de/edfbuilder.yaml deleted file mode 100644 index f6e7d07..0000000 --- a/otc/observability.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/observability.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/observability.t09.de/registry/core.yaml b/otc/observability.t09.de/registry/core.yaml deleted file mode 100644 index 2ec1bbe..0000000 --- a/otc/observability.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/observability.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/observability.t09.de/registry/forgejo.yaml b/otc/observability.t09.de/registry/forgejo.yaml deleted file mode 100644 index 06f30a8..0000000 --- a/otc/observability.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/observability.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/observability.t09.de/registry/observability-client.yaml b/otc/observability.t09.de/registry/observability-client.yaml deleted file mode 100644 index fa47a14..0000000 --- a/otc/observability.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/observability.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/observability.t09.de/registry/observability.yaml b/otc/observability.t09.de/registry/observability.yaml deleted file mode 100644 index 946d22c..0000000 --- a/otc/observability.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/observability.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/observability.t09.de/registry/otc.yaml b/otc/observability.t09.de/registry/otc.yaml deleted file mode 100644 index 453c9c3..0000000 --- a/otc/observability.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/observability.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/observability.t09.de/stacks/core/argocd.yaml b/otc/observability.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 9b65574..0000000 --- a/otc/observability.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/observability.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/observability.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index b77acb1..0000000 --- a/otc/observability.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.observability.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.observability.t09.de - secretName: argocd-net-tls diff --git a/otc/observability.t09.de/stacks/core/argocd/values.yaml b/otc/observability.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index 35f6c47..0000000 --- a/otc/observability.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -global: - domain: argocd.observability.t09.de - -configs: - params: - server.insecure: true - cm: - oidc.config: | - name: FORGEJO - issuer: https://dex.observability.t09.de - clientID: controller-argocd-dex - clientSecret: $dex-argo-client:clientSecret - requestedScopes: - - openid - - profile - - email - - groups - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - url: https://argocd.observability.t09.de - rbac: - policy.csv: 'g, DevFW, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/observability.t09.de/stacks/core/dex.yaml b/otc/observability.t09.de/stacks/core/dex.yaml deleted file mode 100644 index d64175a..0000000 --- a/otc/observability.t09.de/stacks/core/dex.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: dex - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: dex - sources: - - repoURL: https://charts.dexidp.io - chart: dex - targetRevision: 0.23.0 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/core/dex/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/observability.t09.de/stacks/core/dex/values.yaml b/otc/observability.t09.de/stacks/core/dex/values.yaml deleted file mode 100644 index b376cb7..0000000 --- a/otc/observability.t09.de/stacks/core/dex/values.yaml +++ /dev/null @@ -1,76 +0,0 @@ -ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: main - hosts: - - host: dex.observability.t09.de - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - dex.observability.t09.de - secretName: dex-cert - -envVars: - - name: FORGEJO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientSecret - - name: FORGEJO_CLIENT_ID - valueFrom: - secretKeyRef: - name: dex-forgejo-client - key: clientID - - name: OIDC_DEX_GRAFANA_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-grafana-client - key: clientSecret - - name: OIDC_DEX_ARGO_CLIENT_SECRET - valueFrom: - secretKeyRef: - name: dex-argo-client - key: clientSecret - - name: LOG_LEVEL - value: debug - -config: - # Set it to a valid URL - issuer: https://dex.observability.t09.de - - # See https://dexidp.io/docs/storage/ for more options - storage: - type: memory - - oauth2: - skipApprovalScreen: true - alwaysShowLoginScreen: false - - connectors: - - type: gitea - id: gitea - name: Forgejo - config: - clientID: "$FORGEJO_CLIENT_ID" - clientSecret: "$FORGEJO_CLIENT_SECRET" - redirectURI: https://dex.observability.t09.de/callback - baseURL: https://edp.buildth.ing - # loadAllGroups: true - orgs: - - name: DevFW - enablePasswordDB: false - - staticClients: - - id: controller-argocd-dex - name: ArgoCD Client - redirectURIs: - - "https://argocd.observability.t09.de/auth/callback" - secretEnv: "OIDC_DEX_ARGO_CLIENT_SECRET" - - id: grafana - redirectURIs: - - "https://grafana.observability.t09.de/login/generic_oauth" - name: "Grafana" - secretEnv: "OIDC_DEX_GRAFANA_CLIENT_SECRET" diff --git a/otc/observability.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/observability.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index f3990ca..0000000 --- a/otc/observability.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/observability.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/observability.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index eb495b6..0000000 --- a/otc/observability.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://observability.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/observability.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/observability.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 21a4f02..0000000 --- a/otc/observability.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index a6b2c15..0000000 --- a/otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: observability.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - observability.t09.de - secretName: forgejo-net-tls diff --git a/otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index 8030068..0000000 --- a/otc/observability.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - concurrencyPolicy: "Forbid" - successfulJobsHistoryLimit: 5 - failedJobsHistoryLimit: 5 - startingDeadlineSeconds: 600 # 10 minutes - jobTemplate: - spec: - # 60 min until backup - 10 min start - (backoffLimit * activeDeadlineSeconds) - some time sync buffer - activeDeadlineSeconds: 1350 - backoffLimit: 2 - ttlSecondsAfterFinished: 259200 # - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET} /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: b6a1d001-da76-48d7-a9ea-079512888d33 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/observability.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/observability.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 0c0a93c..0000000 --- a/otc/observability.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: b6a1d001-da76-48d7-a9ea-079512888d33 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-observability" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'observability.t09.de' - ROOT_URL: 'https://observability.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 96e475fa-4711-4fa6-9002-7c2c8a16b4bf - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/observability.t09.de/stacks/observability-client/metrics-server.yaml b/otc/observability.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 39b4ef1..0000000 --- a/otc/observability.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/observability.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/observability.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/observability.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/observability.t09.de/stacks/observability-client/vector.yaml b/otc/observability.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index bf66d12..0000000 --- a/otc/observability.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/observability.t09.de/stacks/observability-client/vector/values.yaml b/otc/observability.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index b63000f..0000000 --- a/otc/observability.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "observability" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/observability.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/observability.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index 39a6878..0000000 --- a/otc/observability.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/observability.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/observability.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 57be6a3..0000000 --- a/otc/observability.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "observability" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/observability.t09.de/stacks/observability/grafana-operator.yaml b/otc/observability.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 6564f36..0000000 --- a/otc/observability.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index ec191c8..0000000 --- a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,75 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: GPSSD - everest.io/crypt-key-id: b6a1d001-da76-48d7-a9ea-079512888d33 - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - deployment: - spec: - template: - spec: - containers: - - name: grafana - env: - - name: OAUTH_CLIENT_SECRET - valueFrom: - secretKeyRef: - key: clientSecret - name: dex-grafana-client - config: - log.console: - level: debug - server: - root_url: "https://grafana.observability.t09.de" - auth: - disable_login: "true" - disable_login_form: "true" - auth.generic_oauth: - enabled: "true" - name: Forgejo - allow_sign_up: "true" - use_refresh_token: "true" - client_id: grafana - client_secret: $__env{OAUTH_CLIENT_SECRET} - scopes: openid email profile offline_access groups - auth_url: https://dex.observability.t09.de/auth - token_url: https://dex.observability.t09.de/token - api_url: https://dex.observability.t09.de/userinfo - redirect_uri: https://grafana.observability.t09.de/login/generic_oauth - role_attribute_path: "contains(groups[*], 'DevFW') && 'GrafanaAdmin' || 'None'" - allow_assign_grafana_admin: "true" - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.observability.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.observability.t09.de - secretName: grafana-net-tls diff --git a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/observability.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/observability.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 7bfd636..0000000 --- a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index 110ee7e..0000000 --- a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' - - name: forgejo-backup - rules: - - alert: forgejo s3 backup job failed - expr: max by(cluster_environment) (kube_job_status_failed{job_name=~"forgejo-s3-backup-.*"}) != 0 - for: 30s - labels: - severity: critical - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo s3 backup job failed in cluster environment {{ $labels.cluster_environment }}' - - name: disk-consumption-high - rules: - - alert: disk consumption high - expr: 1-(kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes) > 0.6 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'disk consumption of pvc {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is high in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 13ffe4a..0000000 --- a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: b6a1d001-da76-48d7-a9ea-079512888d33 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 5759093..0000000 --- a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - passwordRef: - key: password - name: simple-user-secret - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] \ No newline at end of file diff --git a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index c47ef72..0000000 --- a/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1230 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: b6a1d001-da76-48d7-a9ea-079512888d33 - everest.io/disk-volume-type: GPSSD - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - routes: - - matchers: - - severity=~"critical|major" - receiver: outlook - receivers: - - name: blackhole - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: false - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: false - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/observability.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/observability.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/observability.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/observability.t09.de/stacks/otc/cert-manager/values.yaml b/otc/observability.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/observability.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/observability.t09.de/stacks/otc/cert-manger.yaml b/otc/observability.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index bafd684..0000000 --- a/otc/observability.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/observability.t09.de/stacks/otc/ingress-nginx.yaml b/otc/observability.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 13f5014..0000000 --- a/otc/observability.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/observability.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/observability.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/observability.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index 8511140..0000000 --- a/otc/observability.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 96e475fa-4711-4fa6-9002-7c2c8a16b4bf - kubernetes.io/elb.ip: 80.158.46.144 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/observability.t09.de/stacks/otc/storageclass.yaml b/otc/observability.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 62521a6..0000000 --- a/otc/observability.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/observability.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/observability.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/observability.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/observability.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/osctest.t09.de/edfbuilder.yaml b/otc/osctest.t09.de/edfbuilder.yaml deleted file mode 100644 index a3aab36..0000000 --- a/otc/osctest.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/osctest.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/osctest.t09.de/registry/core.yaml b/otc/osctest.t09.de/registry/core.yaml deleted file mode 100644 index 7590ab7..0000000 --- a/otc/osctest.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/osctest.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/osctest.t09.de/registry/forgejo.yaml b/otc/osctest.t09.de/registry/forgejo.yaml deleted file mode 100644 index 45bddcc..0000000 --- a/otc/osctest.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/osctest.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/osctest.t09.de/registry/observability-client.yaml b/otc/osctest.t09.de/registry/observability-client.yaml deleted file mode 100644 index 18bea1c..0000000 --- a/otc/osctest.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/osctest.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/osctest.t09.de/registry/observability.yaml b/otc/osctest.t09.de/registry/observability.yaml deleted file mode 100644 index aa6539f..0000000 --- a/otc/osctest.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/osctest.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/osctest.t09.de/registry/otc.yaml b/otc/osctest.t09.de/registry/otc.yaml deleted file mode 100644 index c756c28..0000000 --- a/otc/osctest.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/osctest.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/osctest.t09.de/stacks/core/argocd.yaml b/otc/osctest.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 33604f9..0000000 --- a/otc/osctest.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/argocd-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28-depends - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/osctest.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/osctest.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index aaf8cf6..0000000 --- a/otc/osctest.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.osctest.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.osctest.t09.de - secretName: argocd-net-tls diff --git a/otc/osctest.t09.de/stacks/core/argocd/values.yaml b/otc/osctest.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index d75b728..0000000 --- a/otc/osctest.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.osctest.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.osctest.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/osctest.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/osctest.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 75383d6..0000000 --- a/otc/osctest.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/osctest.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/osctest.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index fc10389..0000000 --- a/otc/osctest.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://osctest.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/osctest.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/osctest.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 0e69c43..0000000 --- a/otc/osctest.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,38 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/forgejo-helm.git - path: . - # first check out the desired version (example v9.0.0): https://code.forgejo.org/forgejo-helm/forgejo-helm/src/tag/v9.0.0/Chart.yaml - # (note that the chart version is not the same as the forgejo application version, which is specified in the above Chart.yaml file) - # then use the devops pipeline and select development, forgejo and the desired version (example v9.0.0): - # https://edp.buildth.ing/DevFW-CICD/devops-pipelines/actions?workflow=update-helm-depends.yaml&actor=0&status=0 - # finally update the desired version here and include "-depends", it is created by the devops pipeline. - # why do we have an added "-depends" tag? it resolves rate limitings when downloading helm OCI dependencies - targetRevision: v12.0.0-depends - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/osctest.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/osctest.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 14a5ca5..0000000 --- a/otc/osctest.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: osctest.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - osctest.t09.de - secretName: forgejo-net-tls diff --git a/otc/osctest.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/osctest.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 17d9930..0000000 --- a/otc/osctest.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,188 +0,0 @@ -# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - annotations: - everest.io/crypt-key-id: 3c467979-b066-40a7-bb04-3f4ff67caac7 - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-osctest" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'osctest.t09.de' - ROOT_URL: 'https://osctest.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 89ce7d8b-aa62-4930-8900-9568e9762974 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/osctest.t09.de/stacks/observability-client/metrics-server.yaml b/otc/osctest.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 23dc004..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/osctest.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/osctest.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/osctest.t09.de/stacks/observability-client/vector.yaml b/otc/osctest.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 52b71b6..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/osctest.t09.de/stacks/observability-client/vector/values.yaml b/otc/osctest.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 9b17f31..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "osctest" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/osctest.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/osctest.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index 9f605ab..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 0d55b56..0000000 --- a/otc/osctest.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.osctest.t09.de - tlsHosts: - - o12y.osctest.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "osctest" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/osctest.t09.de/stacks/observability/grafana-operator.yaml b/otc/osctest.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index a9b6f65..0000000 --- a/otc/osctest.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 4872e49..0000000 --- a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.osctest.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.osctest.t09.de - secretName: grafana-net-tls diff --git a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/osctest.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 5690bae..0000000 --- a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index f884bd9..0000000 --- a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 450ec2e..0000000 --- a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 3c467979-b066-40a7-bb04-3f4ff67caac7 - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 \ No newline at end of file diff --git a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index fb237b2..0000000 --- a/otc/osctest.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1306 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 3c467979-b066-40a7-bb04-3f4ff67caac7 - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/osctest.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/osctest.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/osctest.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/osctest.t09.de/stacks/otc/cert-manager/values.yaml b/otc/osctest.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/osctest.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/osctest.t09.de/stacks/otc/cert-manger.yaml b/otc/osctest.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 0b62c02..0000000 --- a/otc/osctest.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/osctest.t09.de/stacks/otc/ingress-nginx.yaml b/otc/osctest.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 7e9c062..0000000 --- a/otc/osctest.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://edp.buildth.ing/DevFW-CICD/ingress-nginx-helm.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1-depends - helm: - valueFiles: - - $values/otc/osctest.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/osctest.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/osctest.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index 63cf186..0000000 --- a/otc/osctest.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 89ce7d8b-aa62-4930-8900-9568e9762974 - kubernetes.io/elb.ip: 80.158.23.200 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/osctest.t09.de/stacks/otc/storageclass.yaml b/otc/osctest.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 972cc68..0000000 --- a/otc/osctest.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/osctest.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/osctest.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/osctest.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/osctest.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/restore-test-4.t09.de/edfbuilder.yaml b/otc/restore-test-4.t09.de/edfbuilder.yaml deleted file mode 100644 index 857fc88..0000000 --- a/otc/restore-test-4.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/restore-test-4.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/restore-test-4.t09.de/registry/core.yaml b/otc/restore-test-4.t09.de/registry/core.yaml deleted file mode 100644 index 3964dee..0000000 --- a/otc/restore-test-4.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/restore-test-4.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/restore-test-4.t09.de/registry/forgejo.yaml b/otc/restore-test-4.t09.de/registry/forgejo.yaml deleted file mode 100644 index f4ab0fa..0000000 --- a/otc/restore-test-4.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/restore-test-4.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/restore-test-4.t09.de/registry/observability-client.yaml b/otc/restore-test-4.t09.de/registry/observability-client.yaml deleted file mode 100644 index 9ea5f0a..0000000 --- a/otc/restore-test-4.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/restore-test-4.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/restore-test-4.t09.de/registry/observability.yaml b/otc/restore-test-4.t09.de/registry/observability.yaml deleted file mode 100644 index be1ea77..0000000 --- a/otc/restore-test-4.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/restore-test-4.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/restore-test-4.t09.de/registry/otc.yaml b/otc/restore-test-4.t09.de/registry/otc.yaml deleted file mode 100644 index 4f445c5..0000000 --- a/otc/restore-test-4.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/restore-test-4.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/restore-test-4.t09.de/stacks/core/argocd.yaml b/otc/restore-test-4.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index d64d0e1..0000000 --- a/otc/restore-test-4.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/restore-test-4.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/restore-test-4.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index c43889e..0000000 --- a/otc/restore-test-4.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.restore-test-4.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.restore-test-4.t09.de - secretName: argocd-net-tls diff --git a/otc/restore-test-4.t09.de/stacks/core/argocd/values.yaml b/otc/restore-test-4.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index 8ae1ab7..0000000 --- a/otc/restore-test-4.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.restore-test-4.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.restore-test-4.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index 1719a90..0000000 --- a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 27819f3..0000000 --- a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://restore-test-4.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 8fee4ac..0000000 --- a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index a949f44..0000000 --- a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: restore-test-4.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - restore-test-4.t09.de - secretName: forgejo-net-tls diff --git a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index eefbdf2..0000000 --- a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,83 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - jobTemplate: - spec: - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET}/packages /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea - annotations: - everest.io/disk-volume-type: SATA - everest.io/crypt-key-id: ac9d389c-6639-4394-ad83-e63fa5ca5679 -spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index a78adeb..0000000 --- a/otc/restore-test-4.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: ac9d389c-6639-4394-ad83-e63fa5ca5679 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-restore-test-4" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'restore-test-4.t09.de' - ROOT_URL: 'https://restore-test-4.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 5aaf3c41-cd75-40c9-85a9-6edc428eb16c - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index a66620f..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/vector.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 400669f..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/vector/values.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 6f5e23c..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "restore-test-4" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index aacb2a0..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 11b946b..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.restore-test-4.t09.de - tlsHosts: - - o12y.restore-test-4.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "restore-test-4" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator.yaml b/otc/restore-test-4.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index 8a5a4b1..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 70c5f54..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - metadata: - annotations: - everest.io/disk-volume-type: SATA - spec: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.restore-test-4.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.restore-test-4.t09.de - secretName: grafana-net-tls diff --git a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 01b9139..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index f884bd9..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index d710048..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: ac9d389c-6639-4394-ad83-e63fa5ca5679 - everest.io/disk-volume-type: SATA - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 diff --git a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 70dc3bc..0000000 --- a/otc/restore-test-4.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1229 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: ac9d389c-6639-4394-ad83-e63fa5ca5679 - everest.io/disk-volume-type: SATA - storage: - storageClassName: csi-disk - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "outlook" - routes: - - matchers: - - alertname=~".*" - receiver: outlook - receivers: - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: false - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/restore-test-4.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/restore-test-4.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/restore-test-4.t09.de/stacks/otc/cert-manager/values.yaml b/otc/restore-test-4.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/restore-test-4.t09.de/stacks/otc/cert-manger.yaml b/otc/restore-test-4.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 18f0bc6..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx.yaml b/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index b8ccf95..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index c3d782d..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 5aaf3c41-cd75-40c9-85a9-6edc428eb16c - kubernetes.io/elb.ip: 164.30.20.209 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/restore-test-4.t09.de/stacks/otc/storageclass.yaml b/otc/restore-test-4.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 582d513..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/restore-test-4.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/restore-test-4.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/restore-test-4.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/restore-test-4.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/retain-me.t09.de/edfbuilder.yaml b/otc/retain-me.t09.de/edfbuilder.yaml deleted file mode 100644 index 452bc09..0000000 --- a/otc/retain-me.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/retain-me.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/retain-me.t09.de/registry/core.yaml b/otc/retain-me.t09.de/registry/core.yaml deleted file mode 100644 index 6b5c45e..0000000 --- a/otc/retain-me.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/retain-me.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/retain-me.t09.de/registry/forgejo.yaml b/otc/retain-me.t09.de/registry/forgejo.yaml deleted file mode 100644 index c9769b7..0000000 --- a/otc/retain-me.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/retain-me.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/retain-me.t09.de/registry/observability-client.yaml b/otc/retain-me.t09.de/registry/observability-client.yaml deleted file mode 100644 index 17f36cf..0000000 --- a/otc/retain-me.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/retain-me.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/retain-me.t09.de/registry/observability.yaml b/otc/retain-me.t09.de/registry/observability.yaml deleted file mode 100644 index 04aceb7..0000000 --- a/otc/retain-me.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/retain-me.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/retain-me.t09.de/registry/otc.yaml b/otc/retain-me.t09.de/registry/otc.yaml deleted file mode 100644 index 2c5c32a..0000000 --- a/otc/retain-me.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/retain-me.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/retain-me.t09.de/stacks/core/argocd.yaml b/otc/retain-me.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index 6656d1e..0000000 --- a/otc/retain-me.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/retain-me.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/retain-me.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index d0ae014..0000000 --- a/otc/retain-me.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.retain-me.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.retain-me.t09.de - secretName: argocd-net-tls diff --git a/otc/retain-me.t09.de/stacks/core/argocd/values.yaml b/otc/retain-me.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index fa2cd13..0000000 --- a/otc/retain-me.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.retain-me.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.retain-me.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/retain-me.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/retain-me.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index a7b4a72..0000000 --- a/otc/retain-me.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/retain-me.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/retain-me.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 5089a32..0000000 --- a/otc/retain-me.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://retain-me.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/retain-me.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 24085ff..0000000 --- a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 910071f..0000000 --- a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: retain-me.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - retain-me.t09.de - secretName: forgejo-net-tls diff --git a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index ba0aebd..0000000 --- a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,79 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - jobTemplate: - spec: - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET}/packages /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index 3996105..0000000 --- a/otc/retain-me.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: d58bb688-59dc-4894-91cf-c41e1a6ef019 - everest.io/disk-volume-type: GPSSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-retain-me" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'retain-me.t09.de' - ROOT_URL: 'https://retain-me.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: 47149a21-4632-4761-b5ea-7092a9d69984 - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/retain-me.t09.de/stacks/observability-client/metrics-server.yaml b/otc/retain-me.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 6bf0df8..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/retain-me.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/retain-me.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/retain-me.t09.de/stacks/observability-client/vector.yaml b/otc/retain-me.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 4cc6740..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/retain-me.t09.de/stacks/observability-client/vector/values.yaml b/otc/retain-me.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 4453eda..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "retain-me" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index ebd792e..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index 74b5dbf..0000000 --- a/otc/retain-me.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.retain-me.t09.de - tlsHosts: - - o12y.retain-me.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "retain-me" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/retain-me.t09.de/stacks/observability/grafana-operator.yaml b/otc/retain-me.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index ebd799a..0000000 --- a/otc/retain-me.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index 5e814d2..0000000 --- a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.retain-me.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.retain-me.t09.de - secretName: grafana-net-tls diff --git a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/retain-me.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 3558014..0000000 --- a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index f884bd9..0000000 --- a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 81e90d1..0000000 --- a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: d58bb688-59dc-4894-91cf-c41e1a6ef019 - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 \ No newline at end of file diff --git a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 9522b88..0000000 --- a/otc/retain-me.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1227 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: d58bb688-59dc-4894-91cf-c41e1a6ef019 - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "outlook" - routes: - - matchers: - - alertname=~".*" - receiver: outlook - receivers: - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/retain-me.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/retain-me.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/retain-me.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/retain-me.t09.de/stacks/otc/cert-manager/values.yaml b/otc/retain-me.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/retain-me.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/retain-me.t09.de/stacks/otc/cert-manger.yaml b/otc/retain-me.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 757ffd9..0000000 --- a/otc/retain-me.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/retain-me.t09.de/stacks/otc/ingress-nginx.yaml b/otc/retain-me.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 8c3d33a..0000000 --- a/otc/retain-me.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/retain-me.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/retain-me.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/retain-me.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index ce9ff94..0000000 --- a/otc/retain-me.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: 47149a21-4632-4761-b5ea-7092a9d69984 - kubernetes.io/elb.ip: 80.158.45.246 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/retain-me.t09.de/stacks/otc/storageclass.yaml b/otc/retain-me.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 1318847..0000000 --- a/otc/retain-me.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/retain-me.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/retain-me.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/retain-me.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/retain-me.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file diff --git a/otc/testing-2.t09.de/edfbuilder.yaml b/otc/testing-2.t09.de/edfbuilder.yaml deleted file mode 100644 index 606a402..0000000 --- a/otc/testing-2.t09.de/edfbuilder.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: edfbuilder - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/testing-2.t09.de/registry" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/testing-2.t09.de/registry/core.yaml b/otc/testing-2.t09.de/registry/core.yaml deleted file mode 100644 index 3dc5fbb..0000000 --- a/otc/testing-2.t09.de/registry/core.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: core - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/testing-2.t09.de/stacks/core" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/testing-2.t09.de/registry/forgejo.yaml b/otc/testing-2.t09.de/registry/forgejo.yaml deleted file mode 100644 index 6067419..0000000 --- a/otc/testing-2.t09.de/registry/forgejo.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/testing-2.t09.de/stacks/forgejo" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/testing-2.t09.de/registry/observability-client.yaml b/otc/testing-2.t09.de/registry/observability-client.yaml deleted file mode 100644 index 63cc743..0000000 --- a/otc/testing-2.t09.de/registry/observability-client.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability-client - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/testing-2.t09.de/stacks/observability-client" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/testing-2.t09.de/registry/observability.yaml b/otc/testing-2.t09.de/registry/observability.yaml deleted file mode 100644 index ac1cab3..0000000 --- a/otc/testing-2.t09.de/registry/observability.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: observability - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/testing-2.t09.de/stacks/observability" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/testing-2.t09.de/registry/otc.yaml b/otc/testing-2.t09.de/registry/otc.yaml deleted file mode 100644 index a141fb2..0000000 --- a/otc/testing-2.t09.de/registry/otc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otc - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - name: in-cluster - namespace: argocd - source: - path: "otc/testing-2.t09.de/stacks/otc" - repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" - targetRevision: HEAD - project: default - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/otc/testing-2.t09.de/stacks/core/argocd.yaml b/otc/testing-2.t09.de/stacks/core/argocd.yaml deleted file mode 100644 index afaf000..0000000 --- a/otc/testing-2.t09.de/stacks/core/argocd.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: argocd - sources: - - repoURL: https://github.com/argoproj/argo-helm.git - path: charts/argo-cd - # TODO: RIRE Can be updated when https://github.com/argoproj/argo-cd/issues/20790 is fixed and merged - # As logout make problems, it is suggested to switch from path based routing to an own argocd domain, - # similar to the CNOE amazon reference implementation and in our case, Forgejo - targetRevision: argo-cd-7.8.28 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/core/argocd/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/core/argocd/manifests" \ No newline at end of file diff --git a/otc/testing-2.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml b/otc/testing-2.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml deleted file mode 100644 index 29d1d5d..0000000 --- a/otc/testing-2.t09.de/stacks/core/argocd/manifests/argocd-server-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/backend-protocol: HTTP - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - - name: argocd-server - namespace: argocd -spec: - ingressClassName: nginx - rules: - - host: argocd.testing-2.t09.de - http: - paths: - - backend: - service: - name: argocd-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - argocd.testing-2.t09.de - secretName: argocd-net-tls diff --git a/otc/testing-2.t09.de/stacks/core/argocd/values.yaml b/otc/testing-2.t09.de/stacks/core/argocd/values.yaml deleted file mode 100644 index 3555d1f..0000000 --- a/otc/testing-2.t09.de/stacks/core/argocd/values.yaml +++ /dev/null @@ -1,33 +0,0 @@ -global: - domain: argocd.testing-2.t09.de - -configs: - params: - server.insecure: true - cm: - application.resourceTrackingMethod: annotation - timeout.reconciliation: 60s - resource.exclusions: | - - apiGroups: - - "*" - kinds: - - ProviderConfigUsage - - apiGroups: - - cilium.io - kinds: - - CiliumIdentity - clusters: - - "*" - accounts.provider-argocd: apiKey - url: https://argocd.testing-2.t09.de - rbac: - policy.csv: 'g, provider-argocd, role:admin' - - tls: - certificates: - -notifications: - enabled: false - -dex: - enabled: false diff --git a/otc/testing-2.t09.de/stacks/forgejo/forgejo-runner.yaml b/otc/testing-2.t09.de/stacks/forgejo/forgejo-runner.yaml deleted file mode 100644 index ead3469..0000000 --- a/otc/testing-2.t09.de/stacks/forgejo/forgejo-runner.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-runner - namespace: argocd - labels: - env: dev - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/forgejo/forgejo-runner" diff --git a/otc/testing-2.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml b/otc/testing-2.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml deleted file mode 100644 index 7c1129c..0000000 --- a/otc/testing-2.t09.de/stacks/forgejo/forgejo-runner/dind-docker.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: forgejo-runner - name: forgejo-runner - namespace: gitea -spec: - # Two replicas means that if one is busy, the other can pick up jobs. - replicas: 3 - selector: - matchLabels: - app: forgejo-runner - strategy: {} - template: - metadata: - creationTimestamp: null - labels: - app: forgejo-runner - spec: - restartPolicy: Always - volumes: - - name: docker-certs - emptyDir: {} - - name: runner-data - emptyDir: {} - # Initialise our configuration file using offline registration - # https://forgejo.org/docs/v1.21/admin/actions/#offline-registration - initContainers: - - name: runner-register - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - forgejo-runner \ - register \ - --no-interactive \ - --token ${RUNNER_SECRET} \ - --name ${RUNNER_NAME} \ - --instance ${FORGEJO_INSTANCE_URL} \ - --labels docker:docker://node:20-bookworm,ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04,ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - env: - - name: RUNNER_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: RUNNER_SECRET - valueFrom: - secretKeyRef: - name: forgejo-runner-token - key: token - - name: FORGEJO_INSTANCE_URL - value: https://testing-2.t09.de - volumeMounts: - - name: runner-data - mountPath: /data - containers: - - name: runner - image: code.forgejo.org/forgejo/runner:6.4.0 - command: - - "sh" - - "-c" - - | - while ! nc -z 127.0.0.1 2376 config.yml ; - sed -i -e "s|privileged: .*|privileged: true|" config.yml - sed -i -e "s|network: .*|network: host|" config.yml ; - sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://127.0.0.1:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ; - sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ; - sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ; - /bin/forgejo-runner --config config.yml daemon - securityContext: - allowPrivilegeEscalation: true - privileged: true - readOnlyRootFilesystem: false - runAsGroup: 0 - runAsNonRoot: false - runAsUser: 0 - env: - - name: DOCKER_HOST - value: tcp://localhost:2376 - - name: DOCKER_CERT_PATH - value: /certs/client - - name: DOCKER_TLS_VERIFY - value: "1" - volumeMounts: - - name: docker-certs - mountPath: /certs - - name: runner-data - mountPath: /data - - name: daemon - image: docker:28.0.4-dind - env: - - name: DOCKER_TLS_CERTDIR - value: /certs - securityContext: - privileged: true - volumeMounts: - - name: docker-certs - mountPath: /certs diff --git a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server.yaml b/otc/testing-2.t09.de/stacks/forgejo/forgejo-server.yaml deleted file mode 100644 index 2a682a7..0000000 --- a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: gitea - sources: - - repoURL: https://code.forgejo.org/forgejo-helm/forgejo-helm.git - path: . - targetRevision: v12.0.0 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests" \ No newline at end of file diff --git a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml b/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml deleted file mode 100644 index 09aa0f0..0000000 --- a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-ingress.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-body-size: 512m - cert-manager.io/cluster-issuer: main - - name: forgejo-server - namespace: gitea -spec: - ingressClassName: nginx - rules: - - host: testing-2.t09.de - http: - paths: - - backend: - service: - name: forgejo-server-http - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - testing-2.t09.de - secretName: forgejo-net-tls diff --git a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml b/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml deleted file mode 100644 index ba0aebd..0000000 --- a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/manifests/forgejo-s3-backup-cronjob.yaml +++ /dev/null @@ -1,79 +0,0 @@ -apiVersion: batch/v1 -kind: CronJob -metadata: - name: forgejo-s3-backup - namespace: gitea -spec: - schedule: "0 1 * * *" - jobTemplate: - spec: - template: - spec: - containers: - - name: rclone - image: rclone/rclone:1.70 - imagePullPolicy: IfNotPresent - env: - - name: SOURCE_BUCKET - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: bucket-name - - name: AWS_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: AWS_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - volumeMounts: - - name: rclone-config - mountPath: /config/rclone - readOnly: true - - name: backup-dir - mountPath: /backup - readOnly: false - command: - - /bin/sh - - -c - - | - rclone sync source:/${SOURCE_BUCKET}/packages /backup -v --ignore-checksum - restartPolicy: OnFailure - volumes: - - name: rclone-config - secret: - secretName: forgejo-s3-backup - - name: backup-dir - persistentVolumeClaim: - claimName: s3-backup ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: s3-backup - namespace: gitea -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi ---- -apiVersion: v1 -kind: Secret -metadata: - name: forgejo-s3-backup - namespace: gitea -type: Opaque -stringData: - rclone.conf: | - [source] - type = s3 - provider = HuaweiOBS - env_auth = true - endpoint = obs.eu-de.otc.t-systems.com - region = eu-de - acl = private diff --git a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/values.yaml b/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/values.yaml deleted file mode 100644 index cddd91c..0000000 --- a/otc/testing-2.t09.de/stacks/forgejo/forgejo-server/values.yaml +++ /dev/null @@ -1,191 +0,0 @@ -# This is only used for deploying older versions of infra-catalogue where the bucket name is not an output of the terragrunt modules# We use recreate to make sure only one instance with one version is running, because Forgejo might break or data gets inconsistant. -strategy: - type: Recreate - -redis-cluster: - enabled: false - -redis: - enabled: false - -postgresql: - enabled: false - -postgresql-ha: - enabled: false - -persistence: - enabled: true - size: 200Gi - storageClass: csi-disk - annotations: - everest.io/crypt-key-id: 8eba2a39-b46e-4222-8e67-ca5676982ac6 - everest.io/disk-volume-type: SSD - -test: - enabled: false - -deployment: - env: - - name: SSL_CERT_DIR - value: /etc/ssl/forgejo - -extraVolumeMounts: - - mountPath: /etc/ssl/forgejo - name: custom-database-certs-volume - readOnly: true - -extraVolumes: - - name: custom-database-certs-volume - secret: - secretName: custom-database-certs - -gitea: - metrics: - enabled: true - serviceMonitor: - enabled: true - additionalConfigFromEnvs: - - name: FORGEJO__storage__MINIO_ACCESS_KEY_ID - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: access-key - - name: FORGEJO__storage__MINIO_SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - name: forgejo-cloud-credentials - key: secret-key - - name: FORGEJO__queue__CONN_STR - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__session__PROVIDER_CONFIG - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__cache__HOST - valueFrom: - secretKeyRef: - name: redis-forgejo-cloud-credentials - key: connection-string - - name: FORGEJO__database__HOST - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: host_port - - name: FORGEJO__database__NAME - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: database - - name: FORGEJO__database__USER - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: username - - name: FORGEJO__database__PASSWD - valueFrom: - secretKeyRef: - name: postgres-forgejo-cloud-credentials - key: password - # Either 'elasticsearch' or 'bleve' (go in memory search engine) - - name: FORGEJO__indexer__ISSUE_INDEXER_TYPE - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: type - - name: FORGEJO__indexer__ISSUE_INDEXER_CONN_STR - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: connection-string - - name: FORGEJO__indexer__ISSUE_INDEXER_ENABLED - valueFrom: - secretKeyRef: - name: elasticsearch-cloud-credentials - key: enabled - - name: FORGEJO__mailer__PASSWD - valueFrom: - secretKeyRef: - name: email-user-credentials - key: connection-string - - admin: - existingSecret: gitea-credential - - config: - APP_NAME: 'EDP' - APP_SLOGAN: 'Build your thing in minutes' - storage: - MINIO_ENDPOINT: obs.eu-de.otc.t-systems.com:443 - STORAGE_TYPE: minio - MINIO_LOCATION: eu-de - MINIO_BUCKET: "edp-forgejo-non-prod-testing-2" - MINIO_USE_SSL: true - - queue: - TYPE: redis - - session: - PROVIDER: redis - - cache: - ENABLED: true - ADAPTER: redis - - service: - DISABLE_REGISTRATION: true - ENABLE_NOTIFY_MAIL: true - - other: - SHOW_FOOTER_VERSION: false - SHOW_FOOTER_TEMPLATE_LOAD_TIME: false - - database: - DB_TYPE: postgres - SSL_MODE: verify-ca - - server: - DOMAIN: 'testing-2.t09.de' - ROOT_URL: 'https://testing-2.t09.de:443' - - mailer: - ENABLED: true - USER: ipcei-cis-devfw@mms-support.de - PROTOCOL: smtps - FROM: '"IPCEI CIS DevFW" ' - SMTP_ADDR: mail.mms-support.de - SMTP_PORT: 465 - -service: - ssh: - type: LoadBalancer - nodePort: 32222 - externalTrafficPolicy: Cluster - annotations: - kubernetes.io/elb.id: d4e0dc72-272a-445b-bf0e-64883d3c88ca - -image: - pullPolicy: "IfNotPresent" - # Overrides the image tag whose default is the chart appVersion. - #tag: "8.0.3" - # Adds -rootless suffix to image name - # rootless: true - fullOverride: edp.buildth.ing/devfw-cicd/edp-forgejo:v1.1.0-edp-v11.0.3 - -forgejo: - runner: - enabled: true - image: - tag: latest - # replicas: 3 - config: - runner: - labels: - - docker:docker://node:16-bullseye - - self-hosted:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04 - - ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04 diff --git a/otc/testing-2.t09.de/stacks/observability-client/metrics-server.yaml b/otc/testing-2.t09.de/stacks/observability-client/metrics-server.yaml deleted file mode 100644 index 63a0bda..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/metrics-server.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: metrics-server - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: metrics-server - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - targetRevision: 3.12.2 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/observability-client/metrics-server/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/testing-2.t09.de/stacks/observability-client/metrics-server/values.yaml b/otc/testing-2.t09.de/stacks/observability-client/metrics-server/values.yaml deleted file mode 100644 index e96ba41..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/metrics-server/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -metrics: - enabled: true -serviceMonitor: - enabled: true diff --git a/otc/testing-2.t09.de/stacks/observability-client/vector.yaml b/otc/testing-2.t09.de/stacks/observability-client/vector.yaml deleted file mode 100644 index 2c1b91c..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/vector.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vector - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: observability - sources: - - chart: vector - repoURL: https://helm.vector.dev - targetRevision: 0.43.0 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/observability-client/vector/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/testing-2.t09.de/stacks/observability-client/vector/values.yaml b/otc/testing-2.t09.de/stacks/observability-client/vector/values.yaml deleted file mode 100644 index 90cf3e8..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/vector/values.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# -- Enable deployment of vector -role: Agent -dataDir: /vector-data-dir -resources: {} -args: - - -w - - --config-dir - - /etc/vector/ -env: - - name: VECTOR_USER - valueFrom: - secretKeyRef: - name: simple-user-secret - key: username - - name: VECTOR_PASSWORD - valueFrom: - secretKeyRef: - name: simple-user-secret - key: password -containerPorts: - - name: prom-exporter - containerPort: 9090 - protocol: TCP -service: - enabled: false -customConfig: - data_dir: /vector-data-dir - api: - enabled: false - address: 0.0.0.0:8686 - playground: true - sources: - k8s: - type: kubernetes_logs - internal_metrics: - type: internal_metrics - transforms: - parser: - type: remap - inputs: [k8s] - source: | - ._msg = parse_json(.message) ?? .message - del(.message) - # Add the cluster environment to the log event - .cluster_environment = "testing-2" - sinks: - vlogs: - type: elasticsearch - inputs: [parser] - endpoints: - - https://o12y.observability.t09.de/insert/elasticsearch/ - auth: - strategy: basic - user: ${VECTOR_USER} - password: ${VECTOR_PASSWORD} - mode: bulk - api_version: v8 - compression: gzip - healthcheck: - enabled: false - request: - headers: - AccountID: "0" - ProjectID: "0" - query: - _msg_field: _msg - _time_field: _time - _stream_fields: cluster_environment,kubernetes.container_name,kubernetes.namespace \ No newline at end of file diff --git a/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack.yaml b/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack.yaml deleted file mode 100644 index c488210..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vm-client - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/manifests" diff --git a/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml b/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml deleted file mode 100644 index f13b0b6..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/manifests/simple-user-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: simple-user-secret - namespace: observability -type: Opaque -stringData: - username: simple-user - password: simple-password diff --git a/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/values.yaml b/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/values.yaml deleted file mode 100644 index f4de047..0000000 --- a/otc/testing-2.t09.de/stacks/observability-client/vm-client-stack/values.yaml +++ /dev/null @@ -1,1288 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: false - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: false - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: false - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: false - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: false - # -- (object) Alertmanager configuration - config: - route: - receiver: "blackhole" - # group_by: ["alertgroup", "job"] - # group_wait: 30s - # group_interval: 5m - # repeat_interval: 12h - # routes: - # - # # Duplicate code_owner routes to teams - # # These will send alerts to team channels but continue - # # processing through the rest of the tree to handled by on-call - # - matchers: - # - code_owner_channel!="" - # - severity=~"info|warning|critical" - # group_by: ["code_owner_channel", "alertgroup", "job"] - # receiver: slack-code-owners - # - # # Standard on-call routes - # - matchers: - # - severity=~"info|warning|critical" - # receiver: slack-monitoring - # continue: true - # - # inhibit_rules: - # - target_matchers: - # - severity=~"warning|info" - # source_matchers: - # - severity=critical - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - severity=warning - # equal: - # - cluster - # - namespace - # - alertname - # - target_matchers: - # - severity=info - # source_matchers: - # - alertname=InfoInhibitor - # equal: - # - cluster - # - namespace - - receivers: - - name: blackhole - # - name: "slack-monitoring" - # slack_configs: - # - channel: "#channel" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook_url }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - name: slack-code-owners - # slack_configs: - # - channel: "#{{ .CommonLabels.code_owner_channel }}" - # send_resolved: true - # title: '{{ template "slack.monzo.title" . }}' - # icon_emoji: '{{ template "slack.monzo.icon_emoji" . }}' - # color: '{{ template "slack.monzo.color" . }}' - # text: '{{ template "slack.monzo.text" . }}' - # actions: - # - type: button - # text: "Runbook :green_book:" - # url: "{{ (index .Alerts 0).Annotations.runbook }}" - # - type: button - # text: "Query :mag:" - # url: "{{ (index .Alerts 0).GeneratorURL }}" - # - type: button - # text: "Dashboard :grafana:" - # url: "{{ (index .Alerts 0).Annotations.dashboard }}" - # - type: button - # text: "Silence :no_bell:" - # url: '{{ template "__alert_silence_link" . }}' - # - type: button - # text: '{{ template "slack.monzo.link_button_text" . }}' - # url: "{{ .CommonAnnotations.link_url }}" - # - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: false - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: false - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.testing-2.t09.de - tlsHosts: - - o12y.testing-2.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: true - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - # [] - - url: https://o12y.observability.t09.de/api/v1/write - basicAuth: - username: - name: simple-user-secret - key: username - password: - name: simple-user-secret - key: password - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: - cluster_environment: "testing-2" - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: false - annotations: {} - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: victoria-logs - access: proxy - type: VictoriaLogs - url: http://vlogs-victorialogs:9428 - version: 1 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: false - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - # - # plugins: - # - victoriametrics-metrics-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/testing-2.t09.de/stacks/observability/grafana-operator.yaml b/otc/testing-2.t09.de/stacks/observability/grafana-operator.yaml deleted file mode 100644 index c6cae9b..0000000 --- a/otc/testing-2.t09.de/stacks/observability/grafana-operator.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: grafana-operator - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: grafana-operator - repoURL: ghcr.io/grafana/helm-charts - targetRevision: v5.18.0 - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests" diff --git a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml b/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml deleted file mode 100644 index b348ff7..0000000 --- a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/argocd.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: argocd -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" diff --git a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml b/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml deleted file mode 100644 index d2f1cc7..0000000 --- a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/grafana.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: Grafana -metadata: - name: grafana - labels: - dashboards: "grafana" -spec: - persistentVolumeClaim: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi - ingress: - metadata: - annotations: - cert-manager.io/cluster-issuer: main - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - spec: - ingressClassName: nginx - rules: - - host: grafana.testing-2.t09.de - http: - paths: - - backend: - service: - name: grafana-service - port: - number: 3000 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.testing-2.t09.de - secretName: grafana-net-tls diff --git a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml b/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml deleted file mode 100644 index c13d6a2..0000000 --- a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/ingress-nginx.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: ingress-nginx -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" diff --git a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml b/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml deleted file mode 100644 index 4018fbd..0000000 --- a/otc/testing-2.t09.de/stacks/observability/grafana-operator/manifests/victoria-logs.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: victoria-logs -spec: - instanceSelector: - matchLabels: - dashboards: "grafana" - url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" diff --git a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack.yaml b/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack.yaml deleted file mode 100644 index 9c43e96..0000000 --- a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: o12y - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - destination: - name: in-cluster - namespace: observability - sources: - - chart: victoria-metrics-k8s-stack - repoURL: https://victoriametrics.github.io/helm-charts/ - targetRevision: 0.48.1 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests" diff --git a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml b/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml deleted file mode 100644 index f884bd9..0000000 --- a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/alerts.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMRule -metadata: - name: forgejo-alerts - namespace: observability -spec: - groups: - - name: forgejo - rules: - - alert: forgejo down - expr: sum by(cluster_environment) (up{pod=~"forgejo-server-.*"}) < 1 - for: 30s - labels: - severity: major - job: "{{ $labels.job }}" - annotations: - value: "{{ $value }}" - description: 'forgejo is down in cluster environment {{ $labels.cluster_environment }}' diff --git a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml b/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml deleted file mode 100644 index 0c7feab..0000000 --- a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/vlogs.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VLogs -metadata: - name: victorialogs - namespace: observability -spec: - retentionPeriod: "12" - removePvcAfterDelete: true - storageMetadata: - annotations: - everest.io/crypt-key-id: 8eba2a39-b46e-4222-8e67-ca5676982ac6 - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 50Gi - resources: - requests: - memory: 500Mi - cpu: 500m - limits: - memory: 10Gi - cpu: 2 \ No newline at end of file diff --git a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml b/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml deleted file mode 100644 index 2ea5d76..0000000 --- a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/manifests/vmauth.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: operator.victoriametrics.com/v1beta1 -kind: VMUser -metadata: - name: simple-user - namespace: observability -spec: - username: simple-user - password: simple-password - targetRefs: - - static: - url: http://vmsingle-o12y:8429 - paths: ["/api/v1/write"] - - static: - url: http://vlogs-victorialogs:9428 - paths: ["/insert/elasticsearch/.*"] diff --git a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/values.yaml b/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/values.yaml deleted file mode 100644 index 9c29ee4..0000000 --- a/otc/testing-2.t09.de/stacks/observability/victoria-k8s-stack/values.yaml +++ /dev/null @@ -1,1227 +0,0 @@ -global: - # -- Cluster label to use for dashboards and rules - clusterLabel: cluster - # -- Global license configuration - license: - key: "" - keyRef: {} - # name: secret-license - # key: license - cluster: - # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/) - dnsDomain: cluster.local. - -# -- Override chart name -nameOverride: "" -# -- Resource full name override -fullnameOverride: "o12y" -# -- Tenant to use for Grafana datasources and remote write -tenant: "0" -# -- If this chart is used in "Argocd" with "releaseName" field then -# VMServiceScrapes couldn't select the proper services. -# For correct working need set value 'argocdReleaseOverride=$ARGOCD_APP_NAME' -argocdReleaseOverride: "o12y" - -# -- VictoriaMetrics Operator dependency chart configuration. More values can be found [here](https://docs.victoriametrics.com/helm/victoriametrics-operator#parameters). Also checkout [here](https://docs.victoriametrics.com/operator/vars) possible ENV variables to configure operator behaviour -victoria-metrics-operator: - enabled: true - crds: - plain: true - cleanup: - enabled: true - image: - repository: bitnami/kubectl - pullPolicy: IfNotPresent - serviceMonitor: - enabled: true - operator: - # -- By default, operator converts prometheus-operator objects. - disable_prometheus_converter: false - # group pinguin added the admissionWebhooks value according to https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#argocd-issues - admissionWebhooks: - certManager: - enabled: true - -defaultDashboards: - # -- Enable custom dashboards installation - enabled: true - defaultTimezone: utc - labels: {} - annotations: {} - grafanaOperator: - # -- Create dashboards as CRDs (requires grafana-operator to be installed) - enabled: true - spec: - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - # -- Create dashboards as ConfigMap despite dependency it requires is not installed - dashboards: - victoriametrics-vmalert: - enabled: true - victoriametrics-operator: - enabled: true - # -- In ArgoCD using client-side apply this dashboard reaches annotations size limit and causes k8s issues without server side apply - # See [this issue](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack#metadataannotations-too-long-must-have-at-most-262144-bytes-on-dashboards) - node-exporter-full: - enabled: true - -# -- Create default rules for monitoring the cluster -defaultRules: - # -- Labels, which are used for grouping results of the queries. Note that these labels are joined with `.Values.global.clusterLabel` - additionalGroupByLabels: [] - create: true - - # -- Common properties for VMRule groups - group: - spec: - # -- Optional HTTP URL parameters added to each rule request - params: {} - - # -- Common properties for all VMRules - rule: - spec: - # -- Additional labels for all VMRules - labels: {} - # -- Additional annotations for all VMRules - annotations: {} - - # -- Common properties for VMRules alerts - alerting: - spec: - # -- Additional labels for VMRule alerts - labels: {} - # -- Additional annotations for VMRule alerts - annotations: {} - - # -- Common properties for VMRules recording rules - recording: - spec: - # -- Additional labels for VMRule recording rules - labels: {} - # -- Additional annotations for VMRule recording rules - annotations: {} - - # -- Per rule properties - rules: {} - # CPUThrottlingHigh: - # create: true - # spec: - # for: 15m - # labels: - # severity: critical - # -- Rule group properties - groups: - etcd: - create: true - # -- Common properties for all rules in a group - rules: {} - # spec: - # annotations: - # dashboard: https://example.com/dashboard/1 - general: - create: true - rules: {} - k8sContainerCpuLimits: - create: true - rules: {} - k8sContainerCpuRequests: - create: true - rules: {} - k8sContainerCpuUsageSecondsTotal: - create: true - rules: {} - k8sContainerMemoryLimits: - create: true - rules: {} - k8sContainerMemoryRequests: - create: true - rules: {} - k8sContainerMemoryRss: - create: true - rules: {} - k8sContainerMemoryCache: - create: true - rules: {} - k8sContainerMemoryWorkingSetBytes: - create: true - rules: {} - k8sContainerMemorySwap: - create: true - rules: {} - k8sPodOwner: - create: true - rules: {} - k8sContainerResource: - create: true - rules: {} - kubeApiserver: - create: true - rules: {} - kubeApiserverAvailability: - create: true - rules: {} - kubeApiserverBurnrate: - create: true - rules: {} - kubeApiserverHistogram: - create: true - rules: {} - kubeApiserverSlos: - create: true - rules: {} - kubelet: - create: true - rules: {} - kubePrometheusGeneral: - create: true - rules: {} - kubePrometheusNodeRecording: - create: true - rules: {} - kubernetesApps: - create: true - rules: {} - targetNamespace: ".*" - kubernetesResources: - create: true - rules: {} - kubernetesStorage: - create: true - rules: {} - targetNamespace: ".*" - kubernetesSystem: - create: true - rules: {} - kubernetesSystemKubelet: - create: true - rules: {} - kubernetesSystemApiserver: - create: true - rules: {} - kubernetesSystemControllerManager: - create: true - rules: {} - kubeScheduler: - create: true - rules: {} - kubernetesSystemScheduler: - create: true - rules: {} - kubeStateMetrics: - create: true - rules: {} - nodeNetwork: - create: true - rules: {} - node: - create: true - rules: {} - vmagent: - create: true - rules: {} - vmsingle: - create: true - rules: {} - vmcluster: - create: true - rules: {} - vmHealth: - create: true - rules: {} - vmoperator: - create: true - rules: {} - alertmanager: - create: true - rules: {} - - # -- Runbook url prefix for default rules - runbookUrl: https://runbooks.prometheus-operator.dev/runbooks - - # -- Labels for default rules - labels: {} - # -- Annotations for default rules - annotations: {} - -# -- Provide custom recording or alerting rules to be deployed into the cluster. -additionalVictoriaMetricsMap: -# rule-name: -# groups: -# - name: my_group -# rules: -# - record: my_record -# expr: 100 * my_record - -external: - grafana: - # -- External Grafana host - host: "" - # -- External Grafana datasource name - datasource: VictoriaMetrics - # -- External VM read and write URLs - vm: - read: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - write: - url: "" - # bearerTokenSecret: - # name: dbaas-read-access-token - # key: bearerToken - -# Configures vmsingle params -vmsingle: - # -- VMSingle annotations - annotations: {} - # -- Create VMSingle CR - enabled: true - # -- Full spec for VMSingle CRD. Allowed values describe [here](https://docs.victoriametrics.com/operator/api#vmsinglespec) - spec: - port: "8429" - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicaCount: 1 - extraArgs: {} - storageMetadata: - annotations: - everest.io/crypt-key-id: 8eba2a39-b46e-4222-8e67-ca5676982ac6 - storage: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi - ingress: - # -- Enable deployment of ingress for server component - enabled: false - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - # -- Ingress extra labels - labels: {} - # -- Ingress default path - path: "" - # -- Ingress path type - pathType: Prefix - # -- Ingress controller class name - ingressClassName: "" - - # -- Array of host objects - hosts: [] - # - vmsingle.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmsingle-ingress-tls - # hosts: - # - vmsingle.domain.com - -vmcluster: - # -- Create VMCluster CR - enabled: false - # -- VMCluster annotations - annotations: {} - # -- Full spec for VMCluster CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmclusterspec) - spec: - # -- Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these [docs](https://docs.victoriametrics.com/single-server-victoriametrics/#retention) - retentionPeriod: "1" - replicationFactor: 2 - vmstorage: - replicaCount: 2 - storageDataPath: /vm-data - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 10Gi - resources: - {} - # limits: - # cpu: "1" - # memory: 1500Mi - vmselect: - # -- Set this value to false to disable VMSelect - enabled: true - port: "8481" - replicaCount: 2 - cacheMountPath: /select-cache - extraArgs: {} - storage: - volumeClaimTemplate: - spec: - resources: - requests: - storage: 2Gi - resources: - {} - # limits: - # cpu: "1" - # memory: "1000Mi" - # requests: - # cpu: "0.5" - # memory: "500Mi" - vminsert: - # -- Set this value to false to disable VMInsert - enabled: true - port: "8480" - replicaCount: 2 - extraArgs: {} - resources: - {} - # limits: - # cpu: "1" - # memory: 1000Mi - # requests: - # cpu: "0.5" - # memory: "500Mi" - - ingress: - storage: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: "" - - # -- Array of host objects - hosts: [] - # - vmstorage.domain.com - - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmstorage-ingress-tls - # hosts: - # - vmstorage.domain.com - select: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vmselect }}' - - # -- Array of host objects - hosts: [] - # - vmselect.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vmselect-ingress-tls - # hosts: - # - vmselect.domain.com - insert: - # -- Enable deployment of ingress for server component - enabled: false - - # -- Ingress annotations - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - - # -- Ingress extra labels - labels: {} - - # -- Ingress controller class name - ingressClassName: "" - - # -- Ingress path type - pathType: Prefix - - # -- Ingress default path - path: '{{ dig "extraArgs" "http.pathPrefix" "/" .Values.vmcluster.spec.vminsert }}' - - # -- Array of host objects - hosts: [] - # - vminsert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - - # -- Array of TLS objects - tls: [] - # - secretName: vminsert-ingress-tls - # hosts: - # - vminsert.domain.com - -alertmanager: - # -- Create VMAlertmanager CR - enabled: true - # -- Alertmanager annotations - annotations: {} - # -- (object) Full spec for VMAlertmanager CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertmanagerspec) - spec: - replicaCount: 1 - port: "9093" - selectAllByDefault: true - image: - tag: v0.28.1 - externalURL: "" - routePrefix: / - - # -- (string) If this one defined, it will be used for alertmanager configuration and config parameter will be ignored - configSecret: "" - # -- - # @raw - # enable storing .Values.alertmanager.config in VMAlertmanagerConfig instead of k8s Secret. - # Note: VMAlertmanagerConfig and plain Alertmanager config structures are not equal. - # If you're migrating existing config, please make sure that `.Values.alertmanager.config`: - # - with `useManagedConfig: false` has structure described [here](https://prometheus.io/docs/alerting/latest/configuration/). - # - with `useManagedConfig: true` has structure described [here](https://docs.victoriametrics.com/operator/api/#vmalertmanagerconfig). - useManagedConfig: true - # -- (object) Alertmanager configuration - config: - route: - receiver: "outlook" - routes: - - matchers: - - alertname=~".*" - receiver: outlook - receivers: - - name: outlook - email_configs: - - smarthost: 'mail.mms-support.de:465' - auth_username: 'ipcei-cis-devfw@mms-support.de' - auth_password: - name: email-user-credentials - key: connection-string - from: '"IPCEI CIS DevFW" ' - to: 'f9f9953a.mg.telekom.de@de.teams.ms' - headers: - subject: 'Grafana Mail Alerts' - require_tls: false - - # -- Better alert templates for [slack source](https://gist.github.com/milesbxf/e2744fc90e9c41b47aa47925f8ff6512) - monzoTemplate: - enabled: true - - # -- (object) Extra alert templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- (object) Alertmanager ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: '{{ .Values.alertmanager.spec.routePrefix | default "/" }}' - pathType: Prefix - - hosts: - - alertmanager.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: alertmanager-ingress-tls - # hosts: - # - alertmanager.domain.com - -vmalert: - # -- VMAlert annotations - annotations: {} - # -- Create VMAlert CR - enabled: true - - # -- Controls whether VMAlert should use VMAgent or VMInsert as a target for remotewrite - remoteWriteVMAgent: false - # -- (object) Full spec for VMAlert CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmalertspec) - spec: - port: "8080" - selectAllByDefault: true - evaluationInterval: 20s - extraArgs: - http.pathPrefix: "/" - - # External labels to add to all generated recording rules and alerts - externalLabels: {} - - # -- (object) Extra VMAlert annotation templates - templateFiles: - {} - # template_1.tmpl: |- - # {{ define "hello" -}} - # hello, Victoria! - # {{- end }} - # template_2.tmpl: "" - - # -- Allows to configure static notifiers, discover notifiers via Consul and DNS, - # see specification [here](https://docs.victoriametrics.com/vmalert/#notifier-configuration-file). - # This configuration will be created as separate secret and mounted to VMAlert pod. - additionalNotifierConfigs: {} - # dns_sd_configs: - # - names: - # - my.domain.com - # type: 'A' - # port: 9093 - # -- (object) VMAlert ingress config - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmalert.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmalert-ingress-tls - # hosts: - # - vmalert.domain.com - -vmauth: - # -- Enable VMAuth CR - enabled: true - # -- VMAuth annotations - annotations: {} - # -- (object) Full spec for VMAuth CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmauthspec) - # It's possible to use given below predefined variables in spec: - # * `{{ .vm.read }}` - parsed vmselect, vmsingle or external.vm.read URL - # * `{{ .vm.write }}` - parsed vminsert, vmsingle or external.vm.write URL - spec: - port: "8427" - ingress: - class_name: nginx - annotations: - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - cert-manager.io/cluster-issuer: main - host: o12y.observability.t09.de - tlsHosts: - - o12y.observability.t09.de - tlsSecretName: vmauth-tls-secret - unauthorizedUserAccessSpec: {} - selectAllByDefault: true - -vmagent: - # -- Create VMAgent CR - enabled: false - # -- VMAgent annotations - annotations: {} - # -- Remote write configuration of VMAgent, allowed parameters defined in a [spec](https://docs.victoriametrics.com/operator/api#vmagentremotewritespec) - additionalRemoteWrites: - [] - #- url: http://some-remote-write/api/v1/write - # -- (object) Full spec for VMAgent CRD. Allowed values described [here](https://docs.victoriametrics.com/operator/api#vmagentspec) - spec: - port: "8429" - selectAllByDefault: true - scrapeInterval: 20s - externalLabels: {} - # For multi-cluster setups it is useful to use "cluster" label to identify the metrics source. - # For example: - # cluster: cluster-name - extraArgs: - promscrape.streamParse: "true" - # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent - # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug - promscrape.dropOriginalLabels: "true" - # -- (object) VMAgent ingress configuration - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: "" - pathType: Prefix - - hosts: - - vmagent.domain.com - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: vmagent-ingress-tls - # hosts: - # - vmagent.domain.com - -defaultDatasources: - grafanaOperator: - # -- Create datasources as CRDs (requires grafana-operator to be installed) - enabled: true - annotations: {} - spec: - plugins: - - name: victoriametrics-metrics-datasource - version: 0.16.0 - - name: victoriametrics-logs-datasource - version: 0.17.0 - instanceSelector: - matchLabels: - dashboards: grafana - allowCrossNamespaceImport: false - victoriametrics: - # -- Create per replica prometheus compatible datasource - perReplica: false - # -- List of prometheus compatible datasource configurations. - # VM `url` will be added to each of them in templates. - datasources: - - name: VictoriaMetrics - type: prometheus - access: proxy - isDefault: true - - name: VictoriaMetrics (DS) - isDefault: false - access: proxy - type: victoriametrics-metrics-datasource - version: "0.15.1" - # -- List of alertmanager datasources. - # Alertmanager generated `url` will be added to each datasource in template if alertmanager is enabled - alertmanager: - # -- Create per replica alertmanager compatible datasource - perReplica: false - datasources: - - name: Alertmanager - access: proxy - jsonData: - implementation: prometheus - # -- Configure additional grafana datasources (passed through tpl). - # Check [here](http://docs.grafana.org/administration/provisioning/#datasources) for details - extra: - - name: VictoriaLogs - access: proxy - type: victoriametrics-logs-datasource - url: http://vlogs-victorialogs:9428 - version: 0.18.0 - -# -- Grafana dependency chart configuration. For possible values refer [here](https://github.com/grafana/helm-charts/tree/main/charts/grafana#configuration) -grafana: - enabled: false - # all values for grafana helm chart can be specified here - persistence: - enabled: true - type: pvc - storageClassName: "default" - grafana.ini: - # auth: - # login_maximum_inactive_lifetime_duration: 0 - # login_maximum_lifetime_duration: 0 - security: - disable_brute_force_login_protection: true - sidecar: - datasources: - enabled: true - initDatasources: true - label: grafana_datasource - dashboards: - provider: - name: default - orgid: 1 - folder: /var/lib/grafana/dashboards - defaultFolderName: default - enabled: true - multicluster: false - - # dashboards: - # default: - # victoria-logs: - # url: "https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/refs/heads/master/dashboards/vm/victorialogs.json" - # victoria-logs-explorer: - # url: "https://grafana.com/api/dashboards/22759/revisions/6/download" - # ingress-nginx: - # url: "https://raw.githubusercontent.com/adinhodovic/ingress-nginx-mixin/refs/heads/main/dashboards_out/ingress-nginx-overview.json" - # argocd: - # url: "https://raw.githubusercontent.com/argoproj/argo-cd/refs/heads/master/examples/dashboard.json" - - # -- Create datasource configmap even if grafana deployment has been disabled - forceDeployDatasource: true - - # Uncomment the block below, if you want to enable VictoriaMetrics Datasource in Grafana: - # Note that Grafana will need internet access to install the datasource plugin. - - plugins: - - victoriametrics-metrics-datasource - - victoriametrics-logs-datasource - - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Values can be templated - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - labels: {} - path: / - pathType: Prefix - - hosts: - - grafana.domain.com - # -- Extra paths to prepend to every host configuration. This is useful when working with annotation based services. - extraPaths: [] - # - path: /* - # pathType: Prefix - # backend: - # service: - # name: ssl-redirect - # port: - # name: service - tls: [] - # - secretName: grafana-ingress-tls - # hosts: - # - grafana.domain.com - - # -- Grafana VM scrape config - vmScrape: - # whether we should create a service scrape resource for grafana - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Grafana - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "grafana.name" .Subcharts.grafana }}' - endpoints: - - port: '{{ .Values.grafana.service.portName }}' - -# -- prometheus-node-exporter dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus-node-exporter/values.yaml) -prometheus-node-exporter: - enabled: true - - # all values for prometheus-node-exporter helm chart can be specified here - service: - # Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards - # - labels: - jobLabel: node-exporter - extraArgs: - - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) - - --collector.filesystem.ignored-fs-types=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|erofs|sysfs|tracefs)$ - # -- Node Exporter VM scrape config - vmScrape: - # whether we should create a service scrape resource for node-exporter - enabled: true - - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Node Exporter - spec: - jobLabel: jobLabel - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "prometheus-node-exporter.name" (index .Subcharts "prometheus-node-exporter") }}' - endpoints: - - port: metrics - metricRelabelConfigs: - - action: drop - source_labels: [mountpoint] - regex: "/var/lib/kubelet/pods.+" -# -- kube-state-metrics dependency chart configuration. For possible values check [here](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-state-metrics/values.yaml) -kube-state-metrics: - enabled: true - # -- [Scrape configuration](https://docs.victoriametrics.com/operator/api#vmservicescrapespec) for Kube State Metrics - vmScrape: - enabled: true - spec: - selector: - matchLabels: - app.kubernetes.io/name: '{{ include "kube-state-metrics.name" (index .Subcharts "kube-state-metrics") }}' - app.kubernetes.io/instance: '{{ include "vm.release" . }}' - endpoints: - - port: http - honorLabels: true - metricRelabelConfigs: - - action: labeldrop - regex: (uid|container_id|image_id) - jobLabel: app.kubernetes.io/name - -# -- Component scraping the kubelets -kubelet: - enabled: true - vmScrapes: - # -- Enable scraping /metrics/cadvisor from kubelet's service - cadvisor: - enabled: true - spec: - path: /metrics/cadvisor - # -- Enable scraping /metrics/probes from kubelet's service - probes: - enabled: true - spec: - path: /metrics/probes - # -- Enabled scraping /metrics/resource from kubelet's service - resources: - enabled: true - spec: - path: /metrics/resource - kubelet: - spec: {} - # -- Spec for VMNodeScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmnodescrapespec) - vmScrape: - kind: VMNodeScrape - spec: - scheme: "https" - honorLabels: true - interval: "30s" - scrapeTimeout: "5s" - tlsConfig: - insecureSkipVerify: true - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # drop high cardinality label and useless metrics for cadvisor and kubelet - metricRelabelConfigs: - - action: labeldrop - regex: (uid) - - action: labeldrop - regex: (id|name) - - action: drop - source_labels: [__name__] - regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) - relabelConfigs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - sourceLabels: [__metrics_path__] - targetLabel: metrics_path - - targetLabel: job - replacement: kubelet - # ignore timestamps of cadvisor's metrics by default - # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535 - honorTimestamps: false -# Component scraping the kube api server -kubeApiServer: - # -- Enable Kube Api Server metrics scraping - enabled: true - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: https - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - jobLabel: component - namespaceSelector: - matchNames: - - default - selector: - matchLabels: - component: apiserver - provider: kubernetes - -# Component scraping the kube controller manager -kubeControllerManager: - # -- Enable kube controller manager metrics scraping - enabled: true - - # -- If your kube controller manager is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeControllerManager.endpoints only the port and targetPort are used - service: - # -- Create service for kube controller manager metrics scraping - enabled: true - # -- Kube controller manager service port - port: 10257 - # -- Kube controller manager service target port - targetPort: 10257 - # -- Kube controller manager service pod selector - selector: - component: kube-controller-manager - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: - - kube-system - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - serverName: kubernetes - -# Component scraping kubeDns. Use either this or coreDns -kubeDns: - # -- Enabled KubeDNS metrics scraping - enabled: false - service: - # -- Create Service for KubeDNS metrics - enabled: false - # -- KubeDNS service ports - ports: - dnsmasq: - port: 10054 - targetPort: 10054 - skydns: - port: 10055 - targetPort: 10055 - # -- KubeDNS service pods selector - selector: - k8s-app: kube-dns - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics-dnsmasq - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - - port: http-metrics-skydns - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping coreDns. Use either this or kubeDns -coreDns: - # -- Enabled CoreDNS metrics scraping - enabled: true - service: - # -- Create service for CoreDNS metrics - enabled: true - # -- CoreDNS service port - port: 9153 - # -- CoreDNS service target port - targetPort: 9153 - # -- CoreDNS service pod selector - selector: - k8s-app: kube-dns - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - port: http-metrics - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - -# Component scraping etcd -kubeEtcd: - # -- Enabled KubeETCD metrics scraping - enabled: true - - # -- If your etcd is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used - service: - # -- Enable service for ETCD metrics scraping - enabled: true - # -- ETCD service port - port: 2379 - # -- ETCD service target port - targetPort: 2379 - # -- ETCD service pods selector - selector: - component: etcd - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube scheduler -kubeScheduler: - # -- Enable KubeScheduler metrics scraping - enabled: true - - # -- If your kube scheduler is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - # If using kubeScheduler.endpoints only the port and targetPort are used - service: - # -- Enable service for KubeScheduler metrics scrape - enabled: true - # -- KubeScheduler service port - port: 10259 - # -- KubeScheduler service target port - targetPort: 10259 - # -- KubeScheduler service pod selector - selector: - component: kube-scheduler - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# Component scraping kube proxy -kubeProxy: - # -- Enable kube proxy metrics scraping - enabled: false - - # -- If your kube proxy is not deployed as a pod, specify IPs it can be found on - endpoints: [] - # - 10.141.4.22 - # - 10.141.4.23 - # - 10.141.4.24 - - service: - # -- Enable service for kube proxy metrics scraping - enabled: true - # -- Kube proxy service port - port: 10249 - # -- Kube proxy service target port - targetPort: 10249 - # -- Kube proxy service pod selector - selector: - k8s-app: kube-proxy - - # -- Spec for VMServiceScrape CRD is [here](https://docs.victoriametrics.com/operator/api.html#vmservicescrapespec) - vmScrape: - spec: - jobLabel: jobLabel - namespaceSelector: - matchNames: [kube-system] - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - # bearerTokenSecret: - # key: "" - port: http-metrics - scheme: https - tlsConfig: - caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - -# -- Add extra objects dynamically to this chart -extraObjects: [] - diff --git a/otc/testing-2.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml b/otc/testing-2.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml deleted file mode 100644 index 73d0b7f..0000000 --- a/otc/testing-2.t09.de/stacks/otc/cert-manager/manifests/clusterissuer.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: main -spec: - acme: - email: admin@think-ahead.tech - server: https://acme-v02.api.letsencrypt.org/directory - privateKeySecretRef: - name: cluster-issuer-account-key - solvers: - - http01: - ingress: - ingressClassName: nginx diff --git a/otc/testing-2.t09.de/stacks/otc/cert-manager/values.yaml b/otc/testing-2.t09.de/stacks/otc/cert-manager/values.yaml deleted file mode 100644 index a0b2211..0000000 --- a/otc/testing-2.t09.de/stacks/otc/cert-manager/values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -crds: - enabled: true - -replicaCount: 1 diff --git a/otc/testing-2.t09.de/stacks/otc/cert-manger.yaml b/otc/testing-2.t09.de/stacks/otc/cert-manger.yaml deleted file mode 100644 index 45fbb7d..0000000 --- a/otc/testing-2.t09.de/stacks/otc/cert-manger.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: cert-manager - sources: - - chart: cert-manager - repoURL: https://charts.jetstack.io - targetRevision: v1.17.2 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/otc/cert-manager/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/otc/cert-manager/manifests" diff --git a/otc/testing-2.t09.de/stacks/otc/ingress-nginx.yaml b/otc/testing-2.t09.de/stacks/otc/ingress-nginx.yaml deleted file mode 100644 index 9645b27..0000000 --- a/otc/testing-2.t09.de/stacks/otc/ingress-nginx.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: ingress-nginx - namespace: argocd - labels: - env: dev -spec: - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 - destination: - name: in-cluster - namespace: ingress-nginx - sources: - - repoURL: https://github.com/kubernetes/ingress-nginx.git - path: charts/ingress-nginx - targetRevision: helm-chart-4.12.1 - helm: - valueFiles: - - $values/otc/testing-2.t09.de/stacks/otc/ingress-nginx/values.yaml - - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - ref: values diff --git a/otc/testing-2.t09.de/stacks/otc/ingress-nginx/values.yaml b/otc/testing-2.t09.de/stacks/otc/ingress-nginx/values.yaml deleted file mode 100644 index f8a4361..0000000 --- a/otc/testing-2.t09.de/stacks/otc/ingress-nginx/values.yaml +++ /dev/null @@ -1,31 +0,0 @@ -controller: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - - service: - annotations: - kubernetes.io/elb.class: union - kubernetes.io/elb.port: '80' - kubernetes.io/elb.id: d4e0dc72-272a-445b-bf0e-64883d3c88ca - kubernetes.io/elb.ip: 80.158.57.9 - - ingressClassResource: - name: nginx - - # added for idpbuilder - allowSnippetAnnotations: true - - # added for idpbuilder - config: - proxy-buffer-size: 32k - use-forwarded-headers: "true" - - # monitoring nginx - metrics: - enabled: true - serviceMonitor: - additionalLabels: - release: "ingress-nginx" - enabled: true diff --git a/otc/testing-2.t09.de/stacks/otc/storageclass.yaml b/otc/testing-2.t09.de/stacks/otc/storageclass.yaml deleted file mode 100644 index 524879f..0000000 --- a/otc/testing-2.t09.de/stacks/otc/storageclass.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: storageclass - namespace: argocd - labels: - example: otc - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - destination: - namespace: default - server: "https://kubernetes.default.svc" - source: - repoURL: https://edp.buildth.ing/DevFW-CICD/stacks-instances - targetRevision: HEAD - path: "otc/testing-2.t09.de/stacks/otc/storageclass" - project: default - syncPolicy: - automated: - selfHeal: true - syncOptions: - - CreateNamespace=true - retry: - limit: -1 diff --git a/otc/testing-2.t09.de/stacks/otc/storageclass/storageclass.yaml b/otc/testing-2.t09.de/stacks/otc/storageclass/storageclass.yaml deleted file mode 100644 index 038bf24..0000000 --- a/otc/testing-2.t09.de/stacks/otc/storageclass/storageclass.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - annotations: - storageclass.beta.kubernetes.io/is-default-class: "true" - labels: - kubernetes.io/cluster-service: "true" - name: default -parameters: - kubernetes.io/description: "" - kubernetes.io/hw:passthrough: "true" - kubernetes.io/storagetype: BS - kubernetes.io/volumetype: SATA - kubernetes.io/zone: eu-de-02 -provisioner: flexvolume-huawei.com/fuxivol -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true \ No newline at end of file