diff --git a/helm/cdx-account-processor-create-edap/Chart.yaml b/helm/cdx-account-processor-create-edap/Chart.yaml new file mode 100644 index 0000000..f797560 --- /dev/null +++ b/helm/cdx-account-processor-create-edap/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: A Helm chart for cdx account processor-create-edap in Kubernetes +name: cdx-account-processor-create-edap +version: 0.1.0 \ No newline at end of file diff --git a/helm/cdx-account-processor-create-edap/templates/configmap.yaml b/helm/cdx-account-processor-create-edap/templates/configmap.yaml new file mode 100644 index 0000000..73ef1ed --- /dev/null +++ b/helm/cdx-account-processor-create-edap/templates/configmap.yaml @@ -0,0 +1,52 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Chart.Name }} + labels: + app: {{ .Values.deployment.app }} +data: + CDX_AZURE_TENANT_ID: {{ .Values.configmap.cdx_azure_tenant_id | quote }} + CDX_AZURE_KEYVAULT_HOST: {{ .Values.configmap.cdx_azure_keyvault_host | quote }} + CDX_AZURE_KEYVAULT_URL: {{ .Values.configmap.cdx_azure_keyvault_url | quote }} + 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_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_PATH_REPROCESS: {{ .Values.configmap.cdx_eventhub_path_reprocess | 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_INGESTION_PATH_CREATE: {{ .Values.configmap.cdx_eventhub_ingestion_path_create | 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_PATH_DLQ: {{ .Values.configmap.cdx_eventhub_path_dlq | 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 }} + CDX_EH_CONSUMER_MAX_THROTTLE_LIMIT: {{ .Values.configmap.cdx_eh_consumer_max_throttle_limit | quote }} + CDX_EH_CONSUMER_TIME_OUT_IN_MINUTES: {{ .Values.configmap.cdx_eh_consumer_time_out_in_minutes | quote }} + AZURE_KEYVAULT_SECRETS_CASSANDRA_SECRET_KEY: {{ .Values.configmap.cdx_azure_keyvault_secrets_cassandra_secret_key | quote }} + AZURE_KEYVAULT_SECRETS_CASSANDRA_SECRET_VERSION: {{ .Values.configmap.cdx_azure_keyvault_secrets_cassandra_secret_version | quote }} + CDX_AZURE_ENCRYPTAES_SECRET_KVKEY: {{ .Values.configmap.cdx_azure_encryptaes_secret_kvkey | quote }} + CDX_AZURE_ENCRYPTAES_SECRET_KVKEY_VERSION: {{ .Values.configmap.cdx_azure_encryptaes_secret_kvkey_version | quote }} + CDX_AZURE_ENCRYPTIV_SALT_KVKEY: {{ .Values.configmap.cdx_azure_encryptiv_salt_kvkey | quote }} + CDX_AZURE_ENCRYPTIV_SALT_KVKEY_VERSION: {{ .Values.configmap.cdx_azure_encryptiv_salt_kvkey_version | quote }} + CDX_AZURE_PAYLOAD_ENCRYPTAES_SECRET_KVKEY: {{ .Values.configmap.cdx_azure_payload_encryptaes_secret_kvkey | quote }} + CDX_AZURE_PAYLOAD_ENCRYPTAES_SECRET_KVKEY_VERSION: {{ .Values.configmap.cdx_azure_payload_encryptaes_secret_kvkey_version | quote }} + CDX_AZURE_PAYLOAD_ENCRYPTIV_SALT_KVKEY: {{ .Values.configmap.cdx_azure_payload_encryptiv_salt_kvkey | quote }} + CDX_AZURE_PAYLOAD_ENCRYPTIV_SALT_KVKEY_VERSION: {{ .Values.configmap.cdx_azure_payload_encryptiv_salt_kvkey_version | quote }} diff --git a/helm/cdx-account-processor-create-edap/templates/deployment.yaml b/helm/cdx-account-processor-create-edap/templates/deployment.yaml new file mode 100644 index 0000000..5a185ee --- /dev/null +++ b/helm/cdx-account-processor-create-edap/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.cdx }} + 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 }} diff --git a/helm/cdx-account-processor-create-edap/templates/hpa.yaml b/helm/cdx-account-processor-create-edap/templates/hpa.yaml new file mode 100644 index 0000000..ef579b9 --- /dev/null +++ b/helm/cdx-account-processor-create-edap/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-create-edap/values-pd.yaml b/helm/cdx-account-processor-create-edap/values-pd.yaml new file mode 100644 index 0000000..cb215f3 --- /dev/null +++ b/helm/cdx-account-processor-create-edap/values-pd.yaml @@ -0,0 +1,95 @@ +configmap: + +# Additional keyvalues from Application.conf added here, update values if needed. + cdx_cassandra_hosts: + cdx_cassandra_keyspace: + cdx_cassandra_username: + cdx_cassandra_password_kvkey: + cdx_cassandra_password_version: + cdx_cassandra_ssl_enabled: + cdx_cassandra_truststore_path: + cdx_cassandra_truststore_password_kvkey: + cdx_cassandra_truststore_password_version: + cdx_akka_stream_parallelism: + cdx_akka_stream_batch_size: + cdx_akka_stream_batch_time_window_in_seconds: + cdx_eventhub_namespace: s00199-enscdx-pd-us-account-n1 + cdx_eventhub_syndication_path: + cdx_eventhub_shared_access_keyname: enscdx-account-SASsendlisten + cdx_eventhub_shared_access_password_kvkey: cdxevh-pd-us-access-key-account-n1 + cdx_eventhub_shared_access_password_kvkey_version: + cdx_eventhub_path_reprocess: + cdx_eventhub_consumer_hostname: + cdx_eventhub_consumer_group_create: + cdx_eventhub_ingestion_path_create: evhcdx-account-processor-create-edap + cdx_eventhub_storagecontainer_name: + cdx_eventhub_storage_name: + cdx_eventhub_storage_kvkey: + cdx_eventhub_storage_key_version: + cdx_eventhub_path_dlq: evhcdx-account-dlq + cdx_healthcheck_http_host: 0.0.0.0 + cdx_healthcheck_http_port: 7030 + cdx_healthcheck_https_host: 0.0.0.0 + cdx_healthcheck_https_port: 7040 + +deployment: + spec: + replicas: 1 + minreadyseconds: 35 + strategy: + type: RollingUpdate + maxunavailable: 1 + maxsurge: 2 + app: cdx-account-processor-create-edap + container: + image: image + resources: + memory: + limits: 1Gi + requests: 1Gi + cpu: + limits: "1" + requests: "0.1" + port: + cdx: 7010 + healthz: 7030 + livenessprobe: + httpget: + path: /health + port: healthz + initialdelayseconds: 60 + periodseconds: 30 + timeoutseconds: 10 + readinessprobe: + httpget: + path: /health + port: healthz + initialdelayseconds: 60 + periodseconds: 30 + timeoutseconds: 10 + envform: + name: cdx-account-processor-create-edap + envs: + env1: + name: CDX_EVENTHUB_CONSUMER_HOSTNAME + fieldref: + apiversion: v1 + fieldpath: metadata.name + env2: + name: CDX_AZURE_KEYVAULT_SP_APP_ID + secretkeyref: + name: cdx-azure-keyvault-sp + key: cdx-azure-keyvault-sp-appid + env3: + name: CDX_AZURE_KEYVAULT_SP_APP_SECRET + secretkeyref: + name: cdx-azure-keyvault-sp + key: cdx-azure-keyvault-sp-app-secret + imagepullsecrets: + name: s00199cregccdxkey + +autoscale: + spec: + minreplicas: 2 + maxreplicas: 5 + targetcpuutil: 50 \ No newline at end of file