[bitnami/wavefront-adapter-for-istio] Chart standarisation (#9619)

* [bitnami/wavefront-adapter-for-istio] Chart standarisation

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Generate README and fix typos

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Implement suggested changes

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Remove unused debug value

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Fix NOTES typo

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Modify containerPort management

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Fix lint error

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Containers <containers@bitnami.com>

* Modify args to use strings

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Apply suggestion and remove unrelated file

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* Remove replicaCount parameter

Signed-off-by: Francisco de Paz <fdepaz@vmware.com>

* [bitnami/wavefront-adapter-for-istio] Update components versions

Signed-off-by: Bitnami Containers <containers@bitnami.com>

Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
Francisco de Paz Galán
2022-04-07 20:51:33 +02:00
committed by GitHub
parent f0fdbf751e
commit 193ea6c2be
8 changed files with 274 additions and 159 deletions

View File

@@ -1,9 +1,9 @@
dependencies:
- name: wavefront
repository: https://charts.bitnami.com/bitnami
version: 3.3.2
version: 3.3.4
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.13.0
digest: sha256:b806f66a671a6509c9d51e568316c40b41b04c94008c5bd8380226e1d4976167
generated: "2022-04-01T20:52:25.054823315Z"
digest: sha256:d1e169d28afd8cd62faba8906fe204c3a9005274f59640e0e38b59ebbb82dd16
generated: "2022-04-07T17:18:15.189176487Z"

View File

@@ -30,4 +30,4 @@ maintainers:
name: wavefront-adapter-for-istio
sources:
- https://github.com/bitnami/bitnami-docker-wavefront-adapter-for-istio
version: 1.0.27
version: 1.1.0

View File

@@ -67,97 +67,120 @@ The command removes all the Kubernetes components associated with the chart and
### Global parameters
| Name | Description | Value |
| ------------------------- | -------------------------------------------------- | --------------- |
| `global.imageRegistry` | Global Docker image registry | `""` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `""` |
| `kubeVersion` | Override Kubernetes version | `""` |
| `nameOverride` | String to partially override common.names.fullname | `""` |
| `fullnameOverride` | String to fully override common.names.fullname | `""` |
| `commonLabels` | Labels to add to all deployed objects | `{}` |
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` |
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
| Name | Description | Value |
| ------------------------- | ----------------------------------------------- | ----- |
| `global.imageRegistry` | Global Docker image registry | `""` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `""` |
### Common parameters
| Name | Description | Value |
| ------------------------ | --------------------------------------------------------------------------------------- | --------------- |
| `kubeVersion` | Override Kubernetes version | `""` |
| `nameOverride` | String to partially override common.names.fullname | `""` |
| `fullnameOverride` | String to fully override common.names.fullname | `""` |
| `commonLabels` | Labels to add to all deployed objects | `{}` |
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` |
| `diagnosticMode.enabled` | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | `false` |
| `diagnosticMode.command` | Command to override all containers in the deployment | `["sleep"]` |
| `diagnosticMode.args` | Args to override all containers in the deployment | `["infinity"]` |
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
### Wavefront Adapter for Istio deployment parameters
| Name | Description | Value |
| --------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------- |
| `image.registry` | Adapter image registry | `docker.io` |
| `image.repository` | Adapter image repository | `bitnami/wavefront-adapter-for-istio` |
| `image.tag` | Adapter image tag (immutabe tags are recommended) | `0.1.5-debian-10-r273` |
| `image.pullPolicy` | Adapter image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Adapter image pull secrets | `[]` |
| `image.debug` | Enable image debug mode | `false` |
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `command` | Override default container command (useful when using custom images) | `[]` |
| `args` | Override default container args (useful when using custom images) | `[]` |
| `hostAliases` | Add deployment host aliases | `[]` |
| `resources.limits` | The resources limits for the Adapter container | `{}` |
| `resources.requests` | The requested resourcesc for the Adapter container | `{}` |
| `containerSecurityContext.enabled` | Enabled Adapter containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | Set Adapter container's Security Context runAsUser | `1001` |
| `containerSecurityContext.runAsNonRoot` | Set Adapter container's Security Context runAsNonRoot | `true` |
| `podSecurityContext.enabled` | Enabled Adapter pods' Security Context | `true` |
| `podSecurityContext.fsGroup` | Set Adapter pod's Security Context fsGroup | `1001` |
| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` |
| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` |
| `affinity` | Affinity for pod assignment | `{}` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `tolerations` | Tolerations for pod assignment | `[]` |
| `podLabels` | Extra labels for Adapter pods | `{}` |
| `priorityClassName` | Adapter pod priority | `""` |
| `lifecycleHooks` | Add lifecycle hooks to the Adapter deployment | `{}` |
| `customLivenessProbe` | Override default liveness probe | `{}` |
| `customReadinessProbe` | Override default readiness probe | `{}` |
| `updateStrategy.type` | Adapter deployment update strategy | `RollingUpdate` |
| `containerPort` | Adapter container port | `8000` |
| `extraEnvVars` | Add extra environment variables to the Adapter container | `[]` |
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `""` |
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `""` |
| `extraVolumes` | Optionally specify extra list of additional volumes for Adapter pods | `[]` |
| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for Adapter container(s) | `[]` |
| `initContainers` | Add additional init containers to the Adapter pods | `[]` |
| `sidecars` | Add additional sidecar containers to the Adapter pod | `[]` |
| `externalProxy.host` | Host of a wavefront-proxy instance (required if wavefront.enabled = false) | `""` |
| `externalProxy.port` | Host of a wavefront-proxy instance (required if wavefront.enabled = false) | `2878` |
| `adapterLogLevel` | Adapter log level | `info` |
| `istio.create` | Deploy istio objects | `true` |
| `istio.namespace` | Namespace to deploy the Istio objects | `istio-system` |
| `istio.apiVersion` | Override Istio API version | `""` |
| `metrics.flushInterval` | Interval to flush the metrics | `5s` |
| `metrics.source` | Source tag for all metrics handled by the adapter | `istio` |
| `metrics.prefix` | Prefix to prepend to all metrics handled by the adapter | `istio` |
| `metrics.http` | Enable the collection of http metrics | `true` |
| `metrics.tcp` | Enable the collection of tcp metrics | `true` |
| Name | Description | Value |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------- |
| `image.registry` | Adapter image registry | `docker.io` |
| `image.repository` | Adapter image repository | `bitnami/wavefront-adapter-for-istio` |
| `image.tag` | Adapter image tag (immutabe tags are recommended) | `0.1.5-debian-10-r347` |
| `image.pullPolicy` | Adapter image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Adapter image pull secrets | `[]` |
| `startupProbe.enabled` | Enable startupProbe | `true` |
| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `10` |
| `startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `3` |
| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
| `command` | Override default container command (useful when using custom images) | `[]` |
| `args` | Override default container args (useful when using custom images) | `[]` |
| `hostAliases` | Add deployment host aliases | `[]` |
| `resources.limits` | The resources limits for the Adapter container | `{}` |
| `resources.requests` | The requested resourcesc for the Adapter container | `{}` |
| `containerSecurityContext.enabled` | Enabled Adapter containers' Security Context | `true` |
| `containerSecurityContext.runAsUser` | Set Adapter container's Security Context runAsUser | `1001` |
| `containerSecurityContext.runAsNonRoot` | Set Adapter container's Security Context runAsNonRoot | `true` |
| `podSecurityContext.enabled` | Enabled Adapter pods' Security Context | `true` |
| `podSecurityContext.fsGroup` | Set Adapter pod's Security Context fsGroup | `1001` |
| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `nodeAffinityPreset.key` | Node label key to match. Ignored if `affinity` is set | `""` |
| `nodeAffinityPreset.values` | Node label values to match. Ignored if `affinity` is set | `[]` |
| `affinity` | Affinity for pod assignment | `{}` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `tolerations` | Tolerations for pod assignment | `[]` |
| `podLabels` | Extra labels for Adapter pods | `{}` |
| `priorityClassName` | Adapter pod priority | `""` |
| `schedulerName` | Use an alternate scheduler, e.g. "stork". | `""` |
| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `{}` |
| `terminationGracePeriodSeconds` | Termination grace period in seconds | `""` |
| `lifecycleHooks` | Add lifecycle hooks to the Adapter deployment | `{}` |
| `customLivenessProbe` | Override default liveness probe | `{}` |
| `customReadinessProbe` | Override default readiness probe | `{}` |
| `customStartupProbe` | Override default startup probe | `{}` |
| `updateStrategy.type` | Adapter deployment update strategy | `RollingUpdate` |
| `containerPorts.grpc` | Adapter GRCP container port | `8000` |
| `extraEnvVars` | Add extra environment variables to the Adapter container | `[]` |
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars | `""` |
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars | `""` |
| `extraVolumes` | Optionally specify extra list of additional volumes for Adapter pods | `[]` |
| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for Adapter container(s) | `[]` |
| `initContainers` | Add additional init containers to the Adapter pods | `[]` |
| `sidecars` | Add additional sidecar containers to the Adapter pod | `[]` |
| `externalProxy.host` | Host of a wavefront-proxy instance (required if wavefront.enabled = false) | `""` |
| `externalProxy.port` | Host of a wavefront-proxy instance (required if wavefront.enabled = false) | `2878` |
| `adapterLogLevel` | Adapter log level | `info` |
| `istio.create` | Deploy istio objects | `true` |
| `istio.namespace` | Namespace to deploy the Istio objects | `istio-system` |
| `istio.apiVersion` | Override Istio API version | `""` |
| `metrics.flushInterval` | Interval to flush the metrics | `5s` |
| `metrics.source` | Source tag for all metrics handled by the adapter | `istio` |
| `metrics.prefix` | Prefix to prepend to all metrics handled by the adapter | `istio` |
| `metrics.http` | Enable the collection of http metrics | `true` |
| `metrics.tcp` | Enable the collection of tcp metrics | `true` |
### Traffic Exposure Parameters
| Name | Description | Value |
| ---------------------------------- | -------------------------------------------- | ----------- |
| `service.type` | Adapter service type | `ClusterIP` |
| `service.port` | Adapter service port | `8000` |
| `service.loadBalancerIP` | Adapter service LoadBalancer IP | `""` |
| `service.loadBalancerSourceRanges` | loadBalancerIP source ranges for the Service | `[]` |
| `service.nodePorts.http` | NodePort for the HTTP endpoint | `""` |
| `service.externalTrafficPolicy` | External traffic policy for the service | `Cluster` |
| Name | Description | Value |
| ---------------------------------- | ---------------------------------------------------------------- | ----------- |
| `service.type` | Adapter service type | `ClusterIP` |
| `service.ports.grpc` | Adapter service GRPC port | `8000` |
| `service.clusterIP` | Adapter service Cluster IP | `""` |
| `service.loadBalancerIP` | Adapter service LoadBalancer IP | `""` |
| `service.loadBalancerSourceRanges` | loadBalancerIP source ranges for the Service | `[]` |
| `service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` |
| `service.annotations` | Additional custom annotations for Adapter service | `{}` |
| `service.sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` |
| `service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` |
| `service.nodePorts.http` | NodePort for the HTTP endpoint | `""` |
| `service.externalTrafficPolicy` | External traffic policy for the service | `Cluster` |
### Wavefront sub-chart parameters

View File

@@ -4,6 +4,26 @@ APP VERSION: {{ .Chart.AppVersion }}
** Please be patient while the chart is being deployed **
{{- if .Values.diagnosticMode.enabled }}
The chart has been deployed in diagnostic mode. All probes have been disabled and the command has been overwritten with:
command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 4 }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 4 }}
Get the list of pods by executing:
kubectl get pods --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }}
Access the pod you want to debug by executing
kubectl exec --namespace {{ .Release.Namespace }} -ti <NAME OF THE POD> -- bash
In order to replicate the container startup execute this command:
/opt/bitnami/wavefront-adapter-for-istio/bin/wavefront
{{- else }}
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
@@ -14,10 +34,11 @@ APP VERSION: {{ .Chart.AppVersion }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ template "common.names.fullname" . }}
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.names.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP:{{ .Values.service.port }}
echo http://$SERVICE_IP:{{ coalesce .Values.service.ports.grpc .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
echo "The renconciler is available at http://127.0.0.1:{{ .Values.service.port }}"
kubectl port-forward svc/{{ template "common.names.fullname" . }} {{ .Values.service.port }}:{{ .Values.service.port }} &
echo "The renconciler is available at http://127.0.0.1:{{ coalesce .Values.service.ports.grpc .Values.service.port }}"
kubectl port-forward svc/{{ template "common.names.fullname" . }} {{ coalesce .Values.service.ports.grpc .Values.service.port }}:{{ coalesce .Values.service.ports.grpc .Values.service.port }} &
{{- end }}
{{- end }}
{{- include "common.warnings.rollingTag" .Values.image }}

View File

@@ -45,12 +45,21 @@ spec:
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "component" "wavefront-adapter-for-istio" "context" $) | nindent 10 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
{{- end }}
{{- if .Values.schedulerName }}
schedulerName: {{ .Values.schedulerName }}
{{- end }}
{{- if .Values.topologySpreadConstraints }}
topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.topologySpreadConstraints "context" .) | nindent 8 }}
{{- end }}
{{- if .Values.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" ( dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" .) | nindent 8 }}
{{- end }}
{{- if .Values.terminationGracePeriodSeconds }}
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
{{- end }}
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
@@ -71,17 +80,21 @@ spec:
{{- if .Values.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
{{- if .Values.command }}
{{- if .Values.diagnosticMode.enabled }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
{{- else if .Values.command }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }}
{{- else }}
command:
- wavefront
{{- end }}
{{- if .Values.args }}
{{- if .Values.diagnosticMode.enabled }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }}
{{- else if .Values.args }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }}
{{- else }}
args:
- {{ .Values.containerPort | quote }}
- {{ coalesce .Values.containerPorts.grpc .Values.containerPort | quote }}
{{- end }}
env:
{{- if .Values.extraEnvVars }}
@@ -100,10 +113,11 @@ spec:
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- end }}
ports:
- containerPort: {{ .Values.containerPort }}
- containerPort: {{ coalesce .Values.containerPorts.grpc .Values.containerPort | int }}
name: grpc
{{- if not .Values.diagnosticMode.enabled }}
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled") "context" $) | nindent 12 }}
exec:
# As it is a grpc port, we cannot httpGet. tcpSocket cannot be used either
# because it adds noise in the logs
@@ -112,16 +126,11 @@ spec:
- -ec
- |
ps auxf | grep wavefront
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
{{- else if .Values.customLivenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled") "context" $) | nindent 12 }}
exec:
# As it is a grpc port, we cannot httpGet. tcpSocket cannot be used either
# because it adds noise in the logs
@@ -130,14 +139,23 @@ spec:
- -ec
- |
ps auxf | grep wavefront
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
{{- else if .Values.customReadinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.startupProbe.enabled }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.startupProbe "enabled") "context" $) | nindent 12 }}
exec:
# As it is a grpc port, we cannot httpGet. tcpSocket cannot be used either
# because it adds noise in the logs
command:
- bash
- -ec
- |
ps auxf | grep wavefront
{{- else if .Values.customStartupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }}
{{- end }}
{{- end }}
{{- if .Values.extraVolumeMounts }}
volumeMounts: {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }}
{{- end }}

View File

@@ -15,7 +15,7 @@ metadata:
spec:
adapter: {{ include "common.names.fullname" . }}-wavefront
connection:
address: {{ printf "%s.%s.svc.%s:%d" (include "common.names.fullname" .) .Release.Namespace .Values.clusterDomain (int .Values.service.port) }}
address: {{ printf "%s.%s.svc.%s:%d" (include "common.names.fullname" .) .Release.Namespace .Values.clusterDomain (coalesce .Values.service.ports.grpc .Values.service.port | int) }}
params:
{{- if .Values.wavefront.proxy.enabled }}
proxy:

View File

@@ -8,23 +8,38 @@ metadata:
{{- end }}
name: {{ template "common.names.fullname" . }}
namespace: {{ .Release.Namespace }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- if or .Values.service.annotations .Values.commonAnnotations }}
annotations:
{{- if .Values.service.annotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.service.annotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
spec:
type: {{ .Values.service.type }}
{{- if (or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort")) }}
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }}
{{- end }}
{{- if not (empty .Values.service.clusterIP) }}
clusterIP: {{ .Values.service.clusterIP | quote }}
{{- end }}
{{ if eq .Values.service.type "LoadBalancer" }}
loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }}
{{ end }}
{{- if (and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP))) }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.sessionAffinity }}
sessionAffinity: {{ .Values.service.sessionAffinity }}
{{- end }}
{{- if .Values.service.sessionAffinityConfig }}
sessionAffinityConfig: {{- include "common.tplvalues.render" (dict "value" .Values.service.sessionAffinityConfig "context" $) | nindent 4 }}
{{- end }}
ports:
- name: grpc
port: {{ .Values.service.port }}
port: {{ coalesce .Values.service.ports.grpc .Values.service.port }}
targetPort: grpc
protocol: TCP
{{- if (and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.http))) }}
@@ -32,5 +47,8 @@ spec:
{{- else if eq .Values.service.type "ClusterIP" }}
nodePort: null
{{- end }}
{{- if .Values.service.extraPorts }}
{{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }}
{{- end }}
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
app.kubernetes.io/component: wavefront-adapter-for-istio

View File

@@ -1,7 +1,7 @@
## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
##
## @section Global parameters
## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
@@ -15,36 +15,46 @@ global:
imagePullSecrets: []
storageClass: ""
## @section Common parameters
##
## Override Kubernetes version
## @param kubeVersion Override Kubernetes version
##
kubeVersion: ""
## String to partially override common.names.fullname template (will maintain the release name)
## @param nameOverride String to partially override common.names.fullname
##
nameOverride: ""
## String to fully override common.names.fullname template
## @param fullnameOverride String to fully override common.names.fullname
##
fullnameOverride: ""
## Add labels to all the deployed resources
## @param commonLabels Labels to add to all deployed objects
##
commonLabels: {}
## Add annotations to all the deployed resources
## @param commonAnnotations Annotations to add to all deployed objects
##
commonAnnotations: {}
## Kubernetes Cluster Domain
## @param clusterDomain Kubernetes cluster domain name
##
clusterDomain: cluster.local
## Enable diagnostic mode in the deployment
##
diagnosticMode:
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
##
enabled: false
## @param diagnosticMode.command Command to override all containers in the deployment
##
command:
- sleep
## @param diagnosticMode.args Args to override all containers in the deployment
##
args:
- infinity
## Extra objects to deploy (value evaluated as a template)
## @param extraDeploy Array of extra objects to deploy with the release
##
@@ -61,7 +71,7 @@ image:
repository: bitnami/wavefront-adapter-for-istio
## @param image.tag Adapter image tag (immutabe tags are recommended)
##
tag: 0.1.5-debian-10-r347
tag: 0.1.5-debian-10-r353
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
@@ -77,13 +87,22 @@ image:
##
pullSecrets: []
# - myRegistryKeySecretName
## Enable debug mode
## @param image.debug Enable image debug mode
##
debug: false
## Configure extra options for liveness and readiness probes
## Configure extra options for Adapter containers' liveness, readiness and startup probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
## @param startupProbe.enabled Enable startupProbe
## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
## @param startupProbe.periodSeconds Period seconds for startupProbe
## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
## @param startupProbe.failureThreshold Failure threshold for startupProbe
## @param startupProbe.successThreshold Success threshold for startupProbe
##
startupProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
## @param livenessProbe.enabled Enable livenessProbe
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
@@ -112,7 +131,6 @@ readinessProbe:
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
## Command and args for running the container (set to default if not set). Use array form
## @param command Override default container command (useful when using custom images)
##
@@ -121,13 +139,11 @@ command: []
## @param args Override default container args (useful when using custom images)
##
args: []
## Deployment pod host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
## @param hostAliases Add deployment host aliases
##
hostAliases: []
## wavefront-adapter-for-istio resource requests and limits
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
##
@@ -146,7 +162,6 @@ resources:
requests: {}
# cpu: 200m
# memory: 10Mi
## wavefront-adapter-for-istio containers' Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
## @param containerSecurityContext.enabled Enabled Adapter containers' Security Context
@@ -157,7 +172,6 @@ containerSecurityContext:
enabled: true
runAsUser: 1001
runAsNonRoot: true
## wavefront-adapter-for-istio pods' Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param podSecurityContext.enabled Enabled Adapter pods' Security Context
@@ -166,21 +180,18 @@ containerSecurityContext:
podSecurityContext:
enabled: true
fsGroup: 1001
## Pod affinity preset
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
## Allowed values: soft, hard
## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
##
podAffinityPreset: ""
## Pod anti-affinity preset
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
## Allowed values: soft, hard
##
podAntiAffinityPreset: soft
## Node affinity preset
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
## Allowed values: soft, hard
@@ -205,32 +216,27 @@ nodeAffinityPreset:
## - e2e-az2
##
values: []
## Affinity for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## @param affinity Affinity for pod assignment
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## ref: https://kubernetes.io/docs/user-guide/node-selection/
## @param nodeSelector Node labels for pod assignment
##
nodeSelector: {}
## Tolerations for pod assignment. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
## @param tolerations Tolerations for pod assignment
##
tolerations: []
## Pod extra labels
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
##
## @param podLabels Extra labels for Adapter pods
##
podLabels: {}
## Annotations for server pods.
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
## @skip podAnnotations
@@ -238,28 +244,38 @@ podLabels: {}
podAnnotations:
sidecar.istio.io/inject: "false"
scheduler.alpha.kubernetes.io/critical-pod: ""
## wavefront-adapter-for-istio pods' priority.
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
## @param priorityClassName Adapter pod priority
##
priorityClassName: ""
## @param schedulerName Use an alternate scheduler, e.g. "stork".
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
##
schedulerName: ""
## @param topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
##
topologySpreadConstraints: {}
## @param terminationGracePeriodSeconds Termination grace period in seconds
##
terminationGracePeriodSeconds: ""
## lifecycleHooks for the wavefront-adapter-for-istio container to automate configuration before or after startup.
## @param lifecycleHooks Add lifecycle hooks to the Adapter deployment
##
lifecycleHooks: {}
## Custom Liveness probes for wavefront-adapter-for-istio
## @param customLivenessProbe Override default liveness probe
##
customLivenessProbe: {}
## Custom Rediness probes wavefront-adapter-for-istio
## @param customReadinessProbe Override default readiness probe
##
customReadinessProbe: {}
## Custom Startup probes wavefront-adapter-for-istio
## @param customStartupProbe Override default startup probe
##
customStartupProbe: {}
## Update strategy - only really applicable for deployments with RWO PVs attached
## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the
## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will
@@ -268,11 +284,16 @@ customReadinessProbe: {}
##
updateStrategy:
type: RollingUpdate
## Adapter Container port
## @param containerPort Adapter container port
## containerPort DEPRECATED: use containerPorts.grpc instead.
##
containerPort: 8000
## containerPort: 8000
##
## Container ports
## @param containerPorts.grpc Adapter GRCP container port
##
containerPorts:
grpc: 8000
## Additional environment variables to set
## Example:
## extraEnvVars:
@@ -281,27 +302,22 @@ containerPort: 8000
## @param extraEnvVars Add extra environment variables to the Adapter container
##
extraEnvVars: []
## ConfigMap with extra environment variables
## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
##
extraEnvVarsCM: ""
## Secret with extra environment variables
## @param extraEnvVarsSecret Name of existing Secret containing extra env vars
##
extraEnvVarsSecret: ""
## Extra volumes to add to the deployment
## @param extraVolumes Optionally specify extra list of additional volumes for Adapter pods
##
extraVolumes: []
## Extra volume mounts to add to the container
## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for Adapter container(s)
##
extraVolumeMounts: []
## Add init containers to the wavefront-adapter-for-istio pods.
## Example:
## initContainers:
@@ -314,7 +330,6 @@ extraVolumeMounts: []
## @param initContainers Add additional init containers to the Adapter pods
##
initContainers: []
## Add sidecars to the wavefront-adapter-for-istio pods.
## Example:
## sidecars:
@@ -328,7 +343,6 @@ initContainers: []
## @param sidecars Add additional sidecar containers to the Adapter pod
##
sidecars: []
## Use an external wavefront-proxy host
##
externalProxy:
@@ -338,12 +352,10 @@ externalProxy:
## @param externalProxy.port Host of a wavefront-proxy instance (required if wavefront.enabled = false)
##
port: 2878
## Adapter prefix parameter
## @param adapterLogLevel Adapter log level
##
adapterLogLevel: info
## Istio settings
##
istio:
@@ -356,7 +368,6 @@ istio:
## @param istio.apiVersion Override Istio API version
##
apiVersion: ""
## Adapter Metrics parameters
##
metrics:
@@ -384,9 +395,19 @@ service:
##
type: ClusterIP
## HTTP Port
## @param service.port Adapter service port
## service.port DEPRECATED: use service.ports.grpc instead.
##
port: 8000
## port: 8000
## GRPC Port
## @param service.ports.grpc Adapter service GRPC port
##
ports:
grpc: 8000
## @param service.clusterIP Adapter service Cluster IP
## e.g.:
## clusterIP: None
##
clusterIP: ""
## loadBalancerIP for the Service (optional, cloud specific)
## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer
## @param service.loadBalancerIP Adapter service LoadBalancer IP
@@ -400,6 +421,22 @@ service:
## - 10.10.10.0/24
##
loadBalancerSourceRanges: []
## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
##
extraPorts: []
## @param service.annotations Additional custom annotations for Adapter service
##
annotations: {}
## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
## Values: ClientIP or None
## ref: https://kubernetes.io/docs/user-guide/services/
##
sessionAffinity: "None"
## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
## sessionAffinityConfig:
## clientIP:
## timeoutSeconds: 300
sessionAffinityConfig: {}
##
## nodePorts:
## http: <to set explicitly, choose port between 30000-32767>
@@ -423,14 +460,12 @@ wavefront:
## @param wavefront.enabled Deploy Wavefront chart (necessary if externalProxyHost is not set)
##
enabled: true
## @param wavefront.wavefront.url Wavefront SAAS service URL
## @param wavefront.wavefront.token Wavefront SAAS token
##
wavefront:
url: https://YOUR_CLUSTER.wavefront.com
token: YOUR_API_TOKEN
## @param wavefront.collector.enabled Deploy Wavefront collector (not used by the Adapter pod)
##
collector: