Deploy Pulse with Helm
This page describes how to deploy Pulse by using Helm.
Overview
This umbrella chart consists of three subcharts:
Subchart | Description | Default |
pulse-core | Core components: RBAC, Manager Server, Operator | Enabled |
optimizer | Optimizer components: Calculator, Webhook | Enabled |
pulselogs | Log collection: DaemonSet, ConfigMap | Disabled |
Prerequisites
- Kubernetes 1.19 or later
- Helm 3.x
- kubectl configured to communicate with your cluster
- Cluster admin permissions, required for CRDs and ClusterRoles
Quick start
- Create Docker registry secret
Before installing, create the image pull secret.
# Create namespace
kubectl create ns pulse-system
# Create docker registry secret
kubectl create secret docker-registry pulse-registry \
--docker-server=https://191579300362.dkr.ecr.us-east-1.amazonaws.com \
--docker-username=AWS \
--docker-password=<AWS_ECR_PASSWORD> \
-n pulse-system
- Install the chart
# Basic installation
helm install pulse ./helm \
--namespace pulse-system \
--set pulse-core.manager.pulseHostname=pulse.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.example.com:31206/streaming
# Or use a values file
helm install pulse ./helm -f my-values.yaml --namespace pulse-system
- Verify installation
# Check pods
kubectl get pods -n pulse-system
# Expected output:
# NAME READY STATUS RESTARTS AGE
# accelo-manager-xxxx 1/1 Running 0 2m
# controller-manager-xxxx 1/1 Running 0 2m
Configuration
Global values
These values are shared across all subcharts.
Parameter | Description | Default |
global.namespace | Target namespace | pulse-system |
global.image.registry | Docker registry | 191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata |
global.image.tag | Default image tag for all services | latest |
global.imagePullSecrets | Image pull secrets | [{name: pulse-registry}] |
Image configuration
The chart uses a global image configuration pattern. Set the tag once, and it applies to all services.
# Set global tag for all images
helm install pulse ./helm --set global.image.tag=v2.0.0
# Override specific service tag
helm install pulse ./helm \
--set global.image.tag=v2.0.0 \
--set pulse-core.operator.image.tag=v2.1.0
Pulse-Core Values
Parameter | Description | Default |
pulse-core.enabled | Enable pulse-core subchart | true |
pulse-core.manager.image.repository | Manager image name | ad-accelo |
pulse-core.manager.image.tag | Manager image tag (empty = use global) | "" |
pulse-core.manager.pulseHostname | Pulse hostname (required) | "" |
pulse-core.manager.adstreamUrl | AD Stream URL (required) | "" |
pulse-core.manager.hydraServerUrl | Hydra server URL | http://ad-hydra:19072 |
pulse-core.manager.hydraBaseUrl | Hydra base URL | "" |
pulse-core.manager.axnserverUrl | AXN server URL | "" |
pulse-core.manager.resources | Manager resource limits | See values.yaml |
pulse-core.operator.image.repository | Operator image name | ad-pulse-operator |
pulse-core.operator.image.tag | Operator image tag (empty = use global) | "" |
pulse-core.operator.resources | Operator resource limits | See values.yaml |
pulse-core.hostAliases | Host aliases for DNS resolution | [] |
Optimizer Values
Parameter | Description | Default |
optimizer.enabled | Enable optimizer subchart | false |
optimizer.calculator.enabled | Enable calculator component | false |
optimizer.calculator.image.repository | Calculator image name | ad-pulse-optikube |
optimizer.calculator.image.tag | Calculator image tag | "" |
optimizer.webhook.enabled | Enable webhook component | false |
optimizer.webhook.image.repository | Webhook image name | ad-pulse-webhook |
optimizer.webhook.image.tag | Webhook image tag | "" |
optimizer.webhook.tls.crt | Base64-encoded TLS certificate | "" |
optimizer.webhook.tls.key | Base64-encoded TLS key | "" |
optimizer.webhook.tls.caBundle | Base64-encoded CA bundle | "" |
Pulselogs Values
Parameter | Description | Default |
pulselogs.enabled | Enable pulselogs subchart | false |
pulselogs.namespace | Pulselogs namespace | pulselogs |
pulselogs.image.repository | Pulselogs image name | pulselogs |
pulselogs.image.tag | Pulselogs image tag | "" |
pulselogs.elasticsearch.host | Elasticsearch host (required when enabled) | "" |
pulselogs.elasticsearch.port | Elasticsearch port | 19013 |
pulselogs.elasticsearch.username | Elasticsearch username | pulse |
pulselogs.elasticsearch.password | Elasticsearch password | "" |
pulselogs.pulseClusterName | Pulse cluster name (required when enabled) | "" |
pulselogs.sparkNamespace | Spark namespace to monitor | spark |
pulselogs.resources | Pulselogs resource limits | See values.yaml |
Usage Examples
Basic installation
helm install pulse ./helm \
--namespace pulse-system \
--create-namespace \
--set pulse-core.manager.pulseHostname=pulse.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.example.com:31206/streaming
Production installation with a custom image tag
helm install pulse ./helm \
--namespace pulse-prod \
--create-namespace \
--set global.image.tag=v2.5.0 \
--set pulse-core.manager.pulseHostname=pulse.prod.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.prod.example.com:31206/streaming \
--set pulse-core.manager.hydraBaseUrl=http://pulse.prod.example.com:31206/hydra \
--set pulse-core.manager.axnserverUrl=http://pulse.prod.example.com:31206/axnserver
With host aliases for DNS resolution
helm install pulse ./helm \
--namespace pulse-system \
--set pulse-core.manager.pulseHostname=pulse.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.example.com:31206/streaming \
--set 'pulse-core.hostAliases[0].ip=10.100.10.65' \
--set 'pulse-core.hostAliases[0].hostnames[0]=dbserver1.example.com' \
--set 'pulse-core.hostAliases[1].ip=10.100.10.66' \
--set 'pulse-core.hostAliases[1].hostnames[0]=dbserver2.example.com'
Enable Pulselogs
helm install pulse ./helm \
--namespace pulse-system \
--set pulse-core.manager.pulseHostname=pulse.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.example.com:31206/streaming \
--set pulselogs.enabled=true \
--set pulselogs.elasticsearch.host=elasticsearch.example.com \
--set pulselogs.elasticsearch.password=mypassword \
--set pulselogs.pulseClusterName=my-cluster
Disable Specific Components
# Disable optimizer webhook
helm install pulse ./helm \
--namespace pulse-system \
--set optimizer.webhook.enabled=false \
--set pulse-core.manager.pulseHostname=pulse.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.example.com:31206/streaming
# Disable entire optimizer subchart
helm install pulse ./helm \
--namespace pulse-system \
--set optimizer.enabled=false \
--set pulse-core.manager.pulseHostname=pulse.example.com \
--set pulse-core.manager.adstreamUrl=http://pulse.example.com:31206/streaming
Using a Values File
Create a my-values.yaml file:
global:
namespace: pulse
openshift: true
image:
registry: <CONTAINER_REGISTRY>
tag: 4.1.0-beta
imagePullSecrets:
- name: <IMAGE_PULL_SECRET>
imageCredentials:
create: true
name: <IMAGE_PULL_SECRET>
server: <CONTAINER_REGISTRY>
username: <USERNAME>
password: <PASSWORD>
pulse-core:
enabled: true
manager:
image:
repository: ad-accelo
pulseHostname: ""
adstreamUrl: ""
hydraServerUrl: "http://ad-hydra:19072"
hydraBaseUrl: ""
axnserverUrl: ""
createAcceloManagerRoute: true
resources:
limits:
cpu: 500m
memory: 1024Mi
requests:
cpu: 10m
memory: 64Mi
replicas: 1
operator:
image:
repository: ad-pulse-operator
resources:
limits:
cpu: 500m
memory: 1024Mi
requests:
cpu: 10m
memory: 64Mi
reconcilerRequeueTimeSeconds: "300"
maxBackoffTimeSeconds: "30"
defaultMongodbZoneCount: "100"
replicas: 1
ui:
exposeUI: true
targetPort: 4100
streaming:
exposeRoute: true
targetPort: 19005
hydra:
exposeRoute: true
targetPort: 19072
hostAliases: []
Then install:
helm install pulse ./helm -f my-values.yaml --namespace pulse-prod --create-namespace
Upgrading
# Upgrade with new values
helm upgrade pulse ./helm \
--namespace pulse-system \
--set global.image.tag=v3.0.0
# Upgrade using values file
helm upgrade pulse ./helm -f my-values.yaml --namespace pulse-system
Uninstalling
# Uninstall the release
helm uninstall pulse --namespace pulse-system
# Note: CRDs are not automatically deleted
# To remove CRDs manually:
kubectl delete crd pulseoperators.pulse.acceldata.com
Upgrading CRDs
CRDs are not automatically upgraded by Helm. To upgrade CRDs:
kubectl apply -f helm/crds/
Troubleshooting
Pods Not Starting
Check whether the image pull secret exists:
kubectl get secret pulse-registry -n pulse-system
CRD already exists
If you are upgrading from a kubectl-based installation:
kubectl delete crd pulseoperators.pulse.acceldata.com
helm install pulse ./helm ...
Webhook certificates not configured
The webhook requires TLS certificates. Provide them with values:
helm install pulse ./helm \
--set optimizer.webhook.tls.crt=$(base64 -w0 cert.pem) \
--set optimizer.webhook.tls.key=$(base64 -w0 key.pem) \
--set optimizer.webhook.tls.caBundle=$(base64 -w0 ca.pem)
Helm Commands
helm install pulse ./helm \
--namespace pulse \
--create-namespace \
--set global.image.tag=testBuild-k8s \
--set global.namespace=pulse \
--set global.imagePullSecrets[0].name=adreg \
--set pulse-core.manager.pulseHostname=platk8s101.acceldata.dvl \
--set pulse-core.manager.adstreamUrl=http://platk8s101.acceldata.dvl:32382/streaming \
--set pulse-core.manager.mongoUrl="mongodb://accel:ACCELUSER_01082018@pulse-mongodb-mongos-svc.pulse-mongo.svc.cluster.local" \
--set pulse-core.manager.vminsertUrl="vminsert-pulse-victoriametrics.pulse-victoriametrics.svc.cluster.local" \
--set pulse-core.manager.vmselectUrl="vmselect-pulse-victoriametrics.pulse-victoriametrics.svc.cluster.local" \
--set pulse-core.manager.natsUrl="pulse-nats.pulse-nats.svc.cluster.local" \
--set pulse-core.manager.pgUrl="pulse-postgresql-rw.pulse-postgres.svc.cluster.local" \
--set pulse-core.manager.redisUrl="pulse-redis.pulse-redis.svc.cluster.local" \
--set pulse-core.manager.elasticUrl="pulse-elasticsearch-es-http.pulse-es.svc.cluster.local" \
--set pulse-core.manager.logstashUrl="pulse-logstash.pulse-logstash.svc.cluster.local" \
--set pulse-core.manager.enableK8sDb=true
helm install pulse ./helm \
--namespace pulse \
--create-namespace \
--set global.image.tag=testBuild-k8s \
--set global.namespace=pulse \
--set global.imagePullSecrets[0].name=adreg \
--set pulse-core.manager.pulseHostname=platk8s101.acceldata.dvl \
--set pulse-core.manager.adstreamUrl=http://platk8s101.acceldata.dvl:32382/streaming \
--set pulse-core.manager.mongoUrl="ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXr2INALLQK+w/QZ3st0+j/He9YL2c4u8dOeFadenflMrbs6VKHW5E8Yymo3LiGvqjEsCVwFX//DWWFBRhq8eMZA" \
--set pulse-core.manager.vminsertUrl="vminsert-pulse-victoriametrics.pulse-victoriametrics.svc.cluster.local:8480" \
--set pulse-core.manager.vmselectUrl="vmselect-pulse-victoriametrics.pulse-victoriametrics.svc.cluster.local:8481" \
--set pulse-core.manager.natsUrl="pulse-nats.pulse-nats.svc.cluster.local:4222" \
--set pulse-core.manager.pgUrl="pulse-postgresql-rw.pulse-postgres.svc.cluster.local:5432" \
--set pulse-core.manager.redisUrl="pulse-redis.pulse-redis.svc.cluster.local:6279" \
--set pulse-core.manager.elasticUrl="http://pulse-elasticsearch-es-http.pulse-es.svc.cluster.local:9200" \
--set pulse-core.manager.logstashUrl="pulse-logstash.pulse-logstash.svc.cluster.local" \
--set pulse-core.manager.enableK8sDb=true
helm install pulse ./helm-pulse \
--namespace pulse \
--create-namespace \
--set global.image.tag=testBuild-k8s \
--set global.namespace=pulse \
--set global.imagePullSecrets[0].name=adreg \
--set pulse-core.manager.mongoUrl="ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXr2INALLQK+w/QZ3st0+j/H7FXhrHvNTQaM3TlnkdFgq6OKxJMYQmZwEfJtlsL2CR6GFl1RVjKsafxfZVlqNOR8" \
--set pulse-core.manager.vminsertUrl="vminsert-pulse-victoriametrics.pulse-vm.svc.cluster.local:8480" \
--set pulse-core.manager.vmselectUrl="vmselect-pulse-victoriametrics.pulse-vm.svc.cluster.local:8481" \
--set pulse-core.manager.natsUrl="pulse-nats.pulse-nats.svc.cluster.local:4222" \
--set pulse-core.manager.pgUrl="pulse-postgresql-rw.pulse-pg.svc.cluster.local:5432" \
--set pulse-core.manager.redisUrl="redis" \
--set pulse-core.manager.elasticUrl="pulse-elasticsearch-es-http.pulse-es.svc.cluster.local" \
--set pulse-core.manager.logstashUrl="pulse-logstash.pulse-logstash.svc.cluster.local" \
--set pulse-core.manager.createAcceloManagerRoute=true \
--set pulse-core.ui.exposeUI=true \
--set pulse-core.streaming.exposeRoute=true \
--set pulse-core.hydra.exposeRoute=true \
--set loadBalancerServices.ad-logstash.enabled=true \
--set pulselogs.rbac.create=true \
--set pulselogs.scc.create=true \
--set pulselogs.namespace=pulse \
--set pulsenode.namespace=pulse \
--set pulsenode.rbac.create=true \
--set pulsenode.scc.create=true \
--set global.routeSuffix="apps.os-pnc.acceldata.tech" \
--set global.imageCredentials.password='eyJwYXlsb2FkIjoiZFF2RDlRM2RGR3BaVFNScThIb2ZpNW9xVzI4OC9nUjNLdHFaTFhQUllIUEs5N2o4bE55NGFhd1lhL2dzcjRCWWEvUER5VlVuYUp3L0NxUGRYRnY5eWcwNklNZHFNRE95VGd6OFBCaTFFVlY3Rm52NTRhOFhuazVTaXZPYnIrKzdvdFJuTlhOUkF5YVNtYzhHSlp6RWU1Tzl6WEl6ZGQrbWp2Y3VhZXJ5YS9mNExGREwwZ2N4NS9GSy9IcHVnU2cvNzVYc2Q5YStsRjlRZWdvUysvMUswcldBcDNrZDhwU0ZrcXZhU0hiNk1mYlBIYlpldUQ4M2x6YnQzcGxkNnFLdG80QWpJWG52ejluYW9OU1RFdFBNMmNkTVhsWjkySHozcGZsQ3ByT0Ryd29SdGpjV0lNd0kxMHBBUVF5Tmo3WGUyK2lyaFhGS0g2N3U5VGdPSHZlWmxHOXBIQmhFblRhOG5YeTNmOEt4ellEREoxWDlJdFIzVGFVd2o2OEdpMURjKzRudmpwZFdUQzdQL3ZWL1VNcFpCOUcyNWpHNlBrMmlYU3FVWjVoYXRKZFBkLzh4VVhqdVB6Mm5MQnkyY1hqbTZWaVM3eWZwcEd5N0VLN0VBdWNTS2ZpdmxvTVg5OEVtZWdCQi91d3JlTTdpWmxDaUVpKzU5akIraTZlN081MEFiaGdBZ0Z2Qllsc0l3VmdFNEFBdnRMeHpZOXlsTUV2dkxCOFhhSVd3MkZLM3JlTGRzanBlTXNxTVdUNlpUeHc5a0d3MFRxT3dEU0hDdW1IWCtGUHBYUVF2eHhDU05DTm1WdWw0bHVGNVU0UVNQc0dOdmR4YkdOSWo5WEdSd0MyTlJ0N1UycGJTMjEvZmxrU0NKQmhQaldsZ1hHd1AwOXpjRG4ydVl1ZFY0a2ROWTIzZFVSZEIwbno0cXNud2dsTG8xV3c1ZUNsUk1nY3RlM3dIaTZpTFZnVkovOExPdDRFbWlJU21sNFUvNVdIcUxmS2gvYlBmK3ozQ05FMWgvS2dVc0ZvRWhzVUpWR3A5RmgzKzZGaXY4azFlSGs1UXY2ZC9ZSnE5cGlRdWRyTkJqd09xQXYzMktGcnlGSkNScE5QVnV1VWxhVWpmckF5WjlzNTRGdWZud1RSYUhZWXhUSzNDN0piZW81djlGbzZPWXcvNkR2WlhxWmg5eWtOYzBiZEtzNitsVzAwaFQvblVuMnM2cktXdElmWXAyNXdBS09kWUxleU1NNVR0ZFprMzNKRlIxenFzL056a1ZpRVlOYUZEakVWK3RHZS9BU25YZ1VYR3lVcWpKelMzVkx4OUwrN2JhdDlua05qd1hxS3Q0R25NWTFWTzM1SnpESWJRNnl4dG9QNVlVbkd0bkovbSIsImRhdGFrZXkiOiJBUUVCQUhod20wWWFJU0plUnRKbTVuMUc2dXFlZWtYdW9YWFBlNVVGY2U5UnE4LzE0d0FBQUg0d2ZBWUpLb1pJaHZjTkFRY0dvRzh3YlFJQkFEQm9CZ2txaGtpRzl3MEJCd0V3SGdZSllJWklBV1VEQkFFdU1CRUVETGlyOG52VTBURjdKZi9JNndJQkVJQTc3N1V5ekNvV054S0g5TDU5eUpJU2ZtU1FqYngybkFwSm5Vc0syd1FvbU9VZGRtMFFPdWtyclNvSDRMUzlsa0NVVklRZWJRcWtuRkY4U3djPSIsInZlcnNpb24iOiIyIiwidHlwZSI6IkRBVEFfS0VZIiwiZXhwaXJhdGlvbiI6MTc3NDE2MjUwOX0=' \
--set pulse-core.manager.enableK8sDb=true
helm upgrade pulse ./helm-pulse \
--namespace pulse \
--create-namespace \
--set global.image.tag=testBuild-k8s \
--set global.namespace=pulse \
--set global.imagePullSecrets[0].name=adreg \
--set pulse-core.manager.pulseHostname=platk8s101.acceldata.dvl \
--set pulse-core.manager.adstreamUrl=http://platk8s101.acceldata.dvl:32382/streaming \
--set pulse-core.manager.mongoUrl="ZN4v8cuUTXYvdnDJIDp+R8Z+ZsVXXjv8zDOvh8UwQXr2INALLQK+w/QZ3st0+j/H7FXhrHvNTQaM3TlnkdFgq6OKxJMYQmZwEfJtlsL2CR6GFl1RVjKsafxfZVlqNOR8" \
--set pulse-core.manager.vminsertUrl="vminsert-pulse-victoriametrics.pulse-vm.svc.cluster.local:8480" \
--set pulse-core.manager.vmselectUrl="vmselect-pulse-victoriametrics.pulse-vm.svc.cluster.local:8481" \
--set pulse-core.manager.natsUrl="pulse-nats.pulse-nats.svc.cluster.local:4222" \
--set pulse-core.manager.pgUrl="pulse-postgresql-rw.pulse-pg.svc.cluster.local:5432" \
--set pulse-core.manager.redisUrl="redis" \
--set pulse-core.manager.elasticUrl="pulse-elasticsearch-es-http.pulse-es.svc.cluster.local" \
--set pulse-core.manager.logstashUrl="pulse-logstash.pulse-logstash.svc.cluster.local" \
--set pulse-core.manager.createAcceloManagerRoute=true \
--set pulse-core.ui.exposeUI=true \
--set global.imageCredentials.password='eyJwYXlsb2FkIjoiSVl4Y2JQQ0ljSVFVSkFwM2ZpRzVoWHgvY1RMU21NaWpyellyM0hSTkFBK2taZm9wR2tTeDZXVitGU3RmNXhDU0hHNThwaUdWZldjRVlhVUloTU9XczhRN3Vsd0NiWmZLQ1hMTjBWVzVJVlFuMmdrekl2b0VaQk5pd1NaN2RvL3J6R2ladlZFREtCZUF6QjJUbElpLzZoWWhncGR5RlpBWEs4N1JJUGUreVdDaTdTbGU3SzRTVXFaWFY5RGEwMlB3Ym1HN3BYaENiWTdTQWFhOXhBQkt1Y09LOVRuanY0NkgyVnlCbkVUMjlEV2dtN1hlb1lhcEFXUUVnTzdncU40ZTFlUTRuZjFGYkw2THBsSjh4R0dEejdJL2s1azFnV1J4aEVUUWVHOXkrUzBXYkt3MGIrTk0rS0dZdWNVaFVJK2xiUTM2T085anlvZlg3bzRCQzZ0akFsUkplUmhSK0UxSFdhYXkvRU9NNFVGRldQeWhNSld2Y09hM09Obk4xZGl4R2hySnhtVWNJWldCRzllRXRvVjZrdGF1U1ZUQTdVcXhHdDdKQXBTTUNveWtQTlA1RDJvSzd0djhQbnRPNTdyZGphaW9YL3Vpckw1UXdxVlRTM0hMdUFYMmJjS2tnb1B4TmJweXZvZk02eU44U3V3TjVLOUJtb3M1MlVObjR4WUtpTTFhOU1CaFNEZUtvSTlNMnJmaWRTalVhNjRJd2RFVUM4a1NBVWd0eFN2aS96dk1YaGd0YVZ4Q1pRYzRSa1RjTWZQMzFtQ2txdzQ1ZGdMVWlZejFibE5Qd21QZlZFZXNNRXV6WWhkeTc3L1M1Tmw1MXpHUko4YWE4eC9tYzVDRkQ2ajhxNTVSS2FOQWtLb1k2Z0lTTFJYcDJsRTVWR2JpMkNzUU42T2FsdVlaQU9rQXlLcGE4RmdRWVJoc3NTQmVwditIL3ZyK3UvSTZoRzhPMjNRNlVVOEtVNTBQVHJlRWJJSk1oaFFGY0prMnlHWkZURzQ0OFBIYzVDTVY5UkZnQjhrM1dFQlc3VldiSnk4c3cwdjQyaElTbXVHeXd1Ykduc3owNDJxSy9nazNqc2NSdWYyL1NDZFBkT2l4UkVSMHhPdWJIWHhHamppMlhrdCs0eWJaVzNUT2YxaWtvSXo2dlF6YjVyTmM2STRRaGdhTGthOUp0aHE4U2s5dlRhR2k4SE11MlprVit0eDVTUEl6SU84QTNaWDU5Nnp2U1pYaE9qenJmSldtc3hJaGxYTnVMbVgrTzYzZ3R3RHBHc0xJYTh2L2pyT1dKMDQ4cWN2cTMxNVliMmVhcVpHWEQ0eGZuWi81QTcxbm5KZUxHMzFkUjVnd1AwWWdxeWVvIiwiZGF0YWtleSI6IkFRRUJBSGh3bTBZYUlTSmVSdEptNW4xRzZ1cWVla1h1b1hYUGU1VUZjZTlScTgvMTR3QUFBSDR3ZkFZSktvWklodmNOQVFjR29HOHdiUUlCQURCb0Jna3Foa2lHOXcwQkJ3RXdIZ1lKWUlaSUFXVURCQUV1TUJFRURMR1VYL3ZSejl0eXFxQmN1UUlCRUlBN085cUFZZnNiVEhHUUk3VkhFYkQvYzhDOGdTK0pHK0U5WVh4Uk5QM1p2cWpMTHJDU2U2c1J3M3V3cVpiTnVweHRUUHhCR3ZkNkYyemtjMFU9IiwidmVyc2lvbiI6IjIiLCJ0eXBlIjoiREFUQV9LRVkiLCJleHBpcmF0aW9uIjoxNzczODAzMjgzfQ==' \
--set pulse-core.manager.enableK8sDb=true
helm upgrade pulse ./helm-pulse \
--namespace pulse \
--set global.imageCredentials.password='eyJwYXlsb2FkIjoiSHR6bzR3QUUweUw5MmIrdHFlVFM0cXRJb09BUDJ1bGYyM3ozM3NZVThyNWFZT3RueDhraFRjZGIweERpWGtjN1kybENVSStOT0ZPTDhQYmp5RmhJMWlGaDlwa05pd2RFREl0RmdVdGhhZ2dHay9Ld2ZiS2dHOUVyMzJNVUVJbFhRejlHb0UvV1lpcXNDZDBqSURhWERTditoSlduWHg5NktFNFd0R2JaalUzVFg4OVB4SW9hZ2swMXNqcTdoa3JXQ3U4K0RJMGs3aDVzbHhoTmxWSXRvWjRIOGpaZlJ3M3o1b1J1bi9HOVppWWZtdUFDdXVaUmFZUDVjalBqdktPQ2NQQlhra1BuUUhRcTdFU0JGSHlJaDFaQUh1YnVGSjJMWEx2aFpkYW9adTVSR3NmbDA1K0g5K3hQd3JsK1BUdk9TWTNsY2J1YkF3WjNCWkIzRnBUVDIzaWV5Sm1sdnRuRHdqZzQyYTRyZkdqTDV3Zmw4WVhBMXZMS2M4M3ByUnhsN1Y4ZHFYT0F4NWFyUUUydFZGem5OeEt6d2EvdXBrRkVQaW9QL3l4VDExeHh5UmFvZm9FYjdiVFk1eEFzSzlvekpXSW10bTRHVElUaGNVaENQYmVxcmM0Rk1pU1htWGpGckM0eFJpWXVJeEZZNlV4RDlOWHlGRmdaOGtpcE9BMEQwbWtQcHN5cWExR3BLcDBXYnFYYVROUElxLzVyQlNDSG4rU3NNcUdUNU9EdFp2TkZSZmI5MUJzVFYvdVlYVFVmajV1TWh0bHVoTklwcG1wcTdZQ3cxVkhIWkdlV2c5NWNhbDd3b2c4d1FrV2l2R1NQdkdCYjgvbktEaXN4TUJkTjBjYkhxbEw5b24xU2I2ZFRHclVjdHlhZWkvdzh5a0M0YnVpUHozalA3WDFhZkg5MjZvN1Bxa1hObXFCVnk4ayt6VnExd24zMGo1Y0ZZc3lFN0ZNQ1VIVXk2WnVvNW5JQVlwR1p4SHlFQ1ZBdm51SEVVNU9mVTlmdmpvcUxJNyt2YTZpWmlURjVzYTV5WjNQVWdqNGwwVlVRTWF5a0hMZW5MclBnclUrTXNSc01YZG1ocEJmSWtveFlBNWF1YnZRdk9BYzlEa2tKRXlrMDlNSmZxZGdhY2x5NUZiVTFERHFoQUg1Rjc0ZUw4T2N1MkRRbVBDZy9nRFV5NTgyNU1HOFI3UXZoZEp1aVN4ajdlb1NqYk9MaGpJdFdnTW1hNkdIdXdFdmJRWEE4V1dNRWNia2dzVTllenlvNWxkWEJmOUIwZHoraXFJK0VCNzd3USs4YmNTZkU5T1hQTlRsczB6UVpDMjl4QlF4NjJzL2tSNWJTdGptNFFqaEF0NE84IiwiZGF0YWtleSI6IkFRRUJBSGh3bTBZYUlTSmVSdEptNW4xRzZ1cWVla1h1b1hYUGU1VUZjZTlScTgvMTR3QUFBSDR3ZkFZSktvWklodmNOQVFjR29HOHdiUUlCQURCb0Jna3Foa2lHOXcwQkJ3RXdIZ1lKWUlaSUFXVURCQUV1TUJFRURDQUlYUlNXcGl0Vmt4bVZnd0lCRUlBN3Q2Qk02TERoSGRVMXlSaThhaXNpWW8wZS92R2FSNFgyRzlBV3B1cUhhaXZpOExML1BMalNKYy9BT2UxRXYxQnpNWkdtZitWVHRyeXVRRHM9IiwidmVyc2lvbiI6IjIiLCJ0eXBlIjoiREFUQV9LRVkiLCJleHBpcmF0aW9uIjoxNzczNzgwNzk0fQ==' \
--reuse-values
helm install pulse-nats ./helm-pulse -n pulse-nats --set loadBalancerServices.nats.enabled=true
helm upgrade --install pulse ./helm-pulse -n pulse \
--set global.namespace=pulse \
--set loadBalancerServices.ad-logstash.enabled=true \
--set loadBalancerServices.ad-streaming.enabled=true
Add Security Context for Pulse services
oc adm policy add-scc-to-user anyuid -z default -n <pulse-namespace>
