From 22184461d4e821cdb9f33a0032d179ed6ad81634 Mon Sep 17 00:00:00 2001 From: cospeedster <52749645+cospeedster@users.noreply.github.com> Date: Fri, 8 Nov 2024 09:18:06 +0100 Subject: [PATCH 01/10] chore(deps)!: Bump version of prometheus-elasticsearch-exporter to 6.5.0 --- apigateway/helm/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apigateway/helm/Chart.yaml b/apigateway/helm/Chart.yaml index 30e3dd9..887323c 100644 --- a/apigateway/helm/Chart.yaml +++ b/apigateway/helm/Chart.yaml @@ -33,7 +33,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.2.9 +version: 1.2.10 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to @@ -50,5 +50,5 @@ dependencies: repository: "https://prometheus-community.github.io/helm-charts" tags: - prometheus-elasticsearch-exporter - version: 5.0.0 + version: 6.5.0 condition: prometheus-elasticsearch-exporter.enabled From e9aefc59f16cca76360958aca4ebde046bf4f059 Mon Sep 17 00:00:00 2001 From: cospeedster Date: Fri, 8 Nov 2024 12:54:09 +0100 Subject: [PATCH 02/10] chore: Remove trailing whitespaces from values.yaml --- apigateway/helm/values.yaml | 184 ++++++++++++++++++------------------ 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/apigateway/helm/values.yaml b/apigateway/helm/values.yaml index 83bf6f0..c033233 100644 --- a/apigateway/helm/values.yaml +++ b/apigateway/helm/values.yaml @@ -4,20 +4,20 @@ replicaCount: 1 # revisionHistoryLimit: 10 image: - # -- The repository for the image. By default, - # this points to the Software AG container repository. + # -- The repository for the image. By default, + # this points to the Software AG container repository. # Change this for air-gapped installations or custom images. - # For the Software AG container repository you need to have a + # For the Software AG container repository you need to have a # valid access token stored as registry credentials repository: sagcr.azurecr.io/apigateway-minimal pullPolicy: IfNotPresent - # -- The image tag of the apigateway image default this will be the latest version. - # For realworld scenarios SAG recommends to use a + # -- The image tag of the apigateway image default this will be the latest version. + # For realworld scenarios SAG recommends to use a # specific version to not accidently change production versions with newer images. tag: "10.15" # -- Image pull secret reference. By default looks for `regcred`. -imagePullSecrets: +imagePullSecrets: - name: regcred # -- Controls if secrets should be generated automatically. @@ -32,7 +32,7 @@ fullnameOverride: "" serviceAccount: # -- Specifies whether a service account should be created - # if you set this to false, you need to specify an existing service account in 'name'. + # if you set this to false, you need to specify an existing service account in 'name'. # A service account is required for the apigateway to access the kubernetes API (i.e, Apache Ignite clustering). # The default service account should be as follows: # apiVersion: v1 @@ -108,15 +108,15 @@ grpcService: dnsExternal: false hostname: "" -# multiple ingresses for ui, admin, ext and rt -ingresses: +# multiple ingresses for ui, admin, ext and rt +ingresses: ui: defaultHost: "" enabled: true svcName: "" svcPort: "" className: "nginx" - annotations: + annotations: nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/proxy-body-size: 10m nginx.ingress.kubernetes.io/proxy-read-timeout: "600" @@ -127,12 +127,12 @@ ingresses: paths: - path: / pathType: Prefix - tls: - - secretName: - hosts: + tls: + - secretName: + hosts: csiSecretProvider: secretProviderEnabled: false - secretProviderSecretName: + secretProviderSecretName: rt: defaultHost: "" enabled: true @@ -149,18 +149,18 @@ ingresses: paths: - path: /gateway pathType: Prefix - tls: - - secretName: + tls: + - secretName: hosts: secretProviderEnabled: false - secretProviderSecretName: + secretProviderSecretName: admin: defaultHost: "" enabled: true svcName: "" svcPort: "" className: "nginx" - annotations: + annotations: nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/proxy-body-size: 10m nginx.ingress.kubernetes.io/proxy-read-timeout: "600" @@ -171,27 +171,27 @@ ingresses: paths: - path: / pathType: Prefix - tls: + tls: - secretName: hosts: secretProviderEnabled: false - secretProviderSecretName: + secretProviderSecretName: # global ingress settings for tls secret name, cert and key ingress: - defaultDomain: my-domain.com + defaultDomain: my-domain.com tls: # -- default secret name for TLS. By default empty, # will look for tls". secretName: "" - cert: "" + cert: "" key: "" secretProviderEnabled: false secretProviderName: "" secretProviderClassName: "" secretProviderParameters: {} -resources: +resources: # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following @@ -202,14 +202,14 @@ resources: # requests: # cpu: 100m # memory: 128Mi - apigwInitContainer: + apigwInitContainer: requests: cpu: 100m memory: 50Mi limits: cpu: 200m memory: 100Mi - + apigwContainer: requests: cpu: 500m @@ -218,7 +218,7 @@ resources: # use a high cpu limit to avoid the container being throttled cpu: 8 memory: 8Gi - + autoscaling: enabled: false @@ -234,7 +234,7 @@ tolerations: [] # -- Set Pod (anti-) affinity for APIGW. You can use templates inside because `tpl` function is called for rendering. affinity: {} -# -- Set Pod topology spread constraints for APIGW. You can use templates inside because `tpl` function is called for rendering. +# -- Set Pod topology spread constraints for APIGW. You can use templates inside because `tpl` function is called for rendering. topologySpreadConstraints: {} # -- Set APIGW and Nginx Pods' Priority Class Name @@ -244,20 +244,20 @@ priorityClassName: "" # -- Value to add extra host aliases to APIGW container. hostAliases: [] -global: +global: curlImage: "curlimages/curl" # -- Protocol for health check for kibana startup, must be http / https - apigwHealthProtocol: "http" + apigwHealthProtocol: "http" # -- Service name for health check for kibana startup, must same value as apigwAdminService - apigwHealthService: "apigw-admin-svc" - # -- Port for health check for kibana startup, must same value as apigwAdminPort - apigwHealthPort: 5555 + apigwHealthService: "apigw-admin-svc" + # -- Port for health check for kibana startup, must same value as apigwAdminPort + apigwHealthPort: 5555 # -- Elasticsearch global settings # Required for Prometheus Exporter Sub Chart - elasticsearch: + elasticsearch: # -- The elasticsearch http service name that API Gateway uses. - # The default is compiled of the fullname (releasename + chart name) + "-http" + # The default is compiled of the fullname (releasename + chart name) + "-http" # You MUST override this if you use an external elastic search service and do not deploy the embedded elastic CRD from this chart. serviceName: "" port: 9200 @@ -304,17 +304,17 @@ extraConfigMaps: [] lifecycle: {} apigw: - # -- Deploy Elasticsearch. Depends on Elasic Search Helm Charts. See https://github.com/elastic/helm-charts/blob/main/elasticsearch + # -- Deploy Elasticsearch. Depends on Elasic Search Helm Charts. See https://github.com/elastic/helm-charts/blob/main/elasticsearch elasticSearchDeployment: true initMemory: 1024Mi maxMemory: 1024Mi - # -- The API Gateway runtime port for API invocations. By default API Gateway images do not have this port setup. + # -- The API Gateway runtime port for API invocations. By default API Gateway images do not have this port setup. # You must manually set up this port or create post init job that creates this port after API Gateway was initialized. runtimePort: 5556 - # -- The API Diagnostics port. - diagPort: 9999 + # -- The API Diagnostics port. + diagPort: 9999 # -- The default API Administration UI port uiPort: 9072 # -- The default administration port. Note in a default installation this port will also be used for runtime traffic. @@ -327,7 +327,7 @@ apigw: # -- The readinessprobe scheme (https or http). scheme: "HTTP" serviceName: "apigw" - + # -- SecurityContext for apigw initContainer # Deactivated by default. # Usage example: @@ -343,14 +343,14 @@ apigw: securityContext: {} # -- If apigw initContainer for ES should be enabled enabled: true - + # -- Specifies the location and name of the configuration variables template # or the directory containing templates for use with Microservices Runtime or # an Integration Server with licensed Microservices functionality. Use a # comma-separated list to specify multiple templates and/or directories. # See: https://documentation.softwareag.com/webmethods/integration_server/pie10-15/webhelp/pie-webhelp/index.html#page/pie-webhelp%2Fto-sag_environment_variables_2.html - # Note: should only be used for passing simple configurations such as extended - # settings. For all other configurations of API Gateway, use the official + # Note: should only be used for passing simple configurations such as extended + # settings. For all other configurations of API Gateway, use the official # Admin REST API. sagIsConfigProperties: "/config/application.properties" @@ -359,7 +359,7 @@ apigw: rtExternalService: "apigw-rt-ext-svc" apigwAdminService: "apigw-admin-svc" - # -- The secret that holds the admin password + # -- The secret that holds the admin password # Depends on secrets.genereateAdminSecret; if true the setting will be ignored. adminSecretName: "" @@ -371,16 +371,16 @@ apigw: # -- The key that holds the truststore password; defaults to "password" elastictrustStorePassKey: "" - + # -- The secret that holds the keystore password. If empty the chart will generate the name: fullname + "-es-keystore-secret". elastickeyStoreName: "" # -- The key that holds the keystore password; defaults to "password" elastickeyStorePassKey: "" - # -- Application Properties to overwrite default API Gateway settings. Please check - # Handle with care - Most settings should be set via the UI, Admin API, configSources values, or via environment variables. - # By default only the default Administrator password is set through this mechanism if nothing is set here. + # -- Application Properties to overwrite default API Gateway settings. Please check + # Handle with care - Most settings should be set via the UI, Admin API, configSources values, or via environment variables. + # By default only the default Administrator password is set through this mechanism if nothing is set here. # Other examples are extended settings which can be set through this mechanism. # Examples: # @@ -406,16 +406,16 @@ apigw: # settings.watt.net.default.content-type=json # # Avoid IS internal statistic data collector ... - # statisticsdatacollector.monitorConfig.enabled=false + # statisticsdatacollector.monitorConfig.enabled=false applicationProperties: | # -- configuration source files for API Gateway configSources: - elasticsearch: + elasticsearch: tenantId: default hosts: "{{ default (printf \"%s-%s-es-http\" .Release.Name .Chart.Name) .Values.global.elasticsearch.serviceName }}:{{ .Values.global.elasticsearch.port }}" - + kibana: dashboardInstance: "{{ printf \"http://%s-%s-kb-http:%d\" .Release.Name .Chart.Name (int .Values.kibana.port) }}" autostart: false @@ -432,7 +432,7 @@ apigw: communicationPort: "10400" # -- Extra configuration sources for API Gateway - # Example: + # Example: # - type: YAML # allowEdit: false # properties: @@ -447,7 +447,7 @@ prometheus: path: "/metrics" port: "5555" scheme: "http" - ## -- Only used on annotation + ## -- Only used on annotation scrape: "true" ## -- Only used on ServiceMonitor interval: 10s @@ -457,23 +457,23 @@ prometheus: serviceMonitor: # -- Create and enable CRD ServiceMonitor. The default is `false`. enabled: false - # -- Set the monitored service which is connected by ServiceMonitor. Default (if not set) is the `rt` runtime service. + # -- Set the monitored service which is connected by ServiceMonitor. Default (if not set) is the `rt` runtime service. serviceName: "" metering: - # -- enable metering + # -- enable metering enabled: true # -- The URL of the metering aggregator server REST API. serverUrl: "https://metering.softwareag.cloud/api/measurements" - # -- The type of the proxy that the metering client uses. - # Valid values are: - # *DIRECT (default). - # *HTTP + # -- The type of the proxy that the metering client uses. + # Valid values are: + # *DIRECT (default). + # *HTTP # *SOCKS - # Indicates that the metering client does not use a proxy. + # Indicates that the metering client does not use a proxy. proxyType: "DIRECT" - # -- The proxy address in a : format that the metering client uses. + # -- The proxy address in a : format that the metering client uses. # Configure this property only if you use a metering proxy. proxyAddress: # -- The proxy password that the metering client uses. @@ -483,7 +483,7 @@ metering: # *Letters: A-Z, a-z # *Numbers: 0-9 # *Special characters: !@#$%^&*()_+-=[]{}\/?,.<>; - proxyPass: + proxyPass: # -- The time in milliseconds to establish the initial TCP connection when the metering client calls the server REST endpoint. This is also the time to start the request. serverConnectTimeout: "60000" # -- The maximum time in milliseconds without data transfer over the TCP connection to the server. This is also the time that it takes for the server to respond. When this time passes, the request fails. @@ -502,7 +502,7 @@ metering: logLevel: # -- The absolute path to the metering client truststore that is used for HTTPS connections. Add this value in any of the following cases: # *If you use the Software AG Metering Server on premises (via HTTPS) and the certificates in the truststore do not match the certificates configured in Software AG Runtime (CTP). - # *If you use a metering proxy that terminates the SSL connection to the Metering Server in Software AG Cloud. + # *If you use a metering proxy that terminates the SSL connection to the Metering Server in Software AG Cloud. trustStoreFile: # -- The password for the metering client truststore. # Configure this property only if you use a truststore. @@ -520,27 +520,27 @@ metering: elasticsearch: - # -- Deploy elastic search instance + # -- Deploy elastic search instance deploy: true # -- The ECK version to be used version: 8.2.3 # -- The image that should be used. - # By default ECK will use the official Elasticsearch images. + # By default ECK will use the official Elasticsearch images. # Overwrite this to use an image from an internal registry or any custom images. # Make sure that the image corresponds to the version field. - image: + image: # -- Resource Settings for Elasticsearch - # Example: - # + # Example: + # # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m - # memory: 128Mi + # memory: 128Mi resources: {} # -- Request size of storage. The default is 1Gi. @@ -570,7 +570,7 @@ elasticsearch: # username: "elastic" # roles: "viewer" extraSecrets: [] - + # -- Customization of ElasticSearchs PodDisruptionBudget Policy. # Elastic Cloud on Kubernetes operator (ECK) creates a default PodDisruptionBudget Policy. podDisruptionBudget: @@ -582,7 +582,7 @@ elasticsearch: # Overwriting with custom PodDisruptionBudget Policy requires enabled=true. # Examples can be seen here: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ data: {} - + # -- Enable and configure service account creation. serviceAccount: # -- Whether to create a ServiceAccount for Elasticsearch @@ -595,7 +595,7 @@ elasticsearch: # -- Name of the ServiceAccount Rolebinding used by the Elasticsearch ServiceAccount. # Requires create=true to work. roleBindingName: "elasticsearch-rolebinding" - + # -- Whether the communication from APIGW and Kibana should be HTTPS # Note: you will need to create certificate and a separate truststore for the communication. tlsEnabled: false @@ -603,7 +603,7 @@ elasticsearch: # -- The name of the elasticsearch secret. By default it will created by the fullname + "-es-tls-secret" if tlsEnabled is set to true. tlsSecretName: "" - # -- The secret name that holds the keystore password + # -- The secret name that holds the keystore password keystoreSecretName: "" # -- The name of the secret holding the tls secret @@ -613,7 +613,7 @@ elasticsearch: # -- Set Pod (anti-) affinity for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. affinity: {} - # -- Set Pod topology spread constraints for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. + # -- Set Pod topology spread constraints for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. topologySpreadConstraints: {} # -- Set Pods' Priority Class Name @@ -623,20 +623,20 @@ elasticsearch: # https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-orchestration.html # if you specify node sets here the defaultNodeSet will not be used. nodeSets: [] - + # -- Default Node Set defaultNodeSet: # -- the number of replicas for Elastic Search count: 1 - # -- Set this to true for production workloads, this will also + # -- Set this to true for production workloads, this will also # use an init container to increase the vm.max_map_count to 262144 on the nodes. - memoryMapping: false + memoryMapping: false # -- Controls whether to start an init container that increases the vm.max_map_count to 262144 on the node. # Set memoryMapping to true and this setting also to true to run the init container. # Note that this requires the ability to run privileged containers, which is likely not the case on many secure clusters. - setMaxMapCount: true + setMaxMapCount: true installMapperSizePlugin: true # -- Extra configuration parameters for Elasticsearch nodes to be appended to the default (none). @@ -645,11 +645,11 @@ elasticsearch: # -- Extra init containers to be started before Elasticsearch nodes are started. # See https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-init-containers-plugin-downloads.html - extraInitContainers: {} + extraInitContainers: {} # -- Annotations for Elasticsearch annotations: {} - + kibana: # -- The ECK version to be used @@ -658,17 +658,17 @@ kibana: # -- Set Pod (anti-) affinity for Kibana. You can use templates inside because `tpl` function is called for rendering. affinity: {} - # -- Set Pod topology spread constraints for Kibana. You can use templates inside because `tpl` function is called for rendering. + # -- Set Pod topology spread constraints for Kibana. You can use templates inside because `tpl` function is called for rendering. topologySpreadConstraints: {} # -- Set Pods' Priority Class Name priorityClassName: "" # -- The image that should be used. - # By default ECK will use the official Elasticsearch images. + # By default ECK will use the official Elasticsearch images. # Overwrite this to use an image from an internal registry or any custom images. # Make sure that the image corresponds to the version field. - image: + image: # -- The default Kibana Port port: 5601 @@ -677,7 +677,7 @@ kibana: # -- Annotations for Kibana annotations: {} - + # -- The secret name that holds the kibana user for API Gateway. secretName: "" @@ -724,14 +724,14 @@ kibana: extraInitContainers: [] # -- Resource Settings for Kibana - # Example: - # + # Example: + # # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m - # memory: 128Mi + # memory: 128Mi resources: {} # -- Additional labels to be added to kibana pod labels. @@ -749,7 +749,7 @@ kibana: # -- Name of the ServiceAccount Rolebinding used by the Kibana ServiceAccount. # Requires create=true to work. roleBindingName: "kibana-rolebinding" - + # -- Configure Kibana's readinessProbe. readinessProbe: httpGet: @@ -760,7 +760,7 @@ kibana: successThreshold: 1 periodSeconds: 10 timeoutSeconds: 1 - + # -- Configure Kibana's livenessProbe. livenessProbe: {} # tcpSocket: @@ -770,7 +770,7 @@ kibana: # initialDelaySeconds: 30 # periodSeconds: 30 # timeoutSeconds: 1 - + # Set to 'true' prevents API Gateway Error message in the log, indicating that Kibana is not available. # -- Enable anonymous access to /api/status. allowAnonymousStatus: true @@ -796,7 +796,7 @@ prometheus-elasticsearch-exporter: enabled: true # -- secret for elasticsearch user. Will need to adjust the secret's name. By default the secret name is -apigateway-sag-user-es. - # Adjust accordingly if your release name is different. + # Adjust accordingly if your release name is different. extraEnvSecrets: ES_PASSWORD: secret: apigw-apigateway-sag-user-es @@ -809,7 +809,7 @@ prometheus-elasticsearch-exporter: # -- The uri of the elasticsearch service. By default this is null and the environment variable ES_URI is used instead. # Overwrite this if you are using an external Elasticsearch instance uri: "http://$(ES_USER):$(ES_PASSWORD)@apigw-apigateway-es-http:9200" - + serviceMonitor: enabled: false @@ -819,5 +819,5 @@ prometheus-elasticsearch-exporter: prometheus.io/scheme: http prometheus.io/scrape: "true" -# -- Import the content as license key and create a ConfigMap named by `licenseConfigMap` value. You can copy/past the content of your provided license key file here. +# -- Import the content as license key and create a ConfigMap named by `licenseConfigMap` value. You can copy/past the content of your provided license key file here. license: | From c9ffaf46632b195f735e9a773917babb3d1150cf Mon Sep 17 00:00:00 2001 From: cospeedster Date: Fri, 8 Nov 2024 13:16:31 +0100 Subject: [PATCH 03/10] chore(deps): Bump version for prometheus-elasticsearch-exporter --- apigateway/helm/Chart.lock | 6 +++--- apigateway/helm/charts/common-1.0.3.tgz | Bin 4641 -> 4641 bytes ...rometheus-elasticsearch-exporter-5.0.0.tgz | Bin 8359 -> 0 bytes ...rometheus-elasticsearch-exporter-6.5.0.tgz | Bin 0 -> 10035 bytes 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 apigateway/helm/charts/prometheus-elasticsearch-exporter-5.0.0.tgz create mode 100644 apigateway/helm/charts/prometheus-elasticsearch-exporter-6.5.0.tgz diff --git a/apigateway/helm/Chart.lock b/apigateway/helm/Chart.lock index 3555b27..aec4bec 100644 --- a/apigateway/helm/Chart.lock +++ b/apigateway/helm/Chart.lock @@ -4,6 +4,6 @@ dependencies: version: 1.0.3 - name: prometheus-elasticsearch-exporter repository: https://prometheus-community.github.io/helm-charts - version: 5.0.0 -digest: sha256:ca4d38e54226ff732696e5af73cb2ed423acece567769328f72d07fd38e6c15c -generated: "2024-06-25T14:25:11.045085+02:00" + version: 6.5.0 +digest: sha256:b09f538632326fa846608cca98435da9b12ab19393f782b95e43f330753ac04d +generated: "2024-11-08T09:28:49.886783483+01:00" diff --git a/apigateway/helm/charts/common-1.0.3.tgz b/apigateway/helm/charts/common-1.0.3.tgz index c89d9b8d7aeb785b804e042d0033dffcc4bfab86..19e6fe3a16e71ae00ab730811f81937f928a143a 100644 GIT binary patch delta 4611 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 diff --git a/apigateway/helm/charts/prometheus-elasticsearch-exporter-5.0.0.tgz b/apigateway/helm/charts/prometheus-elasticsearch-exporter-5.0.0.tgz deleted file mode 100644 index 1ce688f776bf530f63c0a03ee4c17175b4956e73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8359 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 Date: Wed, 13 Nov 2024 09:00:03 +0100 Subject: [PATCH 04/10] Bump version in chart.yaml due to breaking change --- apigateway/helm/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apigateway/helm/Chart.yaml b/apigateway/helm/Chart.yaml index 887323c..87a52b2 100644 --- a/apigateway/helm/Chart.yaml +++ b/apigateway/helm/Chart.yaml @@ -33,7 +33,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.2.10 +version: 2.0.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to From ed066f7b2819065c37960b6e50d52619c9141508 Mon Sep 17 00:00:00 2001 From: cospeedster Date: Wed, 13 Nov 2024 09:09:19 +0100 Subject: [PATCH 05/10] chore: Remove whitespaces from readmes --- apigateway/helm/README.md | 3 +-- apigateway/helm/README.md.gotmpl | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apigateway/helm/README.md b/apigateway/helm/README.md index 79b4782..9457bb1 100644 --- a/apigateway/helm/README.md +++ b/apigateway/helm/README.md @@ -103,13 +103,12 @@ spec: sessionAffinityConfig: clientIP: timeoutSeconds: 1000 - --- # apigateway-ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: - annotations: + annotations: nginx.ingress.kubernetes.io/affinity: "cookie" ``` diff --git a/apigateway/helm/README.md.gotmpl b/apigateway/helm/README.md.gotmpl index 920259c..2b67b2c 100644 --- a/apigateway/helm/README.md.gotmpl +++ b/apigateway/helm/README.md.gotmpl @@ -103,17 +103,17 @@ spec: sessionAffinityConfig: clientIP: timeoutSeconds: 1000 - + --- # apigateway-ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: - annotations: + annotations: nginx.ingress.kubernetes.io/affinity: "cookie" ``` -Note, if you are using the default configuration and nginx as your ingress controller, sticky sessions will be enabled by default for the UI port and ingress. Change the ingress annotations accordingly for other ingress controllers like Traefik. +Note, if you are using the default configuration and nginx as your ingress controller, sticky sessions will be enabled by default for the UI port and ingress. Change the ingress annotations accordingly for other ingress controllers like Traefik. ## Using an external load balancer From 176811b68539709d1d74c16d5b9fecf490c02e8b Mon Sep 17 00:00:00 2001 From: cospeedster Date: Wed, 13 Nov 2024 09:13:22 +0100 Subject: [PATCH 06/10] chore: Remove whitespaces from chart templates --- apigateway/helm/templates/_helper.tpl | 8 +++---- apigateway/helm/templates/configmap.yaml | 6 ++--- .../helm/templates/configmaps-extra.yaml | 4 ++-- apigateway/helm/templates/deployment.yaml | 24 +++++++++---------- apigateway/helm/templates/elasticsearch.yaml | 10 ++++---- apigateway/helm/templates/ingress.yaml | 2 +- apigateway/helm/templates/job.yaml | 2 +- apigateway/helm/templates/kibana.yaml | 4 ++-- apigateway/helm/templates/license.yaml | 6 ++--- .../helm/templates/nginx-configmap.yaml | 18 +++++++------- .../helm/templates/nginx-deployment.yaml | 12 +++++----- apigateway/helm/templates/nginx-svc.yaml | 6 ++--- apigateway/helm/templates/secret.yaml | 4 ++-- apigateway/helm/templates/secrets-extra.yaml | 2 +- apigateway/helm/templates/service.yaml | 8 +++---- 15 files changed, 57 insertions(+), 59 deletions(-) diff --git a/apigateway/helm/templates/_helper.tpl b/apigateway/helm/templates/_helper.tpl index 4e0e061..e9c26f8 100644 --- a/apigateway/helm/templates/_helper.tpl +++ b/apigateway/helm/templates/_helper.tpl @@ -59,27 +59,27 @@ Build the secret name for truststore for Elasticsearch {{- end }} {{/* -Renders API Gateway's password key identifier for API Gateway for the keystore. Defaults to "password" if no Value for .Values.apigw.elastic. +Renders API Gateway's password key identifier for API Gateway for the keystore. Defaults to "password" if no Value for .Values.apigw.elastic. */}} {{- define "apigateway.elastickeystoresecretPasswordKey" -}} {{- default ( printf "%s" "password" ) .Values.apigw.elastickeyStorePassKey }} {{- end }} {{/* -Renders API Gateway's password key identifier for API Gateway for the truststore. Defaults to "password" if no Value for .Values.apigw.elastic. +Renders API Gateway's password key identifier for API Gateway for the truststore. Defaults to "password" if no Value for .Values.apigw.elastic. */}} {{- define "apigateway.elastictruststoresecretPasswordKey" -}} {{- default ( printf "%s" "password" ) .Values.apigw.elastictruststoreStorePassKey }} {{- end }} -{{/* +{{/* Build the tls secret name, which holds the jks trust and keystore for API Gateway to communicate with Elasticsearch */}} {{- define "apigateway.elastictls" -}} {{- default (printf "%s%s" (include "common.names.fullname" .) "-es-tls-secret") .Values.elasticsearch.tlsSecretName }} {{- end }} -{{/* +{{/* Build the admin secret name, which holds the Administrator password */}} {{- define "apigateway.adminsecret" -}} diff --git a/apigateway/helm/templates/configmap.yaml b/apigateway/helm/templates/configmap.yaml index 4006abd..b317eb2 100644 --- a/apigateway/helm/templates/configmap.yaml +++ b/apigateway/helm/templates/configmap.yaml @@ -36,9 +36,8 @@ data: {{- if .Values.apigw.extraConfigSources }} {{- toYaml .Values.apigw.extraConfigSources | nindent 4 -}} {{- end }} - apigw-config.yml: | - apigw: + apigw: {{- range $key, $value := .Values.apigw.configSources }} {{- if kindIs "map" $value }} {{- printf "%s:" $key | nindent 6 }} @@ -46,10 +45,9 @@ data: {{- else if kindIs "string" $value }} {{- printf "%s: %s" $key (tpl $value $) }} {{- else if or (kindIs "bool" $value) (or (kindIs "float" $value) (kindIs "int" $value)) }} - {{- printf "%s: %v" $key $value }} + {{- printf "%s: %v" $key $value }} {{- end }} {{- end }} - {{ if .Values.apigw.applicationProperties -}} application.properties: | {{- printf "%s" (tpl .Values.apigw.applicationProperties .) | nindent 4 }} diff --git a/apigateway/helm/templates/configmaps-extra.yaml b/apigateway/helm/templates/configmaps-extra.yaml index 2b7c76b..3edea64 100644 --- a/apigateway/helm/templates/configmaps-extra.yaml +++ b/apigateway/helm/templates/configmaps-extra.yaml @@ -27,6 +27,6 @@ metadata: {{- with $.Values.extraLabels -}} {{ toYaml . | nindent 4 }} {{- end }} -data: - {{- toYaml .data | nindent 2 }} +data: + {{- toYaml .data | nindent 2 }} {{- end }} diff --git a/apigateway/helm/templates/deployment.yaml b/apigateway/helm/templates/deployment.yaml index 5923120..37002fc 100644 --- a/apigateway/helm/templates/deployment.yaml +++ b/apigateway/helm/templates/deployment.yaml @@ -60,20 +60,20 @@ spec: {{- end }} {{- if .Values.serviceAccount.create }} serviceAccountName: {{ include "common.names.serviceAccountName" . }} - {{- end }} + {{- end }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} {{- if or ( .Values.apigw.initContainer.enabled ) ( .Values.extraInitContainers ) }} initContainers: - {{- if .Values.elasticsearch.deploy }} + {{- if .Values.elasticsearch.deploy }} - name: waitforelasticsearch image: {{ .Values.global.curlImage }} imagePullPolicy: IfNotPresent - {{- if .Values.resources.apigwInitContainer }} + {{- if .Values.resources.apigwInitContainer }} resources: {{- toYaml .Values.resources.apigwInitContainer | nindent 12 }} {{- end }} - {{- if .Values.apigw.initContainer.securityContext }} + {{- if .Values.apigw.initContainer.securityContext }} securityContext: {{- toYaml .Values.apigw.initContainer.securityContext | nindent 12 }} {{- end }} @@ -148,7 +148,7 @@ spec: valueFrom: secretKeyRef: name: {{ include "apigateway.elastickeystoresecret" . }} - key: {{ include "apigateway.elastickeystoresecretPasswordKey" . }} + key: {{ include "apigateway.elastickeystoresecretPasswordKey" . }} - name: apigw_elasticsearch_https_truststorePassword valueFrom: secretKeyRef: @@ -171,7 +171,7 @@ spec: - containerPort: {{ int .Values.apigw.adminPort }} name: admin-http protocol: TCP - - containerPort: {{ int .Values.apigw.runtimeExternalPort }} + - containerPort: {{ int .Values.apigw.runtimeExternalPort }} name: external-http protocol: TCP {{- if .Values.grpcService.enabled }} @@ -181,7 +181,7 @@ spec: {{- end }} {{- if .Values.extraPorts }} {{- toYaml .Values.extraPorts | nindent 10 }} - {{- end }} + {{- end }} livenessProbe: tcpSocket: port: {{ int .Values.apigw.adminPort }} @@ -194,7 +194,7 @@ spec: httpGet: path: /rest/apigateway/health port: {{ int .Values.apigw.adminPort }} - scheme: {{ .Values.apigw.readinessProbe.scheme }} + scheme: {{ .Values.apigw.readinessProbe.scheme }} failureThreshold: 3 initialDelaySeconds: 30 periodSeconds: 30 @@ -219,7 +219,7 @@ spec: {{- end }} {{- if .Values.extraVolumeMounts }} {{- if eq "string" (printf "%T" .Values.extraVolumeMounts) }} - {{- tpl .Values.extraVolumeMounts . | nindent 12 }} + {{- tpl .Values.extraVolumeMounts . | nindent 12 }} {{- else }} {{- toYaml .Values.extraVolumeMounts | nindent 12 }} {{- end }} @@ -245,7 +245,7 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} {{- if .Values.hostAliases }} - hostAliases: + hostAliases: {{- toYaml .Values.hostAliases | nindent 8 }} {{- end }} volumes: @@ -258,7 +258,7 @@ spec: - key: apigw-config.yml path: apigw-config.yml - key: application.properties - path: application.properties + path: application.properties - name: apigw-license configMap: name: {{ include "apigateway.licenseconfigname" . }} @@ -268,7 +268,7 @@ spec: path: licenseKey.xml {{- if .Values.elasticsearch.tlsEnabled }} - name: elastic-tls - secret: + secret: secretName: {{ include "apigateway.elastictls" .}} items: - key: truststore.jks diff --git a/apigateway/helm/templates/elasticsearch.yaml b/apigateway/helm/templates/elasticsearch.yaml index adf9f08..ec969fe 100644 --- a/apigateway/helm/templates/elasticsearch.yaml +++ b/apigateway/helm/templates/elasticsearch.yaml @@ -26,7 +26,7 @@ metadata: labels: {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} spec: version: {{ .Values.elasticsearch.version }} {{- if .Values.elasticsearch.image }} @@ -35,7 +35,7 @@ spec: http: tls: {{- if .Values.elasticsearch.tlsEnabled }} - certificate: + certificate: secretName: {{ tpl .Values.elasticsearch.certificateSecretName . }} selfSignedCertificate: {{- if .Values.elasticsearch.subjectAltNames }} @@ -88,9 +88,9 @@ spec: {{- if not .Values.elasticsearch.defaultNodeSet.memoryMapping }} node.store.allow_mmap: false {{- end }} - podTemplate: + podTemplate: metadata: - labels: + labels: {{- with .Values.extraLabels -}} {{ toYaml . | nindent 12 }} {{- end }} @@ -144,7 +144,7 @@ spec: memory: 50Mi cpu: 500m limits: - memory: 100Mi + memory: 100Mi {{- end }} {{- end }} {{- end }} diff --git a/apigateway/helm/templates/ingress.yaml b/apigateway/helm/templates/ingress.yaml index c6c3a82..79f41ab 100644 --- a/apigateway/helm/templates/ingress.yaml +++ b/apigateway/helm/templates/ingress.yaml @@ -43,7 +43,7 @@ metadata: {{- $labels | nindent 4 }} {{- with $.Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} {{- with .annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/apigateway/helm/templates/job.yaml b/apigateway/helm/templates/job.yaml index b6ed50d..06e4f18 100644 --- a/apigateway/helm/templates/job.yaml +++ b/apigateway/helm/templates/job.yaml @@ -205,7 +205,7 @@ spec: imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} - + {{ end }} {{- end -}} diff --git a/apigateway/helm/templates/kibana.yaml b/apigateway/helm/templates/kibana.yaml index 06483fd..7d421be 100644 --- a/apigateway/helm/templates/kibana.yaml +++ b/apigateway/helm/templates/kibana.yaml @@ -74,7 +74,7 @@ spec: name: {{ include "common.names.fullname" . }} podTemplate: metadata: - labels: + labels: {{- with .Values.extraLabels -}} {{ toYaml . | nindent 8 }} {{- end }} @@ -147,7 +147,7 @@ spec: name: {{ include "apigateway.kibanasecret" . }} key: password {{- if .Values.kibana.tls.enabled }} - - name: KIBANA_TRUSTSTORE_PASSWORD + - name: KIBANA_TRUSTSTORE_PASSWORD valueFrom: secretKeyRef: name: {{ include "apigateway.kibanatruststorepassword" . }} diff --git a/apigateway/helm/templates/license.yaml b/apigateway/helm/templates/license.yaml index ed2fd2c..4a2c262 100644 --- a/apigateway/helm/templates/license.yaml +++ b/apigateway/helm/templates/license.yaml @@ -23,13 +23,13 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ include "common.names.fullname" . }}-license - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} annotations: - helm.sh/resource-policy: keep + helm.sh/resource-policy: keep data: licensekey: {{ .Values.license | toYaml | nindent 4 }} diff --git a/apigateway/helm/templates/nginx-configmap.yaml b/apigateway/helm/templates/nginx-configmap.yaml index cfc8c25..af2e3be 100644 --- a/apigateway/helm/templates/nginx-configmap.yaml +++ b/apigateway/helm/templates/nginx-configmap.yaml @@ -34,41 +34,41 @@ data: worker_processes 1; error_log /var/log/nginx/error.log debug; pid /var/run/nginx.pid; - + events { worker_connections 1024; } - + http { include /etc/nginx/mime.types; default_type application/octet-stream; - + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; - + access_log /var/log/nginx/access.log main; - + sendfile on; #tcp_nopush on; keepalive_timeout 65; gzip on; - + upstream apigateway-rt { server {{ include "common.names.fullname" . }}-rt:{{ int .Values.apigw.runtimePort }}; } - + upstream apigateway-ui { server {{ include "common.names.fullname" . }}-ui:{{ int .Values.apigw.uiPort }}; } - + server { listen {{ int .Values.apigw.runtimePort }}; location / { proxy_pass http://apigateway-rt; } } - + server { listen {{ int .Values.apigw.uiPort }}; location / { diff --git a/apigateway/helm/templates/nginx-deployment.yaml b/apigateway/helm/templates/nginx-deployment.yaml index 9f7ecbc..b13b287 100644 --- a/apigateway/helm/templates/nginx-deployment.yaml +++ b/apigateway/helm/templates/nginx-deployment.yaml @@ -22,11 +22,11 @@ apiVersion: apps/v1 kind: Deployment metadata: - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} name: {{ include "common.names.fullname" . }}-nginx spec: replicas: 1 @@ -36,7 +36,7 @@ spec: selector: matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }} - strategy: + strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 @@ -49,7 +49,7 @@ spec: {{- include "common.labels.standard" . | nindent 8 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 8 }} - {{- end }} + {{- end }} spec: containers: - name: nginx @@ -72,8 +72,8 @@ spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} - {{- end }} - + {{- end }} + volumes: - name: nginx-config configMap: diff --git a/apigateway/helm/templates/nginx-svc.yaml b/apigateway/helm/templates/nginx-svc.yaml index 47036af..52298c6 100644 --- a/apigateway/helm/templates/nginx-svc.yaml +++ b/apigateway/helm/templates/nginx-svc.yaml @@ -23,18 +23,18 @@ apiVersion: v1 kind: Service metadata: name: {{ include "common.names.fullname" . }}-nginx-svc - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} spec: type: {{ .Values.service.type }} ports: - port: {{ int .Values.apigw.runtimePort }} protocol: TCP targetPort: {{ int .Values.apigw.runtimePort }} - name: rtport + name: rtport {{- if (eq .Values.service.type "ClusterIP") }} nodePort: null {{- end }} diff --git a/apigateway/helm/templates/secret.yaml b/apigateway/helm/templates/secret.yaml index c37e545..44de9fa 100644 --- a/apigateway/helm/templates/secret.yaml +++ b/apigateway/helm/templates/secret.yaml @@ -27,7 +27,7 @@ metadata: labels: {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} type: kubernetes.io/basic-auth stringData: {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace $name ) | default dict }} @@ -49,7 +49,7 @@ metadata: labels: {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} - {{- end }} + {{- end }} type: kubernetes.io/basic-auth stringData: {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace $name ) | default dict }} diff --git a/apigateway/helm/templates/secrets-extra.yaml b/apigateway/helm/templates/secrets-extra.yaml index 9be2a1a..acb6b31 100644 --- a/apigateway/helm/templates/secrets-extra.yaml +++ b/apigateway/helm/templates/secrets-extra.yaml @@ -34,7 +34,7 @@ stringData: {{- $secretObj := (lookup "v1" "Secret" $.Release.Namespace .name ) | default dict }} {{- $secretData := get $secretObj "data" | default dict }} {{- $password := get $secretData "password" | b64dec | default (randAlphaNum 12) }} - username: {{ .username | quote }} + username: {{ .username | quote }} password: {{ $password | quote }} roles: {{ .roles | quote}} {{- end }} diff --git a/apigateway/helm/templates/service.yaml b/apigateway/helm/templates/service.yaml index ab8184e..2a01e7c 100644 --- a/apigateway/helm/templates/service.yaml +++ b/apigateway/helm/templates/service.yaml @@ -21,7 +21,7 @@ apiVersion: v1 kind: Service metadata: name: {{ include "common.names.fullname" . }}-rt - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} @@ -44,7 +44,7 @@ apiVersion: v1 kind: Service metadata: name: {{ include "common.names.fullname" . }}-admin - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} @@ -67,7 +67,7 @@ apiVersion: v1 kind: Service metadata: name: {{ include "common.names.fullname" . }}-ui - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} @@ -102,7 +102,7 @@ metadata: {{- if .Values.grpcService.dnsExternal }} external-dns.alpha.kubernetes.io/hostname: {{ .Values.grpcService.hostname }} {{- end }} - labels: + labels: {{- include "common.labels.standard" . | nindent 4 }} {{- with .Values.extraLabels -}} {{ toYaml . | nindent 4 }} From ecb82d29a1ed77feee032842ab540b2ec10c3e10 Mon Sep 17 00:00:00 2001 From: cospeedster <52749645+cospeedster@users.noreply.github.com> Date: Mon, 18 Nov 2024 07:59:15 +0100 Subject: [PATCH 07/10] Update values.yaml --- apigateway/helm/values.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apigateway/helm/values.yaml b/apigateway/helm/values.yaml index c033233..9143a90 100644 --- a/apigateway/helm/values.yaml +++ b/apigateway/helm/values.yaml @@ -1,7 +1,7 @@ replicaCount: 1 # -- The number of old ReplicaSets to retain to allow rollback. -# revisionHistoryLimit: 10 +revisionHistoryLimit: 10 image: # -- The repository for the image. By default, @@ -795,6 +795,9 @@ prometheus-elasticsearch-exporter: # -- Deploy the prometheus exporter for elasticsearch enabled: true + # -- The number of old ReplicaSets to retain to allow rollback. + revisionHistoryLimit: 10 + # -- secret for elasticsearch user. Will need to adjust the secret's name. By default the secret name is -apigateway-sag-user-es. # Adjust accordingly if your release name is different. extraEnvSecrets: From a603d696018cb08d944449557da5214e073143c7 Mon Sep 17 00:00:00 2001 From: cospeedster <52749645+cospeedster@users.noreply.github.com> Date: Mon, 18 Nov 2024 08:05:37 +0100 Subject: [PATCH 08/10] fix: Include revisionHistoryLimit by if instead of with --- apigateway/helm/templates/elasticsearch.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apigateway/helm/templates/elasticsearch.yaml b/apigateway/helm/templates/elasticsearch.yaml index ec969fe..8dd9747 100644 --- a/apigateway/helm/templates/elasticsearch.yaml +++ b/apigateway/helm/templates/elasticsearch.yaml @@ -99,8 +99,8 @@ spec: {{ toYaml . | nindent 12 }} {{- end }} spec: - {{- with .Values.revisionHistoryLimit }} - revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} + {{- if .Values.revisionHistoryLimit }} + revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} {{- end }} {{- with .Values.elasticsearch.affinity }} affinity: From 1855177fa8f5dfaedc152f5717aede21d76ed516 Mon Sep 17 00:00:00 2001 From: thr Date: Thu, 28 Nov 2024 11:34:53 +0100 Subject: [PATCH 09/10] information for 2.0.0 added --- apigateway/helm/README.md.gotmpl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/apigateway/helm/README.md.gotmpl b/apigateway/helm/README.md.gotmpl index 2b67b2c..caed642 100644 --- a/apigateway/helm/README.md.gotmpl +++ b/apigateway/helm/README.md.gotmpl @@ -171,5 +171,24 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use | `1.2.7` | Added possibility to rename roleBinding for API Gateway, Kibana and Elasticsearch. This allows for multiple deployments into the same namespace. Also, CRD ServiceMonitor selector corrected. Support of ES storage PVC annotations. | | `1.2.8` | `tpl` function support in `affinity` value added. `affinity` support added for Kibana and Elasticsearch. `topologySpreadConstraints` support added for APIGW, Elasticsearch and Kibana. | | `1.2.9` | `priorityClassName` support added for APIGW, Elasticsearch and Kibana. | +| `2.0.0` | Prometheus Elasticsearch Exporter version `6.5.0` is used. Value `revisionHistoryLimit` is added and documented. | + +## Chart Version `2.0.0` + +The Chart version `2.0.0` uses the [Prometheus Elasticsearch Exporter](https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-elasticsearch-exporter) version `6.5.0`. + +### Migrate from `1.x.x` to `2.0.0` + +If you want to migrate the Elasticsearch Exporter version `5.0.0`, you must delete the existing deployment. Over install is not working. You see the error ... + +``` +Error: UPGRADE FAILED: cannot patch "apigw-prometheus-elasticsearch-exporter" ... +``` + +To delete the Elasticsearch Exporter deployment ... + +``` +kubectl delete deployment -prometheus-elasticsearch-exporter -n +``` {{ template "chart.valuesSection" . }} From 001cd67ec670fff50f0d66d16a3581370b78f1d8 Mon Sep 17 00:00:00 2001 From: thr Date: Thu, 28 Nov 2024 12:34:35 +0100 Subject: [PATCH 10/10] make it equal --- apigateway/helm/README.md | 19 +++++++++++++++++++ apigateway/helm/README.md.gotmpl | 2 -- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/apigateway/helm/README.md b/apigateway/helm/README.md index 9457bb1..bcb808e 100644 --- a/apigateway/helm/README.md +++ b/apigateway/helm/README.md @@ -169,6 +169,25 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use | `1.2.7` | Added possibility to rename roleBinding for API Gateway, Kibana and Elasticsearch. This allows for multiple deployments into the same namespace. Also, CRD ServiceMonitor selector corrected. Support of ES storage PVC annotations. | | `1.2.8` | `tpl` function support in `affinity` value added. `affinity` support added for Kibana and Elasticsearch. `topologySpreadConstraints` support added for APIGW, Elasticsearch and Kibana. | | `1.2.9` | `priorityClassName` support added for APIGW, Elasticsearch and Kibana. | +| `2.0.0` | Prometheus Elasticsearch Exporter version `6.5.0` is used. Value `revisionHistoryLimit` is added and documented. | + +## Chart Version `2.0.0` + +The Chart version `2.0.0` uses the [Prometheus Elasticsearch Exporter](https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-elasticsearch-exporter) version `6.5.0`. + +### Migrate from `1.x.x` to `2.0.0` + +If you want to migrate the Elasticsearch Exporter version `5.0.0`, you must delete the existing deployment. Over install is not working. You see the error ... + +``` +Error: UPGRADE FAILED: cannot patch "apigw-prometheus-elasticsearch-exporter" ... +``` + +To delete the Elasticsearch Exporter deployment ... + +``` +kubectl delete deployment -prometheus-elasticsearch-exporter -n +``` ## Values diff --git a/apigateway/helm/README.md.gotmpl b/apigateway/helm/README.md.gotmpl index caed642..c3451c6 100644 --- a/apigateway/helm/README.md.gotmpl +++ b/apigateway/helm/README.md.gotmpl @@ -103,7 +103,6 @@ spec: sessionAffinityConfig: clientIP: timeoutSeconds: 1000 - --- # apigateway-ingress.yaml apiVersion: extensions/v1beta1 @@ -115,7 +114,6 @@ metadata: Note, if you are using the default configuration and nginx as your ingress controller, sticky sessions will be enabled by default for the UI port and ingress. Change the ingress annotations accordingly for other ingress controllers like Traefik. - ## Using an external load balancer The Ingress provides two entrypoints for accessing the API Gateway cluster, one for the UI port to