diff --git a/helm/cdx-account-processor-registration/Chart.yaml b/helm/cdx-account-processor-registration/Chart.yaml new file mode 100644 index 0000000..e0ac521 --- /dev/null +++ b/helm/cdx-account-processor-registration/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: A Helm chart for cdx account processor registration in Kubernetes +name: cdx-account-processor-registration +version: 0.1.0 \ No newline at end of file diff --git a/helm/cdx-account-processor-registration/templates/configmap.yaml b/helm/cdx-account-processor-registration/templates/configmap.yaml new file mode 100644 index 0000000..d50538d --- /dev/null +++ b/helm/cdx-account-processor-registration/templates/configmap.yaml @@ -0,0 +1,48 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Values.configmap.cdx.name }} +data: + CDX_CASSANDRA_HOSTS: {{ .Values.configmap.cdx.cassandra.hosts | quote }} + CDX_CASSANDRA_KEYSPACE: {{ .Values.configmap.cdx.cassandra.keyspace | quote }} + CDX_CASSANDRA_USERNAME: {{ .Values.configmap.cdx.cassandra.username | quote }} + CDX_CASSANDRA_PASSWORD_KVKEY: {{ .Values.configmap.cdx.cassandra.password.kvkey | quote }} + CDX_CASSANDRA_PASSWORD_VERSION: {{ .Values.configmap.cdx.cassandra.password.version | quote }} + CDX_CASSANDRA_SSL_ENABLED: {{ .Values.configmap.cdx.cassandra.ssl.enabled | quote }} + CDX_CASSANDRA_TRUSTSTORE_PATH: {{ .Values.configmap.cdx.cassandra.truststore.path | quote }} + CDX_CASSANDRA_TRUSTSTORE_PASSWORD_KVKEY: {{ .Values.configmap.cdx.cassandra.truststore.password.kvkey | quote }} + CDX_CASSANDRA_TRUSTSTORE_PASSWORD_VERSION: {{ .Values.configmap.cdx.cassandra.truststore.password.version | quote }} + CDX_CASSANDRA_XYZ: {{ .Values.configmap.cdx.cassandra.xyz | quote }} + CDX_AKKA_STREAM_PARALLELISM: {{ .Values.configmap.cdx.akka.stream.parallelism | quote }} + CDX_AKKA_STREAM_BATCH_SIZE: {{ .Values.configmap.cdx.akka.stream.batch.size | quote }} + CDX_AKKA_STREAM_BATCH_TIME_WINDOW_IN_SECONDS: {{ .Values.configmap.cdx.akka.stream.batch.time.window.in.seconds | quote }} + CDX_EVENTHUB_NAMESPACE: {{ .Values.configmap.cdx.eventhub.namespace | quote }} + CDX_EVENTHUB_SYNDICATION_PATH: {{ .Values.configmap.cdx.eventhub.syndication.path | quote }} + CDX_EVENTHUB_SHARED_ACCESS_KEYNAME: {{ .Values.configmap.cdx.eventhub.shared.access.keyname | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY_VERSION: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey.version | quote }} + CDX_EVENTHUB_NAMESPACE: {{ .Values.configmap.cdx.eventhub.namespace | quote }} + CDX_EVENTHUB_PATH_REPROCESS: {{ .Values.configmap.cdx.eventhub.path.reprocess | quote }} + CDX_EVENTHUB_SHARED_ACCESS_KEYNAME: {{ .Values.configmap.cdx.eventhub.shared.access.keyname | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY_VERSION: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey.version | quote }} + CDX_EVENTHUB_CONSUMER_HOSTNAME: {{ .Values.configmap.cdx.eventhub.consumer.hostname | quote }} + CDX_EVENTHUB_CONSUMER_GROUP_CREATE: {{ .Values.configmap.cdx.eventhub.consumer.group.create | quote }} + CDX_EVENTHUB_NAMESPACE: {{ .Values.configmap.cdx.eventhub.namespace | quote }} + CDX_EVENTHUB_INGESTION_PATH_CREATE: {{ .Values.configmap.cdx.eventhub.ingestion.path.create | quote }} + CDX_EVENTHUB_SHARED_ACCESS_KEYNAME: {{ .Values.configmap.cdx.eventhub.shared.access.keyname | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY_VERSION: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey.version | quote }} + CDX_EVENTHUB_STORAGECONTAINER_NAME: {{ .Values.configmap.cdx.eventhub.storagecontainer.name | quote }} + CDX_EVENTHUB_STORAGE_NAME: {{ .Values.configmap.cdx.eventhub.storage.name | quote }} + CDX_EVENTHUB_STORAGE_KVKEY: {{ .Values.configmap.cdx.eventhub.storage.kvkey | quote }} + CDX_EVENTHUB_STORAGE_KEY_VERSION: {{ .Values.configmap.cdx.eventhub.storage.key.version | quote }} + CDX_EVENTHUB_NAMESPACE: {{ .Values.configmap.cdx.eventhub.namespace | quote }} + CDX_EVENTHUB_PATH_DLQ: {{ .Values.configmap.cdx.eventhub.path.dlq | quote }} + CDX_EVENTHUB_SHARED_ACCESS_KEYNAME: {{ .Values.configmap.cdx.eventhub.shared.access.keyname | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey | quote }} + CDX_EVENTHUB_SHARED_ACCESS_PASSWORD_KVKEY_VERSION: {{ .Values.configmap.cdx.eventhub.shared.access.password.kvkey.version | quote }} + CDX_HEALTHCHECK_HTTP_HOST: {{ .Values.configmap.cdx.healthcheck.http.host | quote }} + CDX_HEALTHCHECK_HTTP_PORT: {{ .Values.configmap.cdx.healthcheck.http.port | quote }} + CDX_HEALTHCHECK_HTTPS_HOST: {{ .Values.configmap.cdx.healthcheck.https.host | quote }} + CDX_HEALTHCHECK_HTTPS_PORT: {{ .Values.configmap.cdx.healthcheck.https.port | quote }} diff --git a/helm/cdx-account-processor-registration/templates/deployment.yaml b/helm/cdx-account-processor-registration/templates/deployment.yaml new file mode 100644 index 0000000..995286b --- /dev/null +++ b/helm/cdx-account-processor-registration/templates/deployment.yaml @@ -0,0 +1,75 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ .Chart.Name }} + labels: + app: {{ .Values.deployment.app }} +spec: + replicas: {{ .Values.deployment.spec.replicas }} + selector: + matchLabels: + app: {{ .Values.deployment.app }} + minReadySeconds: {{ .Values.deployment.spec.minreadyseconds }} + strategy: + type: {{ .Values.deployment.spec.strategy.type }} + rollingUpdate: + maxUnavailable: {{ .Values.deployment.spec.strategy.maxunavailable }} + maxSurge: {{ .Values.deployment.spec.strategy.maxsurge }} + template: # create pods using pod definition in this template + metadata: + labels: + app: {{ .Values.deployment.app }} + checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum | trunc 63}} + spec: + containers: + - name: {{ .Chart.Name }} + image: {{ .Values.deployment.container.image }} + resources: + limits: + memory: {{ .Values.deployment.container.resources.memory.limits | quote}} + cpu: {{ .Values.deployment.container.resources.cpu.limits | quote}} + requests: + memory: {{ .Values.deployment.container.resources.memory.requests | quote}} + cpu: {{ .Values.deployment.container.resources.cpu.requests | quote}} + ports: + - containerPort: {{ .Values.deployment.container.port }} + livenessProbe: + httpGet: + path: {{ .Values.deployment.container.livenessprobe.httpget.path }} + port: {{ .Values.deployment.container.livenessprobe.httpget.port }} + initialDelaySeconds: {{ .Values.deployment.container.livenessprobe.initialdelayseconds }} + periodSeconds: {{ .Values.deployment.container.livenessprobe.periodseconds }} + timeoutSeconds: {{ .Values.deployment.container.livenessprobe.timeoutseconds }} + readinessProbe: + httpGet: + path: {{ .Values.deployment.container.readinessprobe.httpget.path }} + port: {{ .Values.deployment.container.readinessprobe.httpget.port }} + initialDelaySeconds: {{ .Values.deployment.container.readinessprobe.initialdelayseconds }} + periodSeconds: {{ .Values.deployment.container.readinessprobe.periodseconds }} + timeoutSeconds: {{ .Values.deployment.container.readinessprobe.timeoutseconds }} + envFrom: + - configMapRef: + name: {{ .Values.deployment.envform.name }} + env: + - name: {{ .Values.deployment.envs.env1.name }} + valueFrom: + fieldRef: + apiVersion: {{ .Values.deployment.envs.env1.fieldref.apiversion }} + fieldPath: {{ .Values.deployment.envs.env1.fieldref.fieldpath }} + - name: {{ .Values.deployment.envs.env2.name }} + valueFrom: + secretKeyRef: + name: {{ .Values.deployment.envs.env2.secretkeyref.name }} + key: {{ .Values.deployment.envs.env2.secretkeyref.key }} + - name: {{ .Values.deployment.envs.env3.name }} + valueFrom: + secretKeyRef: + name: {{ .Values.deployment.envs.env3.secretkeyref.name }} + key: {{ .Values.deployment.envs.env3.secretkeyref.key }} + - name: {{ .Values.deployment.envs.env4.name }} + valueFrom: + secretKeyRef: + name: {{ .Values.deployment.envs.env4.secretkeyref.name }} + key: {{ .Values.deployment.envs.env4.secretkeyref.key }} + imagePullSecrets: + - name: {{ .Values.deployment.imagepullsecrets.name }} \ No newline at end of file diff --git a/helm/cdx-account-processor-registration/templates/hpa.yaml b/helm/cdx-account-processor-registration/templates/hpa.yaml new file mode 100644 index 0000000..ef579b9 --- /dev/null +++ b/helm/cdx-account-processor-registration/templates/hpa.yaml @@ -0,0 +1,13 @@ +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ .Chart.Name }} + namespace: +spec: + scaleTargetRef: + apiVersion: extensions/v1beta1 + kind: Deployment + name: {{ .Chart.Name }} + minReplicas: {{ .Values.autoscale.spec.minreplicas }} + maxReplicas: {{ .Values.autoscale.spec.maxreplicas }} + targetCPUUtilizationPercentage: {{ .Values.autoscale.spec.targetcpuutil }} \ No newline at end of file diff --git a/helm/cdx-account-processor-registration/values-pd.yaml b/helm/cdx-account-processor-registration/values-pd.yaml new file mode 100644 index 0000000..521d8e5 --- /dev/null +++ b/helm/cdx-account-processor-registration/values-pd.yaml @@ -0,0 +1,132 @@ + values_keys.push('cdx_eventhub_consumer_group_stage') + +configmap: + cdx: + name: cdx-account-processor-registration + cassandra: + hosts: 10.18.140.150,10.18.140.151,10.18.140.152 + keyspace: cust_usa_pd + username: cdxapi_db_nprod + password_kvkey: cdxapi-pd-us-db-password-key + ssl_enabled: true + truststore: + path: /tmp/cassandra.truststore + password_kvkey: cdxapi-pd-us-db-truststore-password-key + eventhub: + namespace: s00199-enscdx-pd-us-account-na1 + syndication_path: evhcdx-account-syndication + shared_access: + keyname: enscdx-account-SASsendlisten + password_kvkey: cdxevh-pd-us-access-key-account-na1 + consumer_group_registration: evhcdx-account-registration-csg1 + ingestion_path_registration: evhcdx-account-registration + storage: + container_name: stccdx-evh-account + name: s00199stapdusna1evhaccount + kvkey: cdxevh-pd-us-sta-key-account-na1 + consumer_group_stage: evhcdx-account-staging-csg1 + azure: + tenant_id: ee69be27-d938-4eb5-8711-c5e69ca43718 + keyvault: + host: s00199nkvt10001.vault.azure.net + url: https://s00199nkvt10001.vault.azure.net + encryptaes_secret_kvkey: cdxapi-pd-us-encryptaes-secret + encryptiv_salt_kvkey: cdxapi-pd-us-encryptiv-salt + payload: + encryptaes_secret_kvkey: cdxapi-pd-us-encrypt-payload-aes-secret + encryptiv_salt_kvkey: cdxapi-pd-us-encrypt-payload-iv-salt + java_options: -Xmx512m -Xms512m -XX:+UseG1GC -server -XX:MaxMetaspaceSize=256m -javaagent:/opt/newrelic/newrelic.jar -Dnewrelic.config.app_name=CRM-CDX-NonProd-pi -Dnewrelic.config.license_key=72f7d43463aa9187ce4646f4019ea5bc06a741f6 + eh_consumer: + max_throttle_limit: 100 + time_out_in_minutes: 2 + akka_stream: + parallelism: 1 + batch_size: 10 + batch_time_window_in_seconds: 1 + app_log_level: trace + app_stdout_color: false + +# New keys + cdx_cassandra_password_version: + cdx_cassandra_truststore_password_version: + cdx_cassandra_xyz: + cdx_eventhub_shared_access_password_kvkey_version: + cdx_eventhub_path_reprocess: + cdx_eventhub_shared_access_password_kvkey_version: + cdx_eventhub_consumer_hostname: + cdx_eventhub_consumer_group_create: + cdx_eventhub_ingestion_path_create: + cdx_eventhub_shared_access_password_kvkey_version: + cdx_eventhub_storagecontainer_name: + cdx_eventhub_storage_key_version: + cdx_eventhub_path_dlq: + cdx_eventhub_shared_access_password_kvkey_version: + cdx_healthcheck_http_host: + cdx_healthcheck_http_port: + cdx_healthcheck_https_host: + cdx_healthcheck_https_port: + +deployment: + spec: + replicas: 1 + minreadyseconds: 35 + strategy: + type: RollingUpdate + maxunavailable: 1 + maxsurge: 2 + app: cdx-account-processor-registration + container: + image: image + resources: + memory: + limits: 1Gi + requests: 1Gi + cpu: + limits: "1" + requests: "0.1" + port: 7030 + livenessprobe: + httpget: + path: /health + port: 7030 + initialdelayseconds: 60 + periodseconds: 30 + timeoutseconds: 10 + readinessprobe: + httpget: + path: /health + port: 7030 + initialdelayseconds: 60 + periodseconds: 30 + timeoutseconds: 10 + envform: + name: cdx-account-processor-registration + envs: + env1: + name: + fieldref: + apiversion: v1 + fieldpath: metadata.name + env2: + name: + secretkeyref: + name: + key: + env3: + name: + secretkeyref: + name: + key: + env4: + name: + secretkeyref: + name: + key: + imagepullsecrets: + name: + +autoscale: + spec: + minreplicas: 1 + maxreplicas: 1 + targetcpuutil: 50 \ No newline at end of file