aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes')
-rw-r--r--kubernetes/aai/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-babel/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-babel/resources/config/application.properties6
-rw-r--r--kubernetes/aai/components/aai-babel/templates/deployment.yaml2
-rw-r--r--kubernetes/aai/components/aai-babel/values.yaml29
-rw-r--r--kubernetes/aai/components/aai-graphadmin/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-graphadmin/resources/config/aaiconfig.properties5
-rw-r--r--kubernetes/aai/components/aai-graphadmin/resources/config/application.properties17
-rw-r--r--kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml1
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/_helpers.tpl42
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml73
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml7
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml14
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml7
-rw-r--r--kubernetes/aai/components/aai-graphadmin/values.yaml55
-rw-r--r--kubernetes/aai/components/aai-modelloader/values.yaml2
-rw-r--r--kubernetes/aai/components/aai-resources/Chart.yaml4
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties4
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/application-keycloak.properties14
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/application.properties15
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/localhost-access-logback.xml108
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/logback.xml349
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/realm.properties35
-rw-r--r--kubernetes/aai/components/aai-resources/templates/_helpers.tpl21
-rw-r--r--kubernetes/aai/components/aai-resources/templates/configmap.yaml3
-rw-r--r--kubernetes/aai/components/aai-resources/templates/deployment.yaml48
-rw-r--r--kubernetes/aai/components/aai-resources/templates/servicemonitor.yaml2
-rw-r--r--kubernetes/aai/components/aai-resources/values.yaml69
-rw-r--r--kubernetes/aai/components/aai-schema-service/config/application.properties7
-rw-r--r--kubernetes/aai/components/aai-schema-service/templates/deployment.yaml3
-rw-r--r--kubernetes/aai/components/aai-schema-service/values.yaml20
-rw-r--r--kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml10
-rw-r--r--kubernetes/aai/components/aai-traversal/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties4
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/application-keycloak.properties13
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/application.properties18
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/localhost-access-logback.xml97
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/logback.xml298
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/_helpers.tpl21
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/configmap.yaml3
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/deployment.yaml64
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/job.yaml32
-rw-r--r--kubernetes/aai/components/aai-traversal/values.yaml53
-rw-r--r--kubernetes/aai/templates/deployment.yaml18
-rw-r--r--kubernetes/aai/values.yaml18
-rw-r--r--kubernetes/authentication/Chart.yaml5
-rw-r--r--kubernetes/authentication/README.md3
-rw-r--r--kubernetes/authentication/components/keycloak-config-cli/Chart.yaml4
-rw-r--r--kubernetes/authentication/components/keycloak-config-cli/templates/job.yaml20
-rw-r--r--kubernetes/authentication/components/keycloak-config-cli/values.yaml9
-rw-r--r--kubernetes/authentication/components/oauth2-proxy/values.yaml4
-rw-r--r--kubernetes/authentication/templates/_utils.tpl2
-rw-r--r--kubernetes/authentication/templates/secret.yaml6
-rw-r--r--kubernetes/authentication/values.yaml12
-rw-r--r--kubernetes/cds/Chart.yaml2
-rwxr-xr-xkubernetes/cds/components/cds-blueprints-processor/Chart.yaml2
-rwxr-xr-xkubernetes/cds/components/cds-blueprints-processor/resources/config/application.properties4
-rwxr-xr-xkubernetes/cds/components/cds-blueprints-processor/values.yaml2
-rw-r--r--kubernetes/common/common/.helmignore10
-rw-r--r--kubernetes/common/common/Chart.yaml4
-rw-r--r--kubernetes/common/common/templates/_labels.tpl17
-rw-r--r--kubernetes/common/common/templates/_log.tpl9
-rw-r--r--kubernetes/common/common/templates/_mariadb.tpl26
-rw-r--r--kubernetes/common/common/templates/_name.tpl12
-rw-r--r--kubernetes/common/common/templates/_strimzikafka.tpl2
-rw-r--r--kubernetes/common/elasticsearch/.helmignore8
-rw-r--r--kubernetes/common/elasticsearch/Chart.yaml2
-rw-r--r--kubernetes/common/elasticsearch/components/curator/Chart.yaml2
-rw-r--r--kubernetes/common/elasticsearch/components/curator/templates/cronjob.yaml7
-rw-r--r--kubernetes/common/elasticsearch/components/curator/values.yaml3
-rw-r--r--kubernetes/common/elasticsearch/components/data/Chart.yaml2
-rw-r--r--kubernetes/common/elasticsearch/components/data/templates/statefulset.yaml84
-rw-r--r--kubernetes/common/elasticsearch/components/data/values.yaml11
-rw-r--r--kubernetes/common/elasticsearch/components/master/Chart.yaml2
-rw-r--r--kubernetes/common/elasticsearch/components/master/templates/statefulset.yaml79
-rw-r--r--kubernetes/common/elasticsearch/components/master/values.yaml12
-rw-r--r--kubernetes/common/elasticsearch/templates/configmap-es.yaml5
-rw-r--r--kubernetes/common/elasticsearch/templates/coordinating-deploy.yaml114
-rw-r--r--kubernetes/common/elasticsearch/values.yaml38
-rw-r--r--kubernetes/common/etcd-init/Chart.yaml2
-rw-r--r--kubernetes/common/etcd-init/templates/job.yaml3
-rw-r--r--kubernetes/common/etcd-init/values.yaml15
-rw-r--r--kubernetes/common/etcd/Chart.yaml2
-rw-r--r--kubernetes/common/etcd/templates/pv.yaml6
-rw-r--r--kubernetes/common/etcd/templates/service.yaml10
-rw-r--r--kubernetes/common/etcd/templates/statefulset.yaml6
-rw-r--r--kubernetes/common/mariadb-galera/Chart.yaml2
-rw-r--r--kubernetes/common/mariadb-galera/values.yaml7
-rw-r--r--kubernetes/common/mariadb-init/Chart.yaml2
-rw-r--r--kubernetes/common/mariadb-init/templates/configmap.yaml12
-rw-r--r--kubernetes/common/mariadb-init/templates/job.yaml13
-rw-r--r--kubernetes/common/mariadb-init/tests/job_test.yaml2
-rw-r--r--kubernetes/common/mariadb-init/values.yaml15
-rw-r--r--kubernetes/common/mongodb-init/Chart.yaml2
-rw-r--r--kubernetes/common/mongodb-init/templates/configmap.yaml6
-rw-r--r--kubernetes/common/mongodb-init/templates/job.yaml16
-rw-r--r--kubernetes/common/mongodb-init/templates/secrets.yaml1
-rw-r--r--kubernetes/common/mongodb-init/values.yaml18
-rw-r--r--kubernetes/common/nginx/.helmignore25
-rw-r--r--kubernetes/common/nginx/Chart.yaml37
-rw-r--r--kubernetes/common/nginx/README.md557
-rw-r--r--kubernetes/common/nginx/common/.helmignore26
-rw-r--r--kubernetes/common/nginx/common/CHANGELOG.md635
-rw-r--r--kubernetes/common/nginx/common/Chart.yaml26
-rw-r--r--kubernetes/common/nginx/common/README.md235
-rw-r--r--kubernetes/common/nginx/common/templates/_affinities.tpl155
-rw-r--r--kubernetes/common/nginx/common/templates/_capabilities.tpl239
-rw-r--r--kubernetes/common/nginx/common/templates/_compatibility.tpl46
-rw-r--r--kubernetes/common/nginx/common/templates/_errors.tpl85
-rw-r--r--kubernetes/common/nginx/common/templates/_images.tpl115
-rw-r--r--kubernetes/common/nginx/common/templates/_ingress.tpl73
-rw-r--r--kubernetes/common/nginx/common/templates/_labels.tpl46
-rw-r--r--kubernetes/common/nginx/common/templates/_names.tpl71
-rw-r--r--kubernetes/common/nginx/common/templates/_resources.tpl50
-rw-r--r--kubernetes/common/nginx/common/templates/_secrets.tpl192
-rw-r--r--kubernetes/common/nginx/common/templates/_storage.tpl21
-rw-r--r--kubernetes/common/nginx/common/templates/_tplvalues.tpl52
-rw-r--r--kubernetes/common/nginx/common/templates/_utils.tpl77
-rw-r--r--kubernetes/common/nginx/common/templates/_warnings.tpl109
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_cassandra.tpl51
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_mariadb.tpl108
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_mongodb.tpl67
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_mysql.tpl67
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_postgresql.tpl105
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_redis.tpl48
-rw-r--r--kubernetes/common/nginx/common/templates/validations/_validations.tpl51
-rw-r--r--kubernetes/common/nginx/common/values.yaml8
-rw-r--r--kubernetes/common/nginx/templates/NOTES.txt77
-rw-r--r--kubernetes/common/nginx/templates/_helpers.tpl123
-rw-r--r--kubernetes/common/nginx/templates/deployment.yaml417
-rw-r--r--kubernetes/common/nginx/templates/extra-list.yaml9
-rw-r--r--kubernetes/common/nginx/templates/health-ingress.yaml59
-rw-r--r--kubernetes/common/nginx/templates/hpa.yaml48
-rw-r--r--kubernetes/common/nginx/templates/ingress-tls-secret.yaml83
-rw-r--r--kubernetes/common/nginx/templates/ingress.yaml73
-rw-r--r--kubernetes/common/nginx/templates/networkpolicy.yaml71
-rw-r--r--kubernetes/common/nginx/templates/pdb.yaml26
-rw-r--r--kubernetes/common/nginx/templates/prometheusrules.yaml24
-rw-r--r--kubernetes/common/nginx/templates/server-block-configmap.yaml19
-rw-r--r--kubernetes/common/nginx/templates/serviceaccount.yaml18
-rw-r--r--kubernetes/common/nginx/templates/servicemonitor.yaml45
-rw-r--r--kubernetes/common/nginx/templates/stream-server-block-configmap.yaml19
-rw-r--r--kubernetes/common/nginx/templates/svc.yaml69
-rw-r--r--kubernetes/common/nginx/templates/tls-secret.yaml35
-rw-r--r--kubernetes/common/nginx/values.schema.json125
-rw-r--r--kubernetes/common/nginx/values.yaml1094
-rw-r--r--kubernetes/common/postgres-init/Chart.yaml3
-rw-r--r--kubernetes/common/postgres-init/templates/configmap.yaml6
-rw-r--r--kubernetes/common/postgres-init/templates/job.yaml22
-rw-r--r--kubernetes/common/postgres-init/values.yaml22
-rw-r--r--kubernetes/common/readinessCheck/Chart.yaml2
-rw-r--r--kubernetes/common/readinessCheck/templates/_readinessCheck.tpl10
-rw-r--r--kubernetes/common/readinessCheck/values.yaml2
-rw-r--r--kubernetes/common/repositoryGenerator/Chart.yaml2
-rw-r--r--kubernetes/common/repositoryGenerator/templates/_repository.tpl22
-rw-r--r--kubernetes/common/repositoryGenerator/values.yaml5
-rw-r--r--kubernetes/common/timescaledb/Chart.yaml2
-rw-r--r--kubernetes/common/timescaledb/templates/configmap-init.yaml6
-rw-r--r--kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl11
-rw-r--r--kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml8
-rw-r--r--kubernetes/dcaegen2-services/components/dcae-prh/values.yaml11
-rw-r--r--kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml5
-rw-r--r--kubernetes/onap/Chart.yaml6
-rw-r--r--kubernetes/onap/resources/environments/dev.yaml2
-rw-r--r--kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml2
-rwxr-xr-xkubernetes/onap/values.yaml3
-rw-r--r--kubernetes/platform/components/cmpv2-cert-provider/values.yaml6
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/Chart.yaml36
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-apex-pdp/Chart.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-apex-pdp/values.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-api/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml26
-rwxr-xr-xkubernetes/policy/components/policy-api/templates/deployment.yaml6
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-api/values.yaml10
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/Chart.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/values.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-ac-http-ppnt/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-ac-http-ppnt/values.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/values.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/Chart.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/values.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-ac-pf-ppnt/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-ac-pf-ppnt/values.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-runtime-acm/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-clamp-runtime-acm/resources/config/acRuntimeParameters.yaml11
-rw-r--r--kubernetes/policy/components/policy-clamp-runtime-acm/templates/deployment.yaml6
-rw-r--r--kubernetes/policy/components/policy-clamp-runtime-acm/values.yaml10
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-distribution/Chart.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-distribution/values.yaml4
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-drools-pdp/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-drools-pdp/resources/configmaps/base.conf14
-rw-r--r--kubernetes/policy/components/policy-drools-pdp/resources/configmaps/feature-distributed-locking.properties9
-rw-r--r--kubernetes/policy/components/policy-drools-pdp/templates/statefulset.yaml6
-rw-r--r--kubernetes/policy/components/policy-drools-pdp/values.yaml12
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-nexus/Chart.yaml0
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-nexus/values.yaml0
-rw-r--r--kubernetes/policy/components/policy-opa-pdp/Chart.yaml33
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/resources/config/config.json43
-rw-r--r--kubernetes/policy/components/policy-opa-pdp/resources/policies/policy-data.tar.gzbin0 -> 30720 bytes
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/authorizationpolicy.yaml21
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/configmap.yaml42
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/deployment.yaml137
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/kafkauser.yaml20
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/pvc.yaml38
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/secrets.yaml21
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/service.yaml21
-rwxr-xr-xkubernetes/policy/components/policy-opa-pdp/templates/serviceMonitor.yaml23
-rw-r--r--kubernetes/policy/components/policy-opa-pdp/values.yaml253
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-pap/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-pap/resources/config/papParameters.yaml17
-rw-r--r--kubernetes/policy/components/policy-pap/templates/deployment.yaml6
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-pap/values.yaml16
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/components/policy-xacml-pdp/Chart.yaml4
-rw-r--r--kubernetes/policy/components/policy-xacml-pdp/resources/config/xacml.properties8
-rw-r--r--kubernetes/policy/components/policy-xacml-pdp/templates/deployment.yaml6
-rw-r--r--kubernetes/policy/components/policy-xacml-pdp/values.yaml11
-rwxr-xr-xkubernetes/policy/resources/config/db.sh47
-rwxr-xr-xkubernetes/policy/templates/job.yaml203
-rw-r--r--kubernetes/policy/values.yaml127
-rw-r--r--kubernetes/portal-ng/components/portal-ng-history/values.yaml4
-rw-r--r--kubernetes/robot/values.yaml2
-rw-r--r--kubernetes/sdc/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-be/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/catalog-be/configuration.yaml1253
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/catalog-be/distribution-engine-configuration.yaml84
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/catalog-be/janusgraph.properties39
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/logging/logback.xml3
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/ready-probe.sh9
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/resource/key.properties41
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/resource/portal.properties89
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/start.d/http.ini29
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/start.d/https.ini29
-rw-r--r--kubernetes/sdc/components/sdc-be/resources/config/start.d/ssl.ini100
-rw-r--r--kubernetes/sdc/components/sdc-be/templates/autoscaling.yaml32
-rw-r--r--kubernetes/sdc/components/sdc-be/templates/configmap.yaml80
-rw-r--r--kubernetes/sdc/components/sdc-be/templates/deployment.yaml87
-rw-r--r--kubernetes/sdc/components/sdc-be/templates/job.yaml39
-rw-r--r--kubernetes/sdc/components/sdc-be/values.yaml144
-rw-r--r--kubernetes/sdc/components/sdc-cs/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-cs/templates/job.yaml10
-rw-r--r--kubernetes/sdc/components/sdc-cs/values.yaml21
-rw-r--r--kubernetes/sdc/components/sdc-fe/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-fe/resources/config/readyProbe/combined-liveness.sh28
-rw-r--r--kubernetes/sdc/components/sdc-fe/templates/autoscaling.yaml32
-rw-r--r--kubernetes/sdc/components/sdc-fe/templates/configmap.yaml9
-rw-r--r--kubernetes/sdc/components/sdc-fe/values.yaml24
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/logging/logback.xml446
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-helmvalidator.yaml6
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-vnfrepo.yaml4
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/externaltesting-configuration.yaml5
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/features.properties1
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/onboarding_configuration.yaml72
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/ready-probe.sh8
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/http.ini29
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/https.ini31
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/ssl.ini98
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/templates/autoscaling.yaml32
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/templates/configmap.yaml65
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml59
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/templates/job.yaml10
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/templates/servicemonitor.yaml (renamed from kubernetes/policy/resources/config/db_migrator_policy_init.sh)23
-rw-r--r--kubernetes/sdc/components/sdc-onboarding-be/values.yaml95
-rw-r--r--kubernetes/sdc/components/sdc-wfd-be/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-wfd-be/templates/autoscaling.yaml32
-rw-r--r--kubernetes/sdc/components/sdc-wfd-be/templates/deployment.yaml9
-rw-r--r--kubernetes/sdc/components/sdc-wfd-be/templates/job.yaml10
-rw-r--r--kubernetes/sdc/components/sdc-wfd-be/values.yaml33
-rw-r--r--kubernetes/sdc/components/sdc-wfd-fe/Chart.yaml2
-rw-r--r--kubernetes/sdc/components/sdc-wfd-fe/templates/autoscaling.yaml32
-rw-r--r--kubernetes/sdc/components/sdc-wfd-fe/templates/deployment.yaml9
-rw-r--r--kubernetes/sdc/components/sdc-wfd-fe/values.yaml18
-rw-r--r--kubernetes/sdc/values.yaml29
-rw-r--r--kubernetes/sdnc/Chart.yaml10
-rw-r--r--kubernetes/sdnc/components/dgbuilder/Chart.yaml4
-rw-r--r--kubernetes/sdnc/components/dgbuilder/resources/config/customSettings.js2
-rw-r--r--kubernetes/sdnc/components/dgbuilder/values.yaml2
-rw-r--r--kubernetes/sdnc/components/sdnc-ansible-server/Chart.yaml2
-rw-r--r--kubernetes/sdnc/components/sdnc-ansible-server/values.yaml2
-rwxr-xr-xkubernetes/sdnc/components/sdnc-prom/resources/bin/switchVoting.sh2
-rw-r--r--kubernetes/sdnc/components/sdnc-web/Chart.yaml2
-rw-r--r--kubernetes/sdnc/components/sdnc-web/values.yaml2
-rw-r--r--kubernetes/sdnc/components/ueb-listener/Chart.yaml2
-rw-r--r--kubernetes/sdnc/components/ueb-listener/resources/config/ueb-listener.properties2
-rw-r--r--kubernetes/sdnc/components/ueb-listener/values.yaml2
-rwxr-xr-xkubernetes/sdnc/resources/config/conf/aaiclient.properties4
-rw-r--r--kubernetes/sdnc/resources/config/conf/blueprints-processor-adaptor.properties2
-rw-r--r--kubernetes/sdnc/resources/config/conf/generic-resource-api-dg.properties106
-rw-r--r--kubernetes/sdnc/resources/config/conf/lcm-dg.properties4
-rwxr-xr-xkubernetes/sdnc/resources/geo/bin/switchVoting.sh4
-rwxr-xr-xkubernetes/sdnc/templates/job.yaml3
-rwxr-xr-xkubernetes/sdnc/templates/sdnrdb-init-job.yaml12
-rw-r--r--kubernetes/sdnc/templates/statefulset.yaml5
-rw-r--r--kubernetes/sdnc/values.yaml29
-rwxr-xr-xkubernetes/so/Chart.yaml12
-rw-r--r--kubernetes/so/components/so-admin-cockpit/values.yaml8
-rwxr-xr-xkubernetes/so/components/so-bpmn-infra/Chart.yaml2
-rwxr-xr-xkubernetes/so/components/so-bpmn-infra/resources/config/overrides/override.yaml4
-rwxr-xr-xkubernetes/so/components/so-bpmn-infra/templates/deployment.yaml4
-rwxr-xr-xkubernetes/so/components/so-bpmn-infra/values.yaml8
-rwxr-xr-xkubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml4
-rwxr-xr-xkubernetes/so/components/so-catalog-db-adapter/values.yaml4
-rwxr-xr-xkubernetes/so/components/so-cnf-adapter/templates/deployment.yaml3
-rwxr-xr-xkubernetes/so/components/so-cnf-adapter/values.yaml8
-rw-r--r--kubernetes/so/components/so-cnfm-lcm/templates/deployment.yaml1
-rw-r--r--kubernetes/so/components/so-cnfm-lcm/values.yaml8
-rw-r--r--kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml4
-rwxr-xr-xkubernetes/so/components/so-etsi-sol005-adapter/values.yaml8
-rwxr-xr-xkubernetes/so/components/so-mariadb/Chart.yaml2
-rw-r--r--kubernetes/so/components/so-mariadb/templates/job.yaml14
-rwxr-xr-xkubernetes/so/components/so-mariadb/values.yaml17
-rwxr-xr-xkubernetes/so/components/so-nssmf-adapter/values.yaml8
-rwxr-xr-xkubernetes/so/components/so-openstack-adapter/Chart.yaml2
-rwxr-xr-xkubernetes/so/components/so-openstack-adapter/values.yaml6
-rwxr-xr-xkubernetes/so/components/so-request-db-adapter/Chart.yaml2
-rwxr-xr-xkubernetes/so/components/so-request-db-adapter/templates/deployment.yaml4
-rwxr-xr-xkubernetes/so/components/so-request-db-adapter/values.yaml6
-rwxr-xr-xkubernetes/so/components/so-sdc-controller/Chart.yaml2
-rwxr-xr-xkubernetes/so/components/so-sdc-controller/values.yaml2
-rwxr-xr-xkubernetes/so/components/so-sdnc-adapter/Chart.yaml2
-rwxr-xr-xkubernetes/so/components/so-sdnc-adapter/resources/config/overrides/override.yaml18
-rwxr-xr-xkubernetes/so/components/so-sdnc-adapter/values.yaml2
-rwxr-xr-xkubernetes/so/components/soHelpers/Chart.yaml2
-rw-r--r--kubernetes/so/components/soHelpers/templates/_livenessProbe.tpl2
-rw-r--r--kubernetes/so/components/soHelpers/templates/_startupProbe.tpl14
-rwxr-xr-xkubernetes/so/components/soHelpers/values.yaml8
-rwxr-xr-xkubernetes/so/resources/config/mso/mso-docker.json18
-rwxr-xr-xkubernetes/so/values.yaml2
-rw-r--r--kubernetes/uui/Chart.yaml11
-rw-r--r--kubernetes/uui/components/uui-intent-analysis/Chart.yaml2
-rw-r--r--kubernetes/uui/components/uui-intent-analysis/resources/entrypoint/run.sh2
-rw-r--r--kubernetes/uui/components/uui-intent-analysis/templates/deployment.yaml1
-rw-r--r--kubernetes/uui/components/uui-intent-analysis/templates/job.yaml3
-rw-r--r--kubernetes/uui/components/uui-intent-analysis/values.yaml17
-rw-r--r--kubernetes/uui/components/uui-llm-adaptation/Chart.yaml2
-rw-r--r--kubernetes/uui/components/uui-llm-adaptation/resources/entrypoint/run.sh2
-rw-r--r--kubernetes/uui/components/uui-llm-adaptation/templates/deployment.yaml1
-rw-r--r--kubernetes/uui/components/uui-llm-adaptation/templates/job.yaml3
-rw-r--r--kubernetes/uui/components/uui-llm-adaptation/values.yaml17
-rw-r--r--kubernetes/uui/components/uui-nlp/templates/deployment.yaml1
-rw-r--r--kubernetes/uui/components/uui-nlp/values.yaml1
-rw-r--r--kubernetes/uui/components/uui-server/Chart.yaml2
-rw-r--r--kubernetes/uui/components/uui-server/resources/config/application.properties26
-rw-r--r--kubernetes/uui/components/uui-server/resources/entrypoint/run.sh2
-rw-r--r--kubernetes/uui/components/uui-server/templates/deployment.yaml7
-rw-r--r--kubernetes/uui/components/uui-server/templates/job.yaml10
-rw-r--r--kubernetes/uui/components/uui-server/values.yaml81
-rw-r--r--kubernetes/uui/templates/deployment.yaml4
-rw-r--r--kubernetes/uui/values.yaml81
350 files changed, 11134 insertions, 2481 deletions
diff --git a/kubernetes/aai/Chart.yaml b/kubernetes/aai/Chart.yaml
index 77078332c9..e9dac7a47f 100644
--- a/kubernetes/aai/Chart.yaml
+++ b/kubernetes/aai/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP Active and Available Inventory
name: aai
-version: 15.0.1
+version: 15.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-babel/Chart.yaml b/kubernetes/aai/components/aai-babel/Chart.yaml
index 2d0a78bde4..376a7dd0f3 100644
--- a/kubernetes/aai/components/aai-babel/Chart.yaml
+++ b/kubernetes/aai/components/aai-babel/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: Babel microservice
name: aai-babel
-version: 15.0.1
+version: 15.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-babel/resources/config/application.properties b/kubernetes/aai/components/aai-babel/resources/config/application.properties
index b28a4e7c6c..8c7e91ab84 100644
--- a/kubernetes/aai/components/aai-babel/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-babel/resources/config/application.properties
@@ -25,11 +25,11 @@ logging.config=${CONFIG_HOME}/logback.xml
tosca.mappings.config=${CONFIG_HOME}/tosca-mappings.json
spring.application.name=aai-babel
-spring.sleuth.enabled=true
-spring.zipkin.baseUrl={{ .Values.tracing.collector.baseUrl }}
+spring.sleuth.enabled={{ default .Values.global.tracing.enabled .Values.tracing.enabled }}
+spring.zipkin.baseUrl={{ default .Values.global.tracing.collector.baseUrl .Values.tracing.collector.baseUrl }}
spring.sleuth.messaging.jms.enabled = false
spring.sleuth.trace-id128=true
-spring.sleuth.sampler.probability={{ .Values.tracing.sampling.probability }}
+spring.sleuth.sampler.probability={{ default .Values.global.tracing.sampling.probability .Values.tracing.collector.baseUrl }}
spring.sleuth.propagation.type=w3c, b3
spring.sleuth.supports-join=false
diff --git a/kubernetes/aai/components/aai-babel/templates/deployment.yaml b/kubernetes/aai/components/aai-babel/templates/deployment.yaml
index 782ed1226c..57f770b845 100644
--- a/kubernetes/aai/components/aai-babel/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-babel/templates/deployment.yaml
@@ -19,7 +19,7 @@
apiVersion: apps/v1
kind: Deployment
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata: {{- include "common.resourceMetadata" (dict "annotations" .Values.annotations "dot" .) | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
{{- if .Values.debug.enabled }}
diff --git a/kubernetes/aai/components/aai-babel/values.yaml b/kubernetes/aai/components/aai-babel/values.yaml
index 2a57bb23cc..cfe70ffc76 100644
--- a/kubernetes/aai/components/aai-babel/values.yaml
+++ b/kubernetes/aai/components/aai-babel/values.yaml
@@ -18,7 +18,13 @@
#################################################################
# Global configuration defaults.
#################################################################
-global: {}
+global:
+ tracing:
+ enabled: false
+ collector:
+ baseUrl: http://jaeger-collector.istio-system:9411
+ sampling:
+ probability: 1.0
#################################################################
# Application configuration defaults.
@@ -33,7 +39,7 @@ flavor: small
replicaCount: 1
# number of ReplicaSets that should be retained for the Deployment
-revisionHistoryLimit: 2
+revisionHistoryLimit: 1
updateStrategy:
type: RollingUpdate
@@ -84,24 +90,27 @@ resources:
small:
limits:
cpu: "1"
- memory: "3Gi"
+ memory: "2500Mi"
requests:
- cpu: "200m"
+ cpu: "100m"
memory: "1Gi"
large:
limits:
cpu: "4"
- memory: "6Gi"
+ memory: "4Gi"
requests:
cpu: "1"
- memory: "2Gi"
+ memory: "1Gi"
unlimited: {}
+##
+## Use this to override the global defaults
tracing:
- collector:
- baseUrl: http://jaeger-collector.istio-system:9411
- sampling:
- probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
+# enabled: false
+ collector: {}
+# baseUrl: http://jaeger-collector.istio-system:9411
+ sampling: {}
+# probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
# adds jvm args for remote debugging the application
debug:
diff --git a/kubernetes/aai/components/aai-graphadmin/Chart.yaml b/kubernetes/aai/components/aai-graphadmin/Chart.yaml
index 13315415f2..4a7df8e94b 100644
--- a/kubernetes/aai/components/aai-graphadmin/Chart.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/Chart.yaml
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP AAI GraphAdmin
name: aai-graphadmin
-version: 15.0.1
+version: 15.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/aaiconfig.properties b/kubernetes/aai/components/aai-graphadmin/resources/config/aaiconfig.properties
index cf9164295a..ae49aa03a9 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/aaiconfig.properties
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/aaiconfig.properties
@@ -31,8 +31,8 @@ aai.global.callback.url=http://aai.{{ include "common.namespace" . }}/aai/
{{- if or (.Values.global.config.basic.auth.enabled) ( include "common.onServiceMesh" .) }}
aai.tools.enableBasicAuth=true
-aai.tools.username={{ .Values.global.config.basic.auth.username }}
-aai.tools.password={{ .Values.global.config.basic.auth.passwd }}
+aai.tools.username={{ (index .Values.global.config.basic.auth.users 0).username }}
+aai.tools.password={{ (index .Values.global.config.basic.auth.users 0).password }}
{{- end }}
aai.notification.current.version={{ .Values.global.config.schema.version.api.default }}
@@ -94,6 +94,7 @@ aai.datagrooming.enabledupecheckoff=false
aai.datagrooming.enableghost2checkoff=false
aai.datagrooming.enableghost2fixon=false
aai.datagrooming.enablef=false
+aai.datagrooming.enableskipindexupdatefix=true
# used by the dataGrooming to set values
aai.datagrooming.timewindowminutesvalue=10500
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties b/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties
index cc6b5677c5..50c320ab30 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties
@@ -38,24 +38,18 @@ spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSou
spring.profiles.active={{ .Values.config.profiles.active }}
spring.jersey.application-path=${schema.uri.base.path}
#The max number of active threads in this pool
-server.tomcat.max-threads=200
+server.tomcat.max-threads=50
#The minimum number of threads always kept alive
-server.tomcat.min-Spare-Threads=25
+server.tomcat.min-Spare-Threads=5
#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
server.tomcat.max-idle-time=60000
# If you get an application startup failure that the port is already taken
# If thats not it, please check if the key-store file path makes sense
server.local.startpath=/opt/app/aai-graphadmin/resources/
-server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
server.port=8449
-security.require-ssl=false
-server.ssl.enabled=false
-# JMS bind address host port
-jms.bind.address=tcp://localhost:61649
-# dmaap is deprecated now kafka is used
spring.kafka.producer.bootstrap-servers=${BOOTSTRAP_SERVERS}
spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
spring.kafka.producer.properties.sasl.mechanism=SCRAM-SHA-512
@@ -119,3 +113,10 @@ management.security.enabled=false
# This does the same as the /echo endpoint,
# but doesn't show up in micrometer metrics
aai.actuator.echo.enabled={{ .Values.actuator.echo.enabled }}
+
+aai.graph.properties.path=${server.local.startpath}/etc/appprops/janusgraph-realtime.properties
+aai.basic-auth.enabled={{ .Values.global.config.basic.auth.enabled }}
+{{- range $index, $user := .Values.global.config.basic.auth.users }}
+aai.basic-auth.users[{{ $index }}].username={{ $user.username }}
+aai.basic-auth.users[{{ $index }}].password={{ $user.password }}
+{{- end }}
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml b/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
index 5825a722ae..55ed90daf5 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
@@ -1171,6 +1171,7 @@
<logger name="org.zookeeper" level="WARN"/>
<logger name="com.netflix" level="WARN"/>
<logger name="org.janusgraph" level="WARN"/>
+ <logger name="org.janusgraph.graphdb.transaction" level="ERROR" />
<logger name="com.att.aft.dme2" level="WARN"/>
<!-- ============================================================================ -->
<!-- General EELF logger -->
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/_helpers.tpl b/kubernetes/aai/components/aai-graphadmin/templates/_helpers.tpl
new file mode 100644
index 0000000000..a6c414517b
--- /dev/null
+++ b/kubernetes/aai/components/aai-graphadmin/templates/_helpers.tpl
@@ -0,0 +1,42 @@
+{{- define "aai.waitForSchemaCreation" -}}
+- name: wait-for-schema-creation
+ image: "{{ include "repositoryGenerator.image.curl" . }}"
+ imagePullPolicy: IfNotPresent
+ command: ["/bin/sh", "-c"]
+ args:
+ - |
+ URL="{{ required "URL is required" (.Values.schemaInitCheckURL | default "http://aai-graphadmin:8449/isSchemaInitialized") }}"
+ AUTH="{{ printf "%s:%s" (index .Values.global.config.basic.auth.users 0).username (index .Values.global.config.basic.auth.users 0).password }}"
+ while true; do
+ RESPONSE=$(curl -u $AUTH -s $URL)
+ if [ "$RESPONSE" = "true" ]; then
+ echo "Request successful. Schema is initialized."
+ exit 0
+ else
+ echo "Request unsuccessful. Schema is not yet initialized. Retrying in 3 seconds..."
+ sleep 3
+ fi
+ done
+ {{ include "common.containerSecurityContext" . | indent 2 | trim }}
+{{- end -}}
+
+{{- define "aai.waitForSchemaService" -}}
+- name: wait-for-schema-service
+ image: "{{ include "repositoryGenerator.image.curl" . }}"
+ imagePullPolicy: IfNotPresent
+ command: ["/bin/sh", "-c"]
+ args:
+ - |
+ URL="{{ required "URL is required" (.Values.schemaInitCheckURL | default "http://aai-schema-service:8452/aai/schema-service/util/echo") }}"
+ AUTH="{{ printf "%s:%s" (index .Values.global.config.basic.auth.users 0).username (index .Values.global.config.basic.auth.users 0).password }}"
+ while true; do
+ if curl --fail --header 'X-FromAppId: graphadmin' --header 'X-TransactionId: someTransaction' -u $AUTH -s $URL; then
+ echo "Request successful. Schema-service is available"
+ exit 0
+ else
+ echo "Request unsuccessful. Schema-service is not available yet. Retrying in 3 seconds..."
+ sleep 3
+ fi
+ done
+ {{ include "common.containerSecurityContext" . | indent 2 | trim }}
+{{- end -}}
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml b/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml
index 991727d7c6..92fea15055 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml
@@ -23,7 +23,7 @@
*/}}
apiVersion: apps/v1
kind: Deployment
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata: {{- include "common.resourceMetadata" (dict "annotations" .Values.annotations "dot" .) | nindent 2 }}
spec:
{{- if .Values.config.debug.enabled }}
replicas: 1
@@ -47,7 +47,64 @@ spec:
terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
{{- if .Values.global.initContainers.enabled }}
initContainers:
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.waitForWithCreateSchemaDisabled ) | indent 6 | trim}}
+ {{- if not .Values.createDbSchemaViaJob.enabled }}
+ {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.waitForCassandraService ) | indent 8 | trim }}
+ - name: {{ include "common.name" . }}-create-db-schema
+ image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | nindent 10 | trim }}
+ command:
+ - sh
+ args:
+ - -c
+ - |
+ {{- if include "common.onServiceMesh" . }}
+ echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
+ sh docker-entrypoint.sh createDBSchema.sh;
+ {{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
+ env:
+ {{- if .Values.config.debug.enabled }}
+ - name: JVM_OPTS
+ value: {{ .Values.config.debug.args | quote }}
+ {{- end }}
+ {{- if .Values.config.env }}
+ {{- range $key,$value := .Values.config.env }}
+ - name: {{ $key | upper | quote}}
+ value: {{ $value | quote}}
+ {{- end }}
+ {{- end }}
+ - name: BOOTSTRAP_SERVERS
+ value: {{ include "common.release" . }}-strimzi-kafka-bootstrap:9092
+ - name: JAAS_CONFIG
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiGraphKafkaUser }}
+ key: sasl.jaas.config
+ {{- if .Values.config.debug.enabled }}
+ ports:
+ - containerPort: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ {{- end }}
+ volumeMounts:
+ - mountPath: /opt/app/aai-graphadmin/resources/etc/appprops/janusgraph-realtime.properties
+ name: config
+ subPath: janusgraph-realtime.properties
+ - mountPath: /opt/app/aai-graphadmin/resources/etc/appprops/aaiconfig.properties
+ name: properties
+ subPath: aaiconfig.properties
+ - mountPath: /opt/aai/logroot/AAI-GA
+ name: logs
+ - mountPath: /opt/app/aai-graphadmin/resources/logback.xml
+ name: config
+ subPath: logback.xml
+ - mountPath: /opt/app/aai-graphadmin/resources/localhost-access-logback.xml
+ name: config
+ subPath: localhost-access-logback.xml
+ - mountPath: /opt/app/aai-graphadmin/resources/application.properties
+ name: properties
+ subPath: application.properties
+ resources: {{ include "common.resources" . | nindent 12 }}
+ {{- end }}
{{- end }}
{{ include "common.podSecurityContext" . | indent 6 | trim }}
containers:
@@ -62,13 +119,6 @@ spec:
value: {{ $value | quote}}
{{- end }}
{{- end }}
- {{- if eq .Values.flavor "small" }}
- - name: MAX_HEAP_SIZE
- value: {{ .Values.small.maxHeapSize | quote }}
- {{- else if eq .Values.flavor "large" }}
- - name: MAX_HEAP_SIZE
- value: {{ .Values.large.maxHeapSize | quote }}
- {{- end }}
- name: INTERNAL_PORT_1
value: {{ .Values.service.appPort | quote }}
- name: INTERNAL_PORT_2
@@ -170,13 +220,12 @@ spec:
resources: {{ include "common.resources" . | nindent 10 }}
{{- if .Values.nodeSelector }}
nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 8 }}
+ {{ toYaml .Values.nodeSelector | indent 8 }}
{{- end -}}
{{- if .Values.affinity }}
affinity:
-{{ toYaml .Values.affinity | indent 8 }}
+ {{ toYaml .Values.affinity | indent 8 }}
{{- end }}
-
# side car containers
{{ include "common.log.sidecar" . | nindent 6 }}
serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml b/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml
index 1cc431c94f..6366e0626b 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml
@@ -42,10 +42,9 @@ metadata:
name: {{ include "common.fullname" . }}-db-backup
namespace: {{ include "common.namespace" . }}
labels: {{- include "common.labels" (dict "labels" .Values.labels "ignoreHelmChart" .Values.ignoreHelmChart "dot" . "suffix" "job") | nindent 4 }}
- annotations:
- "helm.sh/hook": pre-upgrade,pre-install
- "helm.sh/hook-weight": "2"
- "helm.sh/hook-delete-policy": before-hook-creation
+ {{- if .Values.jobAnnotations.backup }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations.backup "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml b/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml
index 19e62ae7c4..fc35966f79 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml
@@ -34,6 +34,8 @@
# then it is your job to ensure that there are no connections to the database
*/}}
+{{/* the new default is schema creation via graphadmin init container. This will be removed in the future. */}}
+{{- if .Values.createDbSchemaViaJob.enabled }}
{{- if and ( not .Values.global.jobs.migration.enabled ) ( .Values.global.jobs.createSchema.enabled ) }}
apiVersion: batch/v1
kind: Job
@@ -41,6 +43,9 @@ metadata:
name: {{ include "common.fullname" . }}-create-db-schema
namespace: {{ include "common.namespace" . }}
labels: {{- include "common.labels" (dict "labels" .Values.labels "ignoreHelmChart" .Values.ignoreHelmChart "dot" . "suffix" "job") | nindent 4 }}
+ {{- if .Values.jobAnnotations.createDBSchema }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations.createDBSchema "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
@@ -48,14 +53,12 @@ spec:
labels: {{- include "common.labels" (dict "labels" .Values.labels "ignoreHelmChart" .Values.ignoreHelmChart "dot" . "suffix" "job") | nindent 8 }}
name: {{ include "common.name" . }}
spec:
- initContainers:
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.waitForWithCreateSchemaDisabled) | indent 6 | trim }}
{{ include "common.podSecurityContext" . | indent 6 | trim }}
containers:
- name: {{ include "common.name" . }}-job
image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- {{ include "common.containerSecurityContext" . | indent 8 | trim }}
+ {{ include "common.containerSecurityContext" . | nindent 8 | trim }}
command:
- sh
args:
@@ -81,8 +84,8 @@ spec:
secretKeyRef:
name: {{ include "common.release" . }}-{{ .Values.global.aaiGraphKafkaUser }}
key: sasl.jaas.config
- ports:
{{- if .Values.config.debug.enabled }}
+ ports:
- containerPort: {{ .Values.service.debugPort }}
name: {{ .Values.service.debugPortName }}
{{- end }}
@@ -125,4 +128,5 @@ spec:
name: {{ include "common.fullname" . }}-properties
restartPolicy: Never
{{- include "common.imagePullSecrets" . | nindent 6 }}
-{{ end }}
+{{- end }}
+{{- end }}
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml b/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml
index f6f2f8b1a7..fcfb479965 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml
@@ -42,10 +42,9 @@ metadata:
name: {{ include "common.fullname" . }}-migration
namespace: {{ include "common.namespace" . }}
labels: {{- include "common.labels" (dict "labels" .Values.labels "ignoreHelmChart" .Values.ignoreHelmChart "dot" . "suffix" "job") | nindent 4 }}
- annotations:
- "helm.sh/hook": post-upgrade,post-rollback,post-install
- "helm.sh/hook-weight": "1"
- "helm.sh/hook-delete-policy": before-hook-creation
+ {{- if .Values.jobAnnotations.migration }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations.migration "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/aai/components/aai-graphadmin/values.yaml b/kubernetes/aai/components/aai-graphadmin/values.yaml
index a2727757cf..ca8cc5829c 100644
--- a/kubernetes/aai/components/aai-graphadmin/values.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/values.yaml
@@ -55,8 +55,11 @@ global: # global defaults
basic:
auth:
enabled: true
- username: AAI
- passwd: AAI
+ users:
+ - username: aai@aai.onap.org
+ password: demo123456!
+ - username: AAI
+ password: AAI
# Notification event specific properties
notification:
eventType: AAI-EVENT
@@ -81,11 +84,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v29
+ default: v30
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,v30
# Specifies from which version related link should appear
related:
link: v11
@@ -103,7 +106,7 @@ global: # global defaults
clients: SDNC,-1|MSO,-1|SO,-1|robot-ete,-1
# application image
-image: onap/aai-graphadmin:1.15.2
+image: onap/aai-graphadmin:1.15.6
pullPolicy: Always
restartPolicy: Always
flavor: small
@@ -112,7 +115,7 @@ flavor: small
replicaCount: 1
# number of ReplicaSets that should be retained for the Deployment
-revisionHistoryLimit: 2
+revisionHistoryLimit: 1
# the minimum number of seconds that a newly created Pod should be ready
minReadySeconds: 30
@@ -141,7 +144,7 @@ config:
# config override for the cassandra driver
# see: https://docs.janusgraph.org/master/configs/configuration-reference/#storagecqlinternal
cassandraDriver:
- configuration: advanced.metadata.schema.debouncer.window = 1 second
+ configuration: advanced.metadata.schema.debouncer.window = 2 second
# Default maximum records to fix for the data grooming and dupeTool
maxFix:
dataGrooming: 150
@@ -196,7 +199,9 @@ config:
- "-Djava.rmi.server.hostname=127.0.0.1"
env:
BOOTSTRAP_SERVERS: onap-strimzi-kafka-bootstrap:9092
-
+ DATA_SNAPSHOT_TASKS_ENABLED: false
+ DATA_SNAPSHOT_CLEANUP_ENABLED: false
+ HISTORY_TRUNCATE_TASK_ENABLED: false
nodeSelector: {}
@@ -205,7 +210,7 @@ affinity: {}
# probe configuration parameters
liveness:
enabled: true
- path: /actuator/health/liveness
+ path: /actuator/health
periodSeconds: 10
readiness:
@@ -221,19 +226,14 @@ actuator:
echo:
enabled: true
+## Can be used to restore the old behaviour of having a separate job for schema creation
+createDbSchemaViaJob:
+ enabled: false
+
readinessCheck:
- waitForWithCreateSchemaEnabled:
+ waitForSchemaCreationJob:
jobs:
- '{{ include "common.release" . }}-aai-graphadmin-create-db-schema'
- waitForWithCreateSchemaDisabled:
- services:
- - '{{ .Values.global.cassandra.serviceName }}'
- - aai-schema-service
- waitForCassandra:
- containers:
- - aai-schema-service
- apps:
- - cassandra
waitForLocalCassandra:
containers:
- aai-schema-service
@@ -319,13 +319,6 @@ resources:
memory: "4Gi"
unlimited: {}
-# define the heap size for the JVM
-# according to the resource flavor
-small:
- maxHeapSize: "1g"
-large:
- maxHeapSize: "5g"
-
metrics:
serviceMonitor:
enabled: true
@@ -394,3 +387,13 @@ volumes:
podAnnotations:
checksum/config: '{{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}'
+
+jobAnnotations:
+ backup:
+ "helm.sh/hook": pre-upgrade,pre-rollback,post-install
+ "helm.sh/hook-weight": "2"
+ "helm.sh/hook-delete-policy": before-hook-creation
+ migration:
+ "helm.sh/hook": pre-upgrade,pre-rollback,post-install
+ "helm.sh/hook-weight": "2"
+ "helm.sh/hook-delete-policy": before-hook-creation
diff --git a/kubernetes/aai/components/aai-modelloader/values.yaml b/kubernetes/aai/components/aai-modelloader/values.yaml
index 6c8cdb7d31..eae505458e 100644
--- a/kubernetes/aai/components/aai-modelloader/values.yaml
+++ b/kubernetes/aai/components/aai-modelloader/values.yaml
@@ -109,7 +109,7 @@ resources:
unlimited: {}
tracing:
- enabled: true
+ enabled: false
collector:
baseUrl: http://jaeger-collector.istio-system:9411
sampling:
diff --git a/kubernetes/aai/components/aai-resources/Chart.yaml b/kubernetes/aai/components/aai-resources/Chart.yaml
index c83a28671c..44b54bc3d3 100644
--- a/kubernetes/aai/components/aai-resources/Chart.yaml
+++ b/kubernetes/aai/components/aai-resources/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP AAI resources
name: aai-resources
-version: 15.0.1
+version: 15.0.2
dependencies:
- name: common
@@ -32,4 +32,4 @@ dependencies:
repository: '@local'
- name: readinessCheck
version: ~13.x-0
- repository: '@local' \ No newline at end of file
+ repository: '@local'
diff --git a/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties b/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
index 6392a8e0b0..4985a97dba 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
+++ b/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
@@ -45,8 +45,8 @@ aai.global.callback.url=http://aai.{{ include "common.namespace" . }}/aai/
{{ if .Values.global.config.basic.auth.enabled }}
aai.tools.enableBasicAuth=true
-aai.tools.username={{ .Values.global.config.basic.auth.username }}
-aai.tools.password={{ .Values.global.config.basic.auth.passwd }}
+aai.tools.username={{ (index .Values.global.config.basic.auth.users 0).username }}
+aai.tools.password={{ (index .Values.global.config.basic.auth.users 0).password }}
{{ end }}
aai.notification.current.version={{ .Values.global.config.schema.version.api.default }}
diff --git a/kubernetes/aai/components/aai-resources/resources/config/application-keycloak.properties b/kubernetes/aai/components/aai-resources/resources/config/application-keycloak.properties
deleted file mode 100644
index 738634d230..0000000000
--- a/kubernetes/aai/components/aai-resources/resources/config/application-keycloak.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-
-spring.autoconfigure.exclude=\
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
-
-multi.tenancy.enabled={{ .Values.config.keycloak.multiTenancy.enabled }}
-keycloak.auth-server-url=http://{{ .Values.config.keycloak.host }}:{{ .Values.config.keycloak.port }}/auth
-keycloak.realm={{ .Values.config.keycloak.realm }}
-keycloak.resource={{ .Values.config.keycloak.resource }}
-keycloak.public-client=true
-keycloak.principal-attribute=preferred_username
-
-keycloak.ssl-required=external
-keycloak.bearer-only=true
diff --git a/kubernetes/aai/components/aai-resources/resources/config/application.properties b/kubernetes/aai/components/aai-resources/resources/config/application.properties
index eae146b845..6c34705e8a 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-resources/resources/config/application.properties
@@ -28,6 +28,7 @@ spring.jersey.type=filter
spring.main.allow-bean-definition-overriding=true
server.servlet.context-path=/
+spring.sleuth.enabled={{ .Values.tracing.enabled }}
spring.zipkin.baseUrl={{ .Values.tracing.collector.baseUrl }}
spring.sleuth.messaging.jms.enabled = false
spring.sleuth.trace-id128=true
@@ -50,16 +51,9 @@ server.tomcat.max-idle-time=60000
# If you get an application startup failure that the port is already taken
# If thats not it, please check if the key-store file path makes sense
server.local.startpath=aai-resources/src/main/resources/
-server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
server.port=8447
-security.require-ssl=false
-server.ssl.enabled=false
-# JMS bind address host port
-jms.bind.address=tcp://localhost:61647
-
-# dmaap is deprecated now kafka is used
spring.kafka.producer.bootstrap-servers=${BOOTSTRAP_SERVERS}
spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
spring.kafka.producer.properties.sasl.mechanism=SCRAM-SHA-512
@@ -125,3 +119,10 @@ scrape.uri.metrics=false
# This does the same as the /echo endpoint,
# but doesn't show up in micrometer metrics
aai.actuator.echo.enabled={{ .Values.actuator.echo.enabled }}
+aai.graph.properties.path=${server.local.startpath}/etc/appprops/janusgraph-realtime.properties
+
+aai.basic-auth.enabled={{ .Values.global.config.basic.auth.enabled }}
+{{- range $index, $user := .Values.global.config.basic.auth.users }}
+aai.basic-auth.users[{{ $index }}].username={{ $user.username }}
+aai.basic-auth.users[{{ $index }}].password={{ $user.password }}
+{{- end }}
diff --git a/kubernetes/aai/components/aai-resources/resources/config/localhost-access-logback.xml b/kubernetes/aai/components/aai-resources/resources/config/localhost-access-logback.xml
deleted file mode 100644
index 54c3d81e05..0000000000
--- a/kubernetes/aai/components/aai-resources/resources/config/localhost-access-logback.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-{{/*
-<!--
-
- ============LICENSE_START=======================================================
- org.onap.aai
- ================================================================================
- Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- Modifications Copyright © 2018 Amdocs, Bell Canada
- ================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ============LICENSE_END=========================================================
-
- ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
--->
-*/}}
-<configuration>
- <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
-
- <property name="logToFileEnabled" value='{{.Values.accessLogback.logToFileEnabled}}' />
- <property name="maxHistory" value='{{.Values.accessLogback.maxHistory}}' />
- <property name="totalSizeCap" value='{{.Values.accessLogback.totalSizeCap}}' />
- <property name="livenessAccessLogEnabled"
- value='{{.Values.accessLogback.livenessAccessLogEnabled}}' />
-
-
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender name="ACCESS"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
- <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId}
- %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU}
- %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST}
- %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter}
- %i{X-AAI-SSL-Client-DN} %D</Pattern>
- </encoder>
- </appender>
- <appender-ref ref="ACCESS" />
- </then>
- </if>
-
- <appender name="STDOUTACCESS" class="ch.qos.logback.core.ConsoleAppender">
- <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
- <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId}
- %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O}
- %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C}
- %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D -
- "logType": "access"</Pattern>
- </encoder>
- <if condition='property("livenessAccessLogEnabled").contains("false")'>
- <then>
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.access.net.URLEvaluator">
- <URL>/aai/util/echo</URL>
- </evaluator>
- <OnMismatch>NEUTRAL</OnMismatch>
- <OnMatch>DENY</OnMatch>
- </filter>
- </then>
- </if>
- </appender>
-
- <appender-ref ref="STDOUTACCESS" />
-
-</configuration>
-{{/*
-<!--
-%a - Remote IP address
-%A - Local IP address
-%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent
-%B - Bytes sent, excluding HTTP headers
-%h - Remote host name
-%H - Request protocol
-%l - Remote logical username from identd (always returns '-')
-%m - Request method
-%p - Local port
-%q - Query string (prepended with a '?' if it exists, otherwise an empty string
-%r - First line of the request
-%s - HTTP status code of the response
-%S - User session ID
-%t - Date and time, in Common Log Format format
-%u - Remote user that was authenticated
-%U - Requested URL path
-%v - Local server name
-%I - current request thread name (can compare later with stacktraces)
-
-%z - Custom pattern that parses the cert for the subject
-%y - Custom pattern determines rest or dme2
--->
-*/}}
diff --git a/kubernetes/aai/components/aai-resources/resources/config/logback.xml b/kubernetes/aai/components/aai-resources/resources/config/logback.xml
index a90f354cbe..32334d0c5c 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-resources/resources/config/logback.xml
@@ -29,24 +29,12 @@
<property resource="application.properties" />
- <property name="maxHistory" value='{{.Values.logback.maxHistory}}' />
- <property name="totalSizeCap" value='{{.Values.logback.totalSizeCap}}' />
- <property name="queueSize" value='{{.Values.logback.queueSize}}'/>
-
- <property name="logToFileEnabled" value='{{.Values.logback.logToFileEnabled}}'/>
-
<property name="namespace" value="aai-resources"/>
<property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
<jmxConfigurator />
<property name="logDirectory" value="${AJSC_HOME}/logs" />
- <!-- Old patterns
- <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%ecompServiceName|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
- -->
+
<property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
<property name="p_lvl" value="%level"/>
<property name="p_log" value="%logger"/>
@@ -66,284 +54,22 @@
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/sane.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}.zip</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
- </pattern>
- </encoder>
- </appender>
-
- <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="SANE"/>
- </appender>
- <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/metrics.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}.zip</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${metricPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="METRIC"/>
- </appender>
-
- <appender name="DEBUG"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <file>${logDirectory}/rest/debug.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}.zip</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="DEBUG"/>
- <includeCallerData>true</includeCallerData>
- </appender>
- <appender name="ERROR"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/error.log</file>
- <rollingPolicy
- class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}.zip</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <encoder>
- <pattern>${errorPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="ERROR"/>
- </appender>
-
- <appender name="AUDIT"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/audit.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${auditPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="AUDIT"/>
- </appender>
-
- <appender name="translog"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <file>${logDirectory}/rest/translog.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${transLogPattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="translog"/>
- </appender>
-
- <appender name="kafkaAAIEventConsumer"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/error.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/error.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${errorPattern}</pattern>
- </encoder>
-
- </appender>
-
- <appender name="kafkaAAIEventConsumerDebug"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/debug.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/debug.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
- <appender name="kafkaAAIEventConsumerInfo"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${auditPattern}</pattern>
- </encoder>
- </appender>
- <appender name="kafkaAAIEventConsumerMetric"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/metrics.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${metricPattern}</pattern>
- </encoder>
- </appender>
- <appender name="external"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <file>${logDirectory}/external/external.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
- <appender name="auth"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>DEBUG</level>
- </filter>
- <file>${logDirectory}/auth/auth.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/auth/auth.log.%d{yyyy-MM-dd}.zip
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}[%thread] %-5level %logger{1024} - %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="asyncAUTH" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="auth"/>
- </appender>
- </then>
- </if>
+ <property name="CONSOLE_LOG_PATTERN"
+ value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [%X{traceId},%X{spanId}] [%thread] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
+ <!-- Appender to log to console -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
- <providers>
- <timestamp><fieldName>timestamp</fieldName></timestamp>
- <message/>
- <mdc>
- <fieldName>context</fieldName>
- <excludeMdcKeyName>ServerIPAddress</excludeMdcKeyName>
- <excludeMdcKeyName>EntryTimestamp</excludeMdcKeyName>
- <excludeMdcKeyName>InvokeTimestamp</excludeMdcKeyName>
- <excludeMdcKeyName>ErrorCode</excludeMdcKeyName>
- <excludeMdcKeyName>ErrorDesc</excludeMdcKeyName>
- </mdc>
- <stackTrace>
- <fieldName>exception</fieldName>
- <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
- <exclude>^sun\.reflect\..*\.invoke</exclude>
- <exclude>^net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
- <rootCauseFirst>true</rootCauseFirst>
- </throwableConverter>
- </stackTrace>
- <threadName><fieldName>thread</fieldName></threadName>
- <loggerName>
- <fieldName>logger</fieldName>
- <shortenedLoggerNameLength>36</shortenedLoggerNameLength>
- </loggerName>
- <logLevel/>
- <pattern>
- <pattern>{"logType":"app"}</pattern>
- </pattern>
- </providers>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <!-- Minimum logging level to be presented in the console logs-->
+ <level>DEBUG</level>
+ </filter>
+ <encoder>
+ <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+ <charset>utf8</charset>
</encoder>
</appender>
<!-- logback internals logging -->
-
<logger name="ch.qos.logback.classic" level="WARN" />
<logger name="ch.qos.logback.core" level="WARN" />
@@ -360,77 +86,26 @@
<logger name="org.springframework.beans" level="WARN" />
<logger name="org.springframework.web" level="WARN" />
<logger name="org.janusgraph" level="WARN" />
+ <logger name="org.janusgraph.graphdb.transaction" level="ERROR" />
<logger name="org.zookeeper" level="OFF" />
<logger name="org.onap.aai" level={{ .Values.log.level.base | upper | quote }} additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncDEBUG"/>
- <appender-ref ref="asyncSANE"/>
- </then>
- </if>
<appender-ref ref="STDOUT"/>
</logger>
<logger name="org.onap.aai.aaf.auth" level="DEBUG" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncAUTH"/>
- </then>
- </if>
<appender-ref ref="STDOUT"/>
</logger>
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <!-- These loggers are not additive and will be redirected to the parent logger.
- Sending events to log is handled by parent loggers-->
- <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO">
- <appender-ref ref="asyncAUDIT"/>
- </logger>
- <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level={{ .Values.log.level.audit | upper | quote }}>
- <appender-ref ref="asyncAUDIT"/>
- </logger>
- <logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level={{ .Values.log.level.dbMetric | upper | quote }}>
- <appender-ref ref="asyncMETRIC"/>
- </logger>
- <logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO">
- <appender-ref ref="kafkaAAIEventConsumerMetric"/>
- </logger>
- <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
- <appender-ref ref="asyncERROR"/>
- </logger>
- <logger name="com.att.nsa.mr" level="INFO">
- <appender-ref ref="kafkaAAIEventConsumerInfo"/>
- </logger>
- </then>
- </if>
-
<logger name="org.onap.aai.interceptors.post" level="DEBUG" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asynctranslog"/>
- </then>
- </if>
<appender-ref ref="STDOUT"/>
</logger>
<logger name="org.onap.aai.kafka" level="DEBUG" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="kafkaAAIEventConsumer"/>
- <appender-ref ref="kafkaAAIEventConsumerDebug"/>
- </then>
- </if>
<appender-ref ref="STDOUT"/>
</logger>
<root level={{ .Values.log.level.root | upper | quote }}>
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="external"/>
- </then>
- </if>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
diff --git a/kubernetes/aai/components/aai-resources/resources/config/realm.properties b/kubernetes/aai/components/aai-resources/resources/config/realm.properties
deleted file mode 100644
index f254d03631..0000000000
--- a/kubernetes/aai/components/aai-resources/resources/config/realm.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-{{/*
-# Copyright © 2018 Amdocs, Bell Canada, AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# format : username: password[,rolename ...]
-# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader...
-*/ -}}
-AAI:OBF:1gfr1ev31gg7,admin
-MSO:OBF:1jzx1lz31k01,admin
-SDNC:OBF:1itr1i0l1i151isv,admin
-DCAE:OBF:1g8u1f9d1f991g8w,admin
-POLICY:OBF:1mk61i171ima1im41i0j1mko,admin
-ASDC:OBF:1f991j0u1j001f9d,admin
-ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin
-AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin
-OOF:OBF:1img1ke71ily,admin
-aai@aai.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-so@so.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-sdnc@sdnc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-dcae@dcae.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-policy@policy.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-sdc@sdc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-oof@oof.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-pomba@pomba.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
-vfc@vfc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
diff --git a/kubernetes/aai/components/aai-resources/templates/_helpers.tpl b/kubernetes/aai/components/aai-resources/templates/_helpers.tpl
new file mode 100644
index 0000000000..003be58409
--- /dev/null
+++ b/kubernetes/aai/components/aai-resources/templates/_helpers.tpl
@@ -0,0 +1,21 @@
+{{- define "aai.waitForSchemaCreation" -}}
+- name: wait-for-schema-creation
+ image: "{{ include "repositoryGenerator.image.curl" . }}"
+ imagePullPolicy: IfNotPresent
+ command: ["/bin/sh", "-c"]
+ args:
+ - |
+ URL="{{ required "URL is required" (.Values.schemaInitCheckURL | default "http://aai-graphadmin:8449/isSchemaInitialized") }}"
+ AUTH="{{ printf "%s:%s" (index .Values.global.config.basic.auth.users 0).username (index .Values.global.config.basic.auth.users 0).password }}"
+ while true; do
+ RESPONSE=$(curl -u $AUTH -s $URL)
+ if [ "$RESPONSE" = "true" ]; then
+ echo "Request successful. Schema is initialized."
+ exit 0
+ else
+ echo "Request unsuccessful. Schema is not yet initialized. Retrying in 3 seconds..."
+ sleep 3
+ fi
+ done
+ {{ include "common.containerSecurityContext" . | indent 2 | trim }}
+{{- end -}}
diff --git a/kubernetes/aai/components/aai-resources/templates/configmap.yaml b/kubernetes/aai/components/aai-resources/templates/configmap.yaml
index 8e13c8c90d..73723a1270 100644
--- a/kubernetes/aai/components/aai-resources/templates/configmap.yaml
+++ b/kubernetes/aai/components/aai-resources/templates/configmap.yaml
@@ -23,9 +23,6 @@ metadata:
labels: {{- include "common.labels" . | nindent 4 }}
data:
{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/config/localhost-access-logback.xml").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/janusgraph-realtime.properties").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/aaiconfig.properties").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/config/application-keycloak.properties").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/config/realm.properties").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/components/aai-resources/templates/deployment.yaml b/kubernetes/aai/components/aai-resources/templates/deployment.yaml
index cb434ed2cd..35378fd83c 100644
--- a/kubernetes/aai/components/aai-resources/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-resources/templates/deployment.yaml
@@ -20,7 +20,7 @@
apiVersion: apps/v1
kind: Deployment
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata: {{- include "common.resourceMetadata" (dict "annotations" .Values.annotations "dot" .) | nindent 2 }}
spec:
{{- if or .Values.config.debug.enabled .Values.config.profiling.enabled }}
replicas: 1
@@ -41,36 +41,6 @@ spec:
app: {{ include "common.name" . }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
- {{- if .Values.global.msbEnabled }}
- {{ $values := .Values }}
- msb.onap.org/service-info: '[
- {{- range $api_endpoint := $values.aai_enpoints -}}
- {{- range $api_version := $values.api_list }}
- {
- "serviceName": "_{{ $api_endpoint.name }}",
- "version": "v{{ $api_version }}",
- "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
- "protocol": "REST",
- "port": "8447",
- "enable_ssl": true,
- "lb_policy":"ip_hash",
- "visualRange": "1",
- "path": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}"
- },
- {
- "serviceName": "{{ $api_endpoint.name }}",
- "version": "v{{ $api_version }}",
- "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
- "protocol": "REST",
- "port": "8447",
- "enable_ssl": true,
- "lb_policy":"ip_hash",
- "visualRange": "1"
- },
- {{- end }}
- {{- end }}
- ]'
- {{- end }}
spec:
hostname: aai-resources
terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
@@ -79,9 +49,7 @@ spec:
{{- if .Values.global.jobs.migration.enabled }}
{{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_migration) | nindent 8 }}
{{- else if .Values.global.jobs.createSchema.enabled }}
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_createSchema) | nindent 8 }}
- {{- else }}
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_cassandra) | nindent 8 }}
+ {{ include "aai.waitForSchemaCreation" . | nindent 6 }}
{{- end }}
containers:
- name: {{ include "common.name" . }}
@@ -128,18 +96,9 @@ spec:
- mountPath: /opt/app/aai-resources/resources/logback.xml
name: {{ include "common.fullname" . }}-config
subPath: logback.xml
- - mountPath: /opt/app/aai-resources/resources/localhost-access-logback.xml
- name: {{ include "common.fullname" . }}-config
- subPath: localhost-access-logback.xml
- - mountPath: /opt/app/aai-resources/resources/etc/auth/realm.properties
- name: {{ include "common.fullname" . }}-config
- subPath: realm.properties
- mountPath: /opt/app/aai-resources/resources/application.properties
name: {{ include "common.fullname" . }}-config
subPath: application.properties
- - mountPath: /opt/app/aai-resources/resources/application-keycloak.properties
- name: {{ include "common.fullname" . }}-config
- subPath: application-keycloak.properties
- mountPath: /tmp
name: tmp
ports:
@@ -178,6 +137,7 @@ spec:
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
{{- end }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
+ timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
{{- end }}
readinessProbe:
httpGet:
@@ -187,12 +147,14 @@ spec:
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
{{- end }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
+ timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
startupProbe:
httpGet:
port: {{ .Values.service.metricsPort }}
path: {{ .Values.startup.path }}
failureThreshold: {{ .Values.startup.failureThreshold }}
periodSeconds: {{ .Values.startup.periodSeconds }}
+ timeoutSeconds: {{ .Values.startup.timeoutSeconds }}
resources: {{ include "common.resources" . | nindent 10 }}
{{- if .Values.nodeSelector }}
nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}
diff --git a/kubernetes/aai/components/aai-resources/templates/servicemonitor.yaml b/kubernetes/aai/components/aai-resources/templates/servicemonitor.yaml
index c0d9f212b4..dc706029bf 100644
--- a/kubernetes/aai/components/aai-resources/templates/servicemonitor.yaml
+++ b/kubernetes/aai/components/aai-resources/templates/servicemonitor.yaml
@@ -1,3 +1,3 @@
{{- if .Values.metrics.serviceMonitor.enabled }}
{{ include "common.serviceMonitor" . }}
-{{- end }} \ No newline at end of file
+{{- end }}
diff --git a/kubernetes/aai/components/aai-resources/values.yaml b/kubernetes/aai/components/aai-resources/values.yaml
index 7cba7a425e..625267b318 100644
--- a/kubernetes/aai/components/aai-resources/values.yaml
+++ b/kubernetes/aai/components/aai-resources/values.yaml
@@ -47,8 +47,33 @@ global: # global defaults
basic:
auth:
enabled: true
- username: AAI
- passwd: AAI
+ users:
+ - username: aai@aai.onap.org
+ password: demo123456!
+ - username: so@so.onap.org
+ password: demo123456!
+ - username: sdnc@sdnc.onap.org
+ password: demo123456!
+ - username: dcae@dcae.onap.org
+ password: demo123456!
+ - username: policy@policy.onap.org
+ password: demo123456!
+ - username: sdc@sdc.onap.org
+ password: demo123456!
+ - username: AAI
+ password: AAI
+ - username: DCAE
+ password: DCAE
+ - username: MSO
+ password: MSO
+ - username: POLICY
+ password: POLICY
+ - username: ASDC
+ password: ASDC
+ - username: ModelLoader
+ password: ModelLoader
+ - username: AaiUI
+ password: AaiUI
# Active spring profiles for the resources microservice
profiles:
@@ -77,11 +102,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v29
+ default: v30
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,v30
# Specifies from which version related link should appear
related:
link: v11
@@ -134,7 +159,7 @@ aai_enpoints:
url: external-system
# application image
-image: onap/aai-resources:1.15.2
+image: onap/aai-resources:1.15.5
pullPolicy: Always
restartPolicy: Always
flavor: small
@@ -142,7 +167,7 @@ flavor: small
replicaCount: 1
# number of ReplicaSets that should be retained for the Deployment
-revisionHistoryLimit: 2
+revisionHistoryLimit: 1
# the minimum number of seconds that a newly created Pod should be ready
minReadySeconds: 30
@@ -155,19 +180,6 @@ updateStrategy:
# Configuration for the resources deployment
config:
- # configure keycloak according to your environment.
- # don't forget to add keycloak in active profiles above (global.config.profiles)
- keycloak:
- host: keycloak.your.domain
- port: 8180
- # Specifies a set of users, credentials, roles, and groups
- realm: aai-resources
- # Used by any client application for enabling fine-grained authorization for their protected resources
- resource: aai-resources-app
- # If set to true, additional criteria will be added that match the data-owner property with the given role
- # to the user in keycloak
- multiTenancy:
- enabled: true
janusgraph:
caching:
# enable when running read-heavy workloads
@@ -207,7 +219,6 @@ config:
# environment variables added to the launch of the image in deployment
env:
- MIN_HEAP_SIZE: "512m"
MAX_METASPACE_SIZE: "512m"
# adds jvm args for remote debugging the application
@@ -238,17 +249,20 @@ affinity: {}
# probe configuration parameters
liveness:
enabled: true
- path: /actuator/health/liveness
+ path: /actuator/health
periodSeconds: 10
+ timeoutSeconds: 3
readiness:
path: /actuator/health/readiness
periodSeconds: 10
+ timeoutSeconds: 3
startup:
path: /actuator/health/liveness
failureThreshold: 60
periodSeconds: 5
+ timeoutSeconds: 3
actuator:
echo:
@@ -304,6 +318,7 @@ resources:
unlimited: {}
tracing:
+ enabled: false
collector:
baseUrl: http://jaeger-collector.istio-system:9411
sampling:
@@ -392,18 +407,6 @@ log:
dbMetric: WARN
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
-# To make logback capping values configurable
-logback:
- logToFileEnabled: false
- maxHistory: 7
- totalSizeCap: 1GB
- queueSize: 1000
-
-accessLogback:
- livenessAccessLogEnabled: false # false: do not log kubernetes liveness probes
- logToFileEnabled: false
- maxHistory: 7
- totalSizeCap: 1GB
#################################################################
# Secrets metaconfig
#################################################################
diff --git a/kubernetes/aai/components/aai-schema-service/config/application.properties b/kubernetes/aai/components/aai-schema-service/config/application.properties
index 5d55923021..fc7bd40892 100644
--- a/kubernetes/aai/components/aai-schema-service/config/application.properties
+++ b/kubernetes/aai/components/aai-schema-service/config/application.properties
@@ -23,8 +23,13 @@ info.build.version=1.1.0
spring.application.name=aai-schema-service
spring.jersey.type=filter
-
spring.main.allow-bean-definition-overriding=true
+spring.sleuth.enabled={{ .Values.tracing.enabled }}
+spring.zipkin.baseUrl={{ .Values.tracing.collector.baseUrl }}
+spring.sleuth.trace-id128=true
+spring.sleuth.sampler.probability={{ .Values.tracing.sampling.probability }}
+spring.sleuth.propagation.type=w3c, b3
+spring.sleuth.supports-join=false
server.servlet.context-path=/
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
diff --git a/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml b/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml
index 9fadcd7077..45130d0f54 100644
--- a/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml
@@ -130,9 +130,6 @@ spec:
{{ include "common.log.sidecar" . | nindent 6 }}
serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
volumes:
- - name: aai-common-aai-auth-mount
- secret:
- secretName: aai-common-aai-auth
- name: aai-schema-service
emptyDir:
sizeLimit: {{ .Values.volumes.aaiSizeLimit }}
diff --git a/kubernetes/aai/components/aai-schema-service/values.yaml b/kubernetes/aai/components/aai-schema-service/values.yaml
index 3763db940e..f1227835b6 100644
--- a/kubernetes/aai/components/aai-schema-service/values.yaml
+++ b/kubernetes/aai/components/aai-schema-service/values.yaml
@@ -41,11 +41,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v29
+ default: v30
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,v30
# Specifies from which version related link should appear
related:
link: v11
@@ -60,7 +60,7 @@ global: # global defaults
label: v12
# application image
-image: onap/aai-schema-service:1.12.5
+image: onap/aai-schema-service:1.12.9
pullPolicy: Always
restartPolicy: Always
flavor: small
@@ -85,7 +85,7 @@ profiling:
- "-Djava.rmi.server.hostname=127.0.0.1"
# number of ReplicaSets that should be retained for the Deployment
-revisionHistoryLimit: 2
+revisionHistoryLimit: 1
updateStrategy:
type: RollingUpdate
@@ -98,11 +98,9 @@ affinity: {}
# probe configuration parameters
liveness:
+ enabled: true
initialDelaySeconds: 60
periodSeconds: 60
- # necessary to disable liveness probe when setting breakpoints
- # in debugger so K8s doesn't restart unresponsive container
- enabled: false
readiness:
initialDelaySeconds: 60
@@ -177,6 +175,7 @@ log:
path: /var/log/onap
level:
root: INFO
+ base: INFO # base package (org.onap.aai)
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
volumes:
@@ -185,3 +184,10 @@ volumes:
podAnnotations:
checksum/config: '{{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}'
+
+tracing:
+ enabled: false
+ collector:
+ baseUrl: http://jaeger-collector.istio-system:9411
+ sampling:
+ probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
diff --git a/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml b/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
index ede5b60676..7248bb38f0 100644
--- a/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
@@ -1,7 +1,7 @@
{{/*
-# Copyright (c) 2017 Amdocs, Bell Canada
-# Modifications Copyright (c) 2018 AT&T
-# Modifications Copyright (c) 2020 Nokia
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2018 AT&T
+# Modifications Copyright © 2020 Nokia
# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,7 +19,7 @@
apiVersion: apps/v1
kind: Deployment
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata: {{- include "common.resourceMetadata" (dict "annotations" .Values.annotations "dot" .) | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
{{- if .Values.debug.enabled }}
@@ -116,7 +116,7 @@ spec:
port: {{ .Values.service.internalPort }}
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
- {{ end -}}
+ {{- end }}
readinessProbe:
tcpSocket:
port: {{ .Values.service.internalPort }}
diff --git a/kubernetes/aai/components/aai-traversal/Chart.yaml b/kubernetes/aai/components/aai-traversal/Chart.yaml
index f4e458f0fb..d23237577d 100644
--- a/kubernetes/aai/components/aai-traversal/Chart.yaml
+++ b/kubernetes/aai/components/aai-traversal/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP AAI traversal
name: aai-traversal
-version: 15.0.1
+version: 15.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties b/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties
index c844b3d194..0c10b9462f 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties
+++ b/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties
@@ -34,8 +34,8 @@ aai.global.callback.url=http://aai.{{ include "common.namespace" . }}/aai/
{{ if or (.Values.global.config.basic.auth.enabled) ( include "common.onServiceMesh" .) }}
aai.tools.enableBasicAuth=true
-aai.tools.username={{ .Values.global.config.basic.auth.username }}
-aai.tools.password={{ .Values.global.config.basic.auth.passwd }}
+aai.tools.username={{ (index .Values.global.config.basic.auth.users 0).username }}
+aai.tools.password={{ (index .Values.global.config.basic.auth.users 0).password }}
{{ end }}
aai.notification.current.version={{ .Values.global.config.schema.version.api.default }}
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/application-keycloak.properties b/kubernetes/aai/components/aai-traversal/resources/config/application-keycloak.properties
deleted file mode 100644
index dd1956b63f..0000000000
--- a/kubernetes/aai/components/aai-traversal/resources/config/application-keycloak.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-spring.autoconfigure.exclude=\
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
- org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
-
-multi.tenancy.enabled={{ .Values.config.keycloak.multiTenancy.enabled }}
-keycloak.auth-server-url=http://{{ .Values.config.keycloak.host }}:{{ .Values.config.keycloak.port }}/auth
-keycloak.realm={{ .Values.config.keycloak.realm }}
-keycloak.resource={{ .Values.config.keycloak.resource }}
-keycloak.public-client=false
-keycloak.principal-attribute=preferred_username
-
-keycloak.ssl-required=external
-keycloak.bearer-only=true
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/application.properties b/kubernetes/aai/components/aai-traversal/resources/config/application.properties
index fff5d5d3d0..f6fad88c19 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-traversal/resources/config/application.properties
@@ -1,7 +1,7 @@
{{/*
# Copyright © 2018 Amdocs, Bell Canada, AT&T
# Modifications Copyright © 2020 Orange
-# Modifications Copyright � 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -28,10 +28,11 @@ spring.jersey.type=filter
spring.main.allow-bean-definition-overriding=true
server.servlet.context-path=${schema.uri.base.path}
-spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,org.keycloak.adapters.springboot.KeycloakAutoConfiguration,org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
spring.profiles.active={{ .Values.global.config.profiles.active }}
spring.jersey.application-path=/
+spring.sleuth.enabled={{ .Values.tracing.enabled }}
spring.zipkin.baseUrl={{ .Values.tracing.collector.baseUrl }}
spring.sleuth.messaging.jms.enabled = false
spring.sleuth.trace-id128=true
@@ -51,15 +52,9 @@ server.tomcat.max-idle-time=60000
# If you get an application startup failure that the port is already taken
# If thats not it, please check if the key-store file path makes sense
server.local.startpath=aai-traversal/src/main/resources/
-server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
server.port=8446
-security.require-ssl=false
-server.ssl.enabled=false
-# JMS bind address host port
-jms.bind.address=tcp://localhost:61647
-# dmaap is deprecated now kafka is used
spring.kafka.producer.bootstrap-servers=${BOOTSTRAP_SERVERS}
spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
spring.kafka.producer.properties.sasl.mechanism=SCRAM-SHA-512
@@ -129,3 +124,10 @@ scrape.uri.metrics=false
# This does the same as the /echo endpoint,
# but doesn't show up in micrometer metrics
aai.actuator.echo.enabled={{ .Values.actuator.echo.enabled }}
+aai.graph.properties.path=${server.local.startpath}/etc/appprops/janusgraph-realtime.properties
+
+aai.basic-auth.enabled={{ .Values.global.config.basic.auth.enabled }}
+{{- range $index, $user := .Values.global.config.basic.auth.users }}
+aai.basic-auth.users[{{ $index }}].username={{ $user.username }}
+aai.basic-auth.users[{{ $index }}].password={{ $user.password }}
+{{- end }}
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/localhost-access-logback.xml b/kubernetes/aai/components/aai-traversal/resources/config/localhost-access-logback.xml
deleted file mode 100644
index 1e3756adc9..0000000000
--- a/kubernetes/aai/components/aai-traversal/resources/config/localhost-access-logback.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-{{/*<!--
- ============LICENSE_START=======================================================
- org.onap.aai
- ================================================================================
- Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- Modifications Copyright © 2018 Amdocs, Bell Canada
- Modifications Copyright © 2020 Orange
- ================================================================================
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ============LICENSE_END=========================================================
--->
-*/}}
-<configuration scan="true" scanPeriod="60 seconds" debug="false">
- <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
- <property name="maxHistory" value='{{.Values.accessLogback.maxHistory}}' />
- <property name="totalSizeCap" value='{{.Values.accessLogback.totalSizeCap}}' />
- <property name="logToFileEnabled" value='{{.Values.accessLogback.logToFileEnabled}}' />
- <property name="livenessAccessLogEnabled"
- value='{{.Values.accessLogback.livenessAccessLogEnabled}}' />
-
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
- <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId}
- %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU}
- %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST}
- %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter}
- %i{X-AAI-SSL-Client-DN} %D</Pattern>
- </encoder>
- </appender>
- <appender-ref ref="ACCESS" />
- </then>
- </if>
-
- <appender name="STDOUTACCESS" class="ch.qos.logback.core.ConsoleAppender">
- <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
- <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId}
- %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O}
- %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C}
- %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D -
- "logType": "access"</Pattern>
- </encoder>
- <if condition='property("livenessAccessLogEnabled").contains("false")'>
- <then>
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.access.net.URLEvaluator">
- <URL>/aai/util/echo</URL>
- </evaluator>
- <OnMismatch>NEUTRAL</OnMismatch>
- <OnMatch>DENY</OnMatch>
- </filter>
- </then>
- </if>
- </appender>
- <appender-ref ref="STDOUTACCESS" />
-</configuration>
-{{/*<!--
-%a - Remote IP address
-%A - Local IP address
-%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent
-%B - Bytes sent, excluding HTTP headers
-%h - Remote host name
-%H - Request protocol
-%l - Remote logical username from identd (always returns '-')
-%m - Request method
-%p - Local port
-%q - Query string (prepended with a '?' if it exists, otherwise an empty string
-%r - First line of the request
-%s - HTTP status code of the response
-%S - User session ID
-%t - Date and time, in Common Log Format format
-%u - Remote user that was authenticated
-%U - Requested URL path
-%v - Local server name
-%I - current request thread name (can compare later with stacktraces)
-
-%z - Custom pattern that parses the cert for the subject
-%y - Custom pattern determines rest or dme2
--->*/}}
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/logback.xml b/kubernetes/aai/components/aai-traversal/resources/config/logback.xml
index faae0ee518..5e5eff5848 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-traversal/resources/config/logback.xml
@@ -25,23 +25,12 @@
<property resource="application.properties" />
- <property name="maxHistory" value='{{.Values.logback.maxHistory}}' />
- <property name="totalSizeCap" value='{{.Values.logback.totalSizeCap}}' />
- <property name="queueSize" value='{{.Values.logback.queueSize}}'/>
- <property name="logToFileEnabled" value='{{.Values.logback.logToFileEnabled}}'/>
-
<property name="namespace" value="aai-traversal" />
<property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
<jmxConfigurator />
<property name="logDirectory" value="${AJSC_HOME}/logs" />
- <!-- Old patterns
- <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%ecompServiceName|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
- <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
- -->
+
<property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}" />
<property name="p_lvl" value="%level" />
<property name="p_log" value="%logger" />
@@ -95,223 +84,6 @@
</encoder>
</appender>
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/sane.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
- </pattern>
- </encoder>
- </appender>
- <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="SANE" />
- </appender>
- <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/metrics.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${metricPattern}</pattern>
- </encoder>
- </appender>
- <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="METRIC" />
- </appender>
- <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <file>${logDirectory}/rest/debug.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
- <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="DEBUG" />
- <includeCallerData>true</includeCallerData>
- </appender>
- <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/error.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}</fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <encoder>
- <pattern>${errorPattern}</pattern>
- </encoder>
- </appender>
- <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="ERROR" />
- </appender>
- <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logDirectory}/rest/audit.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${auditPattern}</pattern>
- </encoder>
- </appender>
- <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="AUDIT" />
- </appender>
- <appender name="translog" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <file>${logDirectory}/rest/translog.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${transLogPattern}</pattern>
- </encoder>
- </appender>
- <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="translog" />
- </appender>
- <appender name="kafkaAAIEventConsumer" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/error.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/error.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${errorPattern}</pattern>
- </encoder>
- </appender>
- <appender name="kafkaAAIEventConsumerDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/debug.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
- <appender name="kafkaAAIEventConsumerInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${auditPattern}</pattern>
- </encoder>
- </appender>
- <appender name="kafkaAAIEventConsumerMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>INFO</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <File>${logDirectory}/kafkaAAIEventConsumer/metrics.log</File>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${metricPattern}</pattern>
- </encoder>
- </appender>
- <appender name="external" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
- <file>${logDirectory}/external/external.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${debugPattern}</pattern>
- </encoder>
- </appender>
- <appender name="auth" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>DEBUG</level>
- </filter>
- <file>${logDirectory}/auth/auth.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/auth/auth.log.%d{yyyy-MM-dd}
- </fileNamePattern>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}[%thread] %-5level %logger{1024} - %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="asyncAUTH" class="ch.qos.logback.classic.AsyncAppender">
- <queueSize>${queueSize}</queueSize>
- <includeCallerData>true</includeCallerData>
- <appender-ref ref="auth" />
- </appender>
- </then>
- </if>
-
<!-- logback internals logging -->
<logger name="ch.qos.logback.classic" level="WARN" />
<logger name="ch.qos.logback.core" level="WARN" />
@@ -329,107 +101,43 @@
<logger name="org.springframework.beans" level="WARN" />
<logger name="org.springframework.web" level="WARN" />
<logger name="org.janusgraph" level="WARN" />
+ <logger name="org.janusgraph.graphdb.transaction" level="ERROR" />
<logger name="org.zookeeper" level="OFF" />
<logger name="org.onap.aai" level={{ .Values.log.level.base | upper | quote }} additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncDEBUG" />
- <appender-ref ref="asyncSANE" />
- </then>
- </if>
- <appender-ref ref="STDOUT" />
- </logger>
-
- <logger name="org.onap.aai.aaf.auth" level="DEBUG" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncAUTH" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncAUDIT" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="INFO" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncAUDIT" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level="INFO" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncMETRIC" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="kafkaAAIEventConsumerMetric" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
- <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asyncERROR" />
- </then>
- </if>
+ <logger name="org.onap.aai.logging.ErrorLogHelper" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.onap.aai.interceptors.post" level="DEBUG" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="asynctranslog" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
<logger name="org.onap.aai.kafka" level="DEBUG" additivity="false">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="kafkaAAIEventConsumer" />
- <appender-ref ref="kafkaAAIEventConsumerDebug" />
- </then>
- </if>
- <appender-ref ref="STDOUT" />
- </logger>
-
- <logger name="com.att.nsa.mr" level="INFO">
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="kafkaAAIEventConsumerInfo" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</logger>
<root level={{ .Values.log.level.root | upper | quote }}>
- <if condition='property("logToFileEnabled").contains("true")'>
- <then>
- <appender-ref ref="external" />
- </then>
- </if>
<appender-ref ref="STDOUT" />
</root>
</configuration>
diff --git a/kubernetes/aai/components/aai-traversal/templates/_helpers.tpl b/kubernetes/aai/components/aai-traversal/templates/_helpers.tpl
new file mode 100644
index 0000000000..003be58409
--- /dev/null
+++ b/kubernetes/aai/components/aai-traversal/templates/_helpers.tpl
@@ -0,0 +1,21 @@
+{{- define "aai.waitForSchemaCreation" -}}
+- name: wait-for-schema-creation
+ image: "{{ include "repositoryGenerator.image.curl" . }}"
+ imagePullPolicy: IfNotPresent
+ command: ["/bin/sh", "-c"]
+ args:
+ - |
+ URL="{{ required "URL is required" (.Values.schemaInitCheckURL | default "http://aai-graphadmin:8449/isSchemaInitialized") }}"
+ AUTH="{{ printf "%s:%s" (index .Values.global.config.basic.auth.users 0).username (index .Values.global.config.basic.auth.users 0).password }}"
+ while true; do
+ RESPONSE=$(curl -u $AUTH -s $URL)
+ if [ "$RESPONSE" = "true" ]; then
+ echo "Request successful. Schema is initialized."
+ exit 0
+ else
+ echo "Request unsuccessful. Schema is not yet initialized. Retrying in 3 seconds..."
+ sleep 3
+ fi
+ done
+ {{ include "common.containerSecurityContext" . | indent 2 | trim }}
+{{- end -}}
diff --git a/kubernetes/aai/components/aai-traversal/templates/configmap.yaml b/kubernetes/aai/components/aai-traversal/templates/configmap.yaml
index e9415df278..5db7fb117c 100644
--- a/kubernetes/aai/components/aai-traversal/templates/configmap.yaml
+++ b/kubernetes/aai/components/aai-traversal/templates/configmap.yaml
@@ -21,9 +21,6 @@ kind: ConfigMap
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
data:
{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/config/localhost-access-logback.xml").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/janusgraph-realtime.properties").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/aaiconfig.properties").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/application.properties").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/config/application-keycloak.properties").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/config/realm.properties").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/components/aai-traversal/templates/deployment.yaml b/kubernetes/aai/components/aai-traversal/templates/deployment.yaml
index d12fc6b702..36e1cbea78 100644
--- a/kubernetes/aai/components/aai-traversal/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-traversal/templates/deployment.yaml
@@ -20,7 +20,7 @@
apiVersion: apps/v1
kind: Deployment
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata: {{- include "common.resourceMetadata" (dict "annotations" .Values.annotations "dot" .) | nindent 2 }}
spec:
{{- if or .Values.config.debug.enabled .Values.config.profiling.enabled }}
replicas: 1
@@ -41,55 +41,6 @@ spec:
app: {{ include "common.name" . }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
- {{- if .Values.global.msbEnabled }}
- {{ $values := .Values }}
- msb.onap.org/service-info: '[
- {{- range $api_endpoint := $values.aai_enpoints -}}
- {{- range $api_version := $values.api_list }}
- {
- "serviceName": "_{{ $api_endpoint.name }}",
- "version": "v{{ $api_version }}",
- "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
- "protocol": "REST",
- "port": "8446",
- "enable_ssl": true,
- "lb_policy":"ip_hash",
- "visualRange": "1",
- "path": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}"
- },
- {
- "serviceName": "{{ $api_endpoint.name }}",
- "version": "v{{ $api_version }}",
- "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
- "protocol": "REST",
- "port": "8446",
- "enable_ssl": true,
- "lb_policy":"ip_hash",
- "visualRange": "1"
- },
- {{- end }}
- {{- end }}
- {
- "serviceName": "_aai-named-query",
- "url": "/aai/search",
- "protocol": "REST",
- "port": "8446",
- "enable_ssl": true,
- "lb_policy":"ip_hash",
- "visualRange": "1",
- "path": "/aai/search"
- },
- {
- "serviceName": "aai-named-query",
- "url": "/aai/search",
- "protocol": "REST",
- "port": "8446",
- "enable_ssl": true,
- "lb_policy":"ip_hash",
- "visualRange": "1"
- }
- ]'
- {{- end }}
spec:
hostname: aai-traversal
terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
@@ -97,7 +48,7 @@ spec:
{{- if .Values.global.jobs.migration.enabled }}
{{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_migration) | nindent 8 }}
{{- else if .Values.global.jobs.createSchema.enabled }}
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_createSchema) | nindent 8 }}
+ {{ include "aai.waitForSchemaCreation" . | nindent 6 }}
{{- else }}
{{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_cassandra) | nindent 8 }}
{{- end }}
@@ -158,18 +109,9 @@ spec:
- mountPath: /opt/app/aai-traversal/resources/logback.xml
name: {{ include "common.fullname" . }}-config
subPath: logback.xml
- - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
- name: {{ include "common.fullname" . }}-config
- subPath: localhost-access-logback.xml
- - mountPath: /opt/app/aai-traversal/resources/etc/auth/realm.properties
- name: {{ include "common.fullname" . }}-config
- subPath: realm.properties
- mountPath: /opt/app/aai-traversal/resources/application.properties
name: {{ include "common.fullname" . }}-config
subPath: application.properties
- - mountPath: /opt/app/aai-traversal/resources/application-keycloak.properties
- name: {{ include "common.fullname" . }}-config
- subPath: application-keycloak.properties
- mountPath: /tmp
name: tmp
ports:
@@ -195,7 +137,7 @@ spec:
- -c
- |
while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1)
- do sleep 10
+ do sleep 3
done
# disable liveness probe when
# debugging.enable=true or profiling.enabled=true
diff --git a/kubernetes/aai/components/aai-traversal/templates/job.yaml b/kubernetes/aai/components/aai-traversal/templates/job.yaml
index 3ea973fb99..2e51fd0a81 100644
--- a/kubernetes/aai/components/aai-traversal/templates/job.yaml
+++ b/kubernetes/aai/components/aai-traversal/templates/job.yaml
@@ -26,10 +26,9 @@ metadata:
namespace: {{ include "common.namespace" . }}
labels: {{- include "common.labels" . | nindent 4 }}
{{ if .Values.global.jobs.migration.enabled }}
- annotations:
- "helm.sh/hook": post-upgrade,post-rollback,post-install
- "helm.sh/hook-weight": "2"
- "helm.sh/hook-delete-policy": before-hook-creation
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
{{ end }}
spec:
template:
@@ -39,10 +38,20 @@ spec:
spec:
{{ include "common.podSecurityContext" . | indent 6 | trim }}
initContainers:
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_service) | nindent 6 }}
+ {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_traversal) | nindent 6 }}
- name: {{ include "common.name" . }}-wait-for-aai-haproxy
image: {{ include "repositoryGenerator.image.readiness" . }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ securityContext:
+ runAsUser: 100
+ runAsGroup: 65533
+ readOnlyRootFilesystem: true
+ privileged: false
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ - CAP_NET_RAW
command:
- sh
- "-c"
@@ -60,16 +69,6 @@ spec:
requests:
cpu: "3m"
memory: "20Mi"
- securityContext:
- runAsUser: 100
- runAsGroup: 65533
- readOnlyRootFilesystem: true
- privileged: false
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- - CAP_NET_RAW
containers:
- name: {{ include "common.name" . }}-job
image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
@@ -102,9 +101,6 @@ spec:
- mountPath: /opt/app/aai-traversal/resources/logback.xml
name: {{ include "common.fullname" . }}-config
subPath: logback.xml
- - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
- name: {{ include "common.fullname" . }}-config
- subPath: localhost-access-logback.xml
- mountPath: /opt/app/aai-traversal/resources/application.properties
name: {{ include "common.fullname" . }}-config
subPath: application.properties
diff --git a/kubernetes/aai/components/aai-traversal/values.yaml b/kubernetes/aai/components/aai-traversal/values.yaml
index fd8206865e..81f8e668c1 100644
--- a/kubernetes/aai/components/aai-traversal/values.yaml
+++ b/kubernetes/aai/components/aai-traversal/values.yaml
@@ -56,8 +56,23 @@ global: # global defaults
basic:
auth:
enabled: true
- username: AAI
- passwd: AAI
+ users:
+ - username: aai@aai.onap.org
+ password: demo123456!
+ - username: AAI
+ password: AAI
+ - username: DCAE
+ password: DCAE
+ - username: MSO
+ password: MSO
+ - username: POLICY
+ password: POLICY
+ - username: ASDC
+ password: ASDC
+ - username: ModelLoader
+ password: ModelLoader
+ - username: AaiUI
+ password: AaiUI
# Active spring profiles for the resources microservice
profiles:
@@ -86,11 +101,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v29
+ default: v30
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,v30
# Specifies from which version related link should appear
related:
link: v11
@@ -111,7 +126,7 @@ global: # global defaults
someConfig: random
# application image
-image: onap/aai-traversal:1.15.2
+image: onap/aai-traversal:1.15.5
pullPolicy: Always
restartPolicy: Always
flavor: small
@@ -155,20 +170,6 @@ aai_enpoints:
# application configuration
config:
-
- # configure keycloak according to your environment.
- # don't forget to add keycloak in active profiles above (global.config.profiles)
- keycloak:
- host: keycloak.your.domain
- port: 8180
- # Specifies a set of users, credentials, roles, and groups
- realm: aai-traversal
- # Used by any client application for enabling fine-grained authorization for their protected resources
- resource: aai-traversal-app
- # If set to true, additional criteria will be added into traversal query to returns all the vertices that match
- # the data-owner property with the given role to the user in keycloak
- multiTenancy:
- enabled: true
janusgraph:
caching:
# enable when running read-heavy workloads
@@ -249,7 +250,7 @@ persistence:
replicaCount: 1
# number of ReplicaSets that should be retained for the Deployment
-revisionHistoryLimit: 2
+revisionHistoryLimit: 1
nodeSelector: {}
@@ -257,7 +258,7 @@ affinity: {}
# probe configuration parameters
liveness:
- path: /actuator/health/liveness
+ path: /actuator/health
initialDelaySeconds: 60
periodSeconds: 60
enabled: true
@@ -339,6 +340,7 @@ autoscaling:
targetCPUUtilizationPercentage: 80
tracing:
+ enabled: false
collector:
baseUrl: http://jaeger-collector.istio-system:9411
sampling:
@@ -442,9 +444,14 @@ readinessCheck:
services:
- '{{ .Values.global.cassandra.serviceName }}'
- aai-schema-service
- wait_for_service:
+ wait_for_traversal:
services:
- - aai
+ - aai-traversal
+
+jobAnnotations:
+ "helm.sh/hook": pre-upgrade,pre-rollback,post-install
+ "helm.sh/hook-weight": "2"
+ "helm.sh/hook-delete-policy": before-hook-creation
#################################################################
# Secrets metaconfig
#################################################################
diff --git a/kubernetes/aai/templates/deployment.yaml b/kubernetes/aai/templates/deployment.yaml
index a743592036..160d8cf823 100644
--- a/kubernetes/aai/templates/deployment.yaml
+++ b/kubernetes/aai/templates/deployment.yaml
@@ -18,7 +18,7 @@
apiVersion: apps/v1
kind: Deployment
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata: {{- include "common.resourceMetadata" (dict "annotations" .Values.annotations "dot" .) | nindent 2 }}
spec:
selector:
matchLabels:
@@ -38,7 +38,6 @@ spec:
terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
{{ include "common.podSecurityContext" . | indent 6 | trim }}
initContainers:
- {{ include "common.readinessCheck.waitFor" . | indent 6 | trim}}
- command: ["/bin/sh","-c"]
args: ['cp -R /usr/local/etc/haproxy /usr/local/etc/haproxy_rw/']
image: '{{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}'
@@ -94,21 +93,8 @@ spec:
readinessProbe:
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
- httpGet:
- path: /aai/util/echo
+ tcpSocket:
port: {{ .Values.service.internalPort }}
- scheme: HTTP
- httpHeaders:
- - name: X-FromAppId
- value: OOM_ReadinessCheck
- {{ if .Values.global.installSidecarSecurity }}
- - name: Authorization
- value: Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==
- {{ end }}
- - name: X-TransactionId
- value: OOM_ReadinessCheck_TID
- - name: Accept
- value: application/json
{{- if .Values.nodeSelector }}
nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml
index a000d2f934..f2363b7915 100644
--- a/kubernetes/aai/values.yaml
+++ b/kubernetes/aai/values.yaml
@@ -25,14 +25,13 @@ global: # global defaults
dockerhubRepository: docker.io
busyboxImage: busybox
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
loggingRepository: docker.elastic.co
loggingImage: beats/filebeat:5.5.0
restartPolicy: Always
- msbEnabled: false
centralizedLoggingEnabled: false
cassandra:
@@ -246,11 +245,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v29
+ default: v30
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,v30
# Specifies from which version related link should appear
related:
link: v11
@@ -324,12 +323,14 @@ config:
# IP address of name server is needed in nginx configuration. The secure endpoint for logging with Keycloak need the ip address in the config file.
# You can find this ip address in the /etc/resolv.conf This file is generated by k8s. The name server ip address is in all k8s cluster the same.
NAME_SERVER: coredns.kube-system
+ # hold interval in seconds
+ DNS_REFRESH_INTERVAL: 5
# default number of instances
replicaCount: 1
# number of ReplicaSets that should be retained for the Deployment
-revisionHistoryLimit: 2
+revisionHistoryLimit: 1
updateStrategy:
type: RollingUpdate
@@ -483,13 +484,6 @@ securityContext:
user_id: 99
group_id: 99
-readinessCheck:
- wait_for:
- services:
- - aai-resources
- - aai-traversal
- - aai-graphadmin
-
volumes:
haProxySizeLimit: 20Mi
diff --git a/kubernetes/authentication/Chart.yaml b/kubernetes/authentication/Chart.yaml
index d178f38481..6430743bf7 100644
--- a/kubernetes/authentication/Chart.yaml
+++ b/kubernetes/authentication/Chart.yaml
@@ -16,13 +16,12 @@
# limitations under the License.
# ============LICENSE_END=========================================================
apiVersion: v2
-version: 15.0.0
+version: 15.0.1
description: ONAP Realm creation, Oauth2Proxy installation and configuration
name: authentication
sources:
- https://github.com/adorsys/keycloak-config-cli
-# Keycloakx chart version: 1.6.0
dependencies:
- name: common
version: ~13.x-0
@@ -31,7 +30,7 @@ dependencies:
version: ~13.x-0
repository: '@local'
- name: onap-keycloak-config-cli
- version: 6.1.6
+ version: 6.2.1
repository: 'file://components/keycloak-config-cli'
- name: onap-oauth2-proxy
version: 7.8.0
diff --git a/kubernetes/authentication/README.md b/kubernetes/authentication/README.md
index c2332b409a..e17e94f1d0 100644
--- a/kubernetes/authentication/README.md
+++ b/kubernetes/authentication/README.md
@@ -30,6 +30,9 @@ realmSettings:
accessTokenLifespan: - (optional) Access Tolek Lifespan (default: 1900)
registrationAllowed: - (optional) Enable/disable the registration page (default: false)
resetPasswordAllowed: - (optional) Show a link on login page for user to click when they have forgotten their credentials (default: true)
+ passwordPolicy: - (optional) Set Password policies, e.g.
+ "length(8) and specialChars(1) and upperCase(1) and lowerCase(1) and digits(1) and notUsername(undefined)
+ and notEmail(undefined) and notContainsUsername(undefined) and passwordHistory(3)"
sslRequired: - (optional) Is HTTPS required? ('None'|'External'|'All requests' (default: "external")
themes: - (optional) Keycloak Theme settings
login: <login theme> - (optional) Keycloak Theme for Login UI (e.g. "base")
diff --git a/kubernetes/authentication/components/keycloak-config-cli/Chart.yaml b/kubernetes/authentication/components/keycloak-config-cli/Chart.yaml
index c196bcc6e2..32514f7867 100644
--- a/kubernetes/authentication/components/keycloak-config-cli/Chart.yaml
+++ b/kubernetes/authentication/components/keycloak-config-cli/Chart.yaml
@@ -20,8 +20,8 @@ apiVersion: v2
name: onap-keycloak-config-cli
description: Import JSON-formatted configuration files into Keycloak - Configuration as Code for Keycloak.
home: https://github.com/adorsys/keycloak-config-cli
-version: 6.1.6
-appVersion: 6.1.6
+version: 6.2.1
+appVersion: 6.2.1
maintainers:
- name: jkroepke
email: joe@adorsys.de
diff --git a/kubernetes/authentication/components/keycloak-config-cli/templates/job.yaml b/kubernetes/authentication/components/keycloak-config-cli/templates/job.yaml
index 322db2b7a1..5ea4cbd770 100644
--- a/kubernetes/authentication/components/keycloak-config-cli/templates/job.yaml
+++ b/kubernetes/authentication/components/keycloak-config-cli/templates/job.yaml
@@ -50,7 +50,7 @@ spec:
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- with .Values.resources }}
resources:
- {{- toYaml . | nindent 10 }}
+ {{- toYaml . | nindent 12 }}
{{- end }}
env:
{{- range $name, $value := .Values.env }}
@@ -70,10 +70,19 @@ spec:
secretKeyRef:
name: "{{ tpl .Values.existingSecret . }}"
key: "{{ .Values.existingSecretKey }}"
- {{- end }}
- {{- with .Values.securityContext }}
+ {{- end }}
+ {{- if .Values.existingSecrets }}
+ {{- range .Values.existingSecrets }}
+ - name: {{ .envVar }}
+ valueFrom:
+ secretKeyRef:
+ name: {{ .name }}
+ key: {{ .key }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.containerSecurityContext }}
securityContext:
- {{- toYaml . | nindent 10 }}
+ {{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- name: config
@@ -81,7 +90,6 @@ spec:
{{- with .Values.extraVolumeMounts }}
{{- tpl . $ | nindent 12 }}
{{- end }}
- {{ include "common.waitForJobContainer" . | indent 8 | trim }}
volumes:
- name: config
secret:
@@ -100,4 +108,4 @@ spec:
{{- with .Values.securityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
- {{- end }}
+ {{- end }}
diff --git a/kubernetes/authentication/components/keycloak-config-cli/values.yaml b/kubernetes/authentication/components/keycloak-config-cli/values.yaml
index 9574d148ec..ffeeaeb176 100644
--- a/kubernetes/authentication/components/keycloak-config-cli/values.yaml
+++ b/kubernetes/authentication/components/keycloak-config-cli/values.yaml
@@ -75,6 +75,11 @@ podLabels: {}
## Extra Annotations to be added to pod
podAnnotations: {}
+# New section for existing secrets
+existingSecrets:
+# - name: my-existing-secret
+# key: my-secret-key
+# envVar: MY_ENV_VAR
config: {}
# <realm name>:
@@ -91,7 +96,3 @@ extraVolumes: ""
# Add additional volumes mounts, e. g. for custom secrets
extraVolumeMounts: ""
-
-wait_for_job_container:
- containers:
- - 'keycloak-config-cli'
diff --git a/kubernetes/authentication/components/oauth2-proxy/values.yaml b/kubernetes/authentication/components/oauth2-proxy/values.yaml
index 14ea469fa8..7157aa0c72 100644
--- a/kubernetes/authentication/components/oauth2-proxy/values.yaml
+++ b/kubernetes/authentication/components/oauth2-proxy/values.yaml
@@ -7,6 +7,10 @@ global:
imageRegistry: docker.io
imagePullSecrets:
- '{{ include "common.names.namespace" . }}-docker-registry-key'
+
+ # Workaround to avoid redis restarts with ArgoCD
+ redis:
+ password: "32ugd3783rhfjdhow"
# *************************************************
## Override the deployment namespace
diff --git a/kubernetes/authentication/templates/_utils.tpl b/kubernetes/authentication/templates/_utils.tpl
index 4606611159..958d0c78df 100644
--- a/kubernetes/authentication/templates/_utils.tpl
+++ b/kubernetes/authentication/templates/_utils.tpl
@@ -24,10 +24,10 @@ Usage:
{{- $realm := (required "'realm' param, set to the specific service, is required." .realm) -}}
realm: {{ $realm.name }}
{{ if $realm.displayName }}displayName: {{ $realm.displayName }}{{ end }}
-id: {{ $realm.name }}
accessTokenLifespan: {{ default "1900" $realm.accessTokenLifespan }}
registrationAllowed: {{ default false $realm.registrationAllowed }}
resetPasswordAllowed: {{ default true $realm.resetPasswordAllowed }}
+{{ if $realm.passwordPolicy }}passwordPolicy: {{ $realm.passwordPolicy }}{{ end }}
sslRequired: {{ default "external" $realm.sslRequired }}
enabled: true
{{ if $realm.themes }}
diff --git a/kubernetes/authentication/templates/secret.yaml b/kubernetes/authentication/templates/secret.yaml
index 1488be6969..812b0ab61d 100644
--- a/kubernetes/authentication/templates/secret.yaml
+++ b/kubernetes/authentication/templates/secret.yaml
@@ -4,11 +4,7 @@ kind: Secret
metadata:
name: keycloak-config-cli-config-realms
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
data:
{{- $dot := . }}
{{- range $realm := .Values.realmSettings }}
diff --git a/kubernetes/authentication/values.yaml b/kubernetes/authentication/values.yaml
index 124bc18c8d..79f23295cd 100644
--- a/kubernetes/authentication/values.yaml
+++ b/kubernetes/authentication/values.yaml
@@ -41,9 +41,19 @@ onap-keycloak-config-cli:
# "edge" is the latest build release and need to be replaced with a new version
# compatible with keycloak 26.x.y
tag: edge
- #tag: "6.1.6-25.0.1"
+ tag: "6.2.1-26.0.5"
pullSecrets:
- name: onap-docker-registry-key
+
+# annotations:
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+# helm.sh/hook: post-install,pre-upgrade,pre-rollback
+# helm.sh/hook-weight: "1"
+# helm.sh/hook-delete-policy: before-hook-creation
+
#existingSecret: "keycloak-keycloakx-admin-creds"
env:
# internal KC URL plus relative path
diff --git a/kubernetes/cds/Chart.yaml b/kubernetes/cds/Chart.yaml
index d8b6cc7de0..f179afd6e9 100644
--- a/kubernetes/cds/Chart.yaml
+++ b/kubernetes/cds/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP Controller Design Studio (CDS)
name: cds
-version: 13.0.2
+version: 13.0.3
dependencies:
- name: common
diff --git a/kubernetes/cds/components/cds-blueprints-processor/Chart.yaml b/kubernetes/cds/components/cds-blueprints-processor/Chart.yaml
index e4fc011880..cfe5c7371b 100755
--- a/kubernetes/cds/components/cds-blueprints-processor/Chart.yaml
+++ b/kubernetes/cds/components/cds-blueprints-processor/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP CDS Blueprints Processor
name: cds-blueprints-processor
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/cds/components/cds-blueprints-processor/resources/config/application.properties b/kubernetes/cds/components/cds-blueprints-processor/resources/config/application.properties
index b99bae7197..004a9909ab 100755
--- a/kubernetes/cds/components/cds-blueprints-processor/resources/config/application.properties
+++ b/kubernetes/cds/components/cds-blueprints-processor/resources/config/application.properties
@@ -44,7 +44,7 @@ blueprintsprocessor.httpPort=8080
blueprintsprocessor.grpcPort=9111
# db
-blueprintsprocessor.db.url=jdbc:mysql://{{.Values.config.cdsDB.dbServer}}:{{.Values.config.cdsDB.dbPort}}/{{.Values.config.cdsDB.dbName}}
+blueprintsprocessor.db.url=jdbc:mariadb://{{.Values.config.cdsDB.dbServer}}:{{.Values.config.cdsDB.dbPort}}/{{.Values.config.cdsDB.dbName}}
blueprintsprocessor.db.username=${CDS_DB_USERNAME}
blueprintsprocessor.db.password=${CDS_DB_PASSWORD}
blueprintsprocessor.db.driverClassName=org.mariadb.jdbc.Driver
@@ -55,7 +55,7 @@ blueprintsprocessor.db.hibernateDialect=org.hibernate.dialect.MySQL5InnoDBDialec
# processor-db endpoint
blueprintsprocessor.db.processor-db.type=maria-db
-blueprintsprocessor.db.processor-db.url=jdbc:mysql://{{ .Values.config.sdncDB.dbService }}:{{ .Values.config.sdncDB.dbPort }}/{{.Values.config.sdncDB.dbName}}
+blueprintsprocessor.db.processor-db.url=jdbc:mariadb://{{ .Values.config.sdncDB.dbService }}:{{ .Values.config.sdncDB.dbPort }}/{{.Values.config.sdncDB.dbName}}
blueprintsprocessor.db.processor-db.username=${SDNC_DB_USERNAME}
blueprintsprocessor.db.processor-db.password=${SDNC_DB_PASSWORD}
diff --git a/kubernetes/cds/components/cds-blueprints-processor/values.yaml b/kubernetes/cds/components/cds-blueprints-processor/values.yaml
index b0812f26b8..469e40f4bd 100755
--- a/kubernetes/cds/components/cds-blueprints-processor/values.yaml
+++ b/kubernetes/cds/components/cds-blueprints-processor/values.yaml
@@ -77,7 +77,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/ccsdk-blueprintsprocessor:1.5.3
+image: onap/ccsdk-blueprintsprocessor:1.7.1
pullPolicy: Always
# flag to enable debugging - application support required
diff --git a/kubernetes/common/common/.helmignore b/kubernetes/common/common/.helmignore
index f066c4b723..569baddc3a 100644
--- a/kubernetes/common/common/.helmignore
+++ b/kubernetes/common/common/.helmignore
@@ -2,6 +2,7 @@
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
+
# Common VCS dirs
.git/
.gitignore
@@ -10,23 +11,30 @@
.hg/
.hgignore
.svn/
+
# Common backup files
*.swp
*.bak
*.tmp
*~
+
# Various IDEs
.project
.idea/
+.vscode/
*.tmproj
+
# Project/CI/CD related items
.gitlab
.gitlab-ci.yml
+.gitignore
.dockerignore
+
# Helm build files
.helmignore
.cache/
-.local/
.config/
+.local/
+
# OOM specific dirs
components/
diff --git a/kubernetes/common/common/Chart.yaml b/kubernetes/common/common/Chart.yaml
index 591f24f4ee..fb022723b2 100644
--- a/kubernetes/common/common/Chart.yaml
+++ b/kubernetes/common/common/Chart.yaml
@@ -1,6 +1,6 @@
# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2024 Deutsche Telekom
+# Modifications Copyright © 2025 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,4 +17,4 @@
apiVersion: v2
description: Common templates for inclusion in other charts
name: common
-version: 13.2.10
+version: 13.2.16
diff --git a/kubernetes/common/common/templates/_labels.tpl b/kubernetes/common/common/templates/_labels.tpl
index df5cab932d..b2b490aac4 100644
--- a/kubernetes/common/common/templates/_labels.tpl
+++ b/kubernetes/common/common/templates/_labels.tpl
@@ -1,6 +1,7 @@
{{/*
# Copyright © 2019 Orange
-# Modifications Copyright (C) 2022 Bell Canada
+# Modifications Copyright © 2022 Bell Canada
+# Modifications Copyright © 2025 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -23,12 +24,14 @@ The function takes several arguments (inside a dictionary):
- .dot : environment (.)
- .labels : labels to add (dict)
- .suffix : name suffix
+ - .prefix : name prefix
*/}}
{{- define "common.labels" -}}
{{- $dot := default . .dot -}}
-{{- $suffix := .suffix -}}
-app.kubernetes.io/name: {{ include "common.name" (dict "dot" $dot "suffix" $suffix) }}
-app: {{ include "common.name" (dict "dot" $dot "suffix" $suffix) }}
+{{- $suffix := default "" .suffix -}}
+{{- $prefix := default "" .prefix -}}
+app.kubernetes.io/name: {{ include "common.name" (dict "dot" $dot "suffix" $suffix "prefix" $prefix) }}
+app: {{ include "common.name" (dict "dot" $dot "suffix" $suffix "prefix" $prefix) }}
{{- if $dot.Chart.AppVersion }}
version: "{{ $dot.Chart.AppVersion | replace "+" "_" }}"
{{- else }}
@@ -101,12 +104,14 @@ matchLabels: {{- include "common.matchLabels" (dict "matchLabels" $matchLabels "
The function takes several arguments (inside a dictionary)
- .dot : environment (.)
- .labels: labels to add (dict)
+ - .annotations: annotation to add (dict)
*/}}
{{- define "common.templateMetadata" -}}
{{- $dot := default . .dot -}}
{{- $labels := default (dict) .labels -}}
-{{- if $dot.Values.podAnnotations }}
-annotations: {{- include "common.tplValue" (dict "value" $dot.Values.podAnnotations "context" $dot) | nindent 2 }}
+{{- $annotations := default $dot.Values.podAnnotations .annotations -}}
+{{- if $annotations}}
+annotations: {{- include "common.tplValue" (dict "value" $annotations "context" $dot) | nindent 2 }}
{{- end }}
labels: {{- include "common.labels" (dict "labels" $labels "ignoreHelmChart" .ignoreHelmChart "dot" $dot) | nindent 2 }}
name: {{ include "common.name" $dot }}
diff --git a/kubernetes/common/common/templates/_log.tpl b/kubernetes/common/common/templates/_log.tpl
index dc900dd4e4..ca5eb11992 100644
--- a/kubernetes/common/common/templates/_log.tpl
+++ b/kubernetes/common/common/templates/_log.tpl
@@ -1,5 +1,6 @@
{{/*
# Copyright © 2020 Orange
+# Modification Copyright © 2025 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -23,7 +24,7 @@
- name: filebeat-conf
mountPath: /usr/share/filebeat/filebeat.yml
subPath: filebeat.yml
- - name: logs
+ - name: sidecar-logs
mountPath: {{ .Values.log.path }}
- name: filebeat-data
mountPath: /usr/share/filebeat/data
@@ -45,7 +46,11 @@
configMap:
name: {{ $configMapName }}
- name: filebeat-data
- emptyDir: {}
+ emptyDir:
+ sizeLimit: {{ $dot.Values.log.dataSizeLimit }}
+- name: sidecar-logs
+ emptyDir:
+ sizeLimit: {{ $dot.Values.log.sizeLimit }}
{{- end -}}
{{- end -}}
diff --git a/kubernetes/common/common/templates/_mariadb.tpl b/kubernetes/common/common/templates/_mariadb.tpl
index 0e46e5ef26..f2a4a0c09e 100644
--- a/kubernetes/common/common/templates/_mariadb.tpl
+++ b/kubernetes/common/common/templates/_mariadb.tpl
@@ -1,5 +1,6 @@
{{/*
# Copyright © 2019 Orange
+# Modifications Copyright © 2025 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -253,6 +254,7 @@ kind: MariaDB
metadata:
name: {{ $dbinst }}
spec:
+ resources: {{ include "common.resources" . | nindent 4 }}
podSecurityContext:
runAsUser: 10001
runAsGroup: 10001
@@ -304,7 +306,7 @@ spec:
sst: mariabackup
replicaThreads: 1
agent:
- image: {{ include "repositoryGenerator.githubContainerRegistry" . }}/{{ .Values.mariadbOperator.galera.agentImage }}:{{ $dot.Values.mariadbOperator.galera.agentVersion }}
+ image: {{ include "repositoryGenerator.mariadbContainerRegistry" . }}/{{ .Values.mariadbOperator.galera.agentImage }}:{{ $dot.Values.mariadbOperator.galera.agentVersion }}
imagePullPolicy: IfNotPresent
port: 5555
kubernetesAuth:
@@ -312,6 +314,7 @@ spec:
authDelegatorRoleName: {{ $dbinst }}-auth
gracefulShutdownTimeout: 5s
securityContext:
+ readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
drop:
@@ -320,11 +323,15 @@ spec:
privileged: false
runAsNonRoot: true
runAsUser: 10001
- seccompProfile:
- type: RuntimeDefault
+ resources:
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
primary:
automaticFailover: true
- podIndex: 0
recovery:
enabled: true
clusterHealthyTimeout: 30s
@@ -333,7 +340,7 @@ spec:
podRecoveryTimeout: 3m0s
podSyncTimeout: 3m0s
initContainer:
- image: {{ include "repositoryGenerator.githubContainerRegistry" . }}/{{ $dot.Values.mariadbOperator.galera.initImage }}:{{ $dot.Values.mariadbOperator.galera.initVersion }}
+ image: {{ include "repositoryGenerator.mariadbContainerRegistry" . }}/{{ $dot.Values.mariadbOperator.galera.initImage }}:{{ $dot.Values.mariadbOperator.galera.initVersion }}
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
@@ -344,8 +351,13 @@ spec:
privileged: false
runAsNonRoot: true
runAsUser: 10001
- seccompProfile:
- type: RuntimeDefault
+ resources:
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
config:
reuseStorageVolume: false
volumeClaimTemplate:
diff --git a/kubernetes/common/common/templates/_name.tpl b/kubernetes/common/common/templates/_name.tpl
index 793fb3e07b..08055082fa 100644
--- a/kubernetes/common/common/templates/_name.tpl
+++ b/kubernetes/common/common/templates/_name.tpl
@@ -23,7 +23,8 @@
{{- define "common.name" -}}
{{- $dot := default . .dot -}}
{{- $suffix := .suffix -}}
- {{- default $dot.Chart.Name $dot.Values.nameOverride | trunc 63 | trimSuffix "-" -}}{{ if $suffix }}{{ print "-" $suffix }}{{ end }}
+ {{- $prefix := .prefix -}}
+ {{ if $prefix }}{{ print $prefix "-" }}{{ end }}{{- default $dot.Chart.Name $dot.Values.nameOverride | trunc 63 | trimSuffix "-" -}}{{ if $suffix }}{{ print "-" $suffix }}{{ end }}
{{- end -}}
{{/*
@@ -34,7 +35,8 @@
{{- $dot := .dot }}
{{- $name := .chartName }}
{{- $suffix := default "" .suffix -}}
- {{- printf "%s-%s-%s" (include "common.release" $dot) $name $suffix | trunc 63 | trimSuffix "-" | trimSuffix "-" -}}
+ {{- $prefix := default "" .prefix -}}
+ {{- printf "%s-%s-%s-%s" $prefix (include "common.release" $dot) $name $suffix | trunc 63 | trimSuffix "-" | trimSuffix "-" | trimPrefix "-" -}}
{{- end -}}
{{/*
@@ -42,21 +44,23 @@
Truncated at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
Usage:
include "common.fullname" .
- include "common.fullname" (dict "suffix" "mySuffix" "dot" .)
+ include "common.fullname" (dict "suffix" "mySuffix" "prefix" "myPrefix" "dot" .)
The function takes from one to two arguments:
- .dot : environment (.)
- .suffix : add a suffix to the fullname
+ - .prefix : add a prefix to the fullname
*/}}
{{- define "common.fullname" -}}
{{- $dot := default . .dot -}}
{{- $suffix := default "" .suffix -}}
+{{- $prefix := default "" .prefix -}}
{{- $name := default $dot.Chart.Name $dot.Values.nameOverride -}}
{{/* when linted, the name must be lower cased. When used from a component,
name should be overriden in order to avoid collision so no need to do it */}}
{{- if eq (printf "%s/templates" $name) $dot.Template.BasePath -}}
{{- $name = lower $name -}}
{{- end -}}
- {{- include "common.fullnameExplicit" (dict "dot" $dot "chartName" $name "suffix" $suffix) }}
+ {{- include "common.fullnameExplicit" (dict "dot" $dot "chartName" $name "suffix" $suffix "prefix" $prefix) }}
{{- end -}}
{{/*
diff --git a/kubernetes/common/common/templates/_strimzikafka.tpl b/kubernetes/common/common/templates/_strimzikafka.tpl
index a48b444cfc..c3c4cc7d92 100644
--- a/kubernetes/common/common/templates/_strimzikafka.tpl
+++ b/kubernetes/common/common/templates/_strimzikafka.tpl
@@ -56,7 +56,7 @@ kind: KafkaUser
metadata:
name: {{ include "common.name" . }}-ku
labels:
- {{- include "common.labels" . | nindent 4 }}
+ {{- include "common.labels" $ | nindent 4 }}
strimzi.io/cluster: {{ include "common.release" . }}-strimzi
spec:
authentication:
diff --git a/kubernetes/common/elasticsearch/.helmignore b/kubernetes/common/elasticsearch/.helmignore
index 0bab41b6b1..569baddc3a 100644
--- a/kubernetes/common/elasticsearch/.helmignore
+++ b/kubernetes/common/elasticsearch/.helmignore
@@ -2,6 +2,7 @@
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
+
# Common VCS dirs
.git/
.gitignore
@@ -10,23 +11,30 @@
.hg/
.hgignore
.svn/
+
# Common backup files
*.swp
*.bak
*.tmp
*~
+
# Various IDEs
.project
.idea/
+.vscode/
*.tmproj
+
# Project/CI/CD related items
.gitlab
.gitlab-ci.yml
+.gitignore
.dockerignore
+
# Helm build files
.helmignore
.cache/
.config/
.local/
+
# OOM specific dirs
components/
diff --git a/kubernetes/common/elasticsearch/Chart.yaml b/kubernetes/common/elasticsearch/Chart.yaml
index 48de2c0502..cb43539ba2 100644
--- a/kubernetes/common/elasticsearch/Chart.yaml
+++ b/kubernetes/common/elasticsearch/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP elasticsearch
name: elasticsearch
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/common/elasticsearch/components/curator/Chart.yaml b/kubernetes/common/elasticsearch/components/curator/Chart.yaml
index baceb1dadc..85bbd67a77 100644
--- a/kubernetes/common/elasticsearch/components/curator/Chart.yaml
+++ b/kubernetes/common/elasticsearch/components/curator/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP elasticsearch curator
name: curator
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/common/elasticsearch/components/curator/templates/cronjob.yaml b/kubernetes/common/elasticsearch/components/curator/templates/cronjob.yaml
index ff63cf00b1..a27fbb39ca 100644
--- a/kubernetes/common/elasticsearch/components/curator/templates/cronjob.yaml
+++ b/kubernetes/common/elasticsearch/components/curator/templates/cronjob.yaml
@@ -51,7 +51,8 @@ spec:
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
-{{- include "elasticsearch.imagePullSecrets" . | indent 10 }}
+ {{- include "elasticsearch.imagePullSecrets" . | indent 10 }}
+ {{ include "common.podSecurityContext" . | indent 10 | trim }}
{{- if .Values.extraInitContainers }}
initContainers:
{{- range $key, $value := .Values.extraInitContainers }}
@@ -71,13 +72,11 @@ spec:
{{- if .Values.tolerations }}
tolerations: {{- include "common.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 12 }}
{{- end }}
- {{- if .Values.securityContext }}
- securityContext: {{- toYaml .Values.securityContext | nindent 12 }}
- {{- end }}
containers:
- name: {{ template "common.fullname" . }}-curator
image: {{printf "%s/%s" (include "repositoryGenerator.repository" .) .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 14 | trim }}
volumeMounts:
- name: config-volume
mountPath: /etc/es-curator
diff --git a/kubernetes/common/elasticsearch/components/curator/values.yaml b/kubernetes/common/elasticsearch/components/curator/values.yaml
index d02d017108..40078be0df 100644
--- a/kubernetes/common/elasticsearch/components/curator/values.yaml
+++ b/kubernetes/common/elasticsearch/components/curator/values.yaml
@@ -175,3 +175,6 @@ extraInitContainers: {}
# "storage_class": "${S3_STORAGE_CLASS}"
# }
# }
+securityContext:
+ user_id: 1000
+ group_id: 1000
diff --git a/kubernetes/common/elasticsearch/components/data/Chart.yaml b/kubernetes/common/elasticsearch/components/data/Chart.yaml
index 30c925aba7..82858cedb9 100644
--- a/kubernetes/common/elasticsearch/components/data/Chart.yaml
+++ b/kubernetes/common/elasticsearch/components/data/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP elasticsearch data
name: data
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/common/elasticsearch/components/data/templates/statefulset.yaml b/kubernetes/common/elasticsearch/components/data/templates/statefulset.yaml
index e6c5a87f5c..dc8562b8fc 100644
--- a/kubernetes/common/elasticsearch/components/data/templates/statefulset.yaml
+++ b/kubernetes/common/elasticsearch/components/data/templates/statefulset.yaml
@@ -44,17 +44,21 @@ spec:
{{- if .Values.tolerations }}
tolerations: {{- include "common.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
{{- end }}
- {{- if .Values.securityContext.enabled }}
- securityContext:
- fsGroup: {{ .Values.securityContext.fsGroup }}
- {{- end }}
- {{- if or .Values.sysctlImage.enabled (and .Values.volumePermissions.enabled .Values.persistence.enabled) }}
+ {{ include "common.podSecurityContext" . | indent 6 | trim }}
initContainers:
{{- if .Values.sysctlImage.enabled }}
## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- name: sysctl
image: {{ include "repositoryGenerator.image.busybox" . }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
command:
- /bin/sh
- -c
@@ -62,37 +66,35 @@ spec:
set -o errexit
set -o pipefail
set -o nounset
- sysctl -w vm.max_map_count=262144 && sysctl -w fs.file-max=65536
- securityContext:
- privileged: true
+ volumeMounts:
+ - mountPath: /etc/sysctl.conf
+ name: config
+ subPath: sysctl.conf
{{- end }}
- {{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
- - name: volume-permissions
- image: {{ include "repositoryGenerator.image.busybox" . }}
+ - name: {{ include "common.name" . }}-config-copy
+ image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
command:
- /bin/sh
- -c
- |
- chown -R {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} //bitnami/elasticsearch/data
- securityContext:
- runAsUser: 0
- {{- if .Values.volumePermissions.resource }}
- resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }}
- {{- end }}
+ cp -R /opt/bitnami/elasticsearch/config/. /opt/bitnami/elasticsearch/config_rw
volumeMounts:
- - name: data
- mountPath: "/bitnami/elasticsearch/data"
- {{- end }}
- {{- end }}
+ - mountPath: /opt/bitnami/elasticsearch/config_rw
+ name: bitnami-config
containers:
- name: {{ include "common.name" . }}-data
- image: {{ printf "%s/%s" (include "repositoryGenerator.dockerHubRepository" .) .Values.image }}
+ image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- {{- if .Values.securityContext.enabled }}
- securityContext:
- runAsUser: {{ .Values.securityContext.runAsUser }}
- {{- end }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
env:
- name: BITNAMI_DEBUG
value: {{ ternary "true" "false" .Values.debug | quote }}
@@ -143,28 +145,52 @@ spec:
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- end }}
volumeMounts:
+ - mountPath: /tmp
+ name: tmp
+ - mountPath: /opt/bitnami/elasticsearch/logs
+ name: bitnami-logs
+ - mountPath: /opt/bitnami/elasticsearch/tmp
+ name: bitnami-tmp
+ - mountPath: /opt/bitnami/elasticsearch/config
+ name: bitnami-config
{{- if .Values.config }}
- mountPath: /opt/bitnami/elasticsearch/config/elasticsearch.yml
name: "config"
subPath: elasticsearch.yml
{{- end }}
+ {{- if .Values.sysctlImage.enabled }}
+ - mountPath: /etc/sysctl.conf
+ name: config
+ subPath: sysctl.conf
+ {{- end }}
- name: "data"
mountPath: "/bitnami/elasticsearch/data"
{{- if .Values.extraVolumeMounts }}
{{- toYaml .Values.extraVolumeMounts | nindent 12 }}
{{- end }}
volumes:
- {{- if .Values.config }}
- name: "config"
configMap:
name: {{ template "common.fullname" . }}
- {{- end }}
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.tmpSizeLimit }}
+ name: tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiLogsSizeLimit }}
+ name: bitnami-logs
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiTmpSizeLimit }}
+ name: bitnami-tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiConfigSizeLimit }}
+ name: bitnami-config
{{- if .Values.extraVolumes }}
{{- toYaml .Values.extraVolumes | nindent 8 }}
{{- end }}
{{- if not .Values.persistence.enabled }}
- name: "data"
- emptyDir: {}
+ emptyDir:
+ sizeLimit: {{ .Values.volumes.dataSizeLimit }}
{{- else }}
volumeClaimTemplates:
- metadata:
diff --git a/kubernetes/common/elasticsearch/components/data/values.yaml b/kubernetes/common/elasticsearch/components/data/values.yaml
index 3f9992aaba..25dc7e7911 100644
--- a/kubernetes/common/elasticsearch/components/data/values.yaml
+++ b/kubernetes/common/elasticsearch/components/data/values.yaml
@@ -82,9 +82,8 @@ podAnnotations: {}
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext:
- enabled: true
- fsGroup: 1001
- runAsUser: 1001
+ user_id: 1001
+ group_id: 1001
## Affinity for pod assignment.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
@@ -170,3 +169,9 @@ serviceAccount:
## If not set and create is true, a name is generated using the fullname template
##
# name:
+volumes:
+ logSizeLimit: 300Mi
+ tmpSizeLimit: 100Mi
+ bitnamiLogsSizeLimit: 200Mi
+ bitnamiTmpSizeLimit: 100Mi
+ bitnamiConfigSizeLimit: 50Mi
diff --git a/kubernetes/common/elasticsearch/components/master/Chart.yaml b/kubernetes/common/elasticsearch/components/master/Chart.yaml
index e481c7cd4b..30802dafbf 100644
--- a/kubernetes/common/elasticsearch/components/master/Chart.yaml
+++ b/kubernetes/common/elasticsearch/components/master/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP elasticsearch master
name: master
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/common/elasticsearch/components/master/templates/statefulset.yaml b/kubernetes/common/elasticsearch/components/master/templates/statefulset.yaml
index 8ee0fc50db..54b427c80d 100644
--- a/kubernetes/common/elasticsearch/components/master/templates/statefulset.yaml
+++ b/kubernetes/common/elasticsearch/components/master/templates/statefulset.yaml
@@ -42,17 +42,21 @@ spec:
{{- if .Values.tolerations }}
tolerations: {{- include "common.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
{{- end }}
- {{- if .Values.securityContext.enabled }}
- securityContext:
- fsGroup: {{ .Values.securityContext.fsGroup }}
- {{- end }}
- {{- if or .Values.sysctlImage.enabled (and .Values.volumePermissions.enabled .Values.persistence.enabled) }}
+ {{ include "common.podSecurityContext" . | indent 6 | trim }}
initContainers:
{{- if .Values.sysctlImage.enabled }}
## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- name: sysctl
image: {{ include "repositoryGenerator.image.busybox" . }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
command:
- /bin/sh
- -c
@@ -60,37 +64,35 @@ spec:
set -o errexit
set -o pipefail
set -o nounset
- sysctl -w vm.max_map_count=262144 && sysctl -w fs.file-max=65536
- securityContext:
- privileged: true
+ volumeMounts:
+ - mountPath: /etc/sysctl.conf
+ name: config
+ subPath: sysctl.conf
{{- end }}
- {{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
- - name: volume-permissions
- image: {{ include "repositoryGenerator.image.busybox" . }}
+ - name: {{ include "common.name" . }}-config-copy
+ image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
command:
- /bin/sh
- -c
- |
- chown -R {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} //bitnami/elasticsearch/data
- securityContext:
- runAsUser: 0
- {{- if .Values.volumePermissions.resource }}
- resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }}
- {{- end }}
+ cp -R /opt/bitnami/elasticsearch/config/. /opt/bitnami/elasticsearch/config_rw
volumeMounts:
- - name: data
- mountPath: "/bitnami/elasticsearch/data"
- {{- end }}
- {{- end }}
+ - mountPath: /opt/bitnami/elasticsearch/config_rw
+ name: bitnami-config
containers:
- name: {{ include "common.name" . }}-master
- image: {{ printf "%s/%s" (include "repositoryGenerator.dockerHubRepository" .) .Values.image }}
+ image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- {{- if .Values.securityContext.enabled }}
- securityContext:
- runAsUser: {{ .Values.securityContext.runAsUser }}
- {{- end }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
env:
- name: BITNAMI_DEBUG
value: {{ ternary "true" "false" .Values.debug | quote }}
@@ -147,6 +149,14 @@ spec:
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- end }}
volumeMounts:
+ - mountPath: /tmp
+ name: tmp
+ - mountPath: /opt/bitnami/elasticsearch/logs
+ name: bitnami-logs
+ - mountPath: /opt/bitnami/elasticsearch/tmp
+ name: bitnami-tmp
+ - mountPath: /opt/bitnami/elasticsearch/config
+ name: bitnami-config
{{- if .Values.config }}
- mountPath: /opt/bitnami/elasticsearch/config/elasticsearch.yml
name: config
@@ -158,17 +168,28 @@ spec:
{{- toYaml .Values.extraVolumeMounts | nindent 12 }}
{{- end }}
volumes:
- {{- if .Values.config }}
- name: config
configMap:
name: {{ include "common.fullname" . }}
- {{- end }}
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.tmpSizeLimit }}
+ name: tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiLogsSizeLimit }}
+ name: bitnami-logs
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiTmpSizeLimit }}
+ name: bitnami-tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiConfigSizeLimit }}
+ name: bitnami-config
{{- if .Values.extraVolumes }}
{{- toYaml .Values.extraVolumes | nindent 8 }}
{{- end }}
{{- if not .Values.persistence.enabled }}
- name: "data"
- emptyDir: {}
+ emptyDir:
+ sizeLimit: {{ .Values.volumes.dataSizeLimit }}
{{- else }}
volumeClaimTemplates:
- metadata:
diff --git a/kubernetes/common/elasticsearch/components/master/values.yaml b/kubernetes/common/elasticsearch/components/master/values.yaml
index a3a219ee31..0837132db4 100644
--- a/kubernetes/common/elasticsearch/components/master/values.yaml
+++ b/kubernetes/common/elasticsearch/components/master/values.yaml
@@ -85,9 +85,8 @@ podAnnotations: {}
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext:
- enabled: true
- fsGroup: 1001
- runAsUser: 1001
+ user_id: 1001
+ group_id: 1001
## Affinity for pod assignment.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
@@ -202,3 +201,10 @@ serviceAccount:
## Elasticsearch cluster name
##
clusterName: elastic-cluster
+
+volumes:
+ logSizeLimit: 300Mi
+ tmpSizeLimit: 100Mi
+ bitnamiLogsSizeLimit: 200Mi
+ bitnamiTmpSizeLimit: 100Mi
+ bitnamiConfigSizeLimit: 50Mi
diff --git a/kubernetes/common/elasticsearch/templates/configmap-es.yaml b/kubernetes/common/elasticsearch/templates/configmap-es.yaml
index 7138e4e094..d844d08240 100644
--- a/kubernetes/common/elasticsearch/templates/configmap-es.yaml
+++ b/kubernetes/common/elasticsearch/templates/configmap-es.yaml
@@ -13,10 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
*/}}
-{{- if .Values.config }}
apiVersion: v1
kind: ConfigMap
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
data:
+ {{- if .Values.config }}
elasticsearch.yml: |- {{- toYaml .Values.config | nindent 4 }}
-{{- end }}
+ {{- end }}
+ sysctl.conf: |- {{- toYaml .Values.sysctl_conf | nindent 4 }}
diff --git a/kubernetes/common/elasticsearch/templates/coordinating-deploy.yaml b/kubernetes/common/elasticsearch/templates/coordinating-deploy.yaml
index 0bc6de2b9b..08c93031fb 100644
--- a/kubernetes/common/elasticsearch/templates/coordinating-deploy.yaml
+++ b/kubernetes/common/elasticsearch/templates/coordinating-deploy.yaml
@@ -41,17 +41,22 @@ spec:
tolerations: {{- include "common.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "elasticsearch.serviceAccountName" . }}
- {{- if .Values.securityContext.enabled }}
- securityContext:
- fsGroup: {{ .Values.securityContext.fsGroup }}
- {{- end }}
-
+ {{ include "common.podSecurityContext" . | indent 6 | trim }}
## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
initContainers:
- {{- if .Values.sysctlImage.enabled }}
+ {{- if .Values.sysctlImage.enabled }}
+ ## Image that performs the sysctl operation to modify Kernel settings (needed sometimes to avoid boot errors)
- name: sysctl
image: {{ include "repositoryGenerator.image.busybox" . }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
command:
- /bin/sh
- -c
@@ -59,11 +64,52 @@ spec:
set -o errexit
set -o pipefail
set -o nounset
- sysctl -w vm.max_map_count=262144 && sysctl -w fs.file-max=65536
- securityContext:
- privileged: true
- {{- end }}
-
+ volumeMounts:
+ - mountPath: /etc/sysctl.conf
+ name: config
+ subPath: sysctl.conf
+ {{- end }}
+ - name: {{ include "common.name" . }}-config-copy
+ image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
+ command:
+ - /bin/sh
+ - -c
+ - |
+ cp -R /opt/bitnami/elasticsearch/config/. /opt/bitnami/elasticsearch/config_rw
+ volumeMounts:
+ - mountPath: /opt/bitnami/elasticsearch/config_rw
+ name: bitnami-config
+ - name: {{ include "common.name" . }}-nginx-config-copy
+ image: {{ include "repositoryGenerator.image.nginx" . }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.nginx.pullPolicy | quote }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ resources:
+ limits:
+ cpu: 20m
+ memory: 50Mi
+ requests:
+ cpu: 5m
+ memory: 20Mi
+ command:
+ - /bin/sh
+ - -c
+ - |
+ cp -R /opt/bitnami/nginx/conf/. /opt/bitnami/nginx/conf_rw;
+ cp -R /opt/bitnami/nginx/logs/. /opt/bitnami/nginx/logs_rw
+ volumeMounts:
+ - mountPath: /opt/bitnami/nginx/conf_rw
+ name: nginx-config
+ - mountPath: /opt/bitnami/nginx/logs_rw
+ name: nginx-logs
containers:
- name: {{ include "common.name" . }}-nginx
image: {{ include "repositoryGenerator.image.nginx" . }}
@@ -78,7 +124,14 @@ spec:
{{- if .Values.nginx.resources }}
resources: {{- toYaml .Values.nginx.resources | nindent 12 }}
{{- end }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
volumeMounts:
+ - mountPath: /opt/bitnami/nginx/conf
+ name: nginx-config
+ - mountPath: /opt/bitnami/nginx/tmp
+ name: nginx-tmp
+ - mountPath: /opt/bitnami/nginx/logs
+ name: nginx-logs
{{- if .Values.nginx.serverBlock }}
- name: nginx-server-block
mountPath: /opt/bitnami/nginx/conf/server_blocks
@@ -86,11 +139,8 @@ spec:
- name: {{ include "common.name" . }}-elasticsearch
image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
- {{- if .Values.securityContext.enabled }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- securityContext:
- runAsUser: {{ .Values.securityContext.runAsUser }}
- {{- end }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
env:
- name: BITNAMI_DEBUG
value: {{ ternary "true" "false" .Values.debug | quote }}
@@ -143,6 +193,14 @@ spec:
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- end}}
volumeMounts:
+ - mountPath: /tmp
+ name: tmp
+ - mountPath: /opt/bitnami/elasticsearch/logs
+ name: bitnami-logs
+ - mountPath: /opt/bitnami/elasticsearch/tmp
+ name: bitnami-tmp
+ - mountPath: /opt/bitnami/elasticsearch/config
+ name: bitnami-config
{{- if .Values.config }}
- mountPath: /opt/bitnami/elasticsearch/config/elasticsearch.yml
name: config
@@ -154,13 +212,33 @@ spec:
{{- toYaml .Values.extraVolumeMounts | nindent 12 }}
{{- end }}
volumes:
- {{- if .Values.config }}
- name: config
configMap:
name: {{ include "common.fullname" . }}
- {{- end }}
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.tmpSizeLimit }}
+ name: tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiLogsSizeLimit }}
+ name: bitnami-logs
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiTmpSizeLimit }}
+ name: bitnami-tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.bitnamiConfigSizeLimit }}
+ name: bitnami-config
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.nginxLogsSizeLimit }}
+ name: nginx-logs
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.nginxTmpSizeLimit }}
+ name: nginx-tmp
+ - emptyDir:
+ sizeLimit: {{ .Values.volumes.nginxConfigSizeLimit }}
+ name: nginx-config
- name: data
- emptyDir: {}
+ emptyDir:
+ sizeLimit: {{ .Values.volumes.dataSizeLimit }}
{{- if .Values.extraVolumes }}
{{- toYaml .Values.extraVolumes | nindent 8 }}
{{- end }}
diff --git a/kubernetes/common/elasticsearch/values.yaml b/kubernetes/common/elasticsearch/values.yaml
index 7851f2804f..569adb0c91 100644
--- a/kubernetes/common/elasticsearch/values.yaml
+++ b/kubernetes/common/elasticsearch/values.yaml
@@ -71,9 +71,9 @@ podAnnotations: {}
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext:
- enabled: true
- fsGroup: 1001
- runAsUser: 1001
+ user_id: 1001
+ group_id: 1001
+
## Affinity for pod assignment.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
@@ -93,12 +93,24 @@ 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.
- limits: {}
- # cpu: "100m"
- # memory: "100Mi"
+ limits:
+ cpu: "500m"
+ memory: 4Gi
requests:
cpu: "25m"
memory: "200Mi"
+
+volumes:
+ dataSizeLimit: 200Mi
+ logSizeLimit: 300Mi
+ tmpSizeLimit: 100Mi
+ bitnamiLogsSizeLimit: 200Mi
+ bitnamiTmpSizeLimit: 100Mi
+ bitnamiConfigSizeLimit: 50Mi
+ nginxLogsSizeLimit: 200Mi
+ nginxTmpSizeLimit: 100Mi
+ nginxConfigSizeLimit: 50Mi
+
## Elasticsearch coordinating-only container's liveness and readiness probes
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
@@ -144,6 +156,13 @@ sysctlImage:
# nginx image
nginx:
pullPolicy: IfNotPresent
+ resources:
+ limits:
+ cpu: "500m"
+ memory: "400Mi"
+ requests:
+ cpu: "25m"
+ memory: "50Mi"
service:
name: nginx
ports:
@@ -260,6 +279,13 @@ service:
##
#################################################################
+# system ctl configuration
+#################################################################
+sysctl_conf: |-
+ vm.max_map_count=262144
+ fs.file-max=65536
+
+#################################################################
# subcharts configuration defaults.
#################################################################
diff --git a/kubernetes/common/etcd-init/Chart.yaml b/kubernetes/common/etcd-init/Chart.yaml
index 166b4172d3..0ce9c4fc46 100644
--- a/kubernetes/common/etcd-init/Chart.yaml
+++ b/kubernetes/common/etcd-init/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: Chart for etcd init job
name: etcd-init
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/common/etcd-init/templates/job.yaml b/kubernetes/common/etcd-init/templates/job.yaml
index 71f912e201..30e37ea43e 100644
--- a/kubernetes/common/etcd-init/templates/job.yaml
+++ b/kubernetes/common/etcd-init/templates/job.yaml
@@ -23,6 +23,9 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: {{ .Values.backoffLimit }}
template:
diff --git a/kubernetes/common/etcd-init/values.yaml b/kubernetes/common/etcd-init/values.yaml
index 33e34fd086..2af39ed573 100644
--- a/kubernetes/common/etcd-init/values.yaml
+++ b/kubernetes/common/etcd-init/values.yaml
@@ -55,6 +55,21 @@ config:
appRole: role
keyPrefix: key
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
+
flavor: small
resources:
small:
diff --git a/kubernetes/common/etcd/Chart.yaml b/kubernetes/common/etcd/Chart.yaml
index bd508c57fd..72e1ba68e9 100644
--- a/kubernetes/common/etcd/Chart.yaml
+++ b/kubernetes/common/etcd/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
name: etcd
home: https://github.com/coreos/etcd
-version: 13.0.1
+version: 13.0.2
appVersion: 2.2.5
description: Distributed reliable key-value store for the most critical data of a
distributed system.
diff --git a/kubernetes/common/etcd/templates/pv.yaml b/kubernetes/common/etcd/templates/pv.yaml
index ac5b7b975d..a54850dad3 100644
--- a/kubernetes/common/etcd/templates/pv.yaml
+++ b/kubernetes/common/etcd/templates/pv.yaml
@@ -24,11 +24,7 @@ kind: PersistentVolume
metadata:
name: {{ include "common.fullname" $global }}-data-{{ $i }}
namespace: {{ include "common.namespace" $global }}
- labels:
- app: {{ include "common.fullname" $global }}
- chart: "{{ $global.Chart.Name }}-{{ $global.Chart.Version | replace "+" "_" }}"
- release: "{{ include "common.release" $global }}"
- heritage: "{{ $global.Release.Service }}"
+ labels: {{- include "common.labels" $global | nindent 4 }}
name: {{ include "common.fullname" $global }}
spec:
capacity:
diff --git a/kubernetes/common/etcd/templates/service.yaml b/kubernetes/common/etcd/templates/service.yaml
index 72dea06832..c5993934fd 100644
--- a/kubernetes/common/etcd/templates/service.yaml
+++ b/kubernetes/common/etcd/templates/service.yaml
@@ -20,11 +20,7 @@ metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
name: {{ include "common.servicename" . }}
- labels:
- heritage: "{{ .Release.Service }}"
- release: "{{ include "common.release" . }}"
- chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
- app: {{ include "common.name" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
spec:
ports:
- name: {{ .Values.service.peerPortName }}
@@ -32,6 +28,4 @@ spec:
- name: {{ .Values.service.clientPortName }}
port: {{ .Values.service.clientInternalPort }}
clusterIP: None
- selector:
- app.kubernetes.io/name: {{ include "common.name" . }}
- app.kubernetes.io/instance: {{ include "common.release" . }}
+ selector: {{- include "common.matchLabels" . | nindent 4 }}
diff --git a/kubernetes/common/etcd/templates/statefulset.yaml b/kubernetes/common/etcd/templates/statefulset.yaml
index c71d3295eb..f2e04c992d 100644
--- a/kubernetes/common/etcd/templates/statefulset.yaml
+++ b/kubernetes/common/etcd/templates/statefulset.yaml
@@ -212,11 +212,7 @@ spec:
volumeClaimTemplates:
- metadata:
name: {{ include "common.fullname" . }}-data
- labels:
- name: {{ include "common.fullname" . }}
- chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
- release: "{{ include "common.release" . }}"
- heritage: "{{ .Release.Service }}"
+ labels: {{- include "common.labels" . | nindent 8 }}
spec:
accessModes:
- "{{ .Values.persistence.accessMode }}"
diff --git a/kubernetes/common/mariadb-galera/Chart.yaml b/kubernetes/common/mariadb-galera/Chart.yaml
index 552f6cc67d..c5cfdd7e63 100644
--- a/kubernetes/common/mariadb-galera/Chart.yaml
+++ b/kubernetes/common/mariadb-galera/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: Chart for MariaDB Galera cluster
name: mariadb-galera
-version: 13.2.3
+version: 13.2.4
keywords:
- mariadb
- mysql
diff --git a/kubernetes/common/mariadb-galera/values.yaml b/kubernetes/common/mariadb-galera/values.yaml
index 6684d6dcb3..e1d650f881 100644
--- a/kubernetes/common/mariadb-galera/values.yaml
+++ b/kubernetes/common/mariadb-galera/values.yaml
@@ -20,6 +20,7 @@
#################################################################
global:
nodePortPrefix: 302
+ mariadbContainerRegistry: docker-registry3.mariadb.com
persistence:
mountPath: /dockerdata-nfs
backup:
@@ -56,16 +57,16 @@ secrets:
mariadbOperator:
image: mariadb
- appVersion: 11.2.2
+ appVersion: 11.4.4
persistence:
#storageClassName: default
size: 3Gi
galera:
enabled: true
agentImage: mariadb-operator/mariadb-operator
- agentVersion: v0.0.28
+ agentVersion: 0.37.1
initImage: mariadb-operator/mariadb-operator
- initVersion: v0.0.28
+ initVersion: 0.37.1
## String to partially override common.names.fullname template (will maintain the release name)
##
diff --git a/kubernetes/common/mariadb-init/Chart.yaml b/kubernetes/common/mariadb-init/Chart.yaml
index d1844916e0..5c29010fc3 100644
--- a/kubernetes/common/mariadb-init/Chart.yaml
+++ b/kubernetes/common/mariadb-init/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: Chart for MariaDB Galera init job
name: mariadb-init
-version: 13.0.2
+version: 13.0.5
dependencies:
- name: common
diff --git a/kubernetes/common/mariadb-init/templates/configmap.yaml b/kubernetes/common/mariadb-init/templates/configmap.yaml
index 6df329e8a5..5d33ae74c6 100644
--- a/kubernetes/common/mariadb-init/templates/configmap.yaml
+++ b/kubernetes/common/mariadb-init/templates/configmap.yaml
@@ -18,11 +18,7 @@ kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
data:
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
---
@@ -32,11 +28,7 @@ kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}-dbscript
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
data:
db_cmd.sh: |
{{ tpl .Values.dbScript . | indent 4 }}
diff --git a/kubernetes/common/mariadb-init/templates/job.yaml b/kubernetes/common/mariadb-init/templates/job.yaml
index d620bd2edc..bde0c77663 100644
--- a/kubernetes/common/mariadb-init/templates/job.yaml
+++ b/kubernetes/common/mariadb-init/templates/job.yaml
@@ -20,11 +20,10 @@ kind: Job
metadata:
name: {{ include "common.fullname" . }}-config-job
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
@@ -35,9 +34,7 @@ spec:
# Istio CNI plugin, see:
# (https://istio.io/latest/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers)
traffic.sidecar.istio.io/excludeOutboundPorts: "443"
- labels:
- app: {{ include "common.name" . }}
- release: {{ include "common.release" . }}
+ labels: {{- include "common.labels" . | nindent 8 }}
name: {{ include "common.name" . }}
spec:
{{ include "common.podSecurityContext" . | indent 6 | trim }}
diff --git a/kubernetes/common/mariadb-init/tests/job_test.yaml b/kubernetes/common/mariadb-init/tests/job_test.yaml
index 33cd1c2dc3..1f148ce142 100644
--- a/kubernetes/common/mariadb-init/tests/job_test.yaml
+++ b/kubernetes/common/mariadb-init/tests/job_test.yaml
@@ -36,7 +36,7 @@ tests:
content: mariadb-galera
- equal:
path: spec.template.spec.initContainers[0].image
- value: nexus3.onap.org:10001/onap/oom/readiness:6.0.3
+ value: nexus3.onap.org:10001/onap/oom/readiness:6.1.1
- equal:
path: spec.template.spec.initContainers[0].imagePullPolicy
value: IfNotPresent
diff --git a/kubernetes/common/mariadb-init/values.yaml b/kubernetes/common/mariadb-init/values.yaml
index 591477c5cf..f698321f67 100644
--- a/kubernetes/common/mariadb-init/values.yaml
+++ b/kubernetes/common/mariadb-init/values.yaml
@@ -106,6 +106,21 @@ config:
# externalSecret: some-secret-name
config_map: default
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
+
securityContext:
user_id: 100
group_id: 65533
diff --git a/kubernetes/common/mongodb-init/Chart.yaml b/kubernetes/common/mongodb-init/Chart.yaml
index 0cdeecf84b..7fe47ca331 100644
--- a/kubernetes/common/mongodb-init/Chart.yaml
+++ b/kubernetes/common/mongodb-init/Chart.yaml
@@ -15,7 +15,7 @@
apiVersion: v2
description: Chart for MongoDB init job
name: mongodb-init
-version: 13.0.2
+version: 13.0.5
dependencies:
- name: common
diff --git a/kubernetes/common/mongodb-init/templates/configmap.yaml b/kubernetes/common/mongodb-init/templates/configmap.yaml
index bde790f205..5ae1ab4c6f 100644
--- a/kubernetes/common/mongodb-init/templates/configmap.yaml
+++ b/kubernetes/common/mongodb-init/templates/configmap.yaml
@@ -20,10 +20,6 @@ kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
data:
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/common/mongodb-init/templates/job.yaml b/kubernetes/common/mongodb-init/templates/job.yaml
index 5e232e26d3..2721d1ff45 100644
--- a/kubernetes/common/mongodb-init/templates/job.yaml
+++ b/kubernetes/common/mongodb-init/templates/job.yaml
@@ -19,18 +19,15 @@ kind: Job
metadata:
name: {{ include "common.fullname" . }}-config-job
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
metadata:
- labels:
- app: {{ include "common.name" . }}
- release: {{ include "common.release" . }}
+ labels: {{- include "common.labels" . | nindent 8 }}
name: {{ include "common.name" . }}
spec:
{{ include "common.podSecurityContext" . | indent 6 | trim }}
@@ -125,5 +122,4 @@ spec:
medium: Memory
sizeLimit: 64Mi
restartPolicy: Never
- imagePullSecrets:
- - name: "{{ include "common.namespace" . }}-docker-registry-key"
+ {{- include "common.imagePullSecrets" . | nindent 6 }}
diff --git a/kubernetes/common/mongodb-init/templates/secrets.yaml b/kubernetes/common/mongodb-init/templates/secrets.yaml
index 577d9d581e..783147b0ba 100644
--- a/kubernetes/common/mongodb-init/templates/secrets.yaml
+++ b/kubernetes/common/mongodb-init/templates/secrets.yaml
@@ -1,5 +1,6 @@
{{/*
# ## Copyright © 2024 Deutsche Telekom
+# #
# # Licensed under the Apache License, Version 2.0 (the "License");
# # you may not use this file except in compliance with the License.
# # You may obtain a copy of the License at
diff --git a/kubernetes/common/mongodb-init/values.yaml b/kubernetes/common/mongodb-init/values.yaml
index 478fab5cdd..1ab74c635c 100644
--- a/kubernetes/common/mongodb-init/values.yaml
+++ b/kubernetes/common/mongodb-init/values.yaml
@@ -22,6 +22,9 @@ global:
container:
name: mongodb
+ imagePullSecrets:
+ - '{{ include "common.namespace" . }}-docker-registry-key'
+
#################################################################
# Secrets metaconfig
#################################################################
@@ -106,3 +109,18 @@ readinessCheck:
wait_for_job_container:
containers:
- '{{ include "common.name" . }}-setup-db'
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/common/nginx/.helmignore b/kubernetes/common/nginx/.helmignore
new file mode 100644
index 0000000000..207983f368
--- /dev/null
+++ b/kubernetes/common/nginx/.helmignore
@@ -0,0 +1,25 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+# img folder
+img/
+# Changelog
+CHANGELOG.md
diff --git a/kubernetes/common/nginx/Chart.yaml b/kubernetes/common/nginx/Chart.yaml
new file mode 100644
index 0000000000..1a352c76ca
--- /dev/null
+++ b/kubernetes/common/nginx/Chart.yaml
@@ -0,0 +1,37 @@
+annotations:
+ category: Infrastructure
+ images: |
+ - name: git
+ image: docker.io/bitnami/git:2.48.0-debian-12-r0
+ - name: nginx
+ image: docker.io/bitnami/nginx:1.27.3-debian-12-r5
+ - name: nginx-exporter
+ image: docker.io/bitnami/nginx-exporter:1.4.1-debian-12-r0
+ licenses: Apache-2.0
+apiVersion: v2
+appVersion: 1.27.3
+dependencies:
+- name: common
+ repository: 'file://./common'
+ #repository: oci://registry-1.docker.io/bitnamicharts
+ tags:
+ - bitnami-common
+ version: 2.x.x
+description: NGINX Open Source is a web server that can be also used as a reverse
+ proxy, load balancer, and HTTP cache. Recommended for high-demanding sites due to
+ its ability to provide faster content.
+home: https://bitnami.com
+icon: https://bitnami.com/assets/stacks/nginx/img/nginx-stack-220x234.png
+keywords:
+- nginx
+- http
+- web
+- www
+- reverse proxy
+maintainers:
+- name: Broadcom, Inc. All Rights Reserved.
+ url: https://github.com/bitnami/charts
+name: nginx
+sources:
+- https://github.com/bitnami/charts/tree/main/bitnami/nginx
+version: 18.3.5
diff --git a/kubernetes/common/nginx/README.md b/kubernetes/common/nginx/README.md
new file mode 100644
index 0000000000..0043b875be
--- /dev/null
+++ b/kubernetes/common/nginx/README.md
@@ -0,0 +1,557 @@
+<!--- app-name: NGINX Open Source -->
+
+# Bitnami package for NGINX Open Source
+
+NGINX Open Source is a web server that can be also used as a reverse proxy, load balancer, and HTTP cache. Recommended for high-demanding sites due to its ability to provide faster content.
+
+[Overview of NGINX Open Source](http://nginx.org)
+
+Trademarks: This software listing is packaged by Bitnami. The respective trademarks mentioned in the offering are owned by the respective companies, and use of them does not imply any affiliation or endorsement.
+
+## TL;DR
+
+```console
+helm install my-release oci://registry-1.docker.io/bitnamicharts/nginx
+```
+
+Looking to use NGINX Open Source in production? Try [VMware Tanzu Application Catalog](https://bitnami.com/enterprise), the commercial edition of the Bitnami catalog.
+
+## Introduction
+
+Bitnami charts for Helm are carefully engineered, actively maintained and are the quickest and easiest way to deploy containers on a Kubernetes cluster that are ready to handle production workloads.
+
+This chart bootstraps a [NGINX Open Source](https://github.com/bitnami/containers/tree/main/bitnami/nginx) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
+
+Bitnami charts can be used with [Kubeapps](https://kubeapps.dev/) for deployment and management of Helm Charts in clusters.
+
+## Prerequisites
+
+- Kubernetes 1.23+
+- Helm 3.8.0+
+
+## Installing the Chart
+
+To install the chart with the release name `my-release`:
+
+```console
+helm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/nginx
+```
+
+> Note: You need to substitute the placeholders `REGISTRY_NAME` and `REPOSITORY_NAME` with a reference to your Helm chart registry and repository. For example, in the case of Bitnami, you need to use `REGISTRY_NAME=registry-1.docker.io` and `REPOSITORY_NAME=bitnamicharts`.
+
+These commands deploy NGINX Open Source on the Kubernetes cluster in the default configuration.
+
+> **Tip**: List all releases using `helm list`
+
+## Configuration and installation details
+
+### Resource requests and limits
+
+Bitnami charts allow setting resource requests and limits for all containers inside the chart deployment. These are inside the `resources` value (check parameter table). Setting requests is essential for production workloads and these should be adapted to your specific use case.
+
+To make this process easier, the chart contains the `resourcesPreset` values, which automatically sets the `resources` section according to different presets. Check these presets in [the bitnami/common chart](https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15). However, in production workloads using `resourcesPreset` is discouraged as it may not fully adapt to your specific needs. Find more information on container resource management in the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
+
+### Prometheus metrics
+
+This chart can be integrated with Prometheus by setting `metrics.enabled` to `true`. This will deploy a sidecar container with [nginx-prometheus-exporter](https://github.com/nginxinc/nginx-prometheus-exporter) in all pods and will expose it via the Nginx service. This service will be have the necessary annotations to be automatically scraped by Prometheus.
+
+#### Prometheus requirements
+
+It is necessary to have a working installation of Prometheus or Prometheus Operator for the integration to work. Install the [Bitnami Prometheus helm chart](https://github.com/bitnami/charts/tree/main/bitnami/prometheus) or the [Bitnami Kube Prometheus helm chart](https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus) to easily have a working Prometheus in your cluster.
+
+#### Integration with Prometheus Operator
+
+The chart can deploy `ServiceMonitor` objects for integration with Prometheus Operator installations. To do so, set the value `metrics.serviceMonitor.enabled=true`. Ensure that the Prometheus Operator `CustomResourceDefinitions` are installed in the cluster or it will fail with the following error:
+
+```text
+no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
+```
+
+Install the [Bitnami Kube Prometheus helm chart](https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus) for having the necessary CRDs and the Prometheus Operator.
+
+### Securing traffic using TLS
+
+Nginx can encrypt communications by setting `tls.enabled=true`. The chart allows two configuration options:
+
+- Provide your own secret using the `tls.certificatesSecret` value. Also set the correct name of the certificate files using the `tls.certFilename`, `tls.certKeyFilename` and `tls.certCAFilename` values.
+- Have the chart auto-generate the certificates using `tls.autoGenerated=true`.
+
+### [Rolling VS Immutable tags](https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-understand-rolling-tags-containers-index.html)
+
+It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image.
+
+Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist.
+
+### Use a different NGINX version
+
+To modify the application version used in this chart, specify a different version of the image using the `image.tag` parameter and/or a different repository using the `image.repository` parameter.
+
+### Backup and restore
+
+To back up and restore Helm chart deployments on Kubernetes, you need to back up the persistent volumes from the source deployment and attach them to a new deployment using [Velero](https://velero.io/), a Kubernetes backup/restore tool. Find the instructions for using Velero in [this guide](https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-backup-restore-deployments-velero-index.html).
+
+### Deploying your custom web application
+
+The NGINX chart allows you to deploy a custom web application using one of the following methods:
+
+- Cloning from a git repository: Set `cloneStaticSiteFromGit.enabled` to `true` and set the repository and branch using the `cloneStaticSiteFromGit.repository` and `cloneStaticSiteFromGit.branch` parameters. A sidecar will also pull the latest changes in an interval set by `cloneStaticSitesFromGit.interval`.
+- Providing a ConfigMap: Set the `staticSiteConfigmap` value to mount a ConfigMap in the NGINX html folder.
+- Using an existing PVC: Set the `staticSitePVC` value to mount an PersistentVolumeClaim with the static site content.
+
+You can deploy a example web application using git deploying the chart with the following parameters:
+
+```console
+cloneStaticSiteFromGit.enabled=true
+cloneStaticSiteFromGit.repository=https://github.com/mdn/beginner-html-site-styled.git
+cloneStaticSiteFromGit.branch=master
+```
+
+### Providing a custom server block
+
+This helm chart supports using custom custom server block for NGINX to use.
+
+You can use the `serverBlock` or `streamServerBlock` value to provide a custom server block for NGINX to use. To do this, create a values files with your server block and install the chart using it:
+
+```yaml
+serverBlock: |-
+ server {
+ listen 0.0.0.0:8080;
+ location / {
+ return 200 "hello!";
+ }
+ }
+```
+
+> Warning: The above example is not compatible with enabling Prometheus metrics since it affects the `/status` endpoint.
+
+In addition, you can also set an external ConfigMap with the configuration file. This is done by setting the `existingServerBlockConfigmap` parameter. Note that this will override the previous option.
+
+### Adding extra environment variables
+
+In case you want to add extra environment variables (useful for advanced operations like custom init scripts), you can use the `extraEnvVars` property.
+
+```yaml
+extraEnvVars:
+ - name: LOG_LEVEL
+ value: error
+```
+
+Alternatively, you can use a ConfigMap or a Secret with the environment variables. To do so, use the `extraEnvVarsCM` or the `extraEnvVarsSecret` values.
+
+### Setting Pod's affinity
+
+This chart allows you to set your custom affinity using the `affinity` parameter. Find more information about Pod's affinity in the [kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity).
+
+As an alternative, you can use of the preset configurations for pod affinity, pod anti-affinity, and node affinity available at the [bitnami/common](https://github.com/bitnami/charts/tree/main/bitnami/common#affinity) chart. To do so, set the `podAffinityPreset`, `podAntiAffinityPreset`, or `nodeAffinityPreset` parameters.
+
+### Deploying extra resources
+
+There are cases where you may want to deploy extra objects, such a ConfigMap containing your app's configuration or some extra deployment with a micro service used by your app. For covering this case, the chart allows adding the full specification of other objects using the `extraDeploy` parameter.
+
+### Ingress
+
+This chart provides support for ingress resources. If you have an ingress controller installed on your cluster, such as [nginx-ingress-controller](https://github.com/bitnami/charts/tree/main/bitnami/nginx-ingress-controller) or [contour](https://github.com/bitnami/charts/tree/main/bitnami/contour) you can utilize the ingress controller to serve your application.
+
+To enable ingress integration, please set `ingress.enabled` to `true`.
+
+#### Hosts
+
+Most likely you will only want to have one hostname that maps to this NGINX installation. If that's your case, the property `ingress.hostname` will set it. However, it is possible to have more than one host. To facilitate this, the `ingress.extraHosts` object can be specified as an array. You can also use `ingress.extraTLS` to add the TLS configuration for extra hosts.
+
+For each host indicated at `ingress.extraHosts`, please indicate a `name`, `path`, and any `annotations` that you may want the ingress controller to know about.
+
+For annotations, please see [this document](https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md). Not all annotations are supported by all ingress controllers, but this document does a good job of indicating which annotation is supported by many popular ingress controllers.
+
+## Parameters
+
+### Global parameters
+
+| Name | Description | Value |
+| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
+| `global.imageRegistry` | Global Docker image registry | `""` |
+| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
+| `global.security.allowInsecureImages` | Allows skipping image verification | `false` |
+| `global.compatibility.openshift.adaptSecurityContext` | Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation) | `auto` |
+
+### Common parameters
+
+| Name | Description | Value |
+| ------------------------ | --------------------------------------------------------------------------------------- | --------------- |
+| `nameOverride` | String to partially override nginx.fullname template (will maintain the release name) | `""` |
+| `fullnameOverride` | String to fully override nginx.fullname template | `""` |
+| `namespaceOverride` | String to fully override common.names.namespace | `""` |
+| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `""` |
+| `clusterDomain` | Kubernetes Cluster Domain | `cluster.local` |
+| `extraDeploy` | Extra objects to deploy (value evaluated as a template) | `[]` |
+| `commonLabels` | Add labels to all the deployed resources | `{}` |
+| `commonAnnotations` | Add annotations to all the deployed resources | `{}` |
+| `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 the deployment(s)/statefulset(s) | `["sleep"]` |
+| `diagnosticMode.args` | Args to override all containers in the the deployment(s)/statefulset(s) | `["infinity"]` |
+
+### NGINX parameters
+
+| Name | Description | Value |
+| ------------------------------ | ----------------------------------------------------------------------------------------------------- | ----------------------- |
+| `image.registry` | NGINX image registry | `REGISTRY_NAME` |
+| `image.repository` | NGINX image repository | `REPOSITORY_NAME/nginx` |
+| `image.digest` | NGINX image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` |
+| `image.pullPolicy` | NGINX image pull policy | `IfNotPresent` |
+| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
+| `image.debug` | Set to true if you would like to see extra information on logs | `false` |
+| `automountServiceAccountToken` | Mount Service Account token in pod | `false` |
+| `hostAliases` | Deployment pod host aliases | `[]` |
+| `command` | Override default container command (useful when using custom images) | `[]` |
+| `args` | Override default container args (useful when using custom images) | `[]` |
+| `extraEnvVars` | Extra environment variables to be set on NGINX containers | `[]` |
+| `extraEnvVarsCM` | ConfigMap with extra environment variables | `""` |
+| `extraEnvVarsSecret` | Secret with extra environment variables | `""` |
+
+### NGINX deployment parameters
+
+| Name | Description | Value |
+| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
+| `replicaCount` | Number of NGINX replicas to deploy | `1` |
+| `revisionHistoryLimit` | The number of old history to retain to allow rollback | `10` |
+| `updateStrategy.type` | NGINX deployment strategy type | `RollingUpdate` |
+| `updateStrategy.rollingUpdate` | NGINX deployment rolling update configuration parameters | `{}` |
+| `podLabels` | Additional labels for NGINX pods | `{}` |
+| `podAnnotations` | Annotations for NGINX pods | `{}` |
+| `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 | `{}` |
+| `hostNetwork` | Specify if host network should be enabled for NGINX pod | `false` |
+| `hostIPC` | Specify if host IPC should be enabled for NGINX pod | `false` |
+| `dnsPolicy` | Specifies the DNS policy for the NGINX pod | `""` |
+| `dnsConfig` | Allows users more control on the DNS settings for a Pod. Required if `dnsPolicy` is set to `None` | `{}` |
+| `nodeSelector` | Node labels for pod assignment. Evaluated as a template. | `{}` |
+| `tolerations` | Tolerations for pod assignment. Evaluated as a template. | `[]` |
+| `priorityClassName` | NGINX pods' priorityClassName | `""` |
+| `schedulerName` | Name of the k8s scheduler (other than default) | `""` |
+| `terminationGracePeriodSeconds` | In seconds, time the given to the NGINX pod needs to terminate gracefully | `""` |
+| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
+| `tls.enabled` | Enable TLS transport | `true` |
+| `tls.autoGenerated` | Auto-generate self-signed certificates | `true` |
+| `tls.existingSecret` | Name of a secret containing the certificates | `""` |
+| `tls.certFilename` | Path of the certificate file when mounted as a secret | `tls.crt` |
+| `tls.certKeyFilename` | Path of the certificate key file when mounted as a secret | `tls.key` |
+| `tls.certCAFilename` | Path of the certificate CA file when mounted as a secret | `ca.crt` |
+| `tls.cert` | Content of the certificate to be added to the secret | `""` |
+| `tls.key` | Content of the certificate key to be added to the secret | `""` |
+| `tls.ca` | Content of the certificate CA to be added to the secret | `""` |
+| `podSecurityContext.enabled` | Enabled NGINX pods' Security Context | `true` |
+| `podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
+| `podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
+| `podSecurityContext.fsGroup` | Set NGINX pod's Security Context fsGroup | `1001` |
+| `podSecurityContext.sysctls` | sysctl settings of the NGINX pods | `[]` |
+| `containerSecurityContext.enabled` | Enabled containers' Security Context | `true` |
+| `containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
+| `containerSecurityContext.runAsUser` | Set containers' Security Context runAsUser | `1001` |
+| `containerSecurityContext.runAsGroup` | Set containers' Security Context runAsGroup | `1001` |
+| `containerSecurityContext.runAsNonRoot` | Set container's Security Context runAsNonRoot | `true` |
+| `containerSecurityContext.privileged` | Set container's Security Context privileged | `false` |
+| `containerSecurityContext.readOnlyRootFilesystem` | Set container's Security Context readOnlyRootFilesystem | `true` |
+| `containerSecurityContext.allowPrivilegeEscalation` | Set container's Security Context allowPrivilegeEscalation | `false` |
+| `containerSecurityContext.capabilities.drop` | List of capabilities to be dropped | `["ALL"]` |
+| `containerSecurityContext.seccompProfile.type` | Set container's Security Context seccomp profile | `RuntimeDefault` |
+| `containerPorts.http` | Sets http port inside NGINX container | `8080` |
+| `containerPorts.https` | Sets https port inside NGINX container | `8443` |
+| `extraContainerPorts` | Array of additional container ports for the Nginx container | `[]` |
+| `resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `nano` |
+| `resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
+| `lifecycleHooks` | Optional lifecycleHooks for the NGINX container | `{}` |
+| `startupProbe.enabled` | Enable startupProbe | `false` |
+| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` |
+| `startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
+| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `5` |
+| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `6` |
+| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
+| `livenessProbe.enabled` | Enable livenessProbe | `true` |
+| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `30` |
+| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
+| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
+| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` |
+| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
+| `readinessProbe.enabled` | Enable readinessProbe | `true` |
+| `readinessProbe.path` | Request path for livenessProbe | `/` |
+| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
+| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` |
+| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `3` |
+| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
+| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
+| `customStartupProbe` | Custom liveness probe for the Web component | `{}` |
+| `customLivenessProbe` | Override default liveness probe | `{}` |
+| `customReadinessProbe` | Override default readiness probe | `{}` |
+| `autoscaling.enabled` | Enable autoscaling for NGINX deployment | `false` |
+| `autoscaling.minReplicas` | Minimum number of replicas to scale back | `""` |
+| `autoscaling.maxReplicas` | Maximum number of replicas to scale out | `""` |
+| `autoscaling.targetCPU` | Target CPU utilization percentage | `""` |
+| `autoscaling.targetMemory` | Target Memory utilization percentage | `""` |
+| `extraVolumes` | Array to add extra volumes | `[]` |
+| `extraVolumeMounts` | Array to add extra mount | `[]` |
+| `serviceAccount.create` | Enable creation of ServiceAccount for nginx pod | `true` |
+| `serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
+| `serviceAccount.annotations` | Annotations for service account. Evaluated as a template. | `{}` |
+| `serviceAccount.automountServiceAccountToken` | Auto-mount the service account token in the pod | `false` |
+| `sidecars` | Sidecar parameters | `[]` |
+| `sidecarSingleProcessNamespace` | Enable sharing the process namespace with sidecars | `false` |
+| `initContainers` | Extra init containers | `[]` |
+| `pdb.create` | Created a PodDisruptionBudget | `true` |
+| `pdb.minAvailable` | Min number of pods that must still be available after the eviction. | `""` |
+| `pdb.maxUnavailable` | Max number of pods that can be unavailable after the eviction. | `""` |
+
+### Custom NGINX application parameters
+
+| Name | Description | Value |
+| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
+| `cloneStaticSiteFromGit.enabled` | Get the server static content from a Git repository | `false` |
+| `cloneStaticSiteFromGit.image.registry` | Git image registry | `REGISTRY_NAME` |
+| `cloneStaticSiteFromGit.image.repository` | Git image repository | `REPOSITORY_NAME/git` |
+| `cloneStaticSiteFromGit.image.digest` | Git image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` |
+| `cloneStaticSiteFromGit.image.pullPolicy` | Git image pull policy | `IfNotPresent` |
+| `cloneStaticSiteFromGit.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
+| `cloneStaticSiteFromGit.repository` | Git Repository to clone static content from | `""` |
+| `cloneStaticSiteFromGit.branch` | Git branch to checkout | `""` |
+| `cloneStaticSiteFromGit.interval` | Interval for sidecar container pull from the Git repository | `60` |
+| `cloneStaticSiteFromGit.gitClone.command` | Override default container command for git-clone-repository | `[]` |
+| `cloneStaticSiteFromGit.gitClone.args` | Override default container args for git-clone-repository | `[]` |
+| `cloneStaticSiteFromGit.gitSync.command` | Override default container command for git-repo-syncer | `[]` |
+| `cloneStaticSiteFromGit.gitSync.args` | Override default container args for git-repo-syncer | `[]` |
+| `cloneStaticSiteFromGit.gitSync.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if cloneStaticSiteFromGit.gitSync.resources is set (cloneStaticSiteFromGit.gitSync.resources is recommended for production). | `nano` |
+| `cloneStaticSiteFromGit.gitSync.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
+| `cloneStaticSiteFromGit.extraEnvVars` | Additional environment variables to set for the in the containers that clone static site from git | `[]` |
+| `cloneStaticSiteFromGit.extraEnvVarsSecret` | Secret with extra environment variables | `""` |
+| `cloneStaticSiteFromGit.extraVolumeMounts` | Add extra volume mounts for the Git containers | `[]` |
+| `serverBlock` | Custom server block to be added to NGINX configuration | `""` |
+| `streamServerBlock` | Custom stream server block to be added to NGINX configuration | `""` |
+| `existingServerBlockConfigmap` | ConfigMap with custom server block to be added to NGINX configuration | `""` |
+| `existingStreamServerBlockConfigmap` | ConfigMap with custom stream server block to be added to NGINX configuration | `""` |
+| `staticSiteConfigmap` | Name of existing ConfigMap with the server static site content | `""` |
+| `staticSitePVC` | Name of existing PVC with the server static site content | `""` |
+
+### Traffic Exposure parameters
+
+| Name | Description | Value |
+| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
+| `service.type` | Service type | `ClusterIP` |
+| `service.ports.http` | Service HTTP port | `80` |
+| `service.ports.https` | Service HTTPS port | `443` |
+| `service.nodePorts` | Specify the nodePort(s) value(s) for the LoadBalancer and NodePort service types. | `{}` |
+| `service.targetPort` | Target port reference value for the Loadbalancer service types can be specified explicitly. | `{}` |
+| `service.clusterIP` | NGINX service Cluster IP | `""` |
+| `service.loadBalancerIP` | LoadBalancer service IP address | `""` |
+| `service.loadBalancerSourceRanges` | NGINX service Load Balancer sources | `[]` |
+| `service.loadBalancerClass` | service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific) | `""` |
+| `service.extraPorts` | Extra ports to expose (normally used with the `sidecar` value) | `[]` |
+| `service.sessionAffinity` | Session Affinity for Kubernetes service, can be "None" or "ClientIP" | `None` |
+| `service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` |
+| `service.annotations` | Service annotations | `{}` |
+| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` |
+| `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `true` |
+| `networkPolicy.allowExternal` | Don't require server label for connections | `true` |
+| `networkPolicy.allowExternalEgress` | Allow the pod to access any range of port and all destinations. | `true` |
+| `networkPolicy.extraIngress` | Add extra ingress rules to the NetworkPolicy | `[]` |
+| `networkPolicy.extraEgress` | Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true) | `[]` |
+| `networkPolicy.ingressNSMatchLabels` | Labels to match to allow traffic from other namespaces | `{}` |
+| `networkPolicy.ingressNSPodMatchLabels` | Pod labels to match to allow traffic from other namespaces | `{}` |
+| `ingress.enabled` | Set to true to enable ingress record generation | `false` |
+| `ingress.selfSigned` | Create a TLS secret for this ingress record using self-signed certificates generated by Helm | `false` |
+| `ingress.pathType` | Ingress path type | `ImplementationSpecific` |
+| `ingress.apiVersion` | Force Ingress API version (automatically detected if not set) | `""` |
+| `ingress.hostname` | Default host for the ingress resource | `nginx.local` |
+| `ingress.path` | The Path to Nginx. You may need to set this to '/*' in order to use this with ALB ingress controllers. | `/` |
+| `ingress.annotations` | Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations. | `{}` |
+| `ingress.ingressClassName` | Set the ingerssClassName on the ingress record for k8s 1.18+ | `""` |
+| `ingress.tls` | Create TLS Secret | `false` |
+| `ingress.tlsWwwPrefix` | Adds www subdomain to default cert | `false` |
+| `ingress.extraHosts` | The list of additional hostnames to be covered with this ingress record. | `[]` |
+| `ingress.extraPaths` | Any additional arbitrary paths that may need to be added to the ingress under the main host. | `[]` |
+| `ingress.extraTls` | The tls configuration for additional hostnames to be covered with this ingress record. | `[]` |
+| `ingress.secrets` | If you're providing your own certificates, please use this to add the certificates as secrets | `[]` |
+| `ingress.extraRules` | The list of additional rules to be added to this ingress record. Evaluated as a template | `[]` |
+| `healthIngress.enabled` | Set to true to enable health ingress record generation | `false` |
+| `healthIngress.selfSigned` | Create a TLS secret for this ingress record using self-signed certificates generated by Helm | `false` |
+| `healthIngress.pathType` | Ingress path type | `ImplementationSpecific` |
+| `healthIngress.hostname` | When the health ingress is enabled, a host pointing to this will be created | `example.local` |
+| `healthIngress.path` | Default path for the ingress record | `/` |
+| `healthIngress.annotations` | Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations. | `{}` |
+| `healthIngress.tls` | Enable TLS configuration for the hostname defined at `healthIngress.hostname` parameter | `false` |
+| `healthIngress.extraHosts` | An array with additional hostname(s) to be covered with the ingress record | `[]` |
+| `healthIngress.extraPaths` | An array with additional arbitrary paths that may need to be added to the ingress under the main host | `[]` |
+| `healthIngress.extraTls` | TLS configuration for additional hostnames to be covered | `[]` |
+| `healthIngress.secrets` | TLS Secret configuration | `[]` |
+| `healthIngress.ingressClassName` | IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+) | `""` |
+| `healthIngress.extraRules` | The list of additional rules to be added to this ingress record. Evaluated as a template | `[]` |
+
+### Metrics parameters
+
+| Name | Description | Value |
+| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
+| `metrics.enabled` | Start a Prometheus exporter sidecar container | `false` |
+| `metrics.image.registry` | NGINX Prometheus exporter image registry | `REGISTRY_NAME` |
+| `metrics.image.repository` | NGINX Prometheus exporter image repository | `REPOSITORY_NAME/nginx-exporter` |
+| `metrics.image.digest` | NGINX Prometheus exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` |
+| `metrics.image.pullPolicy` | NGINX Prometheus exporter image pull policy | `IfNotPresent` |
+| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
+| `metrics.port` | NGINX Container Status Port scraped by Prometheus Exporter | `""` |
+| `metrics.extraArgs` | Extra arguments for Prometheus exporter | `[]` |
+| `metrics.containerPorts.metrics` | Prometheus exporter container port | `9113` |
+| `metrics.podAnnotations` | Additional annotations for NGINX Prometheus exporter pod(s) | `{}` |
+| `metrics.securityContext.enabled` | Enabled NGINX Exporter containers' Security Context | `false` |
+| `metrics.securityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
+| `metrics.securityContext.runAsUser` | Set NGINX Exporter container's Security Context runAsUser | `1001` |
+| `metrics.service.port` | NGINX Prometheus exporter service port | `9113` |
+| `metrics.service.annotations` | Annotations for the Prometheus exporter service | `{}` |
+| `metrics.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production). | `nano` |
+| `metrics.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
+| `metrics.serviceMonitor.enabled` | Creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) | `false` |
+| `metrics.serviceMonitor.namespace` | Namespace in which Prometheus is running | `""` |
+| `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
+| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. | `""` |
+| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
+| `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
+| `metrics.serviceMonitor.labels` | Additional labels that can be used so PodMonitor will be discovered by Prometheus | `{}` |
+| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
+| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
+| `metrics.serviceMonitor.honorLabels` | honorLabels chooses the metric's labels on collisions with target labels | `false` |
+| `metrics.prometheusRule.enabled` | if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`) | `false` |
+| `metrics.prometheusRule.namespace` | Namespace for the PrometheusRule Resource (defaults to the Release Namespace) | `""` |
+| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so PrometheusRule will be discovered by Prometheus | `{}` |
+| `metrics.prometheusRule.rules` | Prometheus Rule definitions | `[]` |
+
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+
+```console
+helm install my-release \
+ --set imagePullPolicy=Always \
+ oci://REGISTRY_NAME/REPOSITORY_NAME/nginx
+```
+
+> Note: You need to substitute the placeholders `REGISTRY_NAME` and `REPOSITORY_NAME` with a reference to your Helm chart registry and repository. For example, in the case of Bitnami, you need to use `REGISTRY_NAME=registry-1.docker.io` and `REPOSITORY_NAME=bitnamicharts`.
+
+The above command sets the `imagePullPolicy` to `Always`.
+
+Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
+
+```console
+helm install my-release -f values.yaml oci://REGISTRY_NAME/REPOSITORY_NAME/nginx
+```
+
+> Note: You need to substitute the placeholders `REGISTRY_NAME` and `REPOSITORY_NAME` with a reference to your Helm chart registry and repository. For example, in the case of Bitnami, you need to use `REGISTRY_NAME=registry-1.docker.io` and `REPOSITORY_NAME=bitnamicharts`.
+> **Tip**: You can use the default [values.yaml](https://github.com/bitnami/charts/tree/main/bitnami/nginx/values.yaml)
+
+## Troubleshooting
+
+Find more information about how to deal with common errors related to Bitnami's Helm charts in [this troubleshooting guide](https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues).
+
+## Upgrading
+
+### To 18.3.0
+
+This version introduces image verification for security purposes. To disable it, set `global.security.allowInsecureImages` to `true`. More details at [GitHub issue](https://github.com/bitnami/charts/issues/30850).
+
+### To 16.0.0
+
+This major bump changes the following security defaults:
+
+- `runAsGroup` is changed from `0` to `1001`
+- `readOnlyRootFilesystem` is set to `true`
+- `resourcesPreset` is changed from `none` to the minimum size working in our test suites (NOTE: `resourcesPreset` is not meant for production usage, but `resources` adapted to your use case).
+- `global.compatibility.openshift.adaptSecurityContext` is changed from `disabled` to `auto`.
+
+This could potentially break any customization or init scripts used in your deployment. If this is the case, change the default values to the previous ones.
+
+### To 11.0.0
+
+This major release renames several values in this chart and adds missing features, in order to be aligned with the rest of the assets in the Bitnami charts repository.
+
+Affected values:
+
+- `service.port` was renamed as `service.ports.http`.
+- `service.httpsPort` was deprecated. We recommend using `service.ports.https`.
+- `serviceAccount.autoMount` was renamed as `serviceAccount.automountServiceAccountToken`
+- `metrics.serviceMonitor.additionalLabels` was renamed as `metrics.serviceMonitor.labels`
+
+### To 10.0.0
+
+This major release no longer uses the bitnami/nginx-ldap-auth-daemon container as a dependency since its upstream project is not actively maintained.
+
+*2022-04-12 edit*:
+
+[Bitnami's reference implementation](https://www.nginx.com/blog/nginx-plus-authenticate-users/).
+
+On 9 April 2022, security vulnerabilities in the [NGINX LDAP reference implementation](https://github.com/nginxinc/nginx-ldap-auth) were publicly shared. **Although the deprecation of this container from the Bitnami catalog was not related to this security issue, [here](https://docs.bitnami.com/general/security/) you can find more information from the Bitnami security team.**
+
+### To 8.0.0
+
+[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL.
+
+#### What changes were introduced in this major version?
+
+- Previous versions of this Helm Chart use `apiVersion: v1` (installable by both Helm 2 and 3), this Helm Chart was updated to `apiVersion: v2` (installable by Helm 3 only). [Here](https://helm.sh/docs/topics/charts/#the-apiversion-field) you can find more information about the `apiVersion` field.
+- Move dependency information from the *requirements.yaml* to the *Chart.yaml*
+- After running `helm dependency update`, a *Chart.lock* file is generated containing the same structure used in the previous *requirements.lock*
+- The different fields present in the *Chart.yaml* file has been ordered alphabetically in a homogeneous way for all the Bitnami Helm Charts
+
+#### Considerations when upgrading to this version
+
+- If you want to upgrade to this version from a previous one installed with Helm v3, you shouldn't face any issues
+- If you want to upgrade to this version using Helm v2, this scenario is not supported as this version doesn't support Helm v2 anymore
+- If you installed the previous version with Helm v2 and wants to upgrade to this version with Helm v3, please refer to the [official Helm documentation](https://helm.sh/docs/topics/v2_v3_migration/#migration-use-cases) about migrating from Helm v2 to v3
+
+#### Useful links
+
+- <https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-resolve-helm2-helm3-post-migration-issues-index.html>
+- <https://helm.sh/docs/topics/v2_v3_migration/>
+- <https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/>
+
+### To 7.0.0
+
+- This version also introduces `bitnami/common`, a [library chart](https://helm.sh/docs/topics/library_charts/#helm) as a dependency. More documentation about this new utility could be found [here](https://github.com/bitnami/charts/tree/main/bitnami/common#bitnami-common-library-chart). Please, make sure that you have updated the chart dependencies before executing any upgrade.
+- Ingress configuration was also adapted to follow the Helm charts best practices.
+
+> Note: There is no backwards compatibility due to the above mentioned changes. It's necessary to install a new release of the chart, and migrate your existing application to the new NGINX instances.
+
+### To 5.6.0
+
+Added support for the use of LDAP.
+
+### To 5.0.0
+
+Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments.
+Use the workaround below to upgrade from versions previous to 5.0.0. The following example assumes that the release name is nginx:
+
+```console
+kubectl delete deployment nginx --cascade=false
+helm upgrade nginx oci://REGISTRY_NAME/REPOSITORY_NAME/nginx
+```
+
+> Note: You need to substitute the placeholders `REGISTRY_NAME` and `REPOSITORY_NAME` with a reference to your Helm chart registry and repository. For example, in the case of Bitnami, you need to use `REGISTRY_NAME=registry-1.docker.io` and `REPOSITORY_NAME=bitnamicharts`.
+
+### To 1.0.0
+
+Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments.
+Use the workaround below to upgrade from versions previous to 1.0.0. The following example assumes that the release name is nginx:
+
+```console
+kubectl patch deployment nginx --type=json -p='[{"op": "remove", "path": "/spec/selector/matchLabels/chart"}]'
+```
+
+## License
+
+Copyright &copy; 2024 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+<http://www.apache.org/licenses/LICENSE-2.0>
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/kubernetes/common/nginx/common/.helmignore b/kubernetes/common/nginx/common/.helmignore
new file mode 100644
index 0000000000..d0e10845d2
--- /dev/null
+++ b/kubernetes/common/nginx/common/.helmignore
@@ -0,0 +1,26 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
+# img folder
+img/
+# Changelog
+CHANGELOG.md
diff --git a/kubernetes/common/nginx/common/CHANGELOG.md b/kubernetes/common/nginx/common/CHANGELOG.md
new file mode 100644
index 0000000000..b48a8dbacd
--- /dev/null
+++ b/kubernetes/common/nginx/common/CHANGELOG.md
@@ -0,0 +1,635 @@
+# Changelog
+
+## 2.29.1 (2025-01-10)
+
+* [bitnami/common] Removing seLinuxOptions from omission ([#31279](https://github.com/bitnami/charts/pull/31279))
+
+## 2.29.0 (2025-01-03)
+
+* [bitnami/common] Add "common.capabilities.job.apiVersion" template (#31164) ([2ca979a](https://github.com/bitnami/charts/commit/2ca979a6add279384d60e6b35199eaf13553cefa)), closes [#31164](https://github.com/bitnami/charts/issues/31164)
+
+## 2.28.0 (2024-12-10)
+
+* [bitnami/common] New helper to detect non-standard images (#30851) ([ae33d01](https://github.com/bitnami/charts/commit/ae33d01968e8a353a569785f9867827153c797dc)), closes [#30851](https://github.com/bitnami/charts/issues/30851)
+
+## <small>2.27.2 (2024-11-27)</small>
+
+* [bitnami/common] Fix appVersion (#30628) ([b87d39e](https://github.com/bitnami/charts/commit/b87d39e27a0889c74b20c3d2fe5ae0c4a2417bfd)), closes [#30628](https://github.com/bitnami/charts/issues/30628)
+* [bitnami/common]: bump patch version (#30639) ([623e584](https://github.com/bitnami/charts/commit/623e5846ff827b7ecbcffa2dc51e2e94b14ef8fd)), closes [#30639](https://github.com/bitnami/charts/issues/30639)
+
+## <small>2.27.1 (2024-11-26)</small>
+
+* [bitnami/common] Fix VPA apiVersion (#30625) ([8c24438](https://github.com/bitnami/charts/commit/8c24438a2f6e8ec646cad9901ed82d71d4196e3e)), closes [#30625](https://github.com/bitnami/charts/issues/30625)
+
+## 2.27.0 (2024-11-07)
+
+* [bitnami/*] Remove wrong comment about imagePullPolicy (#30107) ([a51f9e4](https://github.com/bitnami/charts/commit/a51f9e4bb0fbf77199512d35de7ac8abe055d026)), closes [#30107](https://github.com/bitnami/charts/issues/30107)
+* [bitnami/common] feat: :sparkles: Add honorProvidedValues in common.secrets.manage (#30243) ([3d76a49](https://github.com/bitnami/charts/commit/3d76a4955c11fa4d2464da2c4d2096e1e3c6fa37)), closes [#30243](https://github.com/bitnami/charts/issues/30243)
+* Update documentation links to techdocs.broadcom.com (#29931) ([f0d9ad7](https://github.com/bitnami/charts/commit/f0d9ad78f39f633d275fc576d32eae78ded4d0b8)), closes [#29931](https://github.com/bitnami/charts/issues/29931)
+
+## 2.26.0 (2024-10-14)
+
+* [bitnami/common] Drop unused custom empty password validators (#29432) ([5fb0e97](https://github.com/bitnami/charts/commit/5fb0e97d9336d40d86c3295637d4233218b8afea)), closes [#29432](https://github.com/bitnami/charts/issues/29432)
+
+## 2.25.0 (2024-10-11)
+
+* [bitnami/common] Add the ability to specify namespaces for affinity (#29479) ([005e0d6](https://github.com/bitnami/charts/commit/005e0d696004dd972915f290b7caffb2bc332400)), closes [#29479](https://github.com/bitnami/charts/issues/29479)
+
+## 2.24.0 (2024-10-03)
+
+* [bitnami/common] Add common.tplvalues.merge-overwrite helper (#29668) ([611b2a5](https://github.com/bitnami/charts/commit/611b2a59e06feaac878b3b218fd848a687216158)), closes [#29668](https://github.com/bitnami/charts/issues/29668)
+
+## 2.23.0 (2024-09-13)
+
+* [bitnami/common] Add option to remove empty seLinuxOptions from securityContext in non OpenShift env ([7e44e64](https://github.com/bitnami/charts/commit/7e44e64626f5b1fc6d56889cdfdeadc1f62c7cf1)), closes [#28945](https://github.com/bitnami/charts/issues/28945)
+
+## 2.22.0 (2024-08-08)
+
+* [bitnami/common] Fallback to chart appVersion in common.images.image (#28764) ([b4aa0a6](https://github.com/bitnami/charts/commit/b4aa0a685a21c50ca10e41e3eb2023bbd4282cf7)), closes [#28764](https://github.com/bitnami/charts/issues/28764)
+
+## 2.21.0 (2024-08-05)
+
+* [bitnami/common] Allow handling of new secrets after initial installation (#28581) ([07062ee](https://github.com/bitnami/charts/commit/07062ee01382e24b8204b27083ff3e8102110c2f)), closes [#28581](https://github.com/bitnami/charts/issues/28581)
+
+## <small>2.20.5 (2024-07-16)</small>
+
+* [bitnami/common] [bitnami/wordpress] Use global.storageClass for fallback, not override (#24863) ([2b78e13](https://github.com/bitnami/charts/commit/2b78e137ac278cdf9d54523e8d37833a4ff0cd5b)), closes [#24863](https://github.com/bitnami/charts/issues/24863)
+
+## <small>2.20.4 (2024-07-11)</small>
+
+* [bitnami/*] Update README changing TAC wording (#27530) ([52dfed6](https://github.com/bitnami/charts/commit/52dfed6bac44d791efabfaf06f15daddc4fefb0c)), closes [#27530](https://github.com/bitnami/charts/issues/27530)
+* [bitnami/common] Increase ephemeral-storage default limits (#27902) ([dc0000d](https://github.com/bitnami/charts/commit/dc0000d7b56f68991bb8d8fff473103ed9026f5f)), closes [#27902](https://github.com/bitnami/charts/issues/27902)
+
+## <small>2.20.3 (2024-06-17)</small>
+
+* [bitnami/common] chore: :wrench: Relax large and xlarge presets resource requests (#27312) ([6ca69f6](https://github.com/bitnami/charts/commit/6ca69f6769d0f65acc850fa0bcc08506de50cc41)), closes [#27312](https://github.com/bitnami/charts/issues/27312)
+
+## <small>2.20.2 (2024-06-10)</small>
+
+* [bitnami/common] remove trailing spaces from imagePullSecrets rendering (#26882) ([362d4ac](https://github.com/bitnami/charts/commit/362d4ac94dd69be1b607fc531ceac4d67d8d57ef)), closes [#26882](https://github.com/bitnami/charts/issues/26882)
+
+## <small>2.20.1 (2024-06-10)</small>
+
+* [bitnami/common] improve renderSecurityContext (#27053) ([5f0bdde](https://github.com/bitnami/charts/commit/5f0bdde77cf05afa20cb4a800090748a8d102d02)), closes [#27053](https://github.com/bitnami/charts/issues/27053)
+
+## 2.20.0 (2024-06-05)
+
+* [bitnami/*] ci: :construction_worker: Add tag and changelog support (#25359) ([91c707c](https://github.com/bitnami/charts/commit/91c707c9e4e574725a09505d2d313fb93f1b4c0a)), closes [#25359](https://github.com/bitnami/charts/issues/25359)
+* [bitnami/common] Capabilities to return latest apiVersion if kubeVersion is undefined (#26758) ([6582c32](https://github.com/bitnami/charts/commit/6582c3237b772af9cb379f7eaceddb2d64b507f0)), closes [#26758](https://github.com/bitnami/charts/issues/26758)
+* [bitnami/common] docs: :memo: Add changelog ([23349c9](https://github.com/bitnami/charts/commit/23349c99b70313f3e19ebcf9d3e0c154836b2cc0))
+
+## <small>2.19.3 (2024-05-20)</small>
+
+* [bitnami/*] Change non-root and rolling-tags doc URLs (#25628) ([b067c94](https://github.com/bitnami/charts/commit/b067c94f6bcde427863c197fd355f0b5ba12ff5b)), closes [#25628](https://github.com/bitnami/charts/issues/25628)
+* [bitnami/*] Set new header/owner (#25558) ([8d1dc11](https://github.com/bitnami/charts/commit/8d1dc11f5fb30db6fba50c43d7af59d2f79deed3)), closes [#25558](https://github.com/bitnami/charts/issues/25558)
+* [bitnami/common] feat: :sparkles: Show warning when original images are replaced (#25952) ([855045a](https://github.com/bitnami/charts/commit/855045a1a62618154c1216e8da31a4d2c14c7586)), closes [#25952](https://github.com/bitnami/charts/issues/25952)
+
+## <small>2.19.2 (2024-04-29)</small>
+
+* [bitnami/common] Simplify syntax to deal with nullable objects (#25446) ([7dcea6a](https://github.com/bitnami/charts/commit/7dcea6aeb7c45d56bd6175b457bb8a2cddf8defc)), closes [#25446](https://github.com/bitnami/charts/issues/25446)
+* Replace VMware by Broadcom copyright text (#25306) ([a5e4bd0](https://github.com/bitnami/charts/commit/a5e4bd0e35e419203793976a78d9d0a13de92c76)), closes [#25306](https://github.com/bitnami/charts/issues/25306)
+
+## <small>2.19.1 (2024-03-27)</small>
+
+* [bitnami/common] chore: :wrench: Relax preset resource requests xlarge and 2xlarge instances (#24713 ([fdd93bb](https://github.com/bitnami/charts/commit/fdd93bb2a2f73a7df3e498b5072736a54610a908)), closes [#24713](https://github.com/bitnami/charts/issues/24713)
+
+## 2.19.0 (2024-03-08)
+
+* [bitnami/common] feat: :sparkles: Remove empty seLinuxOptions in adapted Openshift rendered security ([1f2f5ef](https://github.com/bitnami/charts/commit/1f2f5ef476efba7f284df0c36c265216325ffda9)), closes [#24268](https://github.com/bitnami/charts/issues/24268)
+
+## 2.18.0 (2024-03-04)
+
+* [bitnami/common] feat: :sparkles: :lock: Add compatibility support for securityContext in Openshift ([8fb0dd4](https://github.com/bitnami/charts/commit/8fb0dd48b6d7ec69bb59db2376365f6d76b26d97)), closes [#24040](https://github.com/bitnami/charts/issues/24040)
+
+## 2.17.0 (2024-02-20)
+
+* [bitnami/*] Bump all versions (#23602) ([b70ee2a](https://github.com/bitnami/charts/commit/b70ee2a30e4dc256bf0ac52928fb2fa7a70f049b)), closes [#23602](https://github.com/bitnami/charts/issues/23602)
+
+## <small>2.16.1 (2024-02-19)</small>
+
+* [bitnami/common] chore: :wrench: Bump ephemeral storage limits (#23564) ([18c4d88](https://github.com/bitnami/charts/commit/18c4d88f7d4ae93f36d0896fa66dbe872bba1c48)), closes [#23564](https://github.com/bitnami/charts/issues/23564)
+
+## 2.16.0 (2024-02-15)
+
+* [bitnami/common] feat: :sparkles: Add ephemeral-storage to resources preset (#23544) ([23b6856](https://github.com/bitnami/charts/commit/23b68563a0e2e721aa07864cff1b877e1d074388)), closes [#23544](https://github.com/bitnami/charts/issues/23544)
+
+## <small>2.15.3 (2024-02-14)</small>
+
+* [bitnami/common] chore: :pencil2: Fix typo in comment ([d07fb32](https://github.com/bitnami/charts/commit/d07fb324bd6455bf8607f66c642ff346443199ba))
+
+## <small>2.15.2 (2024-02-14)</small>
+
+* [bitnami/common] fix: :children_crossing: Improve resource warning message (#23425) ([7593e4f](https://github.com/bitnami/charts/commit/7593e4fc69fb8c50f7d626cc305c5adc56d23f48)), closes [#23425](https://github.com/bitnami/charts/issues/23425)
+
+## <small>2.15.1 (2024-02-13)</small>
+
+* [bitnami/common] fix: :bug: Check if section is enabled before printing resource warning ([262b6ee](https://github.com/bitnami/charts/commit/262b6ee64c57a5293333879ec423ad41c44f162c))
+
+## 2.15.0 (2024-02-13)
+
+* [bitnami/*] Fix docs.bitnami.com broken links (#21901) ([f35506d](https://github.com/bitnami/charts/commit/f35506d2dadee4f097986e7792df1f53ab215b5d)), closes [#21901](https://github.com/bitnami/charts/issues/21901)
+* [bitnami/*] Move documentation sections from docs.bitnami.com back to the README (#22203) ([7564f36](https://github.com/bitnami/charts/commit/7564f36ca1e95ff30ee686652b7ab8690561a707)), closes [#22203](https://github.com/bitnami/charts/issues/22203)
+* [bitnami/*] Update copyright: Year and company (#21815) ([6c4bf75](https://github.com/bitnami/charts/commit/6c4bf75dec58fc7c9aee9f089777b1a858c17d5b)), closes [#21815](https://github.com/bitnami/charts/issues/21815)
+* [bitnami/common] feat: :sparkles: Add support for resource presets (#23410) ([310d9f9](https://github.com/bitnami/charts/commit/310d9f9e44cb913a2e482f57107970ed5bde9a69)), closes [#23410](https://github.com/bitnami/charts/issues/23410)
+
+## <small>2.14.1 (2023-12-19)</small>
+
+* [bitnami/common] Fix typo with new line in common.secrets.passwords.manage (#21653) ([7e70463](https://github.com/bitnami/charts/commit/7e704634ef564adac330f1e0a67feb2a40a271dc)), closes [#21653](https://github.com/bitnami/charts/issues/21653)
+
+## 2.14.0 (2023-12-19)
+
+* [bitnami/common] add params skipB64enc and skipQuote to common.secrets.passwords.manage (#21595) ([2070eeb](https://github.com/bitnami/charts/commit/2070eeb30bbf48639e0177a42f65a1d13f42a180)), closes [#21595](https://github.com/bitnami/charts/issues/21595)
+
+## <small>2.13.4 (2023-12-15)</small>
+
+* [bitnami/*] Remove relative links to non-README sections, add verification for that and update TL;DR ([1103633](https://github.com/bitnami/charts/commit/11036334d82df0490aa4abdb591543cab6cf7d7f)), closes [#20967](https://github.com/bitnami/charts/issues/20967)
+* [bitnami/*] Rename VMware Application Catalog (#20361) ([3acc734](https://github.com/bitnami/charts/commit/3acc73472beb6fb56c4d99f929061001205bc57e)), closes [#20361](https://github.com/bitnami/charts/issues/20361)
+* [bitnami/common] fix failOnNew implementation in common.secrets.passwords.manage (#21342) ([76a5f24](https://github.com/bitnami/charts/commit/76a5f248fbceb3d1d948c7e60fbba74fd7eb3200)), closes [#21342](https://github.com/bitnami/charts/issues/21342)
+* [bitnami/common] Standardize documentation (#20334) ([3af2426](https://github.com/bitnami/charts/commit/3af242606877aea25c623b4185e6fcd285b7308d)), closes [#20334](https://github.com/bitnami/charts/issues/20334)
+
+## <small>2.13.3 (2023-10-17)</small>
+
+* [bitnami/*] Update Helm charts prerequisites (#19745) ([eb755dd](https://github.com/bitnami/charts/commit/eb755dd36a4dd3cf6635be8e0598f9a7f4c4a554)), closes [#19745](https://github.com/bitnami/charts/issues/19745)
+* [bitnami/common]: Address admission configuration typo (#19840) ([9a936f1](https://github.com/bitnami/charts/commit/9a936f158646e101c2507421fdcb85b787bbaf64)), closes [#19840](https://github.com/bitnami/charts/issues/19840)
+
+## <small>2.13.2 (2023-10-05)</small>
+
+* [bitnami/common] update imagePullSecrets to handle map and list format (#19702) ([1d30563](https://github.com/bitnami/charts/commit/1d30563bf53d4c0ac898cf1070af57aa28a039f1)), closes [#19702](https://github.com/bitnami/charts/issues/19702)
+
+## <small>2.13.1 (2023-10-04)</small>
+
+* [bitnami/common] render labels correctly when they contains templates (#19680) ([3cb44e3](https://github.com/bitnami/charts/commit/3cb44e376a472ca6721866b09f6d0ab412338cbc)), closes [#19680](https://github.com/bitnami/charts/issues/19680)
+
+## 2.13.0 (2023-09-29)
+
+* [bitnami/common]: Add capabilities macros to manage Pod Security Standard objects (#19428) ([322b76d](https://github.com/bitnami/charts/commit/322b76d6450840f08d53ecfddb5e151cac5c9e88)), closes [#19428](https://github.com/bitnami/charts/issues/19428)
+
+## <small>2.12.1 (2023-09-29)</small>
+
+* [bitnami/common] allow for empty appVersion (#19467) ([8b46a33](https://github.com/bitnami/charts/commit/8b46a3366abc7d216d16ace89675f3fc42691e8f)), closes [#19467](https://github.com/bitnami/charts/issues/19467)
+
+## 2.12.0 (2023-09-22)
+
+* [bitnami/common] new macro to checksum config resources (#19261) ([73945fe](https://github.com/bitnami/charts/commit/73945fedfa2acff03fe172430fcc4b8bcf55282f)), closes [#19261](https://github.com/bitnami/charts/issues/19261)
+* Revert "Autogenerate schema files (#19194)" (#19335) ([73d80be](https://github.com/bitnami/charts/commit/73d80be525c88fb4b8a54451a55acd506e337062)), closes [#19194](https://github.com/bitnami/charts/issues/19194) [#19335](https://github.com/bitnami/charts/issues/19335)
+
+## <small>2.11.1 (2023-09-15)</small>
+
+* Common - Adding app.kubernetes.io/version to common labels (#17201) ([9c497be](https://github.com/bitnami/charts/commit/9c497be9d99a98a20cd01e5858014e097ebe0eaa)), closes [#17201](https://github.com/bitnami/charts/issues/17201)
+
+## 2.11.0 (2023-09-12)
+
+* [bitnami/common] New helper to return image version (#19223) ([db46696](https://github.com/bitnami/charts/commit/db466964c6cfb3368ab87be6bb4d16f74d5c6fd0)), closes [#19223](https://github.com/bitnami/charts/issues/19223)
+* Autogenerate schema files (#19194) ([a2c2090](https://github.com/bitnami/charts/commit/a2c2090b5ac97f47b745c8028c6452bf99739772)), closes [#19194](https://github.com/bitnami/charts/issues/19194)
+
+## <small>2.10.1 (2023-09-08)</small>
+
+* [bitnami/common]: Compatiblity with Helm 3.2.0+ (#19177) ([e4fc03d](https://github.com/bitnami/charts/commit/e4fc03d96bef6ab0318d642fb65ba508c49844f1)), closes [#19177](https://github.com/bitnami/charts/issues/19177)
+
+## 2.10.0 (2023-09-04)
+
+* [bitnami/common] new macro to merge a list of values with rendering (#18889) ([0fb66f2](https://github.com/bitnami/charts/commit/0fb66f2c6f6828a240a0c1e6857c337bf9f4202a)), closes [#18889](https://github.com/bitnami/charts/issues/18889)
+
+## <small>2.9.2 (2023-08-31)</small>
+
+* Avoid using a tpl when there is no template (#18792) ([134924a](https://github.com/bitnami/charts/commit/134924a260fe2cd758a954f34e89ccb14012f348)), closes [#18792](https://github.com/bitnami/charts/issues/18792)
+
+## <small>2.9.1 (2023-08-29)</small>
+
+* [bitnami/common] Add extraLabelSelectors to affinities templates (#18127) ([b9ecfdb](https://github.com/bitnami/charts/commit/b9ecfdb3421a057b76e6f35f58c26e631c74e686)), closes [#18127](https://github.com/bitnami/charts/issues/18127)
+
+## 2.9.0 (2023-08-22)
+
+* [bitnami/common] Add support for customizing standard labels (#18154) ([9a20483](https://github.com/bitnami/charts/commit/9a20483cfd1daa6bfe08fd8116516a9bb5cd9754)), closes [#18154](https://github.com/bitnami/charts/issues/18154)
+
+## 2.8.0 (2023-08-07)
+
+* [bitnami/common] Delete app kubernetes version field (#18240) ([5fe3ee4](https://github.com/bitnami/charts/commit/5fe3ee44eed88e9b6843c70cbeb6378194b2276b)), closes [#18240](https://github.com/bitnami/charts/issues/18240)
+
+## 2.7.0 (2023-08-07)
+
+* Add app.kubernetes.io/version based on AppVersion (#18194) ([4f698f8](https://github.com/bitnami/charts/commit/4f698f8ac54fc68cd8dab433b7c2d8ffb77a4067)), closes [#18194](https://github.com/bitnami/charts/issues/18194)
+
+## 2.6.0 (2023-07-04)
+
+* [bitnami/common] Add scope for common.tplvalues.render (#17033) ([daf1b54](https://github.com/bitnami/charts/commit/daf1b5445a5e1c961ab78673899dd8007b4f1000)), closes [#17033](https://github.com/bitnami/charts/issues/17033)
+
+## 2.5.0 (2023-06-30)
+
+* [bitnami/*] Change copyright section in READMEs (#17006) ([ef986a1](https://github.com/bitnami/charts/commit/ef986a1605241102b3dcafe9fd8089e6fc1201ad)), closes [#17006](https://github.com/bitnami/charts/issues/17006)
+* [bitnami/common] Update common.secrets.passwords.manage and common.secrets.lookup (#17397) ([5a73cf1](https://github.com/bitnami/charts/commit/5a73cf19f92b93d88ee766669a947375135db903)), closes [#17397](https://github.com/bitnami/charts/issues/17397)
+* [bitnami/several] Change copyright section in READMEs (#16989) ([5b6a5cf](https://github.com/bitnami/charts/commit/5b6a5cfb7625a751848a2e5cd796bd7278f406ca)), closes [#16989](https://github.com/bitnami/charts/issues/16989)
+* Add copyright header (#17300) ([da68be8](https://github.com/bitnami/charts/commit/da68be8e951225133c7dfb572d5101ca3d61c5ae)), closes [#17300](https://github.com/bitnami/charts/issues/17300)
+* Update charts readme (#17217) ([31b3c0a](https://github.com/bitnami/charts/commit/31b3c0afd968ff4429107e34101f7509e6a0e913)), closes [#17217](https://github.com/bitnami/charts/issues/17217)
+
+## 2.4.0 (2023-05-18)
+
+* [bitnami/common] feat: :sparkles: Add apiVersions for DaemonSet and VPA ([a86cfaf](https://github.com/bitnami/charts/commit/a86cfaf0acb7cc26a7a91256f4b76db8f31797ef))
+
+## 2.3.0 (2023-05-12)
+
+* Add wording for enterprise page (#16560) ([8f22774](https://github.com/bitnami/charts/commit/8f2277440b976d52785ba9149762ad8620a73d1f)), closes [#16560](https://github.com/bitnami/charts/issues/16560)
+* Remove duplicate in image pull secrets (#16529) ([ddfea70](https://github.com/bitnami/charts/commit/ddfea70831875639cb298a555ad6dd5e68f059e4)), closes [#16529](https://github.com/bitnami/charts/issues/16529)
+
+## <small>2.2.6 (2023-05-09)</small>
+
+* [bitnami/several] Adapt Chart.yaml to set desired OCI annotations (#16546) ([fc9b18f](https://github.com/bitnami/charts/commit/fc9b18f2e98805d4df629acbcde696f44f973344)), closes [#16546](https://github.com/bitnami/charts/issues/16546)
+
+## <small>2.2.5 (2023-05-02)</small>
+
+* [bitnami/*] Make Helm charts 100% OCI (#15998) ([8841510](https://github.com/bitnami/charts/commit/884151035efcbf2e1b3206e7def85511073fb57d)), closes [#15998](https://github.com/bitnami/charts/issues/15998)
+* [bitnami/common] Fix typo in README.md to test chart publishing from GitHub (#16143) ([5b05ec3](https://github.com/bitnami/charts/commit/5b05ec32caa73240d38135e19501ab2658397d2e)), closes [#16143](https://github.com/bitnami/charts/issues/16143)
+
+## <small>2.2.4 (2023-03-07)</small>
+
+* [bitnami/*] Fix markdown linter issues (#14874) ([a51e0e8](https://github.com/bitnami/charts/commit/a51e0e8d35495b907f3e70dd2f8e7c3bcbf4166a)), closes [#14874](https://github.com/bitnami/charts/issues/14874)
+* [bitnami/*] Fix markdown linter issues 2 (#14890) ([aa96572](https://github.com/bitnami/charts/commit/aa9657237ee8df4a46db0d7fdf8a23230dd6902a)), closes [#14890](https://github.com/bitnami/charts/issues/14890)
+* [bitnami/common] Allow empty registry name (#15296) ([f13df7b](https://github.com/bitnami/charts/commit/f13df7b00f38e5fce67eab7a1b78afb0b064344e)), closes [#15296](https://github.com/bitnami/charts/issues/15296)
+
+## <small>2.2.3 (2023-02-03)</small>
+
+* [bitnami/*] Add license annotation and remove obsolete engine parameter (#14293) ([da2a794](https://github.com/bitnami/charts/commit/da2a7943bae95b6e9b5b4ed972c15e990b69fdb0)), closes [#14293](https://github.com/bitnami/charts/issues/14293)
+* [bitnami/*] Change copyright date (#14682) ([add4ec7](https://github.com/bitnami/charts/commit/add4ec701108ac36ed4de2dffbdf407a0d091067)), closes [#14682](https://github.com/bitnami/charts/issues/14682)
+* [bitnami/*] Change licenses annotation format (#14377) ([0ab7608](https://github.com/bitnami/charts/commit/0ab760862c660fcc78cffadf8e1d8cdd70881473)), closes [#14377](https://github.com/bitnami/charts/issues/14377)
+* [bitnami/*] Unify READMEs (#14472) ([2064fb8](https://github.com/bitnami/charts/commit/2064fb8dcc78a845cdede8211af8c3cc52551161)), closes [#14472](https://github.com/bitnami/charts/issues/14472)
+* [bitnami/common] chore: Correct common.images.image global in example (#14735) ([69ada7d](https://github.com/bitnami/charts/commit/69ada7da0c9c6b7ce718faef6920c61e3632fd02)), closes [#14735](https://github.com/bitnami/charts/issues/14735)
+
+## <small>2.2.2 (2022-12-12)</small>
+
+* [bitnami/common] resolve namespace using common.names.namespace macro (#13481) ([35b84e8](https://github.com/bitnami/charts/commit/35b84e8ba209681d4f160ca102188af61307fccf)), closes [#13481](https://github.com/bitnami/charts/issues/13481)
+
+## <small>2.2.1 (2022-11-25)</small>
+
+* [bitnami/common] fix common topology key affinity function (#13593) ([f95dec8](https://github.com/bitnami/charts/commit/f95dec803bd138b76d67a296545974c5a644d63e)), closes [#13593](https://github.com/bitnami/charts/issues/13593)
+
+## 2.2.0 (2022-11-14)
+
+* [bitnami/common] affinity topologyKey override (#13435) ([624c14e](https://github.com/bitnami/charts/commit/624c14e7121557e6a29ff0e814cb800c2f3cf619)), closes [#13435](https://github.com/bitnami/charts/issues/13435)
+* [bitnami/common] Fixed naming of common.secrets.passwords.manage function in README (#13250) ([39a8bcb](https://github.com/bitnami/charts/commit/39a8bcbb1b606cc165643ae4ddcdc15f05e91583)), closes [#13250](https://github.com/bitnami/charts/issues/13250)
+
+## <small>2.1.2 (2022-10-31)</small>
+
+* [bitnami/common] Do not explicitly specify namespace in affinity term. (#12932) ([638a48e](https://github.com/bitnami/charts/commit/638a48e4d3ec7b5d160f4b525ec40218512c464b)), closes [#12932](https://github.com/bitnami/charts/issues/12932) [/kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podaffinityterm-v1](https://github.com//kubernetes.io/docs/reference/generated/kubernetes-api/v1.23//issues/podaffinityterm-v1) [#12668](https://github.com/bitnami/charts/issues/12668)
+
+## <small>2.1.1 (2022-10-27)</small>
+
+* [bitnami/common] Fix appVersion mismatch (#13189) ([42b3b3e](https://github.com/bitnami/charts/commit/42b3b3e6c68e6af8ba19f7ec42be0d71b4c21852)), closes [#13189](https://github.com/bitnami/charts/issues/13189)
+
+## 2.1.0 (2022-10-27)
+
+* [bitnami/common] Add new function 'common.secrets.lookup' (#13150) ([e848934](https://github.com/bitnami/charts/commit/e84893410321b88adbd7d2e40b891685a15ce640)), closes [#13150](https://github.com/bitnami/charts/issues/13150)
+
+## <small>2.0.4 (2022-10-24)</small>
+
+* [bitnami/*] Use new default branch name in links (#12943) ([a529e02](https://github.com/bitnami/charts/commit/a529e02597d49d944eba1eb0f190713293247176)), closes [#12943](https://github.com/bitnami/charts/issues/12943)
+* [bitnami/common] kubernetes.io/tls-acme Ingress annotation triggers IngressTLS array (#13054) ([2008857](https://github.com/bitnami/charts/commit/200885790b34afd6fd04ea45949c887a907b6b38)), closes [#13054](https://github.com/bitnami/charts/issues/13054)
+* [bitnami/common] quote secret value when lookup (#11276) ([c8e3019](https://github.com/bitnami/charts/commit/c8e301965f05996a2ae18e0fc8dbfcbe64428356)), closes [#11276](https://github.com/bitnami/charts/issues/11276)
+
+## <small>2.0.3 (2022-09-12)</small>
+
+* [bitnami/common] Revert changes in HPA context from #12282 (#12372) ([55fdc3a](https://github.com/bitnami/charts/commit/55fdc3aff3e32502abfd8f0607ac2be54e585744)), closes [#12282](https://github.com/bitnami/charts/issues/12282) [#12372](https://github.com/bitnami/charts/issues/12372)
+
+## <small>2.0.2 (2022-09-05)</small>
+
+* fix context for HPA util (#12282) ([ccd54a0](https://github.com/bitnami/charts/commit/ccd54a0d47a96903f499fbcdb52a336863020efe)), closes [#12282](https://github.com/bitnami/charts/issues/12282)
+
+## <small>2.0.1 (2022-08-23)</small>
+
+* [bitnami/common] Digest/Tag new approach backward compatible (#12029) ([f1c27dc](https://github.com/bitnami/charts/commit/f1c27dc5d9540c2ea192abf1245da67f5b4f8916)), closes [#12029](https://github.com/bitnami/charts/issues/12029)
+
+## 2.0.0 (2022-08-18)
+
+* [bitnami/common] MAJOR: Add support for image digest apart from tag (#11830) ([e3fee4e](https://github.com/bitnami/charts/commit/e3fee4e41d34a6584660c3b77b8521922603ccab)), closes [#11830](https://github.com/bitnami/charts/issues/11830)
+
+## <small>1.17.1 (2022-08-18)</small>
+
+* Revert changes from #11797 (#11829) ([22bb033](https://github.com/bitnami/charts/commit/22bb033224176c498920596c8d8b25b5f60a277d)), closes [#11797](https://github.com/bitnami/charts/issues/11797) [#11829](https://github.com/bitnami/charts/issues/11829)
+
+## 1.17.0 (2022-08-18)
+
+* [bitnami/common] Add support for image digest apart from tag (#11797) ([b069345](https://github.com/bitnami/charts/commit/b0693450f653318ac7da64575dac389d7041b69f)), closes [#11797](https://github.com/bitnami/charts/issues/11797)
+
+## <small>1.16.1 (2022-07-13)</small>
+
+* [bitnami/*] Replace Kubeapps URL in READMEs (and kubeapps Chart.yaml) and remove BKPR references (#1 ([c6a7914](https://github.com/bitnami/charts/commit/c6a7914361e5aea6016fb45bf4d621edfd111d32)), closes [#10600](https://github.com/bitnami/charts/issues/10600)
+* [bitnami/common] Affinities section does not use common.names.namespace (#11137) ([b70c24c](https://github.com/bitnami/charts/commit/b70c24c82c7a9112a4288441ad1fa8c035bb68b4)), closes [#11137](https://github.com/bitnami/charts/issues/11137)
+
+## 1.16.0 (2022-06-03)
+
+* [bitnami/common] Add mysql validation (#10565) ([75ae79a](https://github.com/bitnami/charts/commit/75ae79a434137694fd82198abe1f861d6e5a04ba)), closes [#10565](https://github.com/bitnami/charts/issues/10565)
+
+## <small>1.15.2 (2022-06-02)</small>
+
+* Update Redis trademark references ([2cada87](https://github.com/bitnami/charts/commit/2cada87ed4967d5cb578b0409a0bb1edee79029a))
+
+## <small>1.15.1 (2022-06-01)</small>
+
+* [bitnami/several] Replace maintainers email by url (#10523) ([ff3cf61](https://github.com/bitnami/charts/commit/ff3cf617a1680509b0f3855d17c4ccff7b29a0ff)), closes [#10523](https://github.com/bitnami/charts/issues/10523)
+
+## 1.15.0 (2022-06-01)
+
+* Add common function common.names.fullname.namespace (#10462) ([96f447c](https://github.com/bitnami/charts/commit/96f447cd8654b6db51d9301c841bacb3a13089b3)), closes [#10462](https://github.com/bitnami/charts/issues/10462)
+
+## <small>1.14.2 (2022-05-30)</small>
+
+* [bitnami/common] use -d flag for base64 (#10491) ([ca8d588](https://github.com/bitnami/charts/commit/ca8d5886a1bc0fb37d1bc770ad2333acdffd7996)), closes [#10491](https://github.com/bitnami/charts/issues/10491) [#10486](https://github.com/bitnami/charts/issues/10486)
+
+## <small>1.14.1 (2022-05-20)</small>
+
+* Differentiate between autoscaling v1beta1 and v1beta2 (#10331) ([16d8a4e](https://github.com/bitnami/charts/commit/16d8a4ee73705ee6db2191d84e03a2ba3ea95deb)), closes [#10331](https://github.com/bitnami/charts/issues/10331)
+
+## 1.14.0 (2022-05-13)
+
+* [bitnami/common] Add common function for HPA api version (#10174) ([4379ab5](https://github.com/bitnami/charts/commit/4379ab56bd8f4d7f7b7817bf302c683bf9087e81)), closes [#10174](https://github.com/bitnami/charts/issues/10174)
+
+## <small>1.13.1 (2022-04-19)</small>
+
+* Fix affinities identifier in README.md for common chart (#9821) ([fe95640](https://github.com/bitnami/charts/commit/fe95640ce3f5ddfb0458f440959ceda3a849a3a4)), closes [#9821](https://github.com/bitnami/charts/issues/9821)
+
+## 1.13.0 (2022-03-24)
+
+* [bitnami/common] Add apiService.apiVersion function to common.capabilities (#9562) ([bba2272](https://github.com/bitnami/charts/commit/bba227223e15937bb1f29f77425f6bd7d9238c02)), closes [#9562](https://github.com/bitnami/charts/issues/9562)
+
+## 1.12.0 (2022-03-16)
+
+* [bitnami/common] Helper to allow overriding namespace name (#9396) ([794fecb](https://github.com/bitnami/charts/commit/794fecb8cb112e8e5e9d55420451752e8bd21431)), closes [#9396](https://github.com/bitnami/charts/issues/9396)
+
+## <small>1.11.3 (2022-03-03)</small>
+
+* [bitnami/common] Improve docs for passwords.manage (#9269) ([0d06114](https://github.com/bitnami/charts/commit/0d061147a5b7c7cf2bf44d2b61603ffeb48a0b51)), closes [#9269](https://github.com/bitnami/charts/issues/9269)
+
+## <small>1.11.2 (2022-02-28)</small>
+
+* [bitnami/common] README: Fixed the desscription for `common.labels.matchLabels` (#9062) ([7f17db7](https://github.com/bitnami/charts/commit/7f17db7e9bcdd7918bde322b3b76a62c6a86e752)), closes [#9062](https://github.com/bitnami/charts/issues/9062) [bitnami/charts#9060](https://github.com/bitnami/charts/issues/9060) [bitnami/charts#9060](https://github.com/bitnami/charts/issues/9060)
+
+## <small>1.11.1 (2022-02-02)</small>
+
+* [bitnami/common] Improve "common.secrets.passwords.manage" helper (#8861) ([01477b4](https://github.com/bitnami/charts/commit/01477b42f2be362388d69da913879c52f2250ac1)), closes [#8861](https://github.com/bitnami/charts/issues/8861)
+
+## 1.11.0 (2022-02-01)
+
+* [bitnami/common] Add ingress helper to detect cert-manager annotations (#8857) ([c0c986f](https://github.com/bitnami/charts/commit/c0c986f8d5c911c09dc84d289d2993ae1779a6ca)), closes [#8857](https://github.com/bitnami/charts/issues/8857)
+
+## <small>1.10.4 (2022-01-20)</small>
+
+* [bitnami/several] Add license to the README ([05f7633](https://github.com/bitnami/charts/commit/05f763372501d596e57db713dd53ff4ff3027cc4))
+* [bitnami/several] Add license to the README ([32fb238](https://github.com/bitnami/charts/commit/32fb238e60a0affc6debd3142eaa3c3d9089ec2a))
+* [bitnami/several] Add license to the README ([b87c2f7](https://github.com/bitnami/charts/commit/b87c2f7899d48a8b02c506765e6ae82937e9ba3f))
+* [bitnami/several] Change prerequisites (#8725) ([8d740c5](https://github.com/bitnami/charts/commit/8d740c566cfdb7e2d933c40128b4e919fce953a5)), closes [#8725](https://github.com/bitnami/charts/issues/8725)
+
+## <small>1.10.3 (2021-11-29)</small>
+
+* [bitnami/common] fix: :bug: Add extra check for "\"\"" values in existing secrets (#8266) ([de27be6](https://github.com/bitnami/charts/commit/de27be6e649472608f076a04a36be3674fe3b84e)), closes [#8266](https://github.com/bitnami/charts/issues/8266)
+
+## <small>1.10.2 (2021-11-29)</small>
+
+* [bitnami/several] Replace HTTP by HTTPS when possible (#8259) ([eafb5bd](https://github.com/bitnami/charts/commit/eafb5bd5a2cc3aaf04fc1e8ebedd73f420d76864)), closes [#8259](https://github.com/bitnami/charts/issues/8259)
+
+## <small>1.10.1 (2021-10-27)</small>
+
+* [bitnami/*] Mark PodSecurityPolicy resources as deprecated (#7948) ([5cac753](https://github.com/bitnami/charts/commit/5cac7539dcb6c3baef06ed6676bfa99c16fdb5fe)), closes [#7948](https://github.com/bitnami/charts/issues/7948)
+
+## 1.10.0 (2021-09-30)
+
+* [bitnami/common] Add new capability helper for Network Policies (#7658) ([3efb1ca](https://github.com/bitnami/charts/commit/3efb1cac924409cbda3216a2300cce031c56a1f5)), closes [#7658](https://github.com/bitnami/charts/issues/7658)
+
+## <small>1.9.1 (2021-09-22)</small>
+
+* [bitnami/common] fix readme for common chart (#7577) ([3f06bdd](https://github.com/bitnami/charts/commit/3f06bdd8df1c00dbdf27230bcdf925c337826abb)), closes [#7577](https://github.com/bitnami/charts/issues/7577)
+* Fix typo in bitname/common README (#7529) ([fccffb3](https://github.com/bitnami/charts/commit/fccffb33391751a1bf84c53184cffe0dcac83fd6)), closes [#7529](https://github.com/bitnami/charts/issues/7529)
+
+## 1.9.0 (2021-09-13)
+
+* [bitnami/common] Add new dependency fullname template (#7471) ([7ca2a4b](https://github.com/bitnami/charts/commit/7ca2a4bb917ac6a276a6b30be12538f4c7c3a63d)), closes [#7471](https://github.com/bitnami/charts/issues/7471)
+
+## 1.8.0 (2021-08-04)
+
+* Add cronjob apiVersion capability (#7122) ([7b84a67](https://github.com/bitnami/charts/commit/7b84a674ae99fd8ddac3b5b3c859c816b87aaf51)), closes [#7122](https://github.com/bitnami/charts/issues/7122)
+
+## <small>1.7.1 (2021-07-27)</small>
+
+* [bitnami/*] Adapt values.yaml of common library, Tomcat, Wavefront and ZooKeeper charts (#6970) ([fb2693b](https://github.com/bitnami/charts/commit/fb2693bfe67a154b159d3998232cc613e1706c70)), closes [#6970](https://github.com/bitnami/charts/issues/6970)
+* [bitnami/several] Bump version and update READMEs (#7069) ([6340bff](https://github.com/bitnami/charts/commit/6340bff66f93c8c797bda3ca0842e4bf770059f1)), closes [#7069](https://github.com/bitnami/charts/issues/7069)
+* Replace <sup> strings with &trade; in the README files (#7066) ([d298b49](https://github.com/bitnami/charts/commit/d298b4996da33c9580c2594e6dc8ad665dd0ebab)), closes [#7066](https://github.com/bitnami/charts/issues/7066)
+
+## 1.7.0 (2021-07-02)
+
+* [bitnami/common] Add supportIngressClassname (#6828) ([0c8a455](https://github.com/bitnami/charts/commit/0c8a45546a219b4b4cd370daf0643543c92739b0)), closes [#6828](https://github.com/bitnami/charts/issues/6828)
+
+## <small>1.6.1 (2021-06-16)</small>
+
+* [bitnami/common] extend common.labels.matchLabels with .Values.extraMatchLabels (#6589) ([66edf04](https://github.com/bitnami/charts/commit/66edf04e3e244c343a845f9c684edf4c8ea04406)), closes [#6589](https://github.com/bitnami/charts/issues/6589)
+
+## 1.6.0 (2021-06-15)
+
+* bitnami/common: add version detection for policy api (#6662) ([dcacf06](https://github.com/bitnami/charts/commit/dcacf06f6f2b6d622e2226935db22d5b8efa20b3)), closes [#6662](https://github.com/bitnami/charts/issues/6662)
+
+## <small>1.5.2 (2021-05-21)</small>
+
+* [bitnami/common] Update _ingress.tpl (#6437) ([9048150](https://github.com/bitnami/charts/commit/90481508542c4da588e0d71944592e6c4e8d36e4)), closes [#6437](https://github.com/bitnami/charts/issues/6437)
+
+## <small>1.5.1 (2021-05-14)</small>
+
+* Node affinity values must be quoted. (#6348) ([f73efbe](https://github.com/bitnami/charts/commit/f73efbe074436eda6276bbf32c781fa913c6a17a)), closes [#6348](https://github.com/bitnami/charts/issues/6348)
+
+## 1.5.0 (2021-05-13)
+
+* [bitnami/common] pull secrets rendering (#6286) ([dfffe74](https://github.com/bitnami/charts/commit/dfffe74c212a28e27f537dbee54c3b5a81c7d572)), closes [#6286](https://github.com/bitnami/charts/issues/6286)
+
+## <small>1.4.3 (2021-04-26)</small>
+
+* [bitnami/common] Update Redis validation's helper (#6192) ([1e3bf03](https://github.com/bitnami/charts/commit/1e3bf03e3aad56fd4dc159744626e25ec24c5772)), closes [#6192](https://github.com/bitnami/charts/issues/6192)
+
+## <small>1.4.2 (2021-03-25)</small>
+
+* [bitnami/common] Common credential error (#5884) ([328ca86](https://github.com/bitnami/charts/commit/328ca863515f6ef9fe188c71110be7b951719d66)), closes [#5884](https://github.com/bitnami/charts/issues/5884)
+
+## <small>1.4.1 (2021-02-23)</small>
+
+* [bitnami/common] Add possibility to pull images without giving registry name (#5582) ([15ca275](https://github.com/bitnami/charts/commit/15ca27520a16b590101fa39195f55017e2935a90)), closes [#5582](https://github.com/bitnami/charts/issues/5582)
+
+## 1.4.0 (2021-02-22)
+
+* [bitnami/common] Add RBAC/CRD apiVersion support for versions 1.22+ (#5583) ([fda87aa](https://github.com/bitnami/charts/commit/fda87aabcd004f9a67549f5d22d273dd9fff6836)), closes [#5583](https://github.com/bitnami/charts/issues/5583)
+
+## <small>1.3.9 (2021-02-09)</small>
+
+* Add registered icon to all the MongoDB references (#5426) ([56f2088](https://github.com/bitnami/charts/commit/56f20884267e56175695b2917f7704b9510f4ba6)), closes [#5426](https://github.com/bitnami/charts/issues/5426)
+
+## <small>1.3.8 (2021-02-03)</small>
+
+* fix(common): quote namespace name (#5363) ([d27fb5e](https://github.com/bitnami/charts/commit/d27fb5e0b327728bb4304503376aaa4d2ab50619)), closes [#5363](https://github.com/bitnami/charts/issues/5363)
+
+## <small>1.3.7 (2021-01-20)</small>
+
+* [bitnami/*] Change helm version in the prerequisites (#5090) ([c5e67a3](https://github.com/bitnami/charts/commit/c5e67a388743cbee28439d2cabca27884b9daf97)), closes [#5090](https://github.com/bitnami/charts/issues/5090)
+* [bitnami/common] Remove helm version checker from secret helper (#5156) ([20231b1](https://github.com/bitnami/charts/commit/20231b138fae524371e6b29504acd4cbd19ce697)), closes [#5156](https://github.com/bitnami/charts/issues/5156)
+
+## <small>1.3.6 (2021-01-18)</small>
+
+* [bitnami/common] same behavior with empty string when the secret obje… (#5057) ([0bae2bb](https://github.com/bitnami/charts/commit/0bae2bbb9b42c5a8dd2b8a144ffa55ace1c8a936)), closes [#5057](https://github.com/bitnami/charts/issues/5057)
+
+## <small>1.3.5 (2021-01-17)</small>
+
+* [bitnami/common] fix wrong include reference (#5056) ([11efd59](https://github.com/bitnami/charts/commit/11efd59177419d4177e59800f04b4f26ab7243f8)), closes [#5056](https://github.com/bitnami/charts/issues/5056)
+
+## <small>1.3.4 (2021-01-15)</small>
+
+* [bitnami/common] Fix lookup function backward compatibility and README (#5018) ([14a0042](https://github.com/bitnami/charts/commit/14a0042dc90c01fd38f814e1e43559384a3baa9f)), closes [#5018](https://github.com/bitnami/charts/issues/5018)
+
+## <small>1.3.3 (2021-01-14)</small>
+
+* [bitnami/several] Add Redis trademark (#5023) ([dfa89b8](https://github.com/bitnami/charts/commit/dfa89b865989da26a3c73f397fd3c402dd56ebe8)), closes [#5023](https://github.com/bitnami/charts/issues/5023)
+
+## <small>1.3.2 (2021-01-13)</small>
+
+* [bitnami/common] Add missing else statement to ingress apiversion ([22ab07a](https://github.com/bitnami/charts/commit/22ab07ac7d39d4153cc839de2b714086e99cfc04))
+
+## <small>1.3.1 (2021-01-13)</small>
+
+* [bitnami/common] Fix cases where ingress is not at the root (#4984) ([e447d9d](https://github.com/bitnami/charts/commit/e447d9d2205fc3f2f6cd990386a691fd9204b214)), closes [#4984](https://github.com/bitnami/charts/issues/4984)
+
+## 1.3.0 (2021-01-13)
+
+* [bitnami/*] POC Lookup function implementation (#4831) ([240dc1b](https://github.com/bitnami/charts/commit/240dc1bea80a3e121fd595636496d7941bdbc5e0)), closes [#4831](https://github.com/bitnami/charts/issues/4831)
+
+## <small>1.2.3 (2020-12-31)</small>
+
+* [bitnami/common] Fix incorrect backend calculation for networking/v1beta1 ([c59b869](https://github.com/bitnami/charts/commit/c59b86919f47504bc8fd06f75a024f55e58ace77))
+
+## <small>1.2.2 (2020-12-30)</small>
+
+* [bitnami/common] Fix typo in common.capabilities.kubeVersion ([a371b73](https://github.com/bitnami/charts/commit/a371b734b854aa81a7dec16c40d061f5e9a14875))
+
+## <small>1.2.1 (2020-12-30)</small>
+
+* [bitnami/common] Fix issue with global kubeversion calculation ([0bbb339](https://github.com/bitnami/charts/commit/0bbb339d60b41ab978e759863709ebb1451d07a4))
+
+## 1.2.0 (2020-12-30)
+
+* [bitnami/common] Make ingress rules compatible with all Kubernetes versions (#4859) ([2b22a21](https://github.com/bitnami/charts/commit/2b22a217020fe3d16ef98fdcdd4a562c43f9824a)), closes [#4859](https://github.com/bitnami/charts/issues/4859)
+
+## <small>1.1.4 (2020-12-23)</small>
+
+* [bitnami/common] fix: moving kube version comparison (#4804) ([cdb6ae8](https://github.com/bitnami/charts/commit/cdb6ae8f00d114f0998c604416b79f62dc27f19d)), closes [#4804](https://github.com/bitnami/charts/issues/4804)
+
+## <small>1.1.3 (2020-12-18)</small>
+
+* [bitnami/*] fix typos (#4699) ([49adc63](https://github.com/bitnami/charts/commit/49adc63b672da976c55af2e077aa5648a357b77f)), closes [#4699](https://github.com/bitnami/charts/issues/4699)
+* [bitnami/common] Adding networking apiVersion support for versions 1.19+ (#4776) ([5ed8c54](https://github.com/bitnami/charts/commit/5ed8c54f5e0a905effc4c1ae5c4931e6669cec30)), closes [#4776](https://github.com/bitnami/charts/issues/4776)
+
+## <small>1.1.2 (2020-12-11)</small>
+
+* [bitnami/common] Fix node affinity templates (#4692) ([5b51a5c](https://github.com/bitnami/charts/commit/5b51a5c004b062282849a4abaaffd6840bb6c95f)), closes [#4692](https://github.com/bitnami/charts/issues/4692)
+
+## <small>1.1.1 (2020-11-26)</small>
+
+* fix: mongodb validation auth (#4506) ([ca3fdfb](https://github.com/bitnami/charts/commit/ca3fdfbeebeba5bd7dfa4805e1ca2411e5950b09)), closes [#4506](https://github.com/bitnami/charts/issues/4506)
+
+## 1.1.0 (2020-11-26)
+
+* [bitnami/common] Add mongodb validation template (#4497) ([14ece96](https://github.com/bitnami/charts/commit/14ece96c801a7326935b6269423d8854fed3a49e)), closes [#4497](https://github.com/bitnami/charts/issues/4497)
+
+## <small>1.0.1 (2020-11-19)</small>
+
+* [bitnami/common] existingSecret is in auth map (#4389) ([de9b217](https://github.com/bitnami/charts/commit/de9b2177465e1c56ca2aa1c4c486bd37a7104d7a)), closes [#4389](https://github.com/bitnami/charts/issues/4389)
+
+## 1.0.0 (2020-11-10)
+
+* bitnami/common Major version. Adapt Chart to apiVersion: v2 (#4258) ([09dbc45](https://github.com/bitnami/charts/commit/09dbc45d11c5e8fe65d6eb64dbf51571ad2c7464)), closes [#4258](https://github.com/bitnami/charts/issues/4258)
+
+## 0.10.0 (2020-10-27)
+
+* [bitnami/common] feat: add cassandra passwords validations (#4110) ([b4923d4](https://github.com/bitnami/charts/commit/b4923d48018dff1673a32eefcc0d62eb484b36da)), closes [#4110](https://github.com/bitnami/charts/issues/4110)
+
+## 0.9.0 (2020-10-21)
+
+* [bitnami/common] feat: add redis passwords validations (#4070) ([0daa8d5](https://github.com/bitnami/charts/commit/0daa8d580c06e18d94dbc0e88467347a34418596)), closes [#4070](https://github.com/bitnami/charts/issues/4070)
+
+## <small>0.8.2 (2020-10-14)</small>
+
+* [bitnami/common] Allow backward compatibility for existingSecret (#4006) ([aa2b3a1](https://github.com/bitnami/charts/commit/aa2b3a18610c69b2f5c76b839483db43fa3c093c)), closes [#4006](https://github.com/bitnami/charts/issues/4006)
+
+## <small>0.8.1 (2020-10-05)</small>
+
+* [bitnami/common] Fix secret name bug with defaulNameSuffix. (#3888) ([d114d44](https://github.com/bitnami/charts/commit/d114d446ef86cb6e7a72de6542905ec3b07d3684))
+
+## 0.8.0 (2020-10-02)
+
+* [bitnami/common] Add statefulset capabilities and prepare MariaDB passwords validation for new forma ([1eb4436](https://github.com/bitnami/charts/commit/1eb44366a72e39e84e33bed1a4940c1b2c6025fc)), closes [#3859](https://github.com/bitnami/charts/issues/3859)
+
+## <small>0.7.1 (2020-09-22)</small>
+
+* [bitnami/common] fix: evaluate enabled as string (#3733) ([048cdae](https://github.com/bitnami/charts/commit/048cdae5488cfcfe83ec698afaa8318aa3b1d0ca)), closes [#3733](https://github.com/bitnami/charts/issues/3733)
+
+## 0.7.0 (2020-09-22)
+
+* [bitnami/metrics-server] Add source repo (#3577) ([1ed12f9](https://github.com/bitnami/charts/commit/1ed12f96af75322b46afdb2b3d9907c11b13f765)), closes [#3577](https://github.com/bitnami/charts/issues/3577)
+* PoC for pods' affinity (#3713) ([9e6a915](https://github.com/bitnami/charts/commit/9e6a915392979f0c0148875f34cca1c27e399b59)), closes [#3713](https://github.com/bitnami/charts/issues/3713)
+
+## <small>0.6.2 (2020-09-01)</small>
+
+* [bitnami/common] fix: wrong use of append function (#3566) ([c912fd0](https://github.com/bitnami/charts/commit/c912fd0b7378bf2d5d56182e6d2fa6bbd74df46f)), closes [#3566](https://github.com/bitnami/charts/issues/3566)
+
+## <small>0.6.1 (2020-08-31)</small>
+
+* [bitnami/common] fix: mariadb checks secret fields after check enabled (#3565) ([498056a](https://github.com/bitnami/charts/commit/498056ad16a6e89aa3b7cc231da7467ab5bd3986)), closes [#3565](https://github.com/bitnami/charts/issues/3565)
+
+## 0.6.0 (2020-08-19)
+
+* [bitnami/mariadb] Require password option at secret resource (#3411) ([a8d2464](https://github.com/bitnami/charts/commit/a8d24643756470d0280fc585b01397358c1c242d)), closes [#3411](https://github.com/bitnami/charts/issues/3411)
+
+## <small>0.5.2 (2020-08-19)</small>
+
+* [bitnami/common] fix: add global parameters to postgres validation (#3460) ([1c52a2a](https://github.com/bitnami/charts/commit/1c52a2a48ea65024a753eb5b32deadd46650fb18)), closes [#3460](https://github.com/bitnami/charts/issues/3460)
+
+## <small>0.5.1 (2020-08-10)</small>
+
+* fix(common): missing $ in required values helpers (#3376) ([c972152](https://github.com/bitnami/charts/commit/c972152762c14c5ab5e3847a4870f4f4f2a31224)), closes [#3376](https://github.com/bitnami/charts/issues/3376)
+
+## 0.5.0 (2020-08-10)
+
+* [bitnami/common] add psql and mysql required password validations (#3374) ([1a4419e](https://github.com/bitnami/charts/commit/1a4419e15d985f67413beff98c9fc9b9f69108fb)), closes [#3374](https://github.com/bitnami/charts/issues/3374)
+
+## 0.4.0 (2020-08-04)
+
+* [bitnami/*] Fix TL;DR typo in READMEs (#3280) ([3d7ab40](https://github.com/bitnami/charts/commit/3d7ab406fecd64f1af25f53e7d27f03ec95b29a4)), closes [#3280](https://github.com/bitnami/charts/issues/3280)
+* [bitnami/all] Add categories (#3075) ([63bde06](https://github.com/bitnami/charts/commit/63bde066b87a140fab52264d0522401ab3d63509)), closes [#3075](https://github.com/bitnami/charts/issues/3075)
+* Add common helpers to check secrets when upgrade (#3150) ([5a5807c](https://github.com/bitnami/charts/commit/5a5807c1b1db1f2337f6aa5308d3ff73a4329e6a)), closes [#3150](https://github.com/bitnami/charts/issues/3150)
+
+## <small>0.3.1 (2020-06-05)</small>
+
+* [bitnami/several] Fix table rendering in some hubs (#2770) ([fe9fd8c](https://github.com/bitnami/charts/commit/fe9fd8c261195385aae73e165ac6c1a666fef08e)), closes [#2770](https://github.com/bitnami/charts/issues/2770)
+
+## 0.3.0 (2020-06-02)
+
+* [bitnami/common]: add template function for ingress apiVersion (#2732) ([a968a50](https://github.com/bitnami/charts/commit/a968a50916ed9fa6f823a5a3ef6e4b98d615322f)), closes [#2732](https://github.com/bitnami/charts/issues/2732)
+
+## <small>0.2.4 (2020-05-29)</small>
+
+* [bitnami/common] Bump chart version (#2707) ([ff2c37a](https://github.com/bitnami/charts/commit/ff2c37a576191f4523c7f69504aea669ab68aba8)), closes [#2707](https://github.com/bitnami/charts/issues/2707)
+* [bitnami/several] Fix trailing spaces to make helm lint work on all of them (#2705) ([bafba3f](https://github.com/bitnami/charts/commit/bafba3fc8b8949897ad2d99d437bd8fc975223e4)), closes [#2705](https://github.com/bitnami/charts/issues/2705)
+
+## <small>0.2.3 (2020-05-26)</small>
+
+* fix(common): add name attribute to imagePullSecrets helper (#2664) ([1ea21a9](https://github.com/bitnami/charts/commit/1ea21a92a8f44bd0d82d0fd4ed30108a89cf5b34)), closes [#2664](https://github.com/bitnami/charts/issues/2664)
+
+## <small>0.2.2 (2020-05-19)</small>
+
+* update bitnami/common to be compatible with helm v2.12+ (#2615) ([c7751eb](https://github.com/bitnami/charts/commit/c7751eb5764e468e1854b58a1b8491d2b13e0a4a)), closes [#2615](https://github.com/bitnami/charts/issues/2615)
+
+## <small>0.2.1 (2020-05-13)</small>
+
+* bump bitnami/common version number (#2580) ([1bd1e7b](https://github.com/bitnami/charts/commit/1bd1e7bc776614b6ae10f21e9c8b23fe15db5ff4)), closes [#2580](https://github.com/bitnami/charts/issues/2580)
+
+## 0.2.0 (2020-04-17)
+
+* [bitnami/common] add secrets and warnings helpers (#2347) ([a748ff8](https://github.com/bitnami/charts/commit/a748ff82259d6553a0d4ca56ca6d7d050de859f4)), closes [#2347](https://github.com/bitnami/charts/issues/2347)
+
+## <small>0.1.1 (2020-04-08)</small>
+
+* [bitnami/common] bitnami common add values yaml (#2267) ([a88c902](https://github.com/bitnami/charts/commit/a88c90212021771eacc562dd38c04381e2f63d6f)), closes [#2267](https://github.com/bitnami/charts/issues/2267)
+
+## 0.1.0 (2020-04-03)
+
+* [bitnami/common]: add initial functions (#2188) ([9401e13](https://github.com/bitnami/charts/commit/9401e13316992c36b0e33de75d5f249645a2924e)), closes [#2188](https://github.com/bitnami/charts/issues/2188)
diff --git a/kubernetes/common/nginx/common/Chart.yaml b/kubernetes/common/nginx/common/Chart.yaml
new file mode 100644
index 0000000000..d1b6dfc116
--- /dev/null
+++ b/kubernetes/common/nginx/common/Chart.yaml
@@ -0,0 +1,26 @@
+# Copyright Broadcom, Inc. All Rights Reserved.
+# SPDX-License-Identifier: APACHE-2.0
+
+annotations:
+ category: Infrastructure
+ licenses: Apache-2.0
+apiVersion: v2
+# Please make sure that version and appVersion are always the same.
+appVersion: 2.29.1
+description: A Library Helm Chart for grouping common logic between bitnami charts. This chart is not deployable by itself.
+home: https://bitnami.com
+icon: https://bitnami.com/downloads/logos/bitnami-mark.png
+keywords:
+ - common
+ - helper
+ - template
+ - function
+ - bitnami
+maintainers:
+ - name: Broadcom, Inc. All Rights Reserved.
+ url: https://github.com/bitnami/charts
+name: common
+sources:
+ - https://github.com/bitnami/charts/tree/main/bitnami/common
+type: library
+version: 2.29.1
diff --git a/kubernetes/common/nginx/common/README.md b/kubernetes/common/nginx/common/README.md
new file mode 100644
index 0000000000..0e5f649928
--- /dev/null
+++ b/kubernetes/common/nginx/common/README.md
@@ -0,0 +1,235 @@
+# Bitnami Common Library Chart
+
+A [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm) for grouping common logic between Bitnami charts.
+
+## TL;DR
+
+```yaml
+dependencies:
+ - name: common
+ version: 2.x.x
+ repository: oci://registry-1.docker.io/bitnamicharts
+```
+
+```console
+helm dependency update
+```
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.names.fullname" . }}
+data:
+ myvalue: "Hello World"
+```
+
+Looking to use our applications in production? Try [VMware Tanzu Application Catalog](https://bitnami.com/enterprise), the commercial edition of the Bitnami catalog.
+
+## Introduction
+
+This chart provides a common template helpers which can be used to develop new charts using [Helm](https://helm.sh) package manager.
+
+Bitnami charts can be used with [Kubeapps](https://kubeapps.dev/) for deployment and management of Helm Charts in clusters.
+
+## Prerequisites
+
+- Kubernetes 1.23+
+- Helm 3.8.0+
+
+## Parameters
+
+## Special input schemas
+
+### ImageRoot
+
+```yaml
+registry:
+ type: string
+ description: Docker registry where the image is located
+ example: docker.io
+
+repository:
+ type: string
+ description: Repository and image name
+ example: bitnami/nginx
+
+tag:
+ type: string
+ description: image tag
+ example: 1.16.1-debian-10-r63
+
+pullPolicy:
+ type: string
+ description: Specify a imagePullPolicy.'
+
+pullSecrets:
+ type: array
+ items:
+ type: string
+ description: Optionally specify an array of imagePullSecrets (evaluated as templates).
+
+debug:
+ type: boolean
+ description: Set to true if you would like to see extra information on logs
+ example: false
+
+## An instance would be:
+# registry: docker.io
+# repository: bitnami/nginx
+# tag: 1.16.1-debian-10-r63
+# pullPolicy: IfNotPresent
+# debug: false
+```
+
+### Persistence
+
+```yaml
+enabled:
+ type: boolean
+ description: Whether enable persistence.
+ example: true
+
+storageClass:
+ type: string
+ description: Ghost data Persistent Volume Storage Class, If set to "-", storageClassName: "" which disables dynamic provisioning.
+ example: "-"
+
+accessMode:
+ type: string
+ description: Access mode for the Persistent Volume Storage.
+ example: ReadWriteOnce
+
+size:
+ type: string
+ description: Size the Persistent Volume Storage.
+ example: 8Gi
+
+path:
+ type: string
+ description: Path to be persisted.
+ example: /bitnami
+
+## An instance would be:
+# enabled: true
+# storageClass: "-"
+# accessMode: ReadWriteOnce
+# size: 8Gi
+# path: /bitnami
+```
+
+### ExistingSecret
+
+```yaml
+name:
+ type: string
+ description: Name of the existing secret.
+ example: mySecret
+keyMapping:
+ description: Mapping between the expected key name and the name of the key in the existing secret.
+ type: object
+
+## An instance would be:
+# name: mySecret
+# keyMapping:
+# password: myPasswordKey
+```
+
+#### Example of use
+
+When we store sensitive data for a deployment in a secret, some times we want to give to users the possibility of using theirs existing secrets.
+
+```yaml
+# templates/secret.yaml
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "common.names.fullname" . }}
+ labels:
+ app: {{ include "common.names.fullname" . }}
+type: Opaque
+data:
+ password: {{ .Values.password | b64enc | quote }}
+
+# templates/dpl.yaml
+---
+...
+ env:
+ - name: PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.secrets.name" (dict "existingSecret" .Values.existingSecret "context" $) }}
+ key: {{ include "common.secrets.key" (dict "existingSecret" .Values.existingSecret "key" "password") }}
+...
+
+# values.yaml
+---
+name: mySecret
+keyMapping:
+ password: myPasswordKey
+```
+
+### ValidateValue
+
+#### NOTES.txt
+
+```console
+{{- $validateValueConf00 := (dict "valueKey" "path.to.value00" "secret" "secretName" "field" "password-00") -}}
+{{- $validateValueConf01 := (dict "valueKey" "path.to.value01" "secret" "secretName" "field" "password-01") -}}
+
+{{ include "common.validations.values.multiple.empty" (dict "required" (list $validateValueConf00 $validateValueConf01) "context" $) }}
+```
+
+If we force those values to be empty we will see some alerts
+
+```console
+helm install test mychart --set path.to.value00="",path.to.value01=""
+ 'path.to.value00' must not be empty, please add '--set path.to.value00=$PASSWORD_00' to the command. To get the current value:
+
+ export PASSWORD_00=$(kubectl get secret --namespace default secretName -o jsonpath="{.data.password-00}" | base64 -d)
+
+ 'path.to.value01' must not be empty, please add '--set path.to.value01=$PASSWORD_01' to the command. To get the current value:
+
+ export PASSWORD_01=$(kubectl get secret --namespace default secretName -o jsonpath="{.data.password-01}" | base64 -d)
+```
+
+## Upgrading
+
+### To 1.0.0
+
+[On November 13, 2020, Helm v2 support was formally finished](https://github.com/helm/charts#status-of-the-project), this major version is the result of the required changes applied to the Helm Chart to be able to incorporate the different features added in Helm v3 and to be consistent with the Helm project itself regarding the Helm v2 EOL.
+
+#### What changes were introduced in this major version?
+
+- Previous versions of this Helm Chart use `apiVersion: v1` (installable by both Helm 2 and 3), this Helm Chart was updated to `apiVersion: v2` (installable by Helm 3 only). [Here](https://helm.sh/docs/topics/charts/#the-apiversion-field) you can find more information about the `apiVersion` field.
+- Use `type: library`. [Here](https://v3.helm.sh/docs/faq/#library-chart-support) you can find more information.
+- The different fields present in the *Chart.yaml* file has been ordered alphabetically in a homogeneous way for all the Bitnami Helm Charts
+
+#### Considerations when upgrading to this version
+
+- If you want to upgrade to this version from a previous one installed with Helm v3, you shouldn't face any issues
+- If you want to upgrade to this version using Helm v2, this scenario is not supported as this version doesn't support Helm v2 anymore
+- If you installed the previous version with Helm v2 and wants to upgrade to this version with Helm v3, please refer to the [official Helm documentation](https://helm.sh/docs/topics/v2_v3_migration/#migration-use-cases) about migrating from Helm v2 to v3
+
+#### Useful links
+
+- <https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-resolve-helm2-helm3-post-migration-issues-index.html>
+- <https://helm.sh/docs/topics/v2_v3_migration/>
+- <https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/>
+
+## License
+
+Copyright &copy; 2025 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+<http://www.apache.org/licenses/LICENSE-2.0>
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/kubernetes/common/nginx/common/templates/_affinities.tpl b/kubernetes/common/nginx/common/templates/_affinities.tpl
new file mode 100644
index 0000000000..d387dbe632
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_affinities.tpl
@@ -0,0 +1,155 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Return a soft nodeAffinity definition
+{{ include "common.affinities.nodes.soft" (dict "key" "FOO" "values" (list "BAR" "BAZ")) -}}
+*/}}
+{{- define "common.affinities.nodes.soft" -}}
+preferredDuringSchedulingIgnoredDuringExecution:
+ - preference:
+ matchExpressions:
+ - key: {{ .key }}
+ operator: In
+ values:
+ {{- range .values }}
+ - {{ . | quote }}
+ {{- end }}
+ weight: 1
+{{- end -}}
+
+{{/*
+Return a hard nodeAffinity definition
+{{ include "common.affinities.nodes.hard" (dict "key" "FOO" "values" (list "BAR" "BAZ")) -}}
+*/}}
+{{- define "common.affinities.nodes.hard" -}}
+requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: {{ .key }}
+ operator: In
+ values:
+ {{- range .values }}
+ - {{ . | quote }}
+ {{- end }}
+{{- end -}}
+
+{{/*
+Return a nodeAffinity definition
+{{ include "common.affinities.nodes" (dict "type" "soft" "key" "FOO" "values" (list "BAR" "BAZ")) -}}
+*/}}
+{{- define "common.affinities.nodes" -}}
+ {{- if eq .type "soft" }}
+ {{- include "common.affinities.nodes.soft" . -}}
+ {{- else if eq .type "hard" }}
+ {{- include "common.affinities.nodes.hard" . -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Return a topologyKey definition
+{{ include "common.affinities.topologyKey" (dict "topologyKey" "BAR") -}}
+*/}}
+{{- define "common.affinities.topologyKey" -}}
+{{ .topologyKey | default "kubernetes.io/hostname" -}}
+{{- end -}}
+
+{{/*
+Return a soft podAffinity/podAntiAffinity definition
+{{ include "common.affinities.pods.soft" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "extraPodAffinityTerms" .Values.extraPodAffinityTerms "extraNamespaces" (list "namespace1" "namespace2") "context" $) -}}
+*/}}
+{{- define "common.affinities.pods.soft" -}}
+{{- $component := default "" .component -}}
+{{- $customLabels := default (dict) .customLabels -}}
+{{- $extraMatchLabels := default (dict) .extraMatchLabels -}}
+{{- $extraPodAffinityTerms := default (list) .extraPodAffinityTerms -}}
+{{- $extraNamespaces := default (list) .extraNamespaces -}}
+preferredDuringSchedulingIgnoredDuringExecution:
+ - podAffinityTerm:
+ labelSelector:
+ matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" .context )) | nindent 10 }}
+ {{- if not (empty $component) }}
+ {{ printf "app.kubernetes.io/component: %s" $component }}
+ {{- end }}
+ {{- range $key, $value := $extraMatchLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- if $extraNamespaces }}
+ namespaces:
+ - {{ .context.Release.Namespace }}
+ {{- with $extraNamespaces }}
+ {{ include "common.tplvalues.render" (dict "value" . "context" $) | nindent 8 }}
+ {{- end }}
+ {{- end }}
+ topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }}
+ weight: 1
+ {{- range $extraPodAffinityTerms }}
+ - podAffinityTerm:
+ labelSelector:
+ matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" $.context )) | nindent 10 }}
+ {{- if not (empty $component) }}
+ {{ printf "app.kubernetes.io/component: %s" $component }}
+ {{- end }}
+ {{- range $key, $value := .extraMatchLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }}
+ weight: {{ .weight | default 1 -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Return a hard podAffinity/podAntiAffinity definition
+{{ include "common.affinities.pods.hard" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "extraPodAffinityTerms" .Values.extraPodAffinityTerms "extraNamespaces" (list "namespace1" "namespace2") "context" $) -}}
+*/}}
+{{- define "common.affinities.pods.hard" -}}
+{{- $component := default "" .component -}}
+{{- $customLabels := default (dict) .customLabels -}}
+{{- $extraMatchLabels := default (dict) .extraMatchLabels -}}
+{{- $extraPodAffinityTerms := default (list) .extraPodAffinityTerms -}}
+{{- $extraNamespaces := default (list) .extraNamespaces -}}
+requiredDuringSchedulingIgnoredDuringExecution:
+ - labelSelector:
+ matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" .context )) | nindent 8 }}
+ {{- if not (empty $component) }}
+ {{ printf "app.kubernetes.io/component: %s" $component }}
+ {{- end }}
+ {{- range $key, $value := $extraMatchLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- if $extraNamespaces }}
+ namespaces:
+ - {{ .context.Release.Namespace }}
+ {{- with $extraNamespaces }}
+ {{ include "common.tplvalues.render" (dict "value" . "context" $) | nindent 8 }}
+ {{- end }}
+ {{- end }}
+ topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }}
+ {{- range $extraPodAffinityTerms }}
+ - labelSelector:
+ matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" $.context )) | nindent 8 }}
+ {{- if not (empty $component) }}
+ {{ printf "app.kubernetes.io/component: %s" $component }}
+ {{- end }}
+ {{- range $key, $value := .extraMatchLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Return a podAffinity/podAntiAffinity definition
+{{ include "common.affinities.pods" (dict "type" "soft" "key" "FOO" "values" (list "BAR" "BAZ")) -}}
+*/}}
+{{- define "common.affinities.pods" -}}
+ {{- if eq .type "soft" }}
+ {{- include "common.affinities.pods.soft" . -}}
+ {{- else if eq .type "hard" }}
+ {{- include "common.affinities.pods.hard" . -}}
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_capabilities.tpl b/kubernetes/common/nginx/common/templates/_capabilities.tpl
new file mode 100644
index 0000000000..7738f73367
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_capabilities.tpl
@@ -0,0 +1,239 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Return the target Kubernetes version
+*/}}
+{{- define "common.capabilities.kubeVersion" -}}
+{{- default (default .Capabilities.KubeVersion.Version .Values.kubeVersion) ((.Values.global).kubeVersion) -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for poddisruptionbudget.
+*/}}
+{{- define "common.capabilities.policy.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.21-0" $kubeVersion) -}}
+{{- print "policy/v1beta1" -}}
+{{- else -}}
+{{- print "policy/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for networkpolicy.
+*/}}
+{{- define "common.capabilities.networkPolicy.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.7-0" $kubeVersion) -}}
+{{- print "extensions/v1beta1" -}}
+{{- else -}}
+{{- print "networking.k8s.io/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for job.
+*/}}
+{{- define "common.capabilities.job.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.21-0" $kubeVersion) -}}
+{{- print "batch/v1beta1" -}}
+{{- else -}}
+{{- print "batch/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for cronjob.
+*/}}
+{{- define "common.capabilities.cronjob.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.21-0" $kubeVersion) -}}
+{{- print "batch/v1beta1" -}}
+{{- else -}}
+{{- print "batch/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for daemonset.
+*/}}
+{{- define "common.capabilities.daemonset.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.14-0" $kubeVersion) -}}
+{{- print "extensions/v1beta1" -}}
+{{- else -}}
+{{- print "apps/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for deployment.
+*/}}
+{{- define "common.capabilities.deployment.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.14-0" $kubeVersion) -}}
+{{- print "extensions/v1beta1" -}}
+{{- else -}}
+{{- print "apps/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for statefulset.
+*/}}
+{{- define "common.capabilities.statefulset.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.14-0" $kubeVersion) -}}
+{{- print "apps/v1beta1" -}}
+{{- else -}}
+{{- print "apps/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for ingress.
+*/}}
+{{- define "common.capabilities.ingress.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if (.Values.ingress).apiVersion -}}
+{{- .Values.ingress.apiVersion -}}
+{{- else if and (not (empty $kubeVersion)) (semverCompare "<1.14-0" $kubeVersion) -}}
+{{- print "extensions/v1beta1" -}}
+{{- else if and (not (empty $kubeVersion)) (semverCompare "<1.19-0" $kubeVersion) -}}
+{{- print "networking.k8s.io/v1beta1" -}}
+{{- else -}}
+{{- print "networking.k8s.io/v1" -}}
+{{- end }}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for RBAC resources.
+*/}}
+{{- define "common.capabilities.rbac.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.17-0" $kubeVersion) -}}
+{{- print "rbac.authorization.k8s.io/v1beta1" -}}
+{{- else -}}
+{{- print "rbac.authorization.k8s.io/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for CRDs.
+*/}}
+{{- define "common.capabilities.crd.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.19-0" $kubeVersion) -}}
+{{- print "apiextensions.k8s.io/v1beta1" -}}
+{{- else -}}
+{{- print "apiextensions.k8s.io/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for APIService.
+*/}}
+{{- define "common.capabilities.apiService.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.10-0" $kubeVersion) -}}
+{{- print "apiregistration.k8s.io/v1beta1" -}}
+{{- else -}}
+{{- print "apiregistration.k8s.io/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for Horizontal Pod Autoscaler.
+*/}}
+{{- define "common.capabilities.hpa.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" .context -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.23-0" $kubeVersion) -}}
+{{- if .beta2 -}}
+{{- print "autoscaling/v2beta2" -}}
+{{- else -}}
+{{- print "autoscaling/v2beta1" -}}
+{{- end -}}
+{{- else -}}
+{{- print "autoscaling/v2" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for Vertical Pod Autoscaler.
+*/}}
+{{- define "common.capabilities.vpa.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" .context -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.11-0" $kubeVersion) -}}
+{{- print "autoscaling/v1beta1" -}}
+{{- else if and (not (empty $kubeVersion)) (semverCompare "<1.25-0" $kubeVersion) -}}
+{{- print "autoscaling/v1beta2" -}}
+{{- else -}}
+{{- print "autoscaling/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Returns true if PodSecurityPolicy is supported
+*/}}
+{{- define "common.capabilities.psp.supported" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if or (empty $kubeVersion) (semverCompare "<1.25-0" $kubeVersion) -}}
+ {{- true -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Returns true if AdmissionConfiguration is supported
+*/}}
+{{- define "common.capabilities.admissionConfiguration.supported" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if or (empty $kubeVersion) (not (semverCompare "<1.23-0" $kubeVersion)) -}}
+ {{- true -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for AdmissionConfiguration.
+*/}}
+{{- define "common.capabilities.admissionConfiguration.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.23-0" $kubeVersion) -}}
+{{- print "apiserver.config.k8s.io/v1alpha1" -}}
+{{- else if and (not (empty $kubeVersion)) (semverCompare "<1.25-0" $kubeVersion) -}}
+{{- print "apiserver.config.k8s.io/v1beta1" -}}
+{{- else -}}
+{{- print "apiserver.config.k8s.io/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the appropriate apiVersion for PodSecurityConfiguration.
+*/}}
+{{- define "common.capabilities.podSecurityConfiguration.apiVersion" -}}
+{{- $kubeVersion := include "common.capabilities.kubeVersion" . -}}
+{{- if and (not (empty $kubeVersion)) (semverCompare "<1.23-0" $kubeVersion) -}}
+{{- print "pod-security.admission.config.k8s.io/v1alpha1" -}}
+{{- else if and (not (empty $kubeVersion)) (semverCompare "<1.25-0" $kubeVersion) -}}
+{{- print "pod-security.admission.config.k8s.io/v1beta1" -}}
+{{- else -}}
+{{- print "pod-security.admission.config.k8s.io/v1" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Returns true if the used Helm version is 3.3+.
+A way to check the used Helm version was not introduced until version 3.3.0 with .Capabilities.HelmVersion, which contains an additional "{}}" structure.
+This check is introduced as a regexMatch instead of {{ if .Capabilities.HelmVersion }} because checking for the key HelmVersion in <3.3 results in a "interface not found" error.
+**To be removed when the catalog's minimun Helm version is 3.3**
+*/}}
+{{- define "common.capabilities.supportsHelmVersion" -}}
+{{- if regexMatch "{(v[0-9])*[^}]*}}$" (.Capabilities | toString ) }}
+ {{- true -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_compatibility.tpl b/kubernetes/common/nginx/common/templates/_compatibility.tpl
new file mode 100644
index 0000000000..87343ca38f
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_compatibility.tpl
@@ -0,0 +1,46 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Return true if the detected platform is Openshift
+Usage:
+{{- include "common.compatibility.isOpenshift" . -}}
+*/}}
+{{- define "common.compatibility.isOpenshift" -}}
+{{- if .Capabilities.APIVersions.Has "security.openshift.io/v1" -}}
+{{- true -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Render a compatible securityContext depending on the platform. By default it is maintained as it is. In other platforms like Openshift we remove default user/group values that do not work out of the box with the restricted-v1 SCC
+Usage:
+{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) -}}
+*/}}
+{{- define "common.compatibility.renderSecurityContext" -}}
+{{- $adaptedContext := .secContext -}}
+
+{{- if (((.context.Values.global).compatibility).openshift) -}}
+ {{- if or (eq .context.Values.global.compatibility.openshift.adaptSecurityContext "force") (and (eq .context.Values.global.compatibility.openshift.adaptSecurityContext "auto") (include "common.compatibility.isOpenshift" .context)) -}}
+ {{/* Remove incompatible user/group values that do not work in Openshift out of the box */}}
+ {{- $adaptedContext = omit $adaptedContext "fsGroup" "runAsUser" "runAsGroup" -}}
+ {{- if not .secContext.seLinuxOptions -}}
+ {{/* If it is an empty object, we remove it from the resulting context because it causes validation issues */}}
+ {{- $adaptedContext = omit $adaptedContext "seLinuxOptions" -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+{{/* Remove empty seLinuxOptions object if global.compatibility.omitEmptySeLinuxOptions is set to true */}}
+{{- if and (((.context.Values.global).compatibility).omitEmptySeLinuxOptions) (not .secContext.seLinuxOptions) -}}
+ {{- $adaptedContext = omit $adaptedContext "seLinuxOptions" -}}
+{{- end -}}
+{{/* Remove fields that are disregarded when running the container in privileged mode */}}
+{{- if $adaptedContext.privileged -}}
+ {{- $adaptedContext = omit $adaptedContext "capabilities" -}}
+{{- end -}}
+{{- omit $adaptedContext "enabled" | toYaml -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_errors.tpl b/kubernetes/common/nginx/common/templates/_errors.tpl
new file mode 100644
index 0000000000..93f3ffc9be
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_errors.tpl
@@ -0,0 +1,85 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Throw error when upgrading using empty passwords values that must not be empty.
+
+Usage:
+{{- $validationError00 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password00" "secret" "secretName" "field" "password-00") -}}
+{{- $validationError01 := include "common.validations.values.single.empty" (dict "valueKey" "path.to.password01" "secret" "secretName" "field" "password-01") -}}
+{{ include "common.errors.upgrade.passwords.empty" (dict "validationErrors" (list $validationError00 $validationError01) "context" $) }}
+
+Required password params:
+ - validationErrors - String - Required. List of validation strings to be return, if it is empty it won't throw error.
+ - context - Context - Required. Parent context.
+*/}}
+{{- define "common.errors.upgrade.passwords.empty" -}}
+ {{- $validationErrors := join "" .validationErrors -}}
+ {{- if and $validationErrors .context.Release.IsUpgrade -}}
+ {{- $errorString := "\nPASSWORDS ERROR: You must provide your current passwords when upgrading the release." -}}
+ {{- $errorString = print $errorString "\n Note that even after reinstallation, old credentials may be needed as they may be kept in persistent volume claims." -}}
+ {{- $errorString = print $errorString "\n Further information can be obtained at https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues/#credential-errors-while-upgrading-chart-releases" -}}
+ {{- $errorString = print $errorString "\n%s" -}}
+ {{- printf $errorString $validationErrors | fail -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Throw error when original container images are replaced.
+The error can be bypassed by setting the "global.security.allowInsecureImages" to true. In this case,
+a warning message will be shown instead.
+
+Usage:
+{{ include "common.errors.insecureImages" (dict "images" (list .Values.path.to.the.imageRoot) "context" $) }}
+*/}}
+{{- define "common.errors.insecureImages" -}}
+{{- $relocatedImages := list -}}
+{{- $replacedImages := list -}}
+{{- $retaggedImages := list -}}
+{{- $globalRegistry := ((.context.Values.global).imageRegistry) -}}
+{{- $originalImages := .context.Chart.Annotations.images -}}
+{{- range .images -}}
+ {{- $registryName := default .registry $globalRegistry -}}
+ {{- $fullImageNameNoTag := printf "%s/%s" $registryName .repository -}}
+ {{- $fullImageName := printf "%s:%s" $fullImageNameNoTag .tag -}}
+ {{- if not (contains $fullImageNameNoTag $originalImages) -}}
+ {{- if not (contains $registryName $originalImages) -}}
+ {{- $relocatedImages = append $relocatedImages $fullImageName -}}
+ {{- else if not (contains .repository $originalImages) -}}
+ {{- $replacedImages = append $replacedImages $fullImageName -}}
+ {{- end -}}
+ {{- end -}}
+ {{- if not (contains (printf "%s:%s" .repository .tag) $originalImages) -}}
+ {{- $retaggedImages = append $retaggedImages $fullImageName -}}
+ {{- end -}}
+{{- end -}}
+
+{{- if and (or (gt (len $relocatedImages) 0) (gt (len $replacedImages) 0)) (((.context.Values.global).security).allowInsecureImages) -}}
+ {{- print "\n\nâš  SECURITY WARNING: Verifying original container images was skipped. Please note this Helm chart was designed, tested, and validated on multiple platforms using a specific set of Bitnami and Tanzu Application Catalog containers. Substituting other containers is likely to cause degraded security and performance, broken chart features, and missing environment variables.\n" -}}
+{{- else if (or (gt (len $relocatedImages) 0) (gt (len $replacedImages) 0)) -}}
+ {{- $errorString := "Original containers have been substituted for unrecognized ones. Deploying this chart with non-standard containers is likely to cause degraded security and performance, broken chart features, and missing environment variables." -}}
+ {{- $errorString = print $errorString "\n\nUnrecognized images:" -}}
+ {{- range (concat $relocatedImages $replacedImages) -}}
+ {{- $errorString = print $errorString "\n - " . -}}
+ {{- end -}}
+ {{- if or (contains "docker.io/bitnami/" $originalImages) (contains "docker.io/bitnamiprem/" $originalImages) -}}
+ {{- $errorString = print "\n\nâš  ERROR: " $errorString -}}
+ {{- $errorString = print $errorString "\n\nIf you are sure you want to proceed with non-standard containers, you can skip container image verification by setting the global parameter 'global.security.allowInsecureImages' to true." -}}
+ {{- $errorString = print $errorString "\nFurther information can be obtained at https://github.com/bitnami/charts/issues/30850" -}}
+ {{- print $errorString | fail -}}
+ {{- else if gt (len $replacedImages) 0 -}}
+ {{- $errorString = print "\n\nâš  WARNING: " $errorString -}}
+ {{- print $errorString -}}
+ {{- end -}}
+{{- else if gt (len $retaggedImages) 0 -}}
+ {{- $warnString := "\n\nâš  WARNING: Original containers have been retagged. Please note this Helm chart was tested, and validated on multiple platforms using a specific set of Tanzu Application Catalog containers. Substituting original image tags could cause unexpected behavior." -}}
+ {{- $warnString = print $warnString "\n\nRetagged images:" -}}
+ {{- range $retaggedImages -}}
+ {{- $warnString = print $warnString "\n - " . -}}
+ {{- end -}}
+ {{- print $warnString -}}
+{{- end -}}
+{{- end -}} \ No newline at end of file
diff --git a/kubernetes/common/nginx/common/templates/_images.tpl b/kubernetes/common/nginx/common/templates/_images.tpl
new file mode 100644
index 0000000000..76bb7ce447
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_images.tpl
@@ -0,0 +1,115 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Return the proper image name.
+If image tag and digest are not defined, termination fallbacks to chart appVersion.
+{{ include "common.images.image" ( dict "imageRoot" .Values.path.to.the.image "global" .Values.global "chart" .Chart ) }}
+*/}}
+{{- define "common.images.image" -}}
+{{- $registryName := default .imageRoot.registry ((.global).imageRegistry) -}}
+{{- $repositoryName := .imageRoot.repository -}}
+{{- $separator := ":" -}}
+{{- $termination := .imageRoot.tag | toString -}}
+
+{{- if not .imageRoot.tag }}
+ {{- if .chart }}
+ {{- $termination = .chart.AppVersion | toString -}}
+ {{- end -}}
+{{- end -}}
+{{- if .imageRoot.digest }}
+ {{- $separator = "@" -}}
+ {{- $termination = .imageRoot.digest | toString -}}
+{{- end -}}
+{{- if $registryName }}
+ {{- printf "%s/%s%s%s" $registryName $repositoryName $separator $termination -}}
+{{- else -}}
+ {{- printf "%s%s%s" $repositoryName $separator $termination -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the proper Docker Image Registry Secret Names (deprecated: use common.images.renderPullSecrets instead)
+{{ include "common.images.pullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global) }}
+*/}}
+{{- define "common.images.pullSecrets" -}}
+ {{- $pullSecrets := list }}
+
+ {{- range ((.global).imagePullSecrets) -}}
+ {{- if kindIs "map" . -}}
+ {{- $pullSecrets = append $pullSecrets .name -}}
+ {{- else -}}
+ {{- $pullSecrets = append $pullSecrets . -}}
+ {{- end }}
+ {{- end -}}
+
+ {{- range .images -}}
+ {{- range .pullSecrets -}}
+ {{- if kindIs "map" . -}}
+ {{- $pullSecrets = append $pullSecrets .name -}}
+ {{- else -}}
+ {{- $pullSecrets = append $pullSecrets . -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{- if (not (empty $pullSecrets)) -}}
+imagePullSecrets:
+ {{- range $pullSecrets | uniq }}
+ - name: {{ . }}
+ {{- end }}
+ {{- end }}
+{{- end -}}
+
+{{/*
+Return the proper Docker Image Registry Secret Names evaluating values as templates
+{{ include "common.images.renderPullSecrets" ( dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "context" $) }}
+*/}}
+{{- define "common.images.renderPullSecrets" -}}
+ {{- $pullSecrets := list }}
+ {{- $context := .context }}
+
+ {{- range (($context.Values.global).imagePullSecrets) -}}
+ {{- if kindIs "map" . -}}
+ {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" .name "context" $context)) -}}
+ {{- else -}}
+ {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" . "context" $context)) -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{- range .images -}}
+ {{- range .pullSecrets -}}
+ {{- if kindIs "map" . -}}
+ {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" .name "context" $context)) -}}
+ {{- else -}}
+ {{- $pullSecrets = append $pullSecrets (include "common.tplvalues.render" (dict "value" . "context" $context)) -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{- if (not (empty $pullSecrets)) -}}
+imagePullSecrets:
+ {{- range $pullSecrets | uniq }}
+ - name: {{ . }}
+ {{- end }}
+ {{- end }}
+{{- end -}}
+
+{{/*
+Return the proper image version (ingores image revision/prerelease info & fallbacks to chart appVersion)
+{{ include "common.images.version" ( dict "imageRoot" .Values.path.to.the.image "chart" .Chart ) }}
+*/}}
+{{- define "common.images.version" -}}
+{{- $imageTag := .imageRoot.tag | toString -}}
+{{/* regexp from https://github.com/Masterminds/semver/blob/23f51de38a0866c5ef0bfc42b3f735c73107b700/version.go#L41-L44 */}}
+{{- if regexMatch `^([0-9]+)(\.[0-9]+)?(\.[0-9]+)?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?$` $imageTag -}}
+ {{- $version := semver $imageTag -}}
+ {{- printf "%d.%d.%d" $version.Major $version.Minor $version.Patch -}}
+{{- else -}}
+ {{- print .chart.AppVersion -}}
+{{- end -}}
+{{- end -}}
+
diff --git a/kubernetes/common/nginx/common/templates/_ingress.tpl b/kubernetes/common/nginx/common/templates/_ingress.tpl
new file mode 100644
index 0000000000..7d2b87985c
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_ingress.tpl
@@ -0,0 +1,73 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Generate backend entry that is compatible with all Kubernetes API versions.
+
+Usage:
+{{ include "common.ingress.backend" (dict "serviceName" "backendName" "servicePort" "backendPort" "context" $) }}
+
+Params:
+ - serviceName - String. Name of an existing service backend
+ - servicePort - String/Int. Port name (or number) of the service. It will be translated to different yaml depending if it is a string or an integer.
+ - context - Dict - Required. The context for the template evaluation.
+*/}}
+{{- define "common.ingress.backend" -}}
+{{- $apiVersion := (include "common.capabilities.ingress.apiVersion" .context) -}}
+{{- if or (eq $apiVersion "extensions/v1beta1") (eq $apiVersion "networking.k8s.io/v1beta1") -}}
+serviceName: {{ .serviceName }}
+servicePort: {{ .servicePort }}
+{{- else -}}
+service:
+ name: {{ .serviceName }}
+ port:
+ {{- if typeIs "string" .servicePort }}
+ name: {{ .servicePort }}
+ {{- else if or (typeIs "int" .servicePort) (typeIs "float64" .servicePort) }}
+ number: {{ .servicePort | int }}
+ {{- end }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Print "true" if the API pathType field is supported
+Usage:
+{{ include "common.ingress.supportsPathType" . }}
+*/}}
+{{- define "common.ingress.supportsPathType" -}}
+{{- if (semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .)) -}}
+{{- print "false" -}}
+{{- else -}}
+{{- print "true" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Returns true if the ingressClassname field is supported
+Usage:
+{{ include "common.ingress.supportsIngressClassname" . }}
+*/}}
+{{- define "common.ingress.supportsIngressClassname" -}}
+{{- if semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .) -}}
+{{- print "false" -}}
+{{- else -}}
+{{- print "true" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return true if cert-manager required annotations for TLS signed
+certificates are set in the Ingress annotations
+Ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
+Usage:
+{{ include "common.ingress.certManagerRequest" ( dict "annotations" .Values.path.to.the.ingress.annotations ) }}
+*/}}
+{{- define "common.ingress.certManagerRequest" -}}
+{{ if or (hasKey .annotations "cert-manager.io/cluster-issuer") (hasKey .annotations "cert-manager.io/issuer") (hasKey .annotations "kubernetes.io/tls-acme") }}
+ {{- true -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_labels.tpl b/kubernetes/common/nginx/common/templates/_labels.tpl
new file mode 100644
index 0000000000..0a0cc5488f
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_labels.tpl
@@ -0,0 +1,46 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Kubernetes standard labels
+{{ include "common.labels.standard" (dict "customLabels" .Values.commonLabels "context" $) -}}
+*/}}
+{{- define "common.labels.standard" -}}
+{{- if and (hasKey . "customLabels") (hasKey . "context") -}}
+{{- $default := dict "app.kubernetes.io/name" (include "common.names.name" .context) "helm.sh/chart" (include "common.names.chart" .context) "app.kubernetes.io/instance" .context.Release.Name "app.kubernetes.io/managed-by" .context.Release.Service -}}
+{{- with .context.Chart.AppVersion -}}
+{{- $_ := set $default "app.kubernetes.io/version" . -}}
+{{- end -}}
+{{ template "common.tplvalues.merge" (dict "values" (list .customLabels $default) "context" .context) }}
+{{- else -}}
+app.kubernetes.io/name: {{ include "common.names.name" . }}
+helm.sh/chart: {{ include "common.names.chart" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- with .Chart.AppVersion }}
+app.kubernetes.io/version: {{ . | quote }}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Labels used on immutable fields such as deploy.spec.selector.matchLabels or svc.spec.selector
+{{ include "common.labels.matchLabels" (dict "customLabels" .Values.podLabels "context" $) -}}
+
+We don't want to loop over custom labels appending them to the selector
+since it's very likely that it will break deployments, services, etc.
+However, it's important to overwrite the standard labels if the user
+overwrote them on metadata.labels fields.
+*/}}
+{{- define "common.labels.matchLabels" -}}
+{{- if and (hasKey . "customLabels") (hasKey . "context") -}}
+{{ merge (pick (include "common.tplvalues.render" (dict "value" .customLabels "context" .context) | fromYaml) "app.kubernetes.io/name" "app.kubernetes.io/instance") (dict "app.kubernetes.io/name" (include "common.names.name" .context) "app.kubernetes.io/instance" .context.Release.Name ) | toYaml }}
+{{- else -}}
+app.kubernetes.io/name: {{ include "common.names.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_names.tpl b/kubernetes/common/nginx/common/templates/_names.tpl
new file mode 100644
index 0000000000..ba83956852
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_names.tpl
@@ -0,0 +1,71 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "common.names.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "common.names.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "common.names.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified dependency name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+Usage:
+{{ include "common.names.dependency.fullname" (dict "chartName" "dependency-chart-name" "chartValues" .Values.dependency-chart "context" $) }}
+*/}}
+{{- define "common.names.dependency.fullname" -}}
+{{- if .chartValues.fullnameOverride -}}
+{{- .chartValues.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .chartName .chartValues.nameOverride -}}
+{{- if contains $name .context.Release.Name -}}
+{{- .context.Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .context.Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Allow the release namespace to be overridden for multi-namespace deployments in combined charts.
+*/}}
+{{- define "common.names.namespace" -}}
+{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a fully qualified app name adding the installation's namespace.
+*/}}
+{{- define "common.names.fullname.namespace" -}}
+{{- printf "%s-%s" (include "common.names.fullname" .) (include "common.names.namespace" .) | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_resources.tpl b/kubernetes/common/nginx/common/templates/_resources.tpl
new file mode 100644
index 0000000000..2aaf5750d4
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_resources.tpl
@@ -0,0 +1,50 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Return a resource request/limit object based on a given preset.
+These presets are for basic testing and not meant to be used in production
+{{ include "common.resources.preset" (dict "type" "nano") -}}
+*/}}
+{{- define "common.resources.preset" -}}
+{{/* The limits are the requests increased by 50% (except ephemeral-storage and xlarge/2xlarge sizes)*/}}
+{{- $presets := dict
+ "nano" (dict
+ "requests" (dict "cpu" "100m" "memory" "128Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "150m" "memory" "192Mi" "ephemeral-storage" "2Gi")
+ )
+ "micro" (dict
+ "requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "375m" "memory" "384Mi" "ephemeral-storage" "2Gi")
+ )
+ "small" (dict
+ "requests" (dict "cpu" "500m" "memory" "512Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "750m" "memory" "768Mi" "ephemeral-storage" "2Gi")
+ )
+ "medium" (dict
+ "requests" (dict "cpu" "500m" "memory" "1024Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "750m" "memory" "1536Mi" "ephemeral-storage" "2Gi")
+ )
+ "large" (dict
+ "requests" (dict "cpu" "1.0" "memory" "2048Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "1.5" "memory" "3072Mi" "ephemeral-storage" "2Gi")
+ )
+ "xlarge" (dict
+ "requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "3.0" "memory" "6144Mi" "ephemeral-storage" "2Gi")
+ )
+ "2xlarge" (dict
+ "requests" (dict "cpu" "1.0" "memory" "3072Mi" "ephemeral-storage" "50Mi")
+ "limits" (dict "cpu" "6.0" "memory" "12288Mi" "ephemeral-storage" "2Gi")
+ )
+ }}
+{{- if hasKey $presets .type -}}
+{{- index $presets .type | toYaml -}}
+{{- else -}}
+{{- printf "ERROR: Preset key '%s' invalid. Allowed values are %s" .type (join "," (keys $presets)) | fail -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_secrets.tpl b/kubernetes/common/nginx/common/templates/_secrets.tpl
new file mode 100644
index 0000000000..bfef46978d
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_secrets.tpl
@@ -0,0 +1,192 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Generate secret name.
+
+Usage:
+{{ include "common.secrets.name" (dict "existingSecret" .Values.path.to.the.existingSecret "defaultNameSuffix" "mySuffix" "context" $) }}
+
+Params:
+ - existingSecret - ExistingSecret/String - Optional. The path to the existing secrets in the values.yaml given by the user
+ to be used instead of the default one. Allows for it to be of type String (just the secret name) for backwards compatibility.
+ +info: https://github.com/bitnami/charts/tree/main/bitnami/common#existingsecret
+ - defaultNameSuffix - String - Optional. It is used only if we have several secrets in the same deployment.
+ - context - Dict - Required. The context for the template evaluation.
+*/}}
+{{- define "common.secrets.name" -}}
+{{- $name := (include "common.names.fullname" .context) -}}
+
+{{- if .defaultNameSuffix -}}
+{{- $name = printf "%s-%s" $name .defaultNameSuffix | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{- with .existingSecret -}}
+{{- if not (typeIs "string" .) -}}
+{{- with .name -}}
+{{- $name = . -}}
+{{- end -}}
+{{- else -}}
+{{- $name = . -}}
+{{- end -}}
+{{- end -}}
+
+{{- printf "%s" $name -}}
+{{- end -}}
+
+{{/*
+Generate secret key.
+
+Usage:
+{{ include "common.secrets.key" (dict "existingSecret" .Values.path.to.the.existingSecret "key" "keyName") }}
+
+Params:
+ - existingSecret - ExistingSecret/String - Optional. The path to the existing secrets in the values.yaml given by the user
+ to be used instead of the default one. Allows for it to be of type String (just the secret name) for backwards compatibility.
+ +info: https://github.com/bitnami/charts/tree/main/bitnami/common#existingsecret
+ - key - String - Required. Name of the key in the secret.
+*/}}
+{{- define "common.secrets.key" -}}
+{{- $key := .key -}}
+
+{{- if .existingSecret -}}
+ {{- if not (typeIs "string" .existingSecret) -}}
+ {{- if .existingSecret.keyMapping -}}
+ {{- $key = index .existingSecret.keyMapping $.key -}}
+ {{- end -}}
+ {{- end }}
+{{- end -}}
+
+{{- printf "%s" $key -}}
+{{- end -}}
+
+{{/*
+Generate secret password or retrieve one if already created.
+
+Usage:
+{{ include "common.secrets.passwords.manage" (dict "secret" "secret-name" "key" "keyName" "providedValues" (list "path.to.password1" "path.to.password2") "length" 10 "strong" false "chartName" "chartName" "honorProvidedValues" false "context" $) }}
+
+Params:
+ - secret - String - Required - Name of the 'Secret' resource where the password is stored.
+ - key - String - Required - Name of the key in the secret.
+ - providedValues - List<String> - Required - The path to the validating value in the values.yaml, e.g: "mysql.password". Will pick first parameter with a defined value.
+ - length - int - Optional - Length of the generated random password.
+ - strong - Boolean - Optional - Whether to add symbols to the generated random password.
+ - chartName - String - Optional - Name of the chart used when said chart is deployed as a subchart.
+ - context - Context - Required - Parent context.
+ - failOnNew - Boolean - Optional - Default to true. If set to false, skip errors adding new keys to existing secrets.
+ - skipB64enc - Boolean - Optional - Default to false. If set to true, no the secret will not be base64 encrypted.
+ - skipQuote - Boolean - Optional - Default to false. If set to true, no quotes will be added around the secret.
+ - honorProvidedValues - Boolean - Optional - Default to false. If set to true, the values in providedValues have higher priority than an existing secret
+The order in which this function returns a secret password:
+ 1. Password provided via the values.yaml if honorProvidedValues = true
+ (If one of the keys passed to the 'providedValues' parameter to this function is a valid path to a key in the values.yaml and has a value, the value of the first key with a value will be returned)
+ 2. Already existing 'Secret' resource
+ (If a 'Secret' resource is found under the name provided to the 'secret' parameter to this function and that 'Secret' resource contains a key with the name passed as the 'key' parameter to this function then the value of this existing secret password will be returned)
+ 3. Password provided via the values.yaml if honorProvidedValues = false
+ (If one of the keys passed to the 'providedValues' parameter to this function is a valid path to a key in the values.yaml and has a value, the value of the first key with a value will be returned)
+ 4. Randomly generated secret password
+ (A new random secret password with the length specified in the 'length' parameter will be generated and returned)
+
+*/}}
+{{- define "common.secrets.passwords.manage" -}}
+
+{{- $password := "" }}
+{{- $subchart := "" }}
+{{- $chartName := default "" .chartName }}
+{{- $passwordLength := default 10 .length }}
+{{- $providedPasswordKey := include "common.utils.getKeyFromList" (dict "keys" .providedValues "context" $.context) }}
+{{- $providedPasswordValue := include "common.utils.getValueFromKey" (dict "key" $providedPasswordKey "context" $.context) }}
+{{- $secretData := (lookup "v1" "Secret" (include "common.names.namespace" .context) .secret).data }}
+{{- if $secretData }}
+ {{- if hasKey $secretData .key }}
+ {{- $password = index $secretData .key | b64dec }}
+ {{- else if not (eq .failOnNew false) }}
+ {{- printf "\nPASSWORDS ERROR: The secret \"%s\" does not contain the key \"%s\"\n" .secret .key | fail -}}
+ {{- end -}}
+{{- end }}
+
+{{- if and $providedPasswordValue .honorProvidedValues }}
+ {{- $password = $providedPasswordValue | toString }}
+{{- end }}
+
+{{- if not $password }}
+ {{- if $providedPasswordValue }}
+ {{- $password = $providedPasswordValue | toString }}
+ {{- else }}
+ {{- if .context.Values.enabled }}
+ {{- $subchart = $chartName }}
+ {{- end -}}
+
+ {{- if not (eq .failOnNew false) }}
+ {{- $requiredPassword := dict "valueKey" $providedPasswordKey "secret" .secret "field" .key "subchart" $subchart "context" $.context -}}
+ {{- $requiredPasswordError := include "common.validations.values.single.empty" $requiredPassword -}}
+ {{- $passwordValidationErrors := list $requiredPasswordError -}}
+ {{- include "common.errors.upgrade.passwords.empty" (dict "validationErrors" $passwordValidationErrors "context" $.context) -}}
+ {{- end }}
+
+ {{- if .strong }}
+ {{- $subStr := list (lower (randAlpha 1)) (randNumeric 1) (upper (randAlpha 1)) | join "_" }}
+ {{- $password = randAscii $passwordLength }}
+ {{- $password = regexReplaceAllLiteral "\\W" $password "@" | substr 5 $passwordLength }}
+ {{- $password = printf "%s%s" $subStr $password | toString | shuffle }}
+ {{- else }}
+ {{- $password = randAlphaNum $passwordLength }}
+ {{- end }}
+ {{- end -}}
+{{- end -}}
+{{- if not .skipB64enc }}
+{{- $password = $password | b64enc }}
+{{- end -}}
+{{- if .skipQuote -}}
+{{- printf "%s" $password -}}
+{{- else -}}
+{{- printf "%s" $password | quote -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Reuses the value from an existing secret, otherwise sets its value to a default value.
+
+Usage:
+{{ include "common.secrets.lookup" (dict "secret" "secret-name" "key" "keyName" "defaultValue" .Values.myValue "context" $) }}
+
+Params:
+ - secret - String - Required - Name of the 'Secret' resource where the password is stored.
+ - key - String - Required - Name of the key in the secret.
+ - defaultValue - String - Required - The path to the validating value in the values.yaml, e.g: "mysql.password". Will pick first parameter with a defined value.
+ - context - Context - Required - Parent context.
+
+*/}}
+{{- define "common.secrets.lookup" -}}
+{{- $value := "" -}}
+{{- $secretData := (lookup "v1" "Secret" (include "common.names.namespace" .context) .secret).data -}}
+{{- if and $secretData (hasKey $secretData .key) -}}
+ {{- $value = index $secretData .key -}}
+{{- else if .defaultValue -}}
+ {{- $value = .defaultValue | toString | b64enc -}}
+{{- end -}}
+{{- if $value -}}
+{{- printf "%s" $value -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Returns whether a previous generated secret already exists
+
+Usage:
+{{ include "common.secrets.exists" (dict "secret" "secret-name" "context" $) }}
+
+Params:
+ - secret - String - Required - Name of the 'Secret' resource where the password is stored.
+ - context - Context - Required - Parent context.
+*/}}
+{{- define "common.secrets.exists" -}}
+{{- $secret := (lookup "v1" "Secret" (include "common.names.namespace" .context) .secret) }}
+{{- if $secret }}
+ {{- true -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_storage.tpl b/kubernetes/common/nginx/common/templates/_storage.tpl
new file mode 100644
index 0000000000..aa75856c07
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_storage.tpl
@@ -0,0 +1,21 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/*
+Return the proper Storage Class
+{{ include "common.storage.class" ( dict "persistence" .Values.path.to.the.persistence "global" $) }}
+*/}}
+{{- define "common.storage.class" -}}
+{{- $storageClass := (.global).storageClass | default .persistence.storageClass | default (.global).defaultStorageClass | default "" -}}
+{{- if $storageClass -}}
+ {{- if (eq "-" $storageClass) -}}
+ {{- printf "storageClassName: \"\"" -}}
+ {{- else -}}
+ {{- printf "storageClassName: %s" $storageClass -}}
+ {{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_tplvalues.tpl b/kubernetes/common/nginx/common/templates/_tplvalues.tpl
new file mode 100644
index 0000000000..a04f4c1eb3
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_tplvalues.tpl
@@ -0,0 +1,52 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Renders a value that contains template perhaps with scope if the scope is present.
+Usage:
+{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $ ) }}
+{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $ "scope" $app ) }}
+*/}}
+{{- define "common.tplvalues.render" -}}
+{{- $value := typeIs "string" .value | ternary .value (.value | toYaml) }}
+{{- if contains "{{" (toJson .value) }}
+ {{- if .scope }}
+ {{- tpl (cat "{{- with $.RelativeScope -}}" $value "{{- end }}") (merge (dict "RelativeScope" .scope) .context) }}
+ {{- else }}
+ {{- tpl $value .context }}
+ {{- end }}
+{{- else }}
+ {{- $value }}
+{{- end }}
+{{- end -}}
+
+{{/*
+Merge a list of values that contains template after rendering them.
+Merge precedence is consistent with http://masterminds.github.io/sprig/dicts.html#merge-mustmerge
+Usage:
+{{ include "common.tplvalues.merge" ( dict "values" (list .Values.path.to.the.Value1 .Values.path.to.the.Value2) "context" $ ) }}
+*/}}
+{{- define "common.tplvalues.merge" -}}
+{{- $dst := dict -}}
+{{- range .values -}}
+{{- $dst = include "common.tplvalues.render" (dict "value" . "context" $.context "scope" $.scope) | fromYaml | merge $dst -}}
+{{- end -}}
+{{ $dst | toYaml }}
+{{- end -}}
+
+{{/*
+Merge a list of values that contains template after rendering them.
+Merge precedence is consistent with https://masterminds.github.io/sprig/dicts.html#mergeoverwrite-mustmergeoverwrite
+Usage:
+{{ include "common.tplvalues.merge-overwrite" ( dict "values" (list .Values.path.to.the.Value1 .Values.path.to.the.Value2) "context" $ ) }}
+*/}}
+{{- define "common.tplvalues.merge-overwrite" -}}
+{{- $dst := dict -}}
+{{- range .values -}}
+{{- $dst = include "common.tplvalues.render" (dict "value" . "context" $.context "scope" $.scope) | fromYaml | mergeOverwrite $dst -}}
+{{- end -}}
+{{ $dst | toYaml }}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_utils.tpl b/kubernetes/common/nginx/common/templates/_utils.tpl
new file mode 100644
index 0000000000..0a5a5bc88f
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_utils.tpl
@@ -0,0 +1,77 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Print instructions to get a secret value.
+Usage:
+{{ include "common.utils.secret.getvalue" (dict "secret" "secret-name" "field" "secret-value-field" "context" $) }}
+*/}}
+{{- define "common.utils.secret.getvalue" -}}
+{{- $varname := include "common.utils.fieldToEnvVar" . -}}
+export {{ $varname }}=$(kubectl get secret --namespace {{ include "common.names.namespace" .context | quote }} {{ .secret }} -o jsonpath="{.data.{{ .field }}}" | base64 -d)
+{{- end -}}
+
+{{/*
+Build env var name given a field
+Usage:
+{{ include "common.utils.fieldToEnvVar" dict "field" "my-password" }}
+*/}}
+{{- define "common.utils.fieldToEnvVar" -}}
+ {{- $fieldNameSplit := splitList "-" .field -}}
+ {{- $upperCaseFieldNameSplit := list -}}
+
+ {{- range $fieldNameSplit -}}
+ {{- $upperCaseFieldNameSplit = append $upperCaseFieldNameSplit ( upper . ) -}}
+ {{- end -}}
+
+ {{ join "_" $upperCaseFieldNameSplit }}
+{{- end -}}
+
+{{/*
+Gets a value from .Values given
+Usage:
+{{ include "common.utils.getValueFromKey" (dict "key" "path.to.key" "context" $) }}
+*/}}
+{{- define "common.utils.getValueFromKey" -}}
+{{- $splitKey := splitList "." .key -}}
+{{- $value := "" -}}
+{{- $latestObj := $.context.Values -}}
+{{- range $splitKey -}}
+ {{- if not $latestObj -}}
+ {{- printf "please review the entire path of '%s' exists in values" $.key | fail -}}
+ {{- end -}}
+ {{- $value = ( index $latestObj . ) -}}
+ {{- $latestObj = $value -}}
+{{- end -}}
+{{- printf "%v" (default "" $value) -}}
+{{- end -}}
+
+{{/*
+Returns first .Values key with a defined value or first of the list if all non-defined
+Usage:
+{{ include "common.utils.getKeyFromList" (dict "keys" (list "path.to.key1" "path.to.key2") "context" $) }}
+*/}}
+{{- define "common.utils.getKeyFromList" -}}
+{{- $key := first .keys -}}
+{{- $reverseKeys := reverse .keys }}
+{{- range $reverseKeys }}
+ {{- $value := include "common.utils.getValueFromKey" (dict "key" . "context" $.context ) }}
+ {{- if $value -}}
+ {{- $key = . }}
+ {{- end -}}
+{{- end -}}
+{{- printf "%s" $key -}}
+{{- end -}}
+
+{{/*
+Checksum a template at "path" containing a *single* resource (ConfigMap,Secret) for use in pod annotations, excluding the metadata (see #18376).
+Usage:
+{{ include "common.utils.checksumTemplate" (dict "path" "/configmap.yaml" "context" $) }}
+*/}}
+{{- define "common.utils.checksumTemplate" -}}
+{{- $obj := include (print .context.Template.BasePath .path) .context | fromYaml -}}
+{{ omit $obj "apiVersion" "kind" "metadata" | toYaml | sha256sum }}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/_warnings.tpl b/kubernetes/common/nginx/common/templates/_warnings.tpl
new file mode 100644
index 0000000000..62c44dfcaa
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/_warnings.tpl
@@ -0,0 +1,109 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Warning about using rolling tag.
+Usage:
+{{ include "common.warnings.rollingTag" .Values.path.to.the.imageRoot }}
+*/}}
+{{- define "common.warnings.rollingTag" -}}
+
+{{- if and (contains "bitnami/" .repository) (not (.tag | toString | regexFind "-r\\d+$|sha256:")) }}
+WARNING: Rolling tag detected ({{ .repository }}:{{ .tag }}), please note that it is strongly recommended to avoid using rolling tags in a production environment.
++info https://techdocs.broadcom.com/us/en/vmware-tanzu/application-catalog/tanzu-application-catalog/services/tac-doc/apps-tutorials-understand-rolling-tags-containers-index.html
+{{- end }}
+{{- end -}}
+
+{{/*
+Warning about replaced images from the original.
+Usage:
+{{ include "common.warnings.modifiedImages" (dict "images" (list .Values.path.to.the.imageRoot) "context" $) }}
+*/}}
+{{- define "common.warnings.modifiedImages" -}}
+{{- $affectedImages := list -}}
+{{- $printMessage := false -}}
+{{- $originalImages := .context.Chart.Annotations.images -}}
+{{- range .images -}}
+ {{- $fullImageName := printf (printf "%s/%s:%s" .registry .repository .tag) -}}
+ {{- if not (contains $fullImageName $originalImages) }}
+ {{- $affectedImages = append $affectedImages (printf "%s/%s:%s" .registry .repository .tag) -}}
+ {{- $printMessage = true -}}
+ {{- end -}}
+{{- end -}}
+{{- if $printMessage }}
+
+âš  SECURITY WARNING: Original containers have been substituted. This Helm chart was designed, tested, and validated on multiple platforms using a specific set of Bitnami and Tanzu Application Catalog containers. Substituting other containers is likely to cause degraded security and performance, broken chart features, and missing environment variables.
+
+Substituted images detected:
+{{- range $affectedImages }}
+ - {{ . }}
+{{- end }}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Warning about not setting the resource object in all deployments.
+Usage:
+{{ include "common.warnings.resources" (dict "sections" (list "path1" "path2") context $) }}
+Example:
+{{- include "common.warnings.resources" (dict "sections" (list "csiProvider.provider" "server" "volumePermissions" "") "context" $) }}
+The list in the example assumes that the following values exist:
+ - csiProvider.provider.resources
+ - server.resources
+ - volumePermissions.resources
+ - resources
+*/}}
+{{- define "common.warnings.resources" -}}
+{{- $values := .context.Values -}}
+{{- $printMessage := false -}}
+{{ $affectedSections := list -}}
+{{- range .sections -}}
+ {{- if eq . "" -}}
+ {{/* Case where the resources section is at the root (one main deployment in the chart) */}}
+ {{- if not (index $values "resources") -}}
+ {{- $affectedSections = append $affectedSections "resources" -}}
+ {{- $printMessage = true -}}
+ {{- end -}}
+ {{- else -}}
+ {{/* Case where the are multiple resources sections (more than one main deployment in the chart) */}}
+ {{- $keys := split "." . -}}
+ {{/* We iterate through the different levels until arriving to the resource section. Example: a.b.c.resources */}}
+ {{- $section := $values -}}
+ {{- range $keys -}}
+ {{- $section = index $section . -}}
+ {{- end -}}
+ {{- if not (index $section "resources") -}}
+ {{/* If the section has enabled=false or replicaCount=0, do not include it */}}
+ {{- if and (hasKey $section "enabled") -}}
+ {{- if index $section "enabled" -}}
+ {{/* enabled=true */}}
+ {{- $affectedSections = append $affectedSections (printf "%s.resources" .) -}}
+ {{- $printMessage = true -}}
+ {{- end -}}
+ {{- else if and (hasKey $section "replicaCount") -}}
+ {{/* We need a casting to int because number 0 is not treated as an int by default */}}
+ {{- if (gt (index $section "replicaCount" | int) 0) -}}
+ {{/* replicaCount > 0 */}}
+ {{- $affectedSections = append $affectedSections (printf "%s.resources" .) -}}
+ {{- $printMessage = true -}}
+ {{- end -}}
+ {{- else -}}
+ {{/* Default case, add it to the affected sections */}}
+ {{- $affectedSections = append $affectedSections (printf "%s.resources" .) -}}
+ {{- $printMessage = true -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+{{- if $printMessage }}
+
+WARNING: There are "resources" sections in the chart not set. Using "resourcesPreset" is not recommended for production. For production installations, please set the following values according to your workload needs:
+{{- range $affectedSections }}
+ - {{ . }}
+{{- end }}
++info https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_cassandra.tpl b/kubernetes/common/nginx/common/templates/validations/_cassandra.tpl
new file mode 100644
index 0000000000..f8fd213bcc
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_cassandra.tpl
@@ -0,0 +1,51 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Auxiliary function to get the right value for existingSecret.
+
+Usage:
+{{ include "common.cassandra.values.existingSecret" (dict "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false
+*/}}
+{{- define "common.cassandra.values.existingSecret" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.cassandra.dbUser.existingSecret | quote -}}
+ {{- else -}}
+ {{- .context.Values.dbUser.existingSecret | quote -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for enabled cassandra.
+
+Usage:
+{{ include "common.cassandra.values.enabled" (dict "context" $) }}
+*/}}
+{{- define "common.cassandra.values.enabled" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.cassandra.enabled -}}
+ {{- else -}}
+ {{- printf "%v" (not .context.Values.enabled) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for the key dbUser
+
+Usage:
+{{ include "common.cassandra.values.key.dbUser" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether Cassandra is used as subchart or not. Default: false
+*/}}
+{{- define "common.cassandra.values.key.dbUser" -}}
+ {{- if .subchart -}}
+ cassandra.dbUser
+ {{- else -}}
+ dbUser
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_mariadb.tpl b/kubernetes/common/nginx/common/templates/validations/_mariadb.tpl
new file mode 100644
index 0000000000..6ea8c0f45b
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_mariadb.tpl
@@ -0,0 +1,108 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Validate MariaDB required passwords are not empty.
+
+Usage:
+{{ include "common.validations.values.mariadb.passwords" (dict "secret" "secretName" "subchart" false "context" $) }}
+Params:
+ - secret - String - Required. Name of the secret where MariaDB values are stored, e.g: "mysql-passwords-secret"
+ - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false
+*/}}
+{{- define "common.validations.values.mariadb.passwords" -}}
+ {{- $existingSecret := include "common.mariadb.values.auth.existingSecret" . -}}
+ {{- $enabled := include "common.mariadb.values.enabled" . -}}
+ {{- $architecture := include "common.mariadb.values.architecture" . -}}
+ {{- $authPrefix := include "common.mariadb.values.key.auth" . -}}
+ {{- $valueKeyRootPassword := printf "%s.rootPassword" $authPrefix -}}
+ {{- $valueKeyUsername := printf "%s.username" $authPrefix -}}
+ {{- $valueKeyPassword := printf "%s.password" $authPrefix -}}
+ {{- $valueKeyReplicationPassword := printf "%s.replicationPassword" $authPrefix -}}
+
+ {{- if and (or (not $existingSecret) (eq $existingSecret "\"\"")) (eq $enabled "true") -}}
+ {{- $requiredPasswords := list -}}
+
+ {{- $requiredRootPassword := dict "valueKey" $valueKeyRootPassword "secret" .secret "field" "mariadb-root-password" -}}
+ {{- $requiredPasswords = append $requiredPasswords $requiredRootPassword -}}
+
+ {{- $valueUsername := include "common.utils.getValueFromKey" (dict "key" $valueKeyUsername "context" .context) }}
+ {{- if not (empty $valueUsername) -}}
+ {{- $requiredPassword := dict "valueKey" $valueKeyPassword "secret" .secret "field" "mariadb-password" -}}
+ {{- $requiredPasswords = append $requiredPasswords $requiredPassword -}}
+ {{- end -}}
+
+ {{- if (eq $architecture "replication") -}}
+ {{- $requiredReplicationPassword := dict "valueKey" $valueKeyReplicationPassword "secret" .secret "field" "mariadb-replication-password" -}}
+ {{- $requiredPasswords = append $requiredPasswords $requiredReplicationPassword -}}
+ {{- end -}}
+
+ {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}}
+
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for existingSecret.
+
+Usage:
+{{ include "common.mariadb.values.auth.existingSecret" (dict "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false
+*/}}
+{{- define "common.mariadb.values.auth.existingSecret" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.mariadb.auth.existingSecret | quote -}}
+ {{- else -}}
+ {{- .context.Values.auth.existingSecret | quote -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for enabled mariadb.
+
+Usage:
+{{ include "common.mariadb.values.enabled" (dict "context" $) }}
+*/}}
+{{- define "common.mariadb.values.enabled" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.mariadb.enabled -}}
+ {{- else -}}
+ {{- printf "%v" (not .context.Values.enabled) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for architecture
+
+Usage:
+{{ include "common.mariadb.values.architecture" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false
+*/}}
+{{- define "common.mariadb.values.architecture" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.mariadb.architecture -}}
+ {{- else -}}
+ {{- .context.Values.architecture -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for the key auth
+
+Usage:
+{{ include "common.mariadb.values.key.auth" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false
+*/}}
+{{- define "common.mariadb.values.key.auth" -}}
+ {{- if .subchart -}}
+ mariadb.auth
+ {{- else -}}
+ auth
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_mongodb.tpl b/kubernetes/common/nginx/common/templates/validations/_mongodb.tpl
new file mode 100644
index 0000000000..e678a6de82
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_mongodb.tpl
@@ -0,0 +1,67 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Auxiliary function to get the right value for existingSecret.
+
+Usage:
+{{ include "common.mongodb.values.auth.existingSecret" (dict "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MongoDb is used as subchart or not. Default: false
+*/}}
+{{- define "common.mongodb.values.auth.existingSecret" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.mongodb.auth.existingSecret | quote -}}
+ {{- else -}}
+ {{- .context.Values.auth.existingSecret | quote -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for enabled mongodb.
+
+Usage:
+{{ include "common.mongodb.values.enabled" (dict "context" $) }}
+*/}}
+{{- define "common.mongodb.values.enabled" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.mongodb.enabled -}}
+ {{- else -}}
+ {{- printf "%v" (not .context.Values.enabled) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for the key auth
+
+Usage:
+{{ include "common.mongodb.values.key.auth" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MongoDB&reg; is used as subchart or not. Default: false
+*/}}
+{{- define "common.mongodb.values.key.auth" -}}
+ {{- if .subchart -}}
+ mongodb.auth
+ {{- else -}}
+ auth
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for architecture
+
+Usage:
+{{ include "common.mongodb.values.architecture" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MongoDB&reg; is used as subchart or not. Default: false
+*/}}
+{{- define "common.mongodb.values.architecture" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.mongodb.architecture -}}
+ {{- else -}}
+ {{- .context.Values.architecture -}}
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_mysql.tpl b/kubernetes/common/nginx/common/templates/validations/_mysql.tpl
new file mode 100644
index 0000000000..fbb65c338e
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_mysql.tpl
@@ -0,0 +1,67 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Auxiliary function to get the right value for existingSecret.
+
+Usage:
+{{ include "common.mysql.values.auth.existingSecret" (dict "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MySQL is used as subchart or not. Default: false
+*/}}
+{{- define "common.mysql.values.auth.existingSecret" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.mysql.auth.existingSecret | quote -}}
+ {{- else -}}
+ {{- .context.Values.auth.existingSecret | quote -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for enabled mysql.
+
+Usage:
+{{ include "common.mysql.values.enabled" (dict "context" $) }}
+*/}}
+{{- define "common.mysql.values.enabled" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.mysql.enabled -}}
+ {{- else -}}
+ {{- printf "%v" (not .context.Values.enabled) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for architecture
+
+Usage:
+{{ include "common.mysql.values.architecture" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MySQL is used as subchart or not. Default: false
+*/}}
+{{- define "common.mysql.values.architecture" -}}
+ {{- if .subchart -}}
+ {{- .context.Values.mysql.architecture -}}
+ {{- else -}}
+ {{- .context.Values.architecture -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for the key auth
+
+Usage:
+{{ include "common.mysql.values.key.auth" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether MySQL is used as subchart or not. Default: false
+*/}}
+{{- define "common.mysql.values.key.auth" -}}
+ {{- if .subchart -}}
+ mysql.auth
+ {{- else -}}
+ auth
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_postgresql.tpl b/kubernetes/common/nginx/common/templates/validations/_postgresql.tpl
new file mode 100644
index 0000000000..51d47162e7
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_postgresql.tpl
@@ -0,0 +1,105 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Auxiliary function to decide whether evaluate global values.
+
+Usage:
+{{ include "common.postgresql.values.use.global" (dict "key" "key-of-global" "context" $) }}
+Params:
+ - key - String - Required. Field to be evaluated within global, e.g: "existingSecret"
+*/}}
+{{- define "common.postgresql.values.use.global" -}}
+ {{- if .context.Values.global -}}
+ {{- if .context.Values.global.postgresql -}}
+ {{- index .context.Values.global.postgresql .key | quote -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for existingSecret.
+
+Usage:
+{{ include "common.postgresql.values.existingSecret" (dict "context" $) }}
+*/}}
+{{- define "common.postgresql.values.existingSecret" -}}
+ {{- $globalValue := include "common.postgresql.values.use.global" (dict "key" "existingSecret" "context" .context) -}}
+
+ {{- if .subchart -}}
+ {{- default (.context.Values.postgresql.existingSecret | quote) $globalValue -}}
+ {{- else -}}
+ {{- default (.context.Values.existingSecret | quote) $globalValue -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for enabled postgresql.
+
+Usage:
+{{ include "common.postgresql.values.enabled" (dict "context" $) }}
+*/}}
+{{- define "common.postgresql.values.enabled" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.postgresql.enabled -}}
+ {{- else -}}
+ {{- printf "%v" (not .context.Values.enabled) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for the key postgressPassword.
+
+Usage:
+{{ include "common.postgresql.values.key.postgressPassword" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false
+*/}}
+{{- define "common.postgresql.values.key.postgressPassword" -}}
+ {{- $globalValue := include "common.postgresql.values.use.global" (dict "key" "postgresqlUsername" "context" .context) -}}
+
+ {{- if not $globalValue -}}
+ {{- if .subchart -}}
+ postgresql.postgresqlPassword
+ {{- else -}}
+ postgresqlPassword
+ {{- end -}}
+ {{- else -}}
+ global.postgresql.postgresqlPassword
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for enabled.replication.
+
+Usage:
+{{ include "common.postgresql.values.enabled.replication" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false
+*/}}
+{{- define "common.postgresql.values.enabled.replication" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.postgresql.replication.enabled -}}
+ {{- else -}}
+ {{- printf "%v" .context.Values.replication.enabled -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right value for the key replication.password.
+
+Usage:
+{{ include "common.postgresql.values.key.replicationPassword" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false
+*/}}
+{{- define "common.postgresql.values.key.replicationPassword" -}}
+ {{- if .subchart -}}
+ postgresql.replication.password
+ {{- else -}}
+ replication.password
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_redis.tpl b/kubernetes/common/nginx/common/templates/validations/_redis.tpl
new file mode 100644
index 0000000000..9fedfef9d1
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_redis.tpl
@@ -0,0 +1,48 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Auxiliary function to get the right value for enabled redis.
+
+Usage:
+{{ include "common.redis.values.enabled" (dict "context" $) }}
+*/}}
+{{- define "common.redis.values.enabled" -}}
+ {{- if .subchart -}}
+ {{- printf "%v" .context.Values.redis.enabled -}}
+ {{- else -}}
+ {{- printf "%v" (not .context.Values.enabled) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Auxiliary function to get the right prefix path for the values
+
+Usage:
+{{ include "common.redis.values.key.prefix" (dict "subchart" "true" "context" $) }}
+Params:
+ - subchart - Boolean - Optional. Whether redis is used as subchart or not. Default: false
+*/}}
+{{- define "common.redis.values.keys.prefix" -}}
+ {{- if .subchart -}}redis.{{- else -}}{{- end -}}
+{{- end -}}
+
+{{/*
+Checks whether the redis chart's includes the standarizations (version >= 14)
+
+Usage:
+{{ include "common.redis.values.standarized.version" (dict "context" $) }}
+*/}}
+{{- define "common.redis.values.standarized.version" -}}
+
+ {{- $standarizedAuth := printf "%s%s" (include "common.redis.values.keys.prefix" .) "auth" -}}
+ {{- $standarizedAuthValues := include "common.utils.getValueFromKey" (dict "key" $standarizedAuth "context" .context) }}
+
+ {{- if $standarizedAuthValues -}}
+ {{- true -}}
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/templates/validations/_validations.tpl b/kubernetes/common/nginx/common/templates/validations/_validations.tpl
new file mode 100644
index 0000000000..7cdee61700
--- /dev/null
+++ b/kubernetes/common/nginx/common/templates/validations/_validations.tpl
@@ -0,0 +1,51 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Validate values must not be empty.
+
+Usage:
+{{- $validateValueConf00 := (dict "valueKey" "path.to.value" "secret" "secretName" "field" "password-00") -}}
+{{- $validateValueConf01 := (dict "valueKey" "path.to.value" "secret" "secretName" "field" "password-01") -}}
+{{ include "common.validations.values.empty" (dict "required" (list $validateValueConf00 $validateValueConf01) "context" $) }}
+
+Validate value params:
+ - valueKey - String - Required. The path to the validating value in the values.yaml, e.g: "mysql.password"
+ - secret - String - Optional. Name of the secret where the validating value is generated/stored, e.g: "mysql-passwords-secret"
+ - field - String - Optional. Name of the field in the secret data, e.g: "mysql-password"
+*/}}
+{{- define "common.validations.values.multiple.empty" -}}
+ {{- range .required -}}
+ {{- include "common.validations.values.single.empty" (dict "valueKey" .valueKey "secret" .secret "field" .field "context" $.context) -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Validate a value must not be empty.
+
+Usage:
+{{ include "common.validations.value.empty" (dict "valueKey" "mariadb.password" "secret" "secretName" "field" "my-password" "subchart" "subchart" "context" $) }}
+
+Validate value params:
+ - valueKey - String - Required. The path to the validating value in the values.yaml, e.g: "mysql.password"
+ - secret - String - Optional. Name of the secret where the validating value is generated/stored, e.g: "mysql-passwords-secret"
+ - field - String - Optional. Name of the field in the secret data, e.g: "mysql-password"
+ - subchart - String - Optional - Name of the subchart that the validated password is part of.
+*/}}
+{{- define "common.validations.values.single.empty" -}}
+ {{- $value := include "common.utils.getValueFromKey" (dict "key" .valueKey "context" .context) }}
+ {{- $subchart := ternary "" (printf "%s." .subchart) (empty .subchart) }}
+
+ {{- if not $value -}}
+ {{- $varname := "my-value" -}}
+ {{- $getCurrentValue := "" -}}
+ {{- if and .secret .field -}}
+ {{- $varname = include "common.utils.fieldToEnvVar" . -}}
+ {{- $getCurrentValue = printf " To get the current value:\n\n %s\n" (include "common.utils.secret.getvalue" .) -}}
+ {{- end -}}
+ {{- printf "\n '%s' must not be empty, please add '--set %s%s=$%s' to the command.%s" .valueKey $subchart .valueKey $varname $getCurrentValue -}}
+ {{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/common/values.yaml b/kubernetes/common/nginx/common/values.yaml
new file mode 100644
index 0000000000..de2cac57d0
--- /dev/null
+++ b/kubernetes/common/nginx/common/values.yaml
@@ -0,0 +1,8 @@
+# Copyright Broadcom, Inc. All Rights Reserved.
+# SPDX-License-Identifier: APACHE-2.0
+
+## bitnami/common
+## It is required by CI/CD tools and processes.
+## @skip exampleValue
+##
+exampleValue: common-chart
diff --git a/kubernetes/common/nginx/templates/NOTES.txt b/kubernetes/common/nginx/templates/NOTES.txt
new file mode 100644
index 0000000000..f8c92f647e
--- /dev/null
+++ b/kubernetes/common/nginx/templates/NOTES.txt
@@ -0,0 +1,77 @@
+CHART NAME: {{ .Chart.Name }}
+CHART VERSION: {{ .Chart.Version }}
+APP VERSION: {{ .Chart.AppVersion }}
+
+Did you know there are enterprise versions of the Bitnami catalog? For enhanced secure software supply chain features, unlimited pulls from Docker, LTS support, or application customization, see Bitnami Premium or Tanzu Application Catalog. See https://www.arrow.com/globalecs/na/vendors/bitnami for more information.
+
+** 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 {{ template "common.names.namespace" . }} -l app.kubernetes.io/instance={{ .Release.Name }}
+
+Access the pod you want to debug by executing
+
+ kubectl exec --namespace {{ template "common.names.namespace" . }} -ti <NAME OF THE POD> -- bash
+
+In order to replicate the container startup scripts execute this command:
+
+ /opt/bitnami/scripts/nginx/entrypoint.sh /opt/bitnami/scripts/nginx/run.sh
+
+{{- else }}
+NGINX can be accessed through the following DNS name from within your cluster:
+
+ {{ include "common.names.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} (port {{ .Values.service.ports.http }})
+
+To access NGINX from outside the cluster, follow the steps below:
+
+{{- if .Values.ingress.enabled }}
+
+1. Get the NGINX URL and associate its hostname to your cluster external IP:
+
+ export CLUSTER_IP=$(minikube ip) # On Minikube. Use: `kubectl cluster-info` on others K8s clusters
+ echo "NGINX URL: http{{ if .Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }}"
+ echo "$CLUSTER_IP {{ .Values.ingress.hostname }}" | sudo tee -a /etc/hosts
+
+{{- else }}
+
+1. Get the NGINX URL by running these commands:
+
+{{- if contains "LoadBalancer" .Values.service.type }}
+
+ NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+ Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ include "common.names.fullname" . }}'
+
+ export SERVICE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].port}" services {{ include "common.names.fullname" . }})
+ export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+ echo "http://${SERVICE_IP}:${SERVICE_PORT}"
+
+{{- else if contains "ClusterIP" .Values.service.type }}
+
+ export SERVICE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].port}" services {{ include "common.names.fullname" . }})
+ kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} ${SERVICE_PORT}:${SERVICE_PORT} &
+ echo "http://127.0.0.1:${SERVICE_PORT}"
+
+{{- else if contains "NodePort" .Values.service.type }}
+
+ export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.names.fullname" . }})
+ export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
+ echo "http://${NODE_IP}:${NODE_PORT}"
+
+{{- end }}
+{{- end }}
+
+{{- include "common.warnings.rollingTag" .Values.image }}
+{{- include "common.warnings.rollingTag" .Values.cloneStaticSiteFromGit.image }}
+{{- include "common.warnings.rollingTag" .Values.metrics.image }}
+{{- include "nginx.validateValues" . }}
+{{- end }}
+{{- include "common.warnings.resources" (dict "sections" (list "cloneStaticSiteFromGit.gitSync" "metrics" "") "context" $) }}
+{{- include "common.warnings.modifiedImages" (dict "images" (list .Values.image .Values.cloneStaticSiteFromGit.image .Values.metrics.image) "context" $) }}
+{{- include "common.errors.insecureImages" (dict "images" (list .Values.image .Values.cloneStaticSiteFromGit.image .Values.metrics.image) "context" $) }}
diff --git a/kubernetes/common/nginx/templates/_helpers.tpl b/kubernetes/common/nginx/templates/_helpers.tpl
new file mode 100644
index 0000000000..4900d9cfd1
--- /dev/null
+++ b/kubernetes/common/nginx/templates/_helpers.tpl
@@ -0,0 +1,123 @@
+{{/*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Return the proper NGINX image name
+*/}}
+{{- define "nginx.image" -}}
+{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}
+{{- end -}}
+
+{{/*
+Return the proper GIT image name
+*/}}
+{{- define "nginx.cloneStaticSiteFromGit.image" -}}
+{{ include "common.images.image" (dict "imageRoot" .Values.cloneStaticSiteFromGit.image "global" .Values.global) }}
+{{- end -}}
+
+{{/*
+Return the proper Prometheus metrics image name
+*/}}
+{{- define "nginx.metrics.image" -}}
+{{ include "common.images.image" (dict "imageRoot" .Values.metrics.image "global" .Values.global) }}
+{{- end -}}
+
+{{/*
+Return the proper Docker Image Registry Secret Names
+*/}}
+{{- define "nginx.imagePullSecrets" -}}
+{{ include "common.images.renderPullSecrets" (dict "images" (list .Values.image .Values.cloneStaticSiteFromGit.image .Values.metrics.image) "context" $) }}
+{{- end -}}
+
+{{/*
+Return true if a static site should be mounted in the NGINX container
+*/}}
+{{- define "nginx.useStaticSite" -}}
+{{- if or .Values.cloneStaticSiteFromGit.enabled .Values.staticSiteConfigmap .Values.staticSitePVC }}
+ {- true -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the volume to use to mount the static site in the NGINX container
+*/}}
+{{- define "nginx.staticSiteVolume" -}}
+{{- if .Values.cloneStaticSiteFromGit.enabled }}
+emptyDir: {}
+{{- else if .Values.staticSiteConfigmap }}
+configMap:
+ name: {{ printf "%s" (tpl .Values.staticSiteConfigmap $) -}}
+{{- else if .Values.staticSitePVC }}
+persistentVolumeClaim:
+ claimName: {{ printf "%s" (tpl .Values.staticSitePVC $) -}}
+{{- end }}
+{{- end -}}
+
+{{/*
+Return the custom NGINX server block configmap.
+*/}}
+{{- define "nginx.serverBlockConfigmapName" -}}
+{{- if .Values.existingServerBlockConfigmap -}}
+ {{- printf "%s" (tpl .Values.existingServerBlockConfigmap $) -}}
+{{- else -}}
+ {{- printf "%s-server-block" (include "common.names.fullname" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the custom NGINX stream server block configmap.
+*/}}
+{{- define "nginx.streamServerBlockConfigmapName" -}}
+{{- if .Values.existingStreamServerBlockConfigmap -}}
+ {{- printf "%s" (tpl .Values.existingStreamServerBlockConfigmap $) -}}
+{{- else -}}
+ {{- printf "%s-stream-server-block" (include "common.names.fullname" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Compile all warnings into a single message, and call fail.
+*/}}
+{{- define "nginx.validateValues" -}}
+{{- $messages := list -}}
+{{- $messages := append $messages (include "nginx.validateValues.cloneStaticSiteFromGit" .) -}}
+{{- $messages := append $messages (include "nginx.validateValues.extraVolumes" .) -}}
+{{- $messages := without $messages "" -}}
+{{- $message := join "\n" $messages -}}
+
+{{- if $message -}}
+{{- printf "\nVALUES VALIDATION:\n%s" $message | fail -}}
+{{- end -}}
+{{- end -}}
+
+{{/* Validate values of NGINX - Clone StaticSite from Git configuration */}}
+{{- define "nginx.validateValues.cloneStaticSiteFromGit" -}}
+{{- if and .Values.cloneStaticSiteFromGit.enabled (or (not .Values.cloneStaticSiteFromGit.repository) (not .Values.cloneStaticSiteFromGit.branch)) -}}
+nginx: cloneStaticSiteFromGit
+ When enabling cloing a static site from a Git repository, both the Git repository and the Git branch must be provided.
+ Please provide them by setting the `cloneStaticSiteFromGit.repository` and `cloneStaticSiteFromGit.branch` parameters.
+{{- end -}}
+{{- end -}}
+
+{{/* Validate values of NGINX - Incorrect extra volume settings */}}
+{{- define "nginx.validateValues.extraVolumes" -}}
+{{- if and (.Values.extraVolumes) (not (or .Values.extraVolumeMounts .Values.cloneStaticSiteFromGit.extraVolumeMounts)) -}}
+nginx: missing-extra-volume-mounts
+ You specified extra volumes but not mount points for them. Please set
+ the extraVolumeMounts value
+{{- end -}}
+{{- end -}}
+
+{{/*
+ Create the name of the service account to use
+ */}}
+{{- define "nginx.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create -}}
+ {{ default (include "common.names.fullname" .) .Values.serviceAccount.name }}
+{{- else -}}
+ {{ default "default" .Values.serviceAccount.name }}
+{{- end -}}
+{{- end -}}
diff --git a/kubernetes/common/nginx/templates/deployment.yaml b/kubernetes/common/nginx/templates/deployment.yaml
new file mode 100644
index 0000000000..0d8b990e14
--- /dev/null
+++ b/kubernetes/common/nginx/templates/deployment.yaml
@@ -0,0 +1,417 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
+kind: Deployment
+metadata:
+ name: {{ include "common.names.fullname" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+spec:
+ {{- if not .Values.autoscaling.enabled }}
+ replicas: {{ .Values.replicaCount }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+ {{- if .Values.updateStrategy }}
+ strategy: {{- toYaml .Values.updateStrategy | nindent 4 }}
+ {{- end }}
+ {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }}
+ selector:
+ matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }}
+ template:
+ metadata:
+ labels: {{- include "common.labels.standard" ( dict "customLabels" $podLabels "context" $ ) | nindent 8 }}
+ annotations:
+ {{- if .Values.podAnnotations }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
+ {{- end }}
+ {{- if and .Values.metrics.enabled .Values.metrics.podAnnotations }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.podAnnotations "context" $) | nindent 8 }}
+ {{- end }}
+ {{- if and .Values.serverBlock (not .Values.existingServerBlockConfigmap) }}
+ checksum/server-block-configuration: {{ include (print $.Template.BasePath "/server-block-configmap.yaml") . | sha256sum }}
+ {{- end }}
+ {{- if and .Values.streamServerBlock (not .Values.existingServerBlockConfigmap) }}
+ checksum/stream-server-block-configuration: {{ include (print $.Template.BasePath "/stream-server-block-configmap.yaml") . | sha256sum }}
+ {{- end }}
+ spec:
+ {{- include "nginx.imagePullSecrets" . | nindent 6 }}
+ shareProcessNamespace: {{ .Values.sidecarSingleProcessNamespace }}
+ serviceAccountName: {{ template "nginx.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.automountServiceAccountToken }}
+ {{- if .Values.hostAliases }}
+ hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }}
+ {{- end }}
+ {{- if .Values.affinity }}
+ affinity: {{- include "common.tplvalues.render" (dict "value" .Values.affinity "context" $) | nindent 8 }}
+ {{- else }}
+ affinity:
+ podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "customLabels" $podLabels "context" $) | nindent 10 }}
+ podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "customLabels" $podLabels "context" $) | nindent 10 }}
+ nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
+ {{- end }}
+ hostNetwork: {{ .Values.hostNetwork }}
+ {{- if .Values.dnsPolicy }}
+ dnsPolicy: {{ .Values.dnsPolicy }}
+ {{- end }}
+ {{- if .Values.dnsConfig }}
+ dnsConfig: {{- include "common.tplvalues.render" (dict "value" .Values.dnsConfig "context" $) | nindent 8 }}
+ {{- end }}
+ hostIPC: {{ .Values.hostIPC }}
+ {{- if .Values.priorityClassName }}
+ priorityClassName: {{ .Values.priorityClassName | quote }}
+ {{- 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.schedulerName }}
+ schedulerName: {{ .Values.schedulerName | quote }}
+ {{- end }}
+ {{- if .Values.topologySpreadConstraints }}
+ topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.topologySpreadConstraints "context" .) | nindent 8 }}
+ {{- end }}
+ {{- if .Values.podSecurityContext.enabled }}
+ securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.podSecurityContext "context" $) | nindent 8 }}
+ {{- end }}
+ {{- if .Values.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
+ {{- end }}
+ {{- if or .Values.containerSecurityContext.readOnlyRootFilesystem .Values.cloneStaticSiteFromGit.enabled .Values.initContainers }}
+ initContainers:
+ {{- if .Values.containerSecurityContext.readOnlyRootFilesystem }}
+ - name: preserve-logs-symlinks
+ image: {{ include "nginx.image" . }}
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
+ {{- if .Values.containerSecurityContext.enabled }}
+ securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.resources }}
+ resources: {{- toYaml .Values.resources | nindent 12 }}
+ {{- else if ne .Values.resourcesPreset "none" }}
+ resources: {{- include "common.resources.preset" (dict "type" .Values.resourcesPreset) | nindent 12 }}
+ {{- end }}
+ command:
+ - /bin/bash
+ args:
+ - -ec
+ - |
+ #!/bin/bash
+ . /opt/bitnami/scripts/libfs.sh
+ # We copy the logs folder because it has symlinks to stdout and stderr
+ if ! is_dir_empty /opt/bitnami/nginx/logs; then
+ cp -r /opt/bitnami/nginx/logs /emptydir/app-logs-dir
+ fi
+ volumeMounts:
+ - name: empty-dir
+ mountPath: /emptydir
+ {{- end }}
+ {{- if or .Values.cloneStaticSiteFromGit.enabled .Values.initContainers }}
+ {{- if .Values.cloneStaticSiteFromGit.enabled }}
+ - name: git-clone-repository
+ image: {{ include "nginx.cloneStaticSiteFromGit.image" . }}
+ imagePullPolicy: {{ .Values.cloneStaticSiteFromGit.image.pullPolicy | quote }}
+ {{- if .Values.containerSecurityContext.enabled }}
+ securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.gitClone.command }}
+ command: {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.gitClone.command "context" $) | nindent 12 }}
+ {{- else }}
+ command:
+ - /bin/bash
+ - -ec
+ - |
+ [[ -f "/opt/bitnami/scripts/git/entrypoint.sh" ]] && source "/opt/bitnami/scripts/git/entrypoint.sh"
+ git clone {{ .Values.cloneStaticSiteFromGit.repository }} --branch {{ .Values.cloneStaticSiteFromGit.branch }} /tmp/app
+ [[ "$?" -eq 0 ]] && shopt -s dotglob && rm -rf /app/* && mv /tmp/app/* /app/
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.gitClone.args }}
+ args: {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.gitClone.args "context" $) | nindent 12 }}
+ {{- end }}
+ volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /etc/ssh
+ subPath: etc-ssh-dir
+ - name: empty-dir
+ mountPath: /.ssh
+ subPath: ssh-dir
+ - name: staticsite
+ mountPath: /app
+ {{- if .Values.cloneStaticSiteFromGit.extraVolumeMounts }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.extraVolumeMounts "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.extraEnvVars }}
+ env: {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.extraEnvVars "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.extraEnvVarsSecret }}
+ envFrom:
+ - secretRef:
+ name: {{ include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.extraEnvVarsSecret "context" $) }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.initContainers }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | nindent 8 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ containers:
+ {{- if .Values.cloneStaticSiteFromGit.enabled }}
+ - name: git-repo-syncer
+ image: {{ include "nginx.cloneStaticSiteFromGit.image" . }}
+ imagePullPolicy: {{ .Values.cloneStaticSiteFromGit.image.pullPolicy | quote }}
+ {{- if .Values.containerSecurityContext.enabled }}
+ securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.gitSync.command }}
+ command: {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.gitSync.command "context" $) | nindent 12 }}
+ {{- else }}
+ command:
+ - /bin/bash
+ - -ec
+ - |
+ [[ -f "/opt/bitnami/scripts/git/entrypoint.sh" ]] && source "/opt/bitnami/scripts/git/entrypoint.sh"
+ while true; do
+ cd /app && git -c safe.directory=/app pull origin {{ .Values.cloneStaticSiteFromGit.branch }}
+ sleep {{ .Values.cloneStaticSiteFromGit.interval }}
+ done
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.gitSync.args }}
+ args: {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.gitSync.args "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.gitSync.resources }}
+ resources: {{- toYaml .Values.cloneStaticSiteFromGit.gitSync.resources | nindent 12 }}
+ {{- else if ne .Values.cloneStaticSiteFromGit.gitSync.resourcesPreset "none" }}
+ resources: {{- include "common.resources.preset" (dict "type" .Values.cloneStaticSiteFromGit.gitSync.resourcesPreset) | nindent 12 }}
+ {{- end }}
+ volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /etc/ssh
+ subPath: etc-ssh-dir
+ - name: empty-dir
+ mountPath: /.ssh
+ subPath: ssh-dir
+ - name: staticsite
+ mountPath: /app
+ {{- if .Values.cloneStaticSiteFromGit.extraVolumeMounts }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.extraVolumeMounts "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.extraEnvVars }}
+ env: {{- include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.extraEnvVars "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.cloneStaticSiteFromGit.extraEnvVarsSecret }}
+ envFrom:
+ - secretRef:
+ name: {{ include "common.tplvalues.render" (dict "value" .Values.cloneStaticSiteFromGit.extraEnvVarsSecret "context" $) }}
+ {{- end }}
+ {{- end }}
+ - name: nginx
+ image: {{ include "nginx.image" . }}
+ imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
+ {{- if .Values.containerSecurityContext.enabled }}
+ securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }}
+ {{- end }}
+ {{- 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 }}
+ {{- end }}
+ {{- 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 }}
+ {{- end }}
+ {{- if .Values.lifecycleHooks }}
+ lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }}
+ {{- end }}
+ env:
+ - name: BITNAMI_DEBUG
+ value: {{ ternary "true" "false" .Values.image.debug | quote }}
+ {{- if .Values.containerPorts.http }}
+ - name: NGINX_HTTP_PORT_NUMBER
+ value: {{ .Values.containerPorts.http | quote }}
+ {{- end }}
+ {{- if .Values.containerPorts.https }}
+ - name: NGINX_HTTPS_PORT_NUMBER
+ value: {{ .Values.containerPorts.https | quote }}
+ {{- end }}
+ {{- if or .Values.streamServerBlock .Values.existingStreamServerBlockConfigmap }}
+ - name: NGINX_ENABLE_STREAM
+ value: "true"
+ {{- end }}
+ {{- if .Values.extraEnvVars }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
+ {{- end }}
+ envFrom:
+ {{- if .Values.extraEnvVarsCM }}
+ - configMapRef:
+ name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsCM "context" $) }}
+ {{- end }}
+ {{- if .Values.extraEnvVarsSecret }}
+ - secretRef:
+ name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsSecret "context" $) }}
+ {{- end }}
+ ports:
+ {{- if .Values.containerPorts.http }}
+ - name: http
+ containerPort: {{ .Values.containerPorts.http }}
+ {{- end }}
+ {{- if .Values.containerPorts.https }}
+ - name: https
+ containerPort: {{ .Values.containerPorts.https }}
+ {{- end }}
+ {{- if .Values.extraContainerPorts }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.extraContainerPorts "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if not .Values.diagnosticMode.enabled }}
+ {{- if .Values.customLivenessProbe }}
+ livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
+ {{- else if .Values.livenessProbe.enabled }}
+ livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled") "context" $) | nindent 12 }}
+ tcpSocket:
+ port: {{ ternary "https" "http" (and (empty .Values.containerPorts.http) (not (empty .Values.containerPorts.https))) }}
+ {{- end }}
+ {{- if .Values.customReadinessProbe }}
+ readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
+ {{- else if .Values.readinessProbe.enabled }}
+ readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled" "path") "context" $) | nindent 12 }}
+ httpGet:
+ path: {{ .Values.readinessProbe.path }}
+ port: {{ ternary "https" "http" (and (empty .Values.containerPorts.http) (not (empty .Values.containerPorts.https))) }}
+ {{- end }}
+ {{- if .Values.customStartupProbe }}
+ startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }}
+ {{- else if .Values.startupProbe.enabled }}
+ startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.startupProbe "enabled") "context" $) | nindent 12 }}
+ tcpSocket:
+ port: {{ ternary "https" "http" (and (empty .Values.containerPorts.http) (not (empty .Values.containerPorts.https))) }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.resources }}
+ resources: {{- toYaml .Values.resources | nindent 12 }}
+ {{- else if ne .Values.resourcesPreset "none" }}
+ resources: {{- include "common.resources.preset" (dict "type" .Values.resourcesPreset) | nindent 12 }}
+ {{- end }}
+ volumeMounts:
+ - name: empty-dir
+ mountPath: /tmp
+ subPath: tmp-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/nginx/conf
+ subPath: app-conf-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/nginx/logs
+ subPath: app-logs-dir
+ - name: empty-dir
+ mountPath: /opt/bitnami/nginx/tmp
+ subPath: app-tmp-dir
+ {{- if or .Values.serverBlock .Values.existingServerBlockConfigmap }}
+ - name: nginx-server-block
+ mountPath: /opt/bitnami/nginx/conf/server_blocks
+ {{- end }}
+ {{- if or .Values.streamServerBlock .Values.existingStreamServerBlockConfigmap }}
+ - name: nginx-stream-server-block
+ mountPath: /opt/bitnami/nginx/conf/stream_server_blocks
+ {{- end }}
+ {{- if (include "nginx.useStaticSite" .) }}
+ - name: staticsite
+ mountPath: /app
+ {{- end }}
+ {{- if .Values.tls.enabled }}
+ - name: certificate
+ mountPath: /certs
+ {{- else }}
+ - name: empty-dir
+ mountPath: /certs
+ subPath: app-tls-dir
+ {{- end }}
+ {{- if .Values.extraVolumeMounts }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }}
+ {{- end }}
+ {{- if .Values.metrics.enabled }}
+ - name: metrics
+ image: {{ include "nginx.metrics.image" . }}
+ imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }}
+ {{- if .Values.metrics.securityContext.enabled }}
+ securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.metrics.securityContext "context" $) | nindent 12 }}
+ {{- end }}
+ command:
+ - exporter
+ args:
+ - --nginx.scrape-uri
+ - {{ printf "http://127.0.0.1:%d/status" (int (default .Values.containerPorts.http .Values.metrics.port)) | quote }}
+ - --web.listen-address
+ - {{ printf ":%d" (int .Values.metrics.containerPorts.metrics) | quote }}
+ {{- if .Values.metrics.extraArgs }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.extraArgs "context" $ ) | nindent 12 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.metrics.containerPorts.metrics }}
+ livenessProbe:
+ httpGet:
+ path: /metrics
+ port: metrics
+ initialDelaySeconds: 15
+ timeoutSeconds: 5
+ readinessProbe:
+ httpGet:
+ path: /metrics
+ port: metrics
+ initialDelaySeconds: 5
+ timeoutSeconds: 1
+ {{- if .Values.metrics.resources }}
+ resources: {{- toYaml .Values.metrics.resources | nindent 12 }}
+ {{- else if ne .Values.metrics.resourcesPreset "none" }}
+ resources: {{- include "common.resources.preset" (dict "type" .Values.metrics.resourcesPreset) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.sidecars }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.sidecars "context" $) | nindent 8 }}
+ {{- end }}
+ volumes:
+ - name: empty-dir
+ emptyDir: {}
+ {{- if .Values.tls.enabled }}
+ - name: certificate
+ secret:
+ {{- if .Values.tls.existingSecret }}
+ secretName: {{ .Values.tls.existingSecret }}
+ {{- else }}
+ secretName: {{ printf "%s-tls" (include "common.names.fullname" .) }}
+ items:
+ - key: tls.crt
+ path: server.crt
+ - key: tls.key
+ path: server.key
+ {{- end }}
+ {{- end }}
+ {{- if or .Values.serverBlock .Values.existingServerBlockConfigmap }}
+ - name: nginx-server-block
+ configMap:
+ name: {{ include "nginx.serverBlockConfigmapName" . }}
+ {{- end }}
+ {{- if or .Values.streamServerBlock .Values.existingStreamServerBlockConfigmap }}
+ - name: nginx-stream-server-block
+ configMap:
+ name: {{ include "nginx.streamServerBlockConfigmapName" . }}
+ {{- end }}
+ {{- if (include "nginx.useStaticSite" .) }}
+ - name: staticsite
+ {{- include "nginx.staticSiteVolume" . | nindent 10 }}
+ {{- end }}
+ {{- if .Values.extraVolumes }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.extraVolumes "context" $) | nindent 8 }}
+ {{- end }}
diff --git a/kubernetes/common/nginx/templates/extra-list.yaml b/kubernetes/common/nginx/templates/extra-list.yaml
new file mode 100644
index 0000000000..329f5c653a
--- /dev/null
+++ b/kubernetes/common/nginx/templates/extra-list.yaml
@@ -0,0 +1,9 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- range .Values.extraDeploy }}
+---
+{{ include "common.tplvalues.render" (dict "value" . "context" $) }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/health-ingress.yaml b/kubernetes/common/nginx/templates/health-ingress.yaml
new file mode 100644
index 0000000000..5df37e018e
--- /dev/null
+++ b/kubernetes/common/nginx/templates/health-ingress.yaml
@@ -0,0 +1,59 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.healthIngress.enabled }}
+apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }}
+kind: Ingress
+metadata:
+ name: {{ include "common.names.fullname" . }}-health
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if or .Values.healthIngress.annotations .Values.commonAnnotations }}
+ {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.healthIngress.annotations .Values.commonAnnotations ) "context" . ) }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
+ {{- end }}
+spec:
+ {{- if and .Values.healthIngress.ingressClassName (eq "true" (include "common.ingress.supportsIngressClassname" .)) }}
+ ingressClassName: {{ .Values.healthIngress.ingressClassName | quote }}
+ {{- end }}
+ rules:
+ {{- if .Values.healthIngress.hostname }}
+ - host: {{ .Values.healthIngress.hostname }}
+ http:
+ paths:
+ {{- if .Values.healthIngress.extraPaths }}
+ {{- toYaml .Values.healthIngress.extraPaths | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.healthIngress.path }}
+ {{- if eq "true" (include "common.ingress.supportsPathType" .) }}
+ pathType: {{ .Values.healthIngress.pathType }}
+ {{- end }}
+ backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" (ternary "http" "https" (not .Values.containerPorts.https)) "context" $) | nindent 14 }}
+ {{- end }}
+ {{- range .Values.healthIngress.extraHosts }}
+ - host: {{ .name | quote }}
+ http:
+ paths:
+ - path: {{ default "/" .path }}
+ {{- if eq "true" (include "common.ingress.supportsPathType" $) }}
+ pathType: {{ default "ImplementationSpecific" .pathType }}
+ {{- end }}
+ backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" (ternary "http" "https" (not $.Values.containerPorts.https)) "context" $) | nindent 14 }}
+ {{- end }}
+ {{- if .Values.healthIngress.extraRules }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.healthIngress.extraRules "context" $) | nindent 4 }}
+ {{- end }}
+ {{- if or (and .Values.healthIngress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.healthIngress.annotations )) .Values.healthIngress.selfSigned (not (empty .Values.healthIngress.secrets)))) .Values.healthIngress.extraTls }}
+ tls:
+ {{- if and .Values.healthIngress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.healthIngress.annotations )) .Values.healthIngress.selfSigned (not (empty .Values.healthIngress.secrets))) }}
+ - hosts:
+ - {{ .Values.healthIngress.hostname | quote }}
+ secretName: {{ printf "%s-health-tls" .Values.healthIngress.hostname }}
+ {{- end }}
+ {{- if .Values.healthIngress.extraTls }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.healthIngress.extraTls "context" $) | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/hpa.yaml b/kubernetes/common/nginx/templates/hpa.yaml
new file mode 100644
index 0000000000..44b5395f20
--- /dev/null
+++ b/kubernetes/common/nginx/templates/hpa.yaml
@@ -0,0 +1,48 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.autoscaling.enabled }}
+apiVersion: {{ include "common.capabilities.hpa.apiVersion" ( dict "context" $ ) }}
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ template "common.names.fullname" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+spec:
+ scaleTargetRef:
+ apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
+ kind: Deployment
+ name: {{ template "common.names.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetMemory }}
+ - type: Resource
+ resource:
+ name: memory
+ {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }}
+ targetAverageUtilization: {{ .Values.autoscaling.targetMemory }}
+ {{- else }}
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetMemory }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.autoscaling.targetCPU }}
+ - type: Resource
+ resource:
+ name: cpu
+ {{- if semverCompare "<1.23-0" (include "common.capabilities.kubeVersion" .) }}
+ targetAverageUtilization: {{ .Values.autoscaling.targetCPU }}
+ {{- else }}
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetCPU }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/ingress-tls-secret.yaml b/kubernetes/common/nginx/templates/ingress-tls-secret.yaml
new file mode 100644
index 0000000000..d2943767c5
--- /dev/null
+++ b/kubernetes/common/nginx/templates/ingress-tls-secret.yaml
@@ -0,0 +1,83 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.ingress.enabled }}
+{{- if .Values.ingress.secrets }}
+{{- range .Values.ingress.secrets }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ .name }}
+ namespace: {{ include "common.names.namespace" $ | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" $.Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if $.Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" $.Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ tls.crt: {{ .certificate | b64enc }}
+ tls.key: {{ .key | b64enc }}
+---
+{{- end }}
+{{- else if and .Values.ingress.tls .Values.ingress.selfSigned }}
+{{- $secretName := printf "%s-tls" .Values.ingress.hostname }}
+{{- $ca := genCA "nginx-ca" 365 }}
+{{- $cert := genSignedCert .Values.ingress.hostname nil (list .Values.ingress.hostname) 365 $ca }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ $secretName }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ tls.crt: {{ include "common.secrets.lookup" (dict "secret" $secretName "key" "tls.crt" "defaultValue" $cert.Cert "context" $) }}
+ tls.key: {{ include "common.secrets.lookup" (dict "secret" $secretName "key" "tls.key" "defaultValue" $cert.Key "context" $) }}
+ ca.crt: {{ include "common.secrets.lookup" (dict "secret" $secretName "key" "ca.crt" "defaultValue" $ca.Cert "context" $) }}
+---
+{{- end }}
+{{- end }}
+{{- if .Values.healthIngress.enabled }}
+{{- if .Values.healthIngress.secrets }}
+{{- range .Values.healthIngress.secrets }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ .name }}
+ namespace: {{ include "common.names.namespace" $ | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" $.Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if $.Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" $.Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ tls.crt: {{ .certificate | b64enc }}
+ tls.key: {{ .key | b64enc }}
+---
+{{- end }}
+{{- else if and .Values.healthIngress.tls .Values.healthIngress.selfSigned }}
+{{- $secretName := printf "%s-tls" .Values.healthIngress.hostname }}
+{{- $ca := genCA "nginx-health-ca" 365 }}
+{{- $cert := genSignedCert .Values.healthIngress.hostname nil (list .Values.healthIngress.hostname) 365 $ca }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ $secretName }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ tls.crt: {{ include "common.secrets.lookup" (dict "secret" $secretName "key" "tls.crt" "defaultValue" $cert.Cert "context" $) }}
+ tls.key: {{ include "common.secrets.lookup" (dict "secret" $secretName "key" "tls.key" "defaultValue" $cert.Key "context" $) }}
+ ca.crt: {{ include "common.secrets.lookup" (dict "secret" $secretName "key" "ca.crt" "defaultValue" $ca.Cert "context" $) }}
+---
+{{- end }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/ingress.yaml b/kubernetes/common/nginx/templates/ingress.yaml
new file mode 100644
index 0000000000..b49f86b46f
--- /dev/null
+++ b/kubernetes/common/nginx/templates/ingress.yaml
@@ -0,0 +1,73 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.ingress.enabled }}
+apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }}
+kind: Ingress
+metadata:
+ name: {{ include "common.names.fullname" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if or .Values.ingress.annotations .Values.commonAnnotations }}
+ {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.ingress.annotations .Values.commonAnnotations ) "context" . ) }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
+ {{- end }}
+spec:
+ {{- if and .Values.ingress.ingressClassName (eq "true" (include "common.ingress.supportsIngressClassname" .)) }}
+ ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
+ {{- end }}
+ rules:
+ {{- if .Values.ingress.hostname }}
+ - host: {{ .Values.ingress.hostname | quote }}
+ http:
+ paths:
+ {{- if .Values.ingress.extraPaths }}
+ {{- toYaml .Values.ingress.extraPaths | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.ingress.path }}
+ {{- if eq "true" (include "common.ingress.supportsPathType" .) }}
+ pathType: {{ .Values.ingress.pathType }}
+ {{- end }}
+ backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }}
+ {{- else if .Values.ingress.path }}
+ - http:
+ paths:
+ {{- if .Values.ingress.extraPaths }}
+ {{- toYaml .Values.ingress.extraPaths | nindent 10 }}
+ {{- end }}
+ - path: {{ .Values.ingress.path }}
+ {{- if eq "true" (include "common.ingress.supportsPathType" .) }}
+ pathType: {{ .Values.ingress.pathType }}
+ {{- end }}
+ backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }}
+ {{- end }}
+ {{- range .Values.ingress.extraHosts }}
+ - host: {{ .name | quote }}
+ http:
+ paths:
+ - path: {{ default "/" .path }}
+ {{- if eq "true" (include "common.ingress.supportsPathType" $) }}
+ pathType: {{ default "ImplementationSpecific" .pathType }}
+ {{- end }}
+ backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }}
+ {{- end }}
+ {{- if .Values.ingress.extraRules }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraRules "context" $) | nindent 4 }}
+ {{- end }}
+ {{- if or (and .Values.ingress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.ingress.annotations )) .Values.ingress.selfSigned (not (empty .Values.ingress.secrets)))) .Values.ingress.extraTls }}
+ tls:
+ {{- if and .Values.ingress.tls (or (include "common.ingress.certManagerRequest" ( dict "annotations" .Values.ingress.annotations )) .Values.ingress.selfSigned (not (empty .Values.ingress.secrets))) }}
+ - hosts:
+ - {{ .Values.ingress.hostname | quote }}
+ {{- if and (or (.Values.ingress.tlsWwwPrefix) (eq (index .Values.ingress.annotations "nginx.ingress.kubernetes.io/from-to-www-redirect") "true" )) (not (contains "www." .Values.ingress.hostname)) }}
+ - {{ printf "www.%s" (tpl .Values.ingress.hostname $) | quote }}
+ {{- end }}
+ secretName: {{ printf "%s-tls" .Values.ingress.hostname }}
+ {{- end }}
+ {{- if .Values.ingress.extraTls }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.ingress.extraTls "context" $) | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/networkpolicy.yaml b/kubernetes/common/nginx/templates/networkpolicy.yaml
new file mode 100644
index 0000000000..327e1fa37f
--- /dev/null
+++ b/kubernetes/common/nginx/templates/networkpolicy.yaml
@@ -0,0 +1,71 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.networkPolicy.enabled }}
+kind: NetworkPolicy
+apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
+metadata:
+ name: {{ template "common.names.fullname" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+spec:
+ {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }}
+ podSelector:
+ matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }}
+ policyTypes:
+ - Ingress
+ - Egress
+ egress:
+ {{- if .Values.networkPolicy.allowExternalEgress }}
+ - {}
+ {{- else }}
+ - ports:
+ # Allow dns resolution
+ - port: 53
+ protocol: UDP
+ - port: 53
+ protocol: TCP
+ {{- if .Values.networkPolicy.extraEgress }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.networkPolicy.extraEgress "context" $ ) | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ ingress:
+ - ports:
+ - port: {{ .Values.containerPorts.http }}
+ {{- if .Values.containerPorts.https }}
+ - port: {{ .Values.containerPorts.https }}
+ {{- end }}
+ {{- if .Values.metrics.enabled }}
+ - port: {{ .Values.metrics.containerPorts.metrics }}
+ {{- end }}
+ {{- if not .Values.networkPolicy.allowExternal }}
+ from:
+ - podSelector:
+ matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 14 }}
+ - podSelector:
+ matchLabels:
+ {{ template "common.names.fullname" . }}-client: "true"
+ {{- if .Values.networkPolicy.ingressNSMatchLabels }}
+ - namespaceSelector:
+ matchLabels:
+ {{- range $key, $value := .Values.networkPolicy.ingressNSMatchLabels }}
+ {{ $key | quote }}: {{ $value | quote }}
+ {{- end }}
+ {{- if .Values.networkPolicy.ingressNSPodMatchLabels }}
+ podSelector:
+ matchLabels:
+ {{- range $key, $value := .Values.networkPolicy.ingressNSPodMatchLabels }}
+ {{ $key | quote }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.networkPolicy.extraIngress }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.networkPolicy.extraIngress "context" $ ) | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/pdb.yaml b/kubernetes/common/nginx/templates/pdb.yaml
new file mode 100644
index 0000000000..821b4f9f70
--- /dev/null
+++ b/kubernetes/common/nginx/templates/pdb.yaml
@@ -0,0 +1,26 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.pdb.create }}
+apiVersion: {{ include "common.capabilities.policy.apiVersion" . }}
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "common.names.fullname" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+spec:
+ {{- if .Values.pdb.minAvailable }}
+ minAvailable: {{ .Values.pdb.minAvailable }}
+ {{- end }}
+ {{- if or .Values.pdb.maxUnavailable (not .Values.pdb.minAvailable)}}
+ maxUnavailable: {{ .Values.pdb.maxUnavailable | default 1 }}
+ {{- end }}
+ {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }}
+ selector:
+ matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/prometheusrules.yaml b/kubernetes/common/nginx/templates/prometheusrules.yaml
new file mode 100644
index 0000000000..d2d728ff24
--- /dev/null
+++ b/kubernetes/common/nginx/templates/prometheusrules.yaml
@@ -0,0 +1,24 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+ name: {{ include "common.names.fullname" . }}
+ namespace: {{ default (include "common.names.namespace" .) .Values.metrics.prometheusRule.namespace | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ app.kubernetes.io/component: metrics
+ {{- if .Values.metrics.prometheusRule.additionalLabels }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.additionalLabels "context" $ ) | nindent 4 }}
+ {{- end }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+spec:
+ groups:
+ - name: {{ include "common.names.fullname" . }}
+ rules: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.rules "context" $ ) | nindent 6 }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/server-block-configmap.yaml b/kubernetes/common/nginx/templates/server-block-configmap.yaml
new file mode 100644
index 0000000000..940c50ec79
--- /dev/null
+++ b/kubernetes/common/nginx/templates/server-block-configmap.yaml
@@ -0,0 +1,19 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if and .Values.serverBlock (not .Values.existingServerBlockConfigmap) }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ template "common.names.fullname" . }}-server-block
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+data:
+ server-block.conf: |-
+ {{- include "common.tplvalues.render" ( dict "value" .Values.serverBlock "context" $ ) | nindent 4 }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/serviceaccount.yaml b/kubernetes/common/nginx/templates/serviceaccount.yaml
new file mode 100644
index 0000000000..20fb4928f3
--- /dev/null
+++ b/kubernetes/common/nginx/templates/serviceaccount.yaml
@@ -0,0 +1,18 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ include "nginx.serviceAccountName" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if or .Values.serviceAccount.annotations .Values.commonAnnotations }}
+ {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.serviceAccount.annotations .Values.commonAnnotations ) "context" . ) }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
+ {{- end }}
+automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
+{{- end -}}
diff --git a/kubernetes/common/nginx/templates/servicemonitor.yaml b/kubernetes/common/nginx/templates/servicemonitor.yaml
new file mode 100644
index 0000000000..d597e06be0
--- /dev/null
+++ b/kubernetes/common/nginx/templates/servicemonitor.yaml
@@ -0,0 +1,45 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "common.names.fullname" . }}
+ namespace: {{ default (include "common.names.namespace" .) .Values.metrics.serviceMonitor.namespace | quote }}
+ {{- $labels := include "common.tplvalues.merge" ( dict "values" ( list .Values.metrics.serviceMonitor.labels .Values.commonLabels ) "context" . ) }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" $labels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+spec:
+ jobLabel: {{ .Values.metrics.serviceMonitor.jobLabel | quote }}
+ selector:
+ matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 6 }}
+ {{- if .Values.metrics.serviceMonitor.selector }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.selector "context" $) | nindent 6 }}
+ {{- end }}
+ endpoints:
+ - port: metrics
+ path: /metrics
+ {{- if .Values.metrics.serviceMonitor.interval }}
+ interval: {{ .Values.metrics.serviceMonitor.interval }}
+ {{- end }}
+ {{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
+ {{- end }}
+ {{- if .Values.metrics.serviceMonitor.honorLabels }}
+ honorLabels: {{ .Values.metrics.serviceMonitor.honorLabels }}
+ {{- end }}
+ {{- if .Values.metrics.serviceMonitor.relabelings }}
+ relabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.relabelings "context" $) | nindent 8 }}
+ {{- end }}
+ {{- if .Values.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.metricRelabelings "context" $) | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ .Release.Namespace }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/stream-server-block-configmap.yaml b/kubernetes/common/nginx/templates/stream-server-block-configmap.yaml
new file mode 100644
index 0000000000..11b39d404b
--- /dev/null
+++ b/kubernetes/common/nginx/templates/stream-server-block-configmap.yaml
@@ -0,0 +1,19 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if and .Values.streamServerBlock (not .Values.existingStreamServerBlockConfigmap) }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ template "common.names.fullname" . }}-stream-server-block
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+data:
+ stream-server-block.conf: |-
+ {{- include "common.tplvalues.render" ( dict "value" .Values.streamServerBlock "context" $ ) | nindent 4 }}
+{{- end }}
diff --git a/kubernetes/common/nginx/templates/svc.yaml b/kubernetes/common/nginx/templates/svc.yaml
new file mode 100644
index 0000000000..e86926fa49
--- /dev/null
+++ b/kubernetes/common/nginx/templates/svc.yaml
@@ -0,0 +1,69 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "common.names.fullname" . }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ annotations:
+ {{- if or .Values.service.annotations .Values.commonAnnotations }}
+ {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.service.annotations .Values.commonAnnotations ) "context" . ) }}
+ {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
+ {{- end }}
+ {{- if and .Values.metrics.enabled .Values.metrics.service.annotations }}
+ {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.service.annotations "context" $) | nindent 4 }}
+ {{- end }}
+spec:
+ type: {{ .Values.service.type }}
+ {{- if and .Values.service.clusterIP (eq .Values.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.service.clusterIP }}
+ {{- 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 }}
+ {{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }}
+ externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }}
+ {{- end }}
+ {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerSourceRanges)) }}
+ loadBalancerSourceRanges: {{- toYaml .Values.service.loadBalancerSourceRanges | nindent 4 }}
+ {{- end }}
+ {{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }}
+ loadBalancerIP: {{ .Values.service.loadBalancerIP }}
+ {{- end }}
+ {{- if and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerClass }}
+ loadBalancerClass: {{ .Values.service.loadBalancerClass }}
+ {{- end }}
+ ports:
+ {{- if .Values.containerPorts.http }}
+ - name: http
+ port: {{ .Values.service.ports.http }}
+ targetPort: {{ .Values.service.targetPort.http }}
+ {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.http)) }}
+ nodePort: {{ .Values.service.nodePorts.http }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.containerPorts.https }}
+ - name: https
+ port: {{ .Values.service.ports.https }}
+ targetPort: {{ .Values.service.targetPort.https }}
+ {{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.https)) }}
+ nodePort: {{ .Values.service.nodePorts.https }}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.metrics.enabled }}
+ - name: metrics
+ port: {{ .Values.metrics.service.port }}
+ targetPort: metrics
+ {{- end }}
+ {{- if .Values.service.extraPorts }}
+ {{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }}
+ {{- end }}
+ {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.podLabels .Values.commonLabels ) "context" . ) }}
+ selector: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 4 }}
diff --git a/kubernetes/common/nginx/templates/tls-secret.yaml b/kubernetes/common/nginx/templates/tls-secret.yaml
new file mode 100644
index 0000000000..4a265f5243
--- /dev/null
+++ b/kubernetes/common/nginx/templates/tls-secret.yaml
@@ -0,0 +1,35 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{- if and .Values.tls.enabled (not .Values.tls.existingSecret) }}
+{{- $ca := genCA "nginx-ca" 365 }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ printf "%s-tls" (include "common.names.fullname" .) }}
+ namespace: {{ include "common.names.namespace" . | quote }}
+ labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+ {{- if .Values.commonAnnotations }}
+ annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
+ {{- end }}
+type: kubernetes.io/tls
+data:
+ {{- if .Values.tls.autoGenerated }}
+ {{- $cert := genSignedCert (include "common.names.fullname" .) nil (list (include "common.names.fullname" .) (printf "%s.%s" (include "common.names.fullname" .) (include "common.names.namespace" .)) (printf "%s.%s.svc" (include "common.names.fullname" .) (include "common.names.namespace" .)) (printf "%s.%s.svc.%s" (include "common.names.fullname" .) (include "common.names.namespace" .) .Values.clusterDomain)) 365 $ca }}
+ {{ .Values.tls.certFilename }}: {{ include "common.secrets.lookup" (dict "secret" (printf "%s-tls" (include "common.names.fullname" .)) "key" .Values.tls.certFilename "defaultValue" $cert.Cert "context" $) }}
+ {{ .Values.tls.certKeyFilename }}: {{ include "common.secrets.lookup" (dict "secret" (printf "%s-tls" (include "common.names.fullname" .)) "key" .Values.tls.certKeyFilename "defaultValue" $cert.Key "context" $) }}
+ {{ .Values.tls.certCAFilename }}: {{ include "common.secrets.lookup" (dict "secret" (printf "%s-tls" (include "common.names.fullname" .)) "key" .Values.tls.certCAFilename "defaultValue" $ca.Cert "context" $) }}
+ {{- else }}
+ {{- if .Values.tls.cert }}
+ {{ .Values.tls.certFilename }}: {{ .Values.tls.cert | b64enc }}
+ {{- end }}
+ {{- if .Values.tls.key }}
+ {{ .Values.tls.certKeyFilename }}: {{ .Values.tls.key | b64enc }}
+ {{- end }}
+ {{- if .Values.tls.ca }}
+ {{ .Values.tls.certCAFilename }}: {{ .Values.tls.ca | b64enc }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/common/nginx/values.schema.json b/kubernetes/common/nginx/values.schema.json
new file mode 100644
index 0000000000..ccb7bcd848
--- /dev/null
+++ b/kubernetes/common/nginx/values.schema.json
@@ -0,0 +1,125 @@
+{
+ "$schema": "http://json-schema.org/schema#",
+ "type": "object",
+ "properties": {
+ "ingress": {
+ "type": "object",
+ "form": true,
+ "title": "Ingress details",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "form": true,
+ "title": "Use a custom hostname",
+ "description": "Enable the ingress resource that allows you to access the NGINX installation."
+ },
+ "hostname": {
+ "type": "string",
+ "form": true,
+ "title": "Hostname",
+ "hidden": {
+ "value": false,
+ "path": "ingress/enabled"
+ }
+ }
+ }
+ },
+ "service": {
+ "type": "object",
+ "form": true,
+ "title": "Service Configuration",
+ "properties": {
+ "type": {
+ "type": "string",
+ "form": true,
+ "title": "Service Type",
+ "description": "Allowed values: \"ClusterIP\", \"NodePort\" and \"LoadBalancer\""
+ }
+ }
+ },
+ "replicaCount": {
+ "type": "integer",
+ "form": true,
+ "title": "Number of replicas",
+ "description": "Number of replicas to deploy"
+ },
+ "serverBlock": {
+ "type": "string",
+ "form": true,
+ "title": "Custom server block",
+ "description": "Custom server block to be added to NGINX configuration"
+ },
+ "streamServerBlock": {
+ "type": "string",
+ "form": true,
+ "title": "Custom stream server block",
+ "description": "Custom stream server block to be added to NGINX configuration"
+ },
+ "containerSecurityContext": {
+ "type": "object",
+ "form": true,
+ "title": "NGINX containers' Security Context",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "form": true,
+ "title": "Enable Security Context",
+ "description": "Whether to enable NGINX containers' Security Context"
+ },
+ "runAsUser": {
+ "type": "integer",
+ "form": true,
+ "title": "ID of the user",
+ "description": "The UID of the user NGINX containers will run as"
+ }
+ }
+ },
+ "podSecurityContext": {
+ "type": "object",
+ "form": true,
+ "title": "NGINX pods' Security Context",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "form": true,
+ "title": "Enable Security Context",
+ "description": "Whether to enable NGINX pods' Security Context"
+ },
+ "fsGroup": {
+ "type": "integer",
+ "form": true,
+ "title": "ID of the group",
+ "description": "The GID of the group NGINX pods will run as"
+ }
+ }
+ },
+ "metrics": {
+ "type": "object",
+ "form": true,
+ "title": "Prometheus metrics details",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "title": "Create Prometheus metrics exporter",
+ "description": "Create a side-car container to expose Prometheus metrics",
+ "form": true
+ },
+ "serviceMonitor": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "title": "Create Prometheus Operator ServiceMonitor",
+ "description": "Create a ServiceMonitor to track metrics using Prometheus Operator",
+ "form": true,
+ "hidden": {
+ "value": false,
+ "path": "metrics/enabled"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/kubernetes/common/nginx/values.yaml b/kubernetes/common/nginx/values.yaml
new file mode 100644
index 0000000000..bb26ecebf2
--- /dev/null
+++ b/kubernetes/common/nginx/values.yaml
@@ -0,0 +1,1094 @@
+# Copyright Broadcom, Inc. All Rights Reserved.
+# SPDX-License-Identifier: APACHE-2.0
+
+## @section Global parameters
+## 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, imagePullSecrets and storageClass
+
+## @param global.imageRegistry Global Docker image registry
+## @param global.imagePullSecrets Global Docker registry secret names as an array
+##
+global:
+ imageRegistry: ""
+ ## E.g.
+ ## imagePullSecrets:
+ ## - myRegistryKeySecretName
+ ##
+ imagePullSecrets: []
+ ## Security parameters
+ ##
+ security:
+ ## @param global.security.allowInsecureImages Allows skipping image verification
+ ##
+ allowInsecureImages: false
+ ## Compatibility adaptations for Kubernetes platforms
+ ##
+ compatibility:
+ ## Compatibility adaptations for Openshift
+ ##
+ openshift:
+ ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
+ ##
+ adaptSecurityContext: auto
+## @section Common parameters
+
+## @param nameOverride String to partially override nginx.fullname template (will maintain the release name)
+##
+nameOverride: ""
+## @param fullnameOverride String to fully override nginx.fullname template
+##
+fullnameOverride: ""
+## @param namespaceOverride String to fully override common.names.namespace
+##
+namespaceOverride: ""
+## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
+##
+kubeVersion: ""
+## @param clusterDomain Kubernetes Cluster Domain
+##
+clusterDomain: cluster.local
+## @param extraDeploy Extra objects to deploy (value evaluated as a template)
+##
+extraDeploy: []
+## @param commonLabels Add labels to all the deployed resources
+##
+commonLabels: {}
+## @param commonAnnotations Add annotations to all the deployed resources
+##
+commonAnnotations: {}
+## Enable diagnostic mode in the deployment(s)/statefulset(s)
+##
+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 the deployment(s)/statefulset(s)
+ ##
+ command:
+ - sleep
+ ## @param diagnosticMode.args Args to override all containers in the the deployment(s)/statefulset(s)
+ ##
+ args:
+ - infinity
+## @section NGINX parameters
+
+## Bitnami NGINX image version
+## ref: https://hub.docker.com/r/bitnami/nginx/tags/
+## @param image.registry [default: REGISTRY_NAME] NGINX image registry
+## @param image.repository [default: REPOSITORY_NAME/nginx] NGINX image repository
+## @skip image.tag NGINX image tag (immutable tags are recommended)
+## @param image.digest NGINX image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
+## @param image.pullPolicy NGINX image pull policy
+## @param image.pullSecrets Specify docker-registry secret names as an array
+## @param image.debug Set to true if you would like to see extra information on logs
+##
+image:
+ registry: docker.io
+ repository: bitnami/nginx
+ tag: 1.27.3-debian-12-r5
+ digest: ""
+ ## Specify a imagePullPolicy
+ ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
+ ##
+ pullPolicy: IfNotPresent
+ ## Optionally specify an array of imagePullSecrets.
+ ## Secrets must be manually created in the namespace.
+ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+ ## E.g.:
+ ## pullSecrets:
+ ## - myRegistryKeySecretName
+ ##
+ pullSecrets: []
+ ## Set to true if you would like to see extra information on logs
+ ##
+ debug: false
+## @param automountServiceAccountToken Mount Service Account token in pod
+##
+automountServiceAccountToken: false
+## @param hostAliases Deployment pod host aliases
+## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
+##
+hostAliases: []
+## 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)
+## @param args Override default container args (useful when using custom images)
+##
+command: []
+args: []
+## @param extraEnvVars Extra environment variables to be set on NGINX containers
+## E.g:
+## extraEnvVars:
+## - name: FOO
+## value: BAR
+##
+extraEnvVars: []
+## @param extraEnvVarsCM ConfigMap with extra environment variables
+##
+extraEnvVarsCM: ""
+## @param extraEnvVarsSecret Secret with extra environment variables
+##
+extraEnvVarsSecret: ""
+## @section NGINX deployment parameters
+
+## @param replicaCount Number of NGINX replicas to deploy
+##
+replicaCount: 1
+## @param revisionHistoryLimit The number of old history to retain to allow rollback
+##
+revisionHistoryLimit: 10
+## @param updateStrategy.type NGINX deployment strategy type
+## @param updateStrategy.rollingUpdate NGINX deployment rolling update configuration parameters
+## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
+##
+updateStrategy:
+ type: RollingUpdate
+ rollingUpdate: {}
+## @param podLabels Additional labels for NGINX pods
+## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
+##
+podLabels: {}
+## @param podAnnotations Annotations for NGINX pods
+## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
+##
+podAnnotations: {}
+## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
+## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+##
+podAffinityPreset: ""
+## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
+## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
+##
+podAntiAffinityPreset: soft
+## Node affinity preset
+## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
+##
+nodeAffinityPreset:
+ ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
+ ##
+ type: ""
+ ## @param nodeAffinityPreset.key Node label key to match Ignored if `affinity` is set.
+ ## E.g.
+ ## key: "kubernetes.io/e2e-az-name"
+ ##
+ key: ""
+ ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
+ ## E.g.
+ ## values:
+ ## - e2e-az1
+ ## - e2e-az2
+ ##
+ values: []
+## @param affinity Affinity for pod assignment
+## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
+## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
+##
+affinity: {}
+## @param hostNetwork Specify if host network should be enabled for NGINX pod
+##
+hostNetwork: false
+## @param hostIPC Specify if host IPC should be enabled for NGINX pod
+##
+hostIPC: false
+## DNS-Pod services
+## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
+## @param dnsPolicy Specifies the DNS policy for the NGINX pod
+## DNS policies can be set on a per-Pod basis. Currently Kubernetes supports the following Pod-specific DNS policies.
+## Available options: Default, ClusterFirst, ClusterFirstWithHostNet, None
+## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
+dnsPolicy: ""
+## @param dnsConfig Allows users more control on the DNS settings for a Pod. Required if `dnsPolicy` is set to `None`
+## The dnsConfig field is optional and it can work with any dnsPolicy settings.
+## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config
+## E.g.
+## dnsConfig:
+## nameservers:
+## - 192.0.2.1 # this is an example
+## searches:
+## - ns1.svc.cluster-domain.example
+## - my.dns.search.suffix
+## options:
+## - name: ndots
+## value: "2"
+## - name: edns0
+dnsConfig: {}
+## @param nodeSelector Node labels for pod assignment. Evaluated as a template.
+## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
+##
+nodeSelector: {}
+## @param tolerations Tolerations for pod assignment. Evaluated as a template.
+## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+##
+tolerations: []
+## @param priorityClassName NGINX pods' priorityClassName
+##
+priorityClassName: ""
+## @param schedulerName Name of the k8s scheduler (other than default)
+## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
+##
+schedulerName: ""
+## @param terminationGracePeriodSeconds In seconds, time the given to the NGINX pod needs to terminate gracefully
+## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
+##
+terminationGracePeriodSeconds: ""
+## @param topologySpreadConstraints Topology Spread Constraints for pod assignment
+## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
+## The value is evaluated as a template
+##
+topologySpreadConstraints: []
+## TLS settings
+##
+tls:
+ ## @param tls.enabled Enable TLS transport
+ ##
+ enabled: true
+ ## @param tls.autoGenerated Auto-generate self-signed certificates
+ ##
+ autoGenerated: true
+ ## @param tls.existingSecret Name of a secret containing the certificates
+ ##
+ existingSecret: ""
+ ## @param tls.certFilename Path of the certificate file when mounted as a secret
+ ##
+ certFilename: tls.crt
+ ## @param tls.certKeyFilename Path of the certificate key file when mounted as a secret
+ ##
+ certKeyFilename: tls.key
+ ## @param tls.certCAFilename Path of the certificate CA file when mounted as a secret
+ ##
+ certCAFilename: ca.crt
+ ## @param tls.cert Content of the certificate to be added to the secret
+ ##
+ cert: ""
+ ## @param tls.key Content of the certificate key to be added to the secret
+ ##
+ key: ""
+ ## @param tls.ca Content of the certificate CA to be added to the secret
+ ##
+ ca: ""
+## NGINX 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 NGINX pods' Security Context
+## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
+## @param podSecurityContext.supplementalGroups Set filesystem extra groups
+## @param podSecurityContext.fsGroup Set NGINX pod's Security Context fsGroup
+## @param podSecurityContext.sysctls sysctl settings of the NGINX pods
+##
+podSecurityContext:
+ enabled: true
+ fsGroupChangePolicy: Always
+ supplementalGroups: []
+ fsGroup: 1001
+ ## sysctl settings
+ ## Example:
+ ## sysctls:
+ ## - name: net.core.somaxconn
+ ## value: "10000"
+ ##
+ sysctls: []
+## NGINX 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 containers' Security Context
+## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
+## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
+## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
+## @param containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
+## @param containerSecurityContext.privileged Set container's Security Context privileged
+## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
+## @param containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
+## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
+## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
+##
+containerSecurityContext:
+ enabled: true
+ seLinuxOptions: {}
+ runAsUser: 1001
+ runAsGroup: 1001
+ runAsNonRoot: true
+ privileged: false
+ readOnlyRootFilesystem: true
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop: ["ALL"]
+ seccompProfile:
+ type: "RuntimeDefault"
+## Configures the ports NGINX listens on
+## @param containerPorts.http Sets http port inside NGINX container
+## @param containerPorts.https Sets https port inside NGINX container
+##
+containerPorts:
+ http: 8080
+ https: 8443
+## @param extraContainerPorts Array of additional container ports for the Nginx container
+## e.g:
+## extraContainerPorts:
+## - name: grpc
+## containerPort: 4317
+##
+extraContainerPorts: []
+## NGINX containers' resource requests and limits
+## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
+## 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
+## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
+## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
+##
+resourcesPreset: "nano"
+## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
+## Example:
+## resources:
+## requests:
+## cpu: 2
+## memory: 512Mi
+## limits:
+## cpu: 3
+## memory: 1024Mi
+##
+resources: {}
+## NGINX containers' lifecycleHooks
+## ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
+## If you do want to specify lifecycleHooks, uncomment the following
+## lines, adjust them as necessary, and remove the curly braces on 'lifecycle:{}'.
+## @param lifecycleHooks Optional lifecycleHooks for the NGINX container
+lifecycleHooks: {}
+## Example:
+## postStart:
+## exec:
+## command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
+## Example:
+## preStop:
+## exec:
+## command: ["/bin/sleep", "20"]
+## command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
+
+## NGINX containers' startup probe.
+## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-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: false
+ initialDelaySeconds: 30
+ timeoutSeconds: 5
+ periodSeconds: 10
+ failureThreshold: 6
+ successThreshold: 1
+## NGINX containers' liveness probe.
+## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
+## @param livenessProbe.enabled Enable livenessProbe
+## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
+## @param livenessProbe.periodSeconds Period seconds for livenessProbe
+## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
+## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
+## @param livenessProbe.successThreshold Success threshold for livenessProbe
+##
+livenessProbe:
+ enabled: true
+ initialDelaySeconds: 30
+ timeoutSeconds: 5
+ periodSeconds: 10
+ failureThreshold: 6
+ successThreshold: 1
+## NGINX containers' readiness probe.
+## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
+## @param readinessProbe.enabled Enable readinessProbe
+## @param readinessProbe.path Request path for livenessProbe
+## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
+## @param readinessProbe.periodSeconds Period seconds for readinessProbe
+## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
+## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
+## @param readinessProbe.successThreshold Success threshold for readinessProbe
+##
+readinessProbe:
+ enabled: true
+ path: /
+ initialDelaySeconds: 5
+ timeoutSeconds: 3
+ periodSeconds: 5
+ failureThreshold: 3
+ successThreshold: 1
+## @param customStartupProbe Custom liveness probe for the Web component
+##
+customStartupProbe: {}
+## @param customLivenessProbe Override default liveness probe
+##
+customLivenessProbe: {}
+## @param customReadinessProbe Override default readiness probe
+##
+customReadinessProbe: {}
+## Autoscaling parameters
+## @param autoscaling.enabled Enable autoscaling for NGINX deployment
+## @param autoscaling.minReplicas Minimum number of replicas to scale back
+## @param autoscaling.maxReplicas Maximum number of replicas to scale out
+## @param autoscaling.targetCPU Target CPU utilization percentage
+## @param autoscaling.targetMemory Target Memory utilization percentage
+##
+autoscaling:
+ enabled: false
+ minReplicas: ""
+ maxReplicas: ""
+ targetCPU: ""
+ targetMemory: ""
+## @param extraVolumes Array to add extra volumes
+##
+extraVolumes: []
+## @param extraVolumeMounts Array to add extra mount
+##
+extraVolumeMounts: []
+## Pods Service Account
+## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
+##
+serviceAccount:
+ ## @param serviceAccount.create Enable creation of ServiceAccount for nginx pod
+ ##
+ create: true
+ ## @param serviceAccount.name The name of the ServiceAccount to use.
+ ## If not set and create is true, a name is generated using the `common.names.fullname` template
+ name: ""
+ ## @param serviceAccount.annotations Annotations for service account. Evaluated as a template.
+ ## Only used if `create` is `true`.
+ ##
+ annotations: {}
+ ## @param serviceAccount.automountServiceAccountToken Auto-mount the service account token in the pod
+ ##
+ automountServiceAccountToken: false
+## @param sidecars Sidecar parameters
+## e.g:
+## sidecars:
+## - name: your-image-name
+## image: your-image
+## imagePullPolicy: Always
+## ports:
+## - name: portname
+## containerPort: 1234
+##
+sidecars: []
+## @param sidecarSingleProcessNamespace Enable sharing the process namespace with sidecars
+## This will switch pod.spec.shareProcessNamespace parameter
+##
+sidecarSingleProcessNamespace: false
+## @param initContainers Extra init containers
+##
+initContainers: []
+## Pod Disruption Budget configuration
+## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
+##
+pdb:
+ ## @param pdb.create Created a PodDisruptionBudget
+ ##
+ create: true
+ ## @param pdb.minAvailable Min number of pods that must still be available after the eviction.
+ ## You can specify an integer or a percentage by setting the value to a string representation of a percentage (eg. "50%"). It will be disabled if set to 0
+ ##
+ minAvailable: ""
+ ## @param pdb.maxUnavailable Max number of pods that can be unavailable after the eviction.
+ ## You can specify an integer or a percentage by setting the value to a string representation of a percentage (eg. "50%"). It will be disabled if set to 0. Defaults to `1` if both `pdb.minAvailable` and `pdb.maxUnavailable` are empty.
+ ##
+ maxUnavailable: ""
+## @section Custom NGINX application parameters
+
+## Get the server static content from a git repository
+## NOTE: This will override staticSiteConfigmap and staticSitePVC
+##
+cloneStaticSiteFromGit:
+ ## @param cloneStaticSiteFromGit.enabled Get the server static content from a Git repository
+ ##
+ enabled: false
+ ## Bitnami Git image version
+ ## ref: https://hub.docker.com/r/bitnami/git/tags/
+ ## @param cloneStaticSiteFromGit.image.registry [default: REGISTRY_NAME] Git image registry
+ ## @param cloneStaticSiteFromGit.image.repository [default: REPOSITORY_NAME/git] Git image repository
+ ## @skip cloneStaticSiteFromGit.image.tag Git image tag (immutable tags are recommended)
+ ## @param cloneStaticSiteFromGit.image.digest Git image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
+ ## @param cloneStaticSiteFromGit.image.pullPolicy Git image pull policy
+ ## @param cloneStaticSiteFromGit.image.pullSecrets Specify docker-registry secret names as an array
+ ##
+ image:
+ registry: docker.io
+ repository: bitnami/git
+ tag: 2.48.0-debian-12-r0
+ digest: ""
+ ## Specify a imagePullPolicy
+ ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
+ ##
+ pullPolicy: IfNotPresent
+ ## Optionally specify an array of imagePullSecrets.
+ ## Secrets must be manually created in the namespace.
+ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+ ## e.g:
+ ## pullSecrets:
+ ## - myRegistryKeySecretName
+ ##
+ pullSecrets: []
+ ## @param cloneStaticSiteFromGit.repository Git Repository to clone static content from
+ ##
+ repository: ""
+ ## @param cloneStaticSiteFromGit.branch Git branch to checkout
+ ##
+ branch: ""
+ ## @param cloneStaticSiteFromGit.interval Interval for sidecar container pull from the Git repository
+ ##
+ interval: 60
+ ## Additional configuration for git-clone-repository initContainer
+ ##
+ gitClone:
+ ## @param cloneStaticSiteFromGit.gitClone.command Override default container command for git-clone-repository
+ ##
+ command: []
+ ## @param cloneStaticSiteFromGit.gitClone.args Override default container args for git-clone-repository
+ ##
+ args: []
+ ## Additional configuration for the git-repo-syncer container
+ ##
+ gitSync:
+ ## @param cloneStaticSiteFromGit.gitSync.command Override default container command for git-repo-syncer
+ ##
+ command: []
+ ## @param cloneStaticSiteFromGit.gitSync.args Override default container args for git-repo-syncer
+ ##
+ args: []
+ ## git-repo-syncer resource requests and limits
+ ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
+ ## @param cloneStaticSiteFromGit.gitSync.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if cloneStaticSiteFromGit.gitSync.resources is set (cloneStaticSiteFromGit.gitSync.resources is recommended for production).
+ ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
+ ##
+ resourcesPreset: "nano"
+ ## @param cloneStaticSiteFromGit.gitSync.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
+ ## Example:
+ ## resources:
+ ## requests:
+ ## cpu: 2
+ ## memory: 512Mi
+ ## limits:
+ ## cpu: 3
+ ## memory: 1024Mi
+ ##
+ resources: {}
+ ## @param cloneStaticSiteFromGit.extraEnvVars Additional environment variables to set for the in the containers that clone static site from git
+ ## E.g:
+ ## extraEnvVars:
+ ## - name: FOO
+ ## value: BAR
+ ##
+ extraEnvVars: []
+ ## @param cloneStaticSiteFromGit.extraEnvVarsSecret Secret with extra environment variables
+ ##
+ extraEnvVarsSecret: ""
+ ## @param cloneStaticSiteFromGit.extraVolumeMounts Add extra volume mounts for the Git containers
+ ## Useful to mount keys to connect through ssh. (normally used with extraVolumes)
+ ## E.g:
+ ## extraVolumeMounts:
+ ## - name: ssh-dir
+ ## mountPath: /root/.ssh/
+ ##
+ extraVolumeMounts: []
+## @param serverBlock Custom server block to be added to NGINX configuration
+## PHP-FPM example server block:
+## serverBlock: |-
+## server {
+## listen 0.0.0.0:8080;
+## root /app;
+## location / {
+## index index.html index.php;
+## }
+## location ~ \.php$ {
+## fastcgi_pass phpfpm-server:9000;
+## fastcgi_index index.php;
+## include fastcgi.conf;
+## }
+## }
+##
+serverBlock: ""
+## @param streamServerBlock Custom stream server block to be added to NGINX configuration
+## streamServerBlock: |-
+## server {
+## listen 0.0.0.0:8080 udp;
+## proxy_pass localhost:9000;
+## }
+##
+streamServerBlock: ""
+## @param existingServerBlockConfigmap ConfigMap with custom server block to be added to NGINX configuration
+## NOTE: This will override serverBlock
+##
+existingServerBlockConfigmap: ""
+## @param existingStreamServerBlockConfigmap ConfigMap with custom stream server block to be added to NGINX configuration
+## NOTE: This will override streamServerBlock
+##
+existingStreamServerBlockConfigmap: ""
+## @param staticSiteConfigmap Name of existing ConfigMap with the server static site content
+##
+staticSiteConfigmap: ""
+## @param staticSitePVC Name of existing PVC with the server static site content
+## NOTE: This will override staticSiteConfigmap
+##
+staticSitePVC: ""
+## @section Traffic Exposure parameters
+
+## NGINX Service properties
+##
+service:
+ ## @param service.type Service type
+ ##
+ type: ClusterIP
+ ## @param service.ports.http Service HTTP port
+ ## @param service.ports.https Service HTTPS port
+ ##
+ ports:
+ http: 80
+ https: 443
+ ##
+ ## @param service.nodePorts [object] Specify the nodePort(s) value(s) for the LoadBalancer and NodePort service types.
+ ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+ ##
+ nodePorts:
+ http: ""
+ https: ""
+ ## @param service.targetPort [object] Target port reference value for the Loadbalancer service types can be specified explicitly.
+ ## Listeners for the Loadbalancer can be custom mapped to the http or https service.
+ ## Example: Mapping the https listener to targetPort http [http: https]
+ ##
+ targetPort:
+ http: http
+ https: https
+ ## @param service.clusterIP NGINX service Cluster IP
+ ## e.g.:
+ ## clusterIP: None
+ ##
+ clusterIP: ""
+ ## @param service.loadBalancerIP LoadBalancer service IP address
+ ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
+ ##
+ loadBalancerIP: ""
+ ## @param service.loadBalancerSourceRanges NGINX service Load Balancer sources
+ ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
+ ## e.g:
+ ## loadBalancerSourceRanges:
+ ## - 10.10.10.0/24
+ ##
+ loadBalancerSourceRanges: []
+ ## @param service.loadBalancerClass service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
+ ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
+ ##
+ loadBalancerClass: ""
+ ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
+ ##
+ extraPorts: []
+ ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
+ ## If "ClientIP", consecutive client requests will be directed to the same Pod
+ ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
+ ##
+ sessionAffinity: None
+ ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
+ ## sessionAffinityConfig:
+ ## clientIP:
+ ## timeoutSeconds: 300
+ ##
+ sessionAffinityConfig: {}
+ ## @param service.annotations Service annotations
+ ## This can be used to set the LoadBalancer service type to internal only.
+ ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
+ ##
+ annotations: {}
+ ## @param service.externalTrafficPolicy Enable client source IP preservation
+ ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
+ ##
+ externalTrafficPolicy: Cluster
+## Network Policies
+## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
+##
+networkPolicy:
+ ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
+ ##
+ enabled: true
+ ## @param networkPolicy.allowExternal Don't require server label for connections
+ ## The Policy model to apply. When set to false, only pods with the correct
+ ## server label will have network access to the ports server is listening
+ ## on. When true, server will accept connections from any source
+ ## (with the correct destination port).
+ ##
+ allowExternal: true
+ ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
+ ##
+ allowExternalEgress: true
+ ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
+ ## e.g:
+ ## extraIngress:
+ ## - ports:
+ ## - port: 1234
+ ## from:
+ ## - podSelector:
+ ## - matchLabels:
+ ## - role: frontend
+ ## - podSelector:
+ ## - matchExpressions:
+ ## - key: role
+ ## operator: In
+ ## values:
+ ## - frontend
+ extraIngress: []
+ ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
+ ## e.g:
+ ## extraEgress:
+ ## - ports:
+ ## - port: 1234
+ ## to:
+ ## - podSelector:
+ ## - matchLabels:
+ ## - role: frontend
+ ## - podSelector:
+ ## - matchExpressions:
+ ## - key: role
+ ## operator: In
+ ## values:
+ ## - frontend
+ ##
+ extraEgress: []
+ ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
+ ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
+ ##
+ ingressNSMatchLabels: {}
+ ingressNSPodMatchLabels: {}
+## Configure the ingress resource that allows you to access the
+## Nginx installation. Set up the URL
+## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
+##
+ingress:
+ ## @param ingress.enabled Set to true to enable ingress record generation
+ ##
+ enabled: false
+ ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
+ ##
+ selfSigned: false
+ ## @param ingress.pathType Ingress path type
+ ##
+ pathType: ImplementationSpecific
+ ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
+ ##
+ apiVersion: ""
+ ## @param ingress.hostname Default host for the ingress resource
+ ##
+ hostname: nginx.local
+ ## @param ingress.path The Path to Nginx. You may need to set this to '/*' in order to use this with ALB ingress controllers.
+ ##
+ path: /
+ ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
+ ## For a full list of possible ingress annotations, please see
+ ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
+ ## Use this parameter to set the required annotations for cert-manager, see
+ ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
+ ##
+ ## e.g:
+ ## annotations:
+ ## kubernetes.io/ingress.class: nginx
+ ## cert-manager.io/cluster-issuer: cluster-issuer-name
+ ##
+ annotations: {}
+ ## @param ingress.ingressClassName Set the ingerssClassName on the ingress record for k8s 1.18+
+ ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
+ ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
+ ##
+ ingressClassName: ""
+ ## @param ingress.tls Create TLS Secret
+ ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
+ ## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
+ ##
+ tls: false
+ ## @param ingress.tlsWwwPrefix Adds www subdomain to default cert
+ ## Creates tls host with ingress.hostname: {{ print "www.%s" .Values.ingress.hostname }}
+ ## Is enabled if "nginx.ingress.kubernetes.io/from-to-www-redirect" is "true"
+ tlsWwwPrefix: false
+ ## @param ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
+ ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
+ ## extraHosts:
+ ## - name: nginx.local
+ ## path: /
+ ##
+ extraHosts: []
+ ## @param ingress.extraPaths Any additional arbitrary paths that may need to be added to the ingress under the main host.
+ ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
+ ## extraPaths:
+ ## - path: /*
+ ## backend:
+ ## serviceName: ssl-redirect
+ ## servicePort: use-annotation
+ ##
+ extraPaths: []
+ ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
+ ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
+ ## extraTls:
+ ## - hosts:
+ ## - nginx.local
+ ## secretName: nginx.local-tls
+ ##
+ extraTls: []
+ ## @param ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
+ ## key and certificate should start with -----BEGIN CERTIFICATE----- or
+ ## -----BEGIN RSA PRIVATE KEY-----
+ ##
+ ## name should line up with a tlsSecret set further up
+ ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
+ ##
+ ## It is also possible to create and manage the certificates outside of this helm chart
+ ## Please see README.md for more information
+ ## e.g:
+ ## - name: nginx.local-tls
+ ## key:
+ ## certificate:
+ ##
+ secrets: []
+ ## @param ingress.extraRules The list of additional rules to be added to this ingress record. Evaluated as a template
+ ## Useful when looking for additional customization, such as using different backend
+ ##
+ extraRules: []
+## Health Ingress parameters
+##
+healthIngress:
+ ## @param healthIngress.enabled Set to true to enable health ingress record generation
+ ##
+ enabled: false
+ ## @param healthIngress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
+ ##
+ selfSigned: false
+ ## @param healthIngress.pathType Ingress path type
+ ##
+ pathType: ImplementationSpecific
+ ## @param healthIngress.hostname When the health ingress is enabled, a host pointing to this will be created
+ ##
+ hostname: example.local
+ ## @param healthIngress.path Default path for the ingress record
+ ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
+ ##
+ path: /
+ ## @param healthIngress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
+ ## For a full list of possible ingress annotations, please see
+ ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
+ ## Use this parameter to set the required annotations for cert-manager, see
+ ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
+ ##
+ ## e.g:
+ ## annotations:
+ ## kubernetes.io/ingress.class: nginx
+ ## cert-manager.io/cluster-issuer: cluster-issuer-name
+ ##
+ annotations: {}
+ ## @param healthIngress.tls Enable TLS configuration for the hostname defined at `healthIngress.hostname` parameter
+ ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.healthIngress.hostname }}
+ ## You can use the healthIngress.secrets parameter to create this TLS secret, relay on cert-manager to create it, or
+ ## let the chart create self-signed certificates for you
+ ##
+ tls: false
+ ## @param healthIngress.extraHosts An array with additional hostname(s) to be covered with the ingress record
+ ## e.g:
+ ## extraHosts:
+ ## - name: example.local
+ ## path: /
+ ##
+ extraHosts: []
+ ## @param healthIngress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
+ ## e.g:
+ ## extraPaths:
+ ## - path: /*
+ ## backend:
+ ## serviceName: ssl-redirect
+ ## servicePort: use-annotation
+ ##
+ extraPaths: []
+ ## @param healthIngress.extraTls TLS configuration for additional hostnames to be covered
+ ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
+ ## E.g.
+ ## extraTls:
+ ## - hosts:
+ ## - example.local
+ ## secretName: example.local-tls
+ ##
+ extraTls: []
+ ## @param healthIngress.secrets TLS Secret configuration
+ ## If you're providing your own certificates, please use this to add the certificates as secrets
+ ## key and certificate should start with -----BEGIN CERTIFICATE----- or -----BEGIN RSA PRIVATE KEY-----
+ ## name should line up with a secretName set further up
+ ## If it is not set and you're using cert-manager, this is unneeded, as it will create the secret for you
+ ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created
+ ## It is also possible to create and manage the certificates outside of this helm chart
+ ## Please see README.md for more information
+ ##
+ ## E.g.
+ ## secrets:
+ ## - name: example.local-tls
+ ## key:
+ ## certificate:
+ ##
+ secrets: []
+ ## @param healthIngress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
+ ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
+ ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
+ ##
+ ingressClassName: ""
+ ## @param healthIngress.extraRules The list of additional rules to be added to this ingress record. Evaluated as a template
+ ## Useful when looking for additional customization, such as using different backend
+ ##
+ extraRules: []
+## @section Metrics parameters
+
+## Prometheus Exporter / Metrics
+##
+metrics:
+ ## @param metrics.enabled Start a Prometheus exporter sidecar container
+ ##
+ enabled: false
+ ## Bitnami NGINX Prometheus Exporter image
+ ## ref: https://hub.docker.com/r/bitnami/nginx-exporter/tags/
+ ## @param metrics.image.registry [default: REGISTRY_NAME] NGINX Prometheus exporter image registry
+ ## @param metrics.image.repository [default: REPOSITORY_NAME/nginx-exporter] NGINX Prometheus exporter image repository
+ ## @skip metrics.image.tag NGINX Prometheus exporter image tag (immutable tags are recommended)
+ ## @param metrics.image.digest NGINX Prometheus exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
+ ## @param metrics.image.pullPolicy NGINX Prometheus exporter image pull policy
+ ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
+ ##
+ image:
+ registry: docker.io
+ repository: bitnami/nginx-exporter
+ tag: 1.4.1-debian-12-r0
+ digest: ""
+ pullPolicy: IfNotPresent
+ ## Optionally specify an array of imagePullSecrets.
+ ## Secrets must be manually created in the namespace.
+ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+ ## e.g:
+ ## pullSecrets:
+ ## - myRegistryKeySecretName
+ ##
+ pullSecrets: []
+ ## @param metrics.port NGINX Container Status Port scraped by Prometheus Exporter
+ ## Defaults to specified http port
+ ##
+ port: ""
+ ## @param metrics.extraArgs Extra arguments for Prometheus exporter
+ ## e.g:
+ ## extraArgs:
+ ## - --nginx.timeout
+ ## - 5s
+ ##
+ extraArgs: []
+ ## @param metrics.containerPorts.metrics Prometheus exporter container port
+ ##
+ containerPorts:
+ metrics: 9113
+ ## @param metrics.podAnnotations Additional annotations for NGINX Prometheus exporter pod(s)
+ ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
+ ##
+ podAnnotations: {}
+ ## Container Security Context
+ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ ## @param metrics.securityContext.enabled Enabled NGINX Exporter containers' Security Context
+ ## @param metrics.securityContext.seLinuxOptions [object,nullable] Set SELinux options in container
+ ## @param metrics.securityContext.runAsUser Set NGINX Exporter container's Security Context runAsUser
+ ##
+ securityContext:
+ enabled: false
+ seLinuxOptions: {}
+ runAsUser: 1001
+ ## Prometheus exporter service parameters
+ ##
+ service:
+ ## @param metrics.service.port NGINX Prometheus exporter service port
+ ##
+ port: 9113
+ ## @param metrics.service.annotations [object] Annotations for the Prometheus exporter service
+ ##
+ annotations:
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "{{ .Values.metrics.service.port }}"
+ ## NGINX Prometheus exporter resource requests and limits
+ ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
+ ## 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
+ ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
+ ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
+ ##
+ resourcesPreset: "nano"
+ ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
+ ## Example:
+ ## resources:
+ ## requests:
+ ## cpu: 2
+ ## memory: 512Mi
+ ## limits:
+ ## cpu: 3
+ ## memory: 1024Mi
+ ##
+ resources: {}
+ ## Prometheus Operator ServiceMonitor configuration
+ ##
+ serviceMonitor:
+ ## @param metrics.serviceMonitor.enabled Creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
+ ##
+ enabled: false
+ ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
+ ##
+ namespace: ""
+ ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
+ ##
+ jobLabel: ""
+ ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
+ ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
+ ## e.g:
+ ## interval: 10s
+ ##
+ interval: ""
+ ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
+ ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
+ ## e.g:
+ ## scrapeTimeout: 10s
+ ##
+ scrapeTimeout: ""
+ ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
+ ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
+ ##
+ ## selector:
+ ## prometheus: my-prometheus
+ ##
+ selector: {}
+ ## @param metrics.serviceMonitor.labels Additional labels that can be used so PodMonitor will be discovered by Prometheus
+ ##
+ labels: {}
+ ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
+ ##
+ relabelings: []
+ ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
+ ##
+ metricRelabelings: []
+ ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
+ ##
+ honorLabels: false
+ ## Prometheus Operator PrometheusRule configuration
+ ##
+ prometheusRule:
+ ## @param metrics.prometheusRule.enabled if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)
+ ##
+ enabled: false
+ ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
+ ##
+ namespace: ""
+ ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
+ ##
+ additionalLabels: {}
+ ## @param metrics.prometheusRule.rules Prometheus Rule definitions
+ ## - alert: LowInstance
+ ## expr: up{service="{{ template "common.names.fullname" . }}"} < 1
+ ## for: 1m
+ ## labels:
+ ## severity: critical
+ ## annotations:
+ ## description: Service {{ template "common.names.fullname" . }} Tomcat is down since 1m.
+ ## summary: Tomcat instance is down.
+ ##
+ rules: []
diff --git a/kubernetes/common/postgres-init/Chart.yaml b/kubernetes/common/postgres-init/Chart.yaml
index 4951ed6359..2f1971c77a 100644
--- a/kubernetes/common/postgres-init/Chart.yaml
+++ b/kubernetes/common/postgres-init/Chart.yaml
@@ -17,8 +17,7 @@
apiVersion: v2
description: Chart for Postgres init job
name: postgres-init
-version: 13.0.3
-
+version: 13.0.6
dependencies:
- name: common
diff --git a/kubernetes/common/postgres-init/templates/configmap.yaml b/kubernetes/common/postgres-init/templates/configmap.yaml
index 66c28a0c69..e6a67448c7 100644
--- a/kubernetes/common/postgres-init/templates/configmap.yaml
+++ b/kubernetes/common/postgres-init/templates/configmap.yaml
@@ -20,10 +20,6 @@ kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
data:
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/common/postgres-init/templates/job.yaml b/kubernetes/common/postgres-init/templates/job.yaml
index a2f7e12274..c7b1cb2052 100644
--- a/kubernetes/common/postgres-init/templates/job.yaml
+++ b/kubernetes/common/postgres-init/templates/job.yaml
@@ -19,24 +19,18 @@ kind: Job
metadata:
name: {{ include "common.fullname" . }}-config-job
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
metadata:
- annotations:
- # Workarround to exclude K8S API from istio communication
- # as init-container (readinessCheck) does not work with the
- # Istio CNI plugin, see:
- # (https://istio.io/latest/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers)
- traffic.sidecar.istio.io/excludeOutboundPorts: "443"
- labels:
- app: {{ include "common.name" . }}
- release: {{ include "common.release" . }}
+ {{- if .Values.jobPodAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobPodAnnotations "context" $) | nindent 8 }}
+ {{- end }}
+ labels: {{- include "common.labels" . | nindent 8 }}
name: {{ include "common.name" . }}
spec:
{{ include "common.podSecurityContext" . | indent 6 | trim }}
diff --git a/kubernetes/common/postgres-init/values.yaml b/kubernetes/common/postgres-init/values.yaml
index 99be8354be..103ef047da 100644
--- a/kubernetes/common/postgres-init/values.yaml
+++ b/kubernetes/common/postgres-init/values.yaml
@@ -109,3 +109,25 @@ readinessCheck:
wait_for_job_container:
containers:
- '{{ include "common.name" . }}-update-config'
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
+
+jobPodAnnotations:
+ # Workarround to exclude K8S API from istio communication
+ # as init-container (readinessCheck) does not work with the
+ # Istio CNI plugin, see:
+ # (https://istio.io/latest/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers)
+ traffic.sidecar.istio.io/excludeOutboundPorts: "443"
diff --git a/kubernetes/common/readinessCheck/Chart.yaml b/kubernetes/common/readinessCheck/Chart.yaml
index c9134177c2..87ce385233 100644
--- a/kubernetes/common/readinessCheck/Chart.yaml
+++ b/kubernetes/common/readinessCheck/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: Template used to wait for other deployment/sts/jobs in onap
name: readinessCheck
-version: 13.1.1
+version: 13.1.2
dependencies:
- name: common
diff --git a/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl b/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl
index 42f526148a..434b48bc46 100644
--- a/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl
+++ b/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl
@@ -85,10 +85,12 @@
{{- $wait_for := default $initRoot.wait_for .wait_for -}}
{{- $containers := index (ternary (dict "containers" $wait_for) $wait_for (kindIs "slice" $wait_for)) "containers" -}}
{{- $services := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "services" -}}
+{{- $serviceMeshes := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "serviceMeshes" -}}
{{- $pods := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "pods" -}}
{{- $apps := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "apps" -}}
{{- $namePart := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "name" -}}
{{- $jobs := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "jobs" -}}
+{{- $timeout := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "timeout" -}}
- name: {{ include "common.name" $dot }}{{ ternary "" (printf "-%s" $namePart) (empty $namePart) }}-readiness
image: {{ include "repositoryGenerator.image.readiness" $subchartDot }}
imagePullPolicy: {{ $subchartDot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }}
@@ -117,6 +119,10 @@
- --service-name
- {{ tpl $service $dot }}
{{- end }}
+ {{- range $serviceMesh := default (list) $serviceMeshes }}
+ - --service-mesh-check
+ - {{ tpl $serviceMesh $dot }}
+ {{- end }}
{{- range $app := default (list) $apps }}
- --app-name
- {{ tpl $app $dot }}
@@ -125,6 +131,10 @@
- --job-name
- {{ tpl $job $dot }}
{{- end }}
+ {{- if hasKey $wait_for "timeout" }}
+ - -t
+ - {{ $timeout | int }}
+ {{- end }}
env:
- name: NAMESPACE
{{- if $subchartDot.Values.namespace }}
diff --git a/kubernetes/common/readinessCheck/values.yaml b/kubernetes/common/readinessCheck/values.yaml
index 239743e106..d769fcdd3d 100644
--- a/kubernetes/common/readinessCheck/values.yaml
+++ b/kubernetes/common/readinessCheck/values.yaml
@@ -13,7 +13,7 @@
# limitations under the License.
global:
- pullPolicy: Always
+ pullPolicy: IfNotPresent
user: 100
group: 65533
diff --git a/kubernetes/common/repositoryGenerator/Chart.yaml b/kubernetes/common/repositoryGenerator/Chart.yaml
index 09d6836574..949a444591 100644
--- a/kubernetes/common/repositoryGenerator/Chart.yaml
+++ b/kubernetes/common/repositoryGenerator/Chart.yaml
@@ -16,4 +16,4 @@
apiVersion: v2
description: Template used to generate the right repository link
name: repositoryGenerator
-version: 13.0.0
+version: 13.0.1
diff --git a/kubernetes/common/repositoryGenerator/templates/_repository.tpl b/kubernetes/common/repositoryGenerator/templates/_repository.tpl
index e708926049..14b8cc7783 100644
--- a/kubernetes/common/repositoryGenerator/templates/_repository.tpl
+++ b/kubernetes/common/repositoryGenerator/templates/_repository.tpl
@@ -88,6 +88,16 @@
{{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "githubContainerRegistry") .) }}
{{- end -}}
+{{/*
+ Resolve the name of the mariadbRepository image repository.
+
+ - .Values.global.mariadbContainerRegistry : default image mariadbContainerRegistry for all images used by mariadb.operator
+ - .Values.mariadbContainerRegistryOverride : override global mariadbContainerRegistry repository on a per chart basis
+*/}}
+{{- define "repositoryGenerator.mariadbContainerRegistry" -}}
+ {{- include "repositoryGenerator._repositoryHelper" (merge (dict "repoName" "mariadbContainerRegistry") .) }}
+{{- end -}}
+
{{- define "repositoryGenerator.image._helper" -}}
{{- $dot := default . .dot -}}
{{- $initRoot := default $dot.Values.repositoryGenerator .initRoot -}}
@@ -234,5 +244,17 @@
{{- $repoCreds = printf "%s, %s" $repoCreds $ghcrRepoCreds }}
{{- end }}
{{- end }}
+ {{- if $subchartDot.Values.global.mariadbContainerRegistryCred }}
+ {{- $mariadbRepo := $subchartDot.Values.global.mariadbContainerRegistry }}
+ {{- $mariadbCred := $subchartDot.Values.global.mariadbContainerRegistryCred }}
+ {{- $mariadbMail := default "@" $mariadbCred.mail }}
+ {{- $mariadbAuth := printf "%s:%s" $mariadbCred.user $mariadbCred.password | b64enc }}
+ {{- $mariadbRepoCreds := printf "\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}" $mariadbRepo $mariadbCred.user $mariadbCred.password $mariadbMail $mariadbAuth }}
+ {{- if eq "" $repoCreds }}
+ {{- $repoCreds = $mariadbRepoCreds }}
+ {{- else }}
+ {{- $repoCreds = printf "%s, %s" $repoCreds $mariadbRepoCreds }}
+ {{- end }}
+ {{- end }}
{{- printf "{%s}" $repoCreds | b64enc -}}
{{- end -}}
diff --git a/kubernetes/common/repositoryGenerator/values.yaml b/kubernetes/common/repositoryGenerator/values.yaml
index 1c0909fce1..8f97431599 100644
--- a/kubernetes/common/repositoryGenerator/values.yaml
+++ b/kubernetes/common/repositoryGenerator/values.yaml
@@ -21,6 +21,7 @@ global:
elasticRepository: docker.elastic.co
googleK8sRepository: k8s.gcr.io
githubContainerRegistry: ghcr.io
+ mariadbContainerRegistry: docker-registry3.mariadb.com
quayRepository: quay.io
# common global images
@@ -40,10 +41,10 @@ global:
mongodbImage: percona/percona-server-mongodb:7.0.5-3
nginxImage: bitnami/nginx:1.21.4
postgresImage: crunchydata/crunchy-postgres:centos8-13.2-4.6.1
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
dcaePolicySyncImage: onap/org.onap.dcaegen2.deployments.dcae-services-policy-sync:1.0.1
drProvClientImage: onap/dmaap/datarouter-prov-client:2.1.15
- quitQuitImage: onap/oom/readiness:6.0.3
+ quitQuitImage: onap/oom/readiness:6.1.1
# Default credentials
# they're optional. If the target repository doesn't need them, comment them
diff --git a/kubernetes/common/timescaledb/Chart.yaml b/kubernetes/common/timescaledb/Chart.yaml
index 8ce460061d..07762d4677 100644
--- a/kubernetes/common/timescaledb/Chart.yaml
+++ b/kubernetes/common/timescaledb/Chart.yaml
@@ -22,7 +22,7 @@ apiVersion: v2
appVersion: "1.0"
description: ONAP timescaledb
name: timescaledb
-version: 13.0.1
+version: 13.0.2
dependencies:
- name: common
diff --git a/kubernetes/common/timescaledb/templates/configmap-init.yaml b/kubernetes/common/timescaledb/templates/configmap-init.yaml
index 82c1de6255..6cb5c60629 100644
--- a/kubernetes/common/timescaledb/templates/configmap-init.yaml
+++ b/kubernetes/common/timescaledb/templates/configmap-init.yaml
@@ -23,11 +23,7 @@ kind: ConfigMap
metadata:
name: {{ include "common.fullname" . }}-init
namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}
- chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
- release: {{ include "common.release" . }}
- heritage: {{ .Release.Service }}
+ labels: {{- include "common.labels" . | nindent 4 }}
data:
init-schema.sh: |-
{{ .Files.Get "resources/init/init-schema.sh" | indent 4}}
diff --git a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
index 183cde0024..eefee769bd 100644
--- a/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
+++ b/kubernetes/dcaegen2-services/common/dcaegen2-services-common/templates/_deployment.tpl
@@ -244,6 +244,8 @@ post-processing.
{{- define "dcaegen2-services-common.microserviceDeployment" -}}
{{- $log := default dict .Values.log -}}
{{- $logDir := default "" $log.path -}}
+{{- $tmp := default dict .Values.tmpDir -}}
+{{- $tmpDir := default false $tmp.enabled -}}
{{- $ves := default false .Values.ves -}}
{{- $certDir := (eq "true" (include "common.needTLS" .)) | ternary (default "" .Values.certDirectory . ) "" -}}
{{- $commonRelease := print (include "common.release" .) -}}
@@ -252,6 +254,7 @@ post-processing.
{{- $drNeedProvisioning := or .Values.drFeedConfig .Values.drSubConfig -}}
{{- $dcaeName := print (include "common.fullname" .) }}
{{- $dcaeLabel := (dict "dcaeMicroserviceName" $dcaeName) -}}
+{{- $podLabels := default .Values.podLabels .labels -}}
{{- $dot := . -}}
apiVersion: apps/v1
kind: Deployment
@@ -260,7 +263,11 @@ spec:
replicas: 1
selector: {{- include "common.selectors" . | nindent 4 }}
template:
+ {{- if $podLabels}}
+ metadata: {{- include "common.templateMetadata" (dict "dot" . "labels" $podLabels) | nindent 6 }}
+ {{- else }}
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
+ {{- end }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
@@ -350,8 +357,10 @@ spec:
name: {{ ternary "app-config-input" "app-config" (not $drNeedProvisioning) }}
- mountPath: /app-config-input
name: app-config-input
+ {{- if $tmpDir }}
- mountPath: /tmp
name: tmp
+ {{- end }}
{{- if $logDir }}
- mountPath: {{ $logDir}}
name: logs
@@ -424,9 +433,11 @@ spec:
- emptyDir:
medium: Memory
name: app-config
+ {{- if $tmpDir }}
- name: tmp
emptyDir:
sizeLimit: 128Mi
+ {{- end }}
{{- if $logDir }}
- name: logs
emptyDir:
diff --git a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
index 2365c17e28..e77d31859b 100644
--- a/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-hv-ves-collector/values.yaml
@@ -53,6 +53,10 @@ containerPort: &containerPort 6061
log:
path: /var/log/ONAP/dcae-hv-ves-collector
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+# a tmp volume is needed by the tomcat server of the app
+# when the filesystem is set to read-only
+tmpDir:
+ enabled: true
# directory where TLS certs should be stored
# if absent, no certs will be retrieved and stored
@@ -92,9 +96,13 @@ readiness:
# since there are problems receiving binary data via the sidecar
# the service port is excluded in the sidecar processing
podAnnotations:
+ traffic.sidecar.istio.io/excludeOutboundPorts: '6061'
traffic.sidecar.istio.io/excludeInboundPorts: '6061'
traffic.sidecar.istio.io/includeInboundPorts: '*'
+podLabels:
+ sidecar.istio.io/inject: "false"
+
# service configuration
service:
type: NodePort
diff --git a/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml b/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
index 2c9612f4e0..d8b2b20ffb 100644
--- a/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml
@@ -46,6 +46,11 @@ log:
path: /opt/app/prh/logs
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+# a tmp volume is needed by the tomcat server of the app
+# when the filesystem is set to read-only
+tmpDir:
+ enabled: true
+
secrets:
- uid: &aaiCredsUID aaicreds
type: basicAuth
@@ -185,14 +190,14 @@ flavor: small
resources:
small:
limits:
- cpu: "1"
+ cpu: "2"
memory: "3Gi"
requests:
- cpu: "0.5"
+ cpu: "1"
memory: "3Gi"
large:
limits:
- cpu: "2"
+ cpu: "3"
memory: "6Gi"
requests:
cpu: "1"
diff --git a/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml b/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
index 0007b9cd52..fb2a761e39 100644
--- a/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
+++ b/kubernetes/dcaegen2-services/components/dcae-ves-collector/values.yaml
@@ -52,6 +52,11 @@ log:
path: /opt/app/VESCollector/logs
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+# a tmp volume is needed by the tomcat server of the app
+# when the filesystem is set to read-only
+tmpDir:
+ enabled: true
+
# directory where TLS certs should be stored
# if absent, no certs will be retrieved and stored
certDirectory: /opt/app/dcae-certificate
diff --git a/kubernetes/onap/Chart.yaml b/kubernetes/onap/Chart.yaml
index cd989ad7de..c0f1a770b8 100644
--- a/kubernetes/onap/Chart.yaml
+++ b/kubernetes/onap/Chart.yaml
@@ -61,7 +61,7 @@ dependencies:
repository: '@local'
condition: multicloud.enabled
- name: policy
- version: ~15.x-0
+ version: ~16.x-0
repository: '@local'
condition: policy.enabled
- name: portal-ng
@@ -88,7 +88,7 @@ dependencies:
repository: '@local'
condition: sdnc.enabled
- name: so
- version: ~13.x-0
+ version: ~15.x-0
repository: '@local'
condition: so.enabled
- name: strimzi
@@ -96,7 +96,7 @@ dependencies:
repository: '@local'
condition: strimzi.enabled
- name: uui
- version: ~13.x-0
+ version: ~15.x-0
repository: '@local'
condition: uui.enabled
- name: platform
diff --git a/kubernetes/onap/resources/environments/dev.yaml b/kubernetes/onap/resources/environments/dev.yaml
index fcf5de366c..71f8fa251d 100644
--- a/kubernetes/onap/resources/environments/dev.yaml
+++ b/kubernetes/onap/resources/environments/dev.yaml
@@ -32,7 +32,7 @@ global:
#repository: nexus3.onap.org:10001
# readiness check
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
# logging agent - temporary repo until images migrated to nexus3
loggingRepository: docker.elastic.co
diff --git a/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml b/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
index 159c800d4f..2cbd324a0f 100644
--- a/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
+++ b/kubernetes/onap/resources/overrides/onap-5g-network-slicing.yaml
@@ -35,7 +35,7 @@ global:
password: docker
# readiness check
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
# logging agent - temporary repo until images migrated to nexus3
loggingRepository: docker.elastic.co
diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml
index 6ca0e26b1e..78ecf27149 100755
--- a/kubernetes/onap/values.yaml
+++ b/kubernetes/onap/values.yaml
@@ -37,6 +37,7 @@ global:
quayRepository: quay.io
googleK8sRepository: k8s.gcr.io
githubContainerRegistry: ghcr.io
+ mariadbContainerRegistry: docker-registry3.mariadb.com
# Default credentials
# they're optional. If the target repository doesn't need them, comment them
@@ -106,7 +107,7 @@ global:
postgresImage: crunchydata/crunchy-postgres:centos8-13.2-4.6.1
# readiness check image
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
# image pull policy
pullPolicy: Always
diff --git a/kubernetes/platform/components/cmpv2-cert-provider/values.yaml b/kubernetes/platform/components/cmpv2-cert-provider/values.yaml
index 6d48efd453..8fb46b293e 100644
--- a/kubernetes/platform/components/cmpv2-cert-provider/values.yaml
+++ b/kubernetes/platform/components/cmpv2-cert-provider/values.yaml
@@ -15,7 +15,7 @@
# Global
global:
nodePortPrefix: 302
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
loggingRepository: docker.elastic.co
loggingImage: beats/filebeat:5.5.0
busyboxRepository: registry.hub.docker.com
@@ -58,7 +58,3 @@ cmpv2issuer:
certRef: tls.crt
keyRef: tls.key
cacertRef: ca.crt
-
-
-
-
diff --git a/kubernetes/policy/Chart.yaml b/kubernetes/policy/Chart.yaml
index 2bf703c622..a49530b18a 100755..100644
--- a/kubernetes/policy/Chart.yaml
+++ b/kubernetes/policy/Chart.yaml
@@ -1,7 +1,7 @@
# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018, 2020 AT&T
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021-2024 Nordix Foundation
+# Modifications Copyright © 2021-2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,66 +19,66 @@
apiVersion: v2
description: ONAP Policy
name: policy
-version: 15.0.1
+version: 16.0.1
dependencies:
- name: common
version: ~13.x-0
repository: '@local'
- - name: mariadb-galera
- version: ~13.x-0
- repository: '@local'
- condition: global.mariadbGalera.localCluster
- name: policy-nexus
version: ~15.x-0
repository: 'file://components/policy-nexus'
condition: policy-nexus.enabled
- name: policy-api
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-api'
condition: policy-api.enabled
- name: policy-pap
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-pap'
condition: policy-pap.enabled
- name: policy-xacml-pdp
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-xacml-pdp'
condition: policy-xacml-pdp.enabled
- name: policy-apex-pdp
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-apex-pdp'
condition: policy-apex-pdp.enabled
- name: policy-drools-pdp
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-drools-pdp'
condition: policy-drools-pdp.enabled
- - name: policy-distribution
+ - name: policy-opa-pdp
version: ~15.x-0
+ repository: 'file://components/policy-opa-pdp'
+ condition: policy-opa-pdp.enabled
+ - name: policy-distribution
+ version: ~16.x-0
repository: 'file://components/policy-distribution'
condition: policy-distribution.enabled
- name: policy-clamp-ac-k8s-ppnt
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-clamp-ac-k8s-ppnt'
condition: policy-clamp-ac-k8s-ppnt.enabled
- name: policy-clamp-ac-http-ppnt
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-clamp-ac-http-ppnt'
condition: policy-clamp-ac-http-ppnt.enabled
- name: policy-clamp-ac-a1pms-ppnt
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-clamp-ac-a1pms-ppnt'
condition: policy-clamp-ac-a1pms-ppnt.enabled
- name: policy-clamp-ac-kserve-ppnt
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-clamp-ac-kserve-ppnt'
condition: policy-clamp-ac-kserve-ppnt.enabled
- name: policy-clamp-ac-pf-ppnt
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-clamp-ac-pf-ppnt'
condition: policy-clamp-ac-pf-ppnt.enabled
- name: policy-clamp-runtime-acm
- version: ~15.x-0
+ version: ~16.x-0
repository: 'file://components/policy-clamp-runtime-acm'
condition: policy-clamp-runtime-acm.enabled
- name: repositoryGenerator
diff --git a/kubernetes/policy/components/policy-apex-pdp/Chart.yaml b/kubernetes/policy/components/policy-apex-pdp/Chart.yaml
index 3cd9ef8e59..2ca9b30c11 100755..100644
--- a/kubernetes/policy/components/policy-apex-pdp/Chart.yaml
+++ b/kubernetes/policy/components/policy-apex-pdp/Chart.yaml
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2018 Ericsson. All rights reserved.
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021,2024 Nordix Foundation
+# Modifications Copyright © 2021, 2024-2025 Nordix Foundation
# Modification (C) 2023-2024 Deutsche Telekom. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP Policy APEX PDP
name: policy-apex-pdp
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-apex-pdp/values.yaml b/kubernetes/policy/components/policy-apex-pdp/values.yaml
index 9cf89b4c79..bad63184bf 100755..100644
--- a/kubernetes/policy/components/policy-apex-pdp/values.yaml
+++ b/kubernetes/policy/components/policy-apex-pdp/values.yaml
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2018 Ericsson. All rights reserved.
# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property.
-# Modifications Copyright © 2022 Nordix Foundation
+# Modifications Copyright © 2022, 2025 Nordix Foundation
# Modification (C) 2023-2024 Deutsche Telekom. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -47,7 +47,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-apex-pdp:4.0.1
+image: onap/policy-apex-pdp:4.1.0
pullPolicy: Always
# flag to enable debugging - application support required
diff --git a/kubernetes/policy/components/policy-api/Chart.yaml b/kubernetes/policy/components/policy-api/Chart.yaml
index 6c3351a5df..859c343900 100755..100644
--- a/kubernetes/policy/components/policy-api/Chart.yaml
+++ b/kubernetes/policy/components/policy-api/Chart.yaml
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021, 2024 Nordix Foundation
+# Modifications Copyright © 2021, 2024-2025 Nordix Foundation
# Modification (C) 2023-2024 Deutsche Telekom. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP Policy Design API
name: policy-api
-version: 15.0.1
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml b/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml
index 3e357a66e7..fac24347a2 100644
--- a/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml
+++ b/kubernetes/policy/components/policy-api/resources/config/apiParameters.yaml
@@ -2,7 +2,7 @@
# Copyright (C) 2022 Bell Canada. All rights reserved.
# Modifications Copyright (C) 2022 AT&T Intellectual Property.
# Modification (C) 2023 Deutsche Telekom. All rights reserved.
-# Modifications Copyright © 2024 Nordix Foundation.
+# Modifications Copyright © 2024-2025 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -32,20 +32,6 @@ spring:
password: "${RESTSERVER_PASSWORD}"
mvc.converters.preferred-json-mapper: gson
datasource:
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- url: jdbc:mariadb://{{ .Values.db.service.name }}:{{ .Values.db.service.internalPort }}/policyadmin
- driverClassName: org.mariadb.jdbc.Driver
- username: "${SQL_USER}"
- password: "${SQL_PASSWORD}"
- hikari:
- maximumPoolSize: 20
- jpa:
- hibernate:
- ddl-auto: none
- naming:
- physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
- implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
-{{ else }}
url: jdbc:postgresql://{{ .Values.db.service.pgName }}:{{ .Values.db.service.internalPgPort}}/policyadmin
driverClassName: org.postgresql.Driver
username: "${SQL_USER}"
@@ -61,21 +47,11 @@ spring:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
-{{ end }}
policy-api:
name: ApiGroup
aaf: false
-database:
- name: PolicyProviderParameterGroup
- implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl
- driver: org.mariadb.jdbc.Driver
- url: jdbc:mariadb://{{ .Values.db.service.name }}/policyadmin
- user: "${SQL_USER}"
- password: "${SQL_PASSWORD}"
- persistenceUnit: PolicyDb
-
policy-preload:
policyTypes:
- policytypes/onap.policies.monitoring.tcagen2.yaml
diff --git a/kubernetes/policy/components/policy-api/templates/deployment.yaml b/kubernetes/policy/components/policy-api/templates/deployment.yaml
index f89945f90e..063bc80445 100755
--- a/kubernetes/policy/components/policy-api/templates/deployment.yaml
+++ b/kubernetes/policy/components/policy-api/templates/deployment.yaml
@@ -1,6 +1,6 @@
{{/*
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2024 Nordix Foundation.
+# Copyright (C) 2021-2025 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -33,11 +33,7 @@ spec:
- /app/ready.py
args:
- --job-name
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- - {{ include "common.release" . }}-policy-galera-migrator-config
-{{ else }}
- {{ include "common.release" . }}-policy-pg-migrator-config
-{{ end }}
env:
- name: NAMESPACE
valueFrom:
diff --git a/kubernetes/policy/components/policy-api/values.yaml b/kubernetes/policy/components/policy-api/values.yaml
index 3e86ed1894..7e3aa51318 100755..100644
--- a/kubernetes/policy/components/policy-api/values.yaml
+++ b/kubernetes/policy/components/policy-api/values.yaml
@@ -2,7 +2,7 @@
# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
# Modification (C) 2023-2024 Deutsche Telekom. All rights reserved.
-# Modifications Copyright © 2024 Nordix Foundation.
+# Modifications Copyright © 2024-2025 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,10 +25,6 @@
global:
nodePortPrefix: 304
persistence: {}
- postgres:
- useInPolicy: false
- mariadbGalera:
- useInPolicy: true
#################################################################
# Secrets metaconfig
@@ -51,7 +47,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-api:4.0.1
+image: onap/policy-api:4.1.0
pullPolicy: Always
# flag to enable debugging - application support required
@@ -62,9 +58,7 @@ db:
user: policy-user
password: policy_user
service:
- name: policy-mariadb
pgName: policy-pg-primary
- internalPort: 3306
internalPgPort: 5432
restServer:
diff --git a/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/Chart.yaml b/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/Chart.yaml
index a89c614c4f..665b301ff5 100755..100644
--- a/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/Chart.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/Chart.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2022-2024 Nordix Foundation. All rights reserved.
+# Copyright (C) 2022-2025 Nordix Foundation. All rights reserved.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,7 @@
apiVersion: v2
description: ONAP Policy Clamp A1PMS Participant
name: policy-clamp-ac-a1pms-ppnt
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/values.yaml b/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/values.yaml
index b882829ae3..cee5eb8e92 100755..100644
--- a/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/values.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-a1pms-ppnt/values.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2022-2024 Nordix Foundation.
+# Copyright (C) 2022-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,7 +43,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-clamp-ac-a1pms-ppnt:8.0.1
+image: onap/policy-clamp-ac-a1pms-ppnt:8.1.0
pullPolicy: Always
componentName: &componentName policy-clamp-ac-a1pms-ppnt
diff --git a/kubernetes/policy/components/policy-clamp-ac-http-ppnt/Chart.yaml b/kubernetes/policy/components/policy-clamp-ac-http-ppnt/Chart.yaml
index 1c3abbbc97..0bdc6b6cab 100644
--- a/kubernetes/policy/components/policy-clamp-ac-http-ppnt/Chart.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-http-ppnt/Chart.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2022, 2024 Nordix Foundation.
+# Copyright (C) 2021-2022, 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,7 @@
apiVersion: v2
description: ONAP Policy Clamp Controlloop Http Participant
name: policy-clamp-ac-http-ppnt
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-clamp-ac-http-ppnt/values.yaml b/kubernetes/policy/components/policy-clamp-ac-http-ppnt/values.yaml
index e7d317e9af..a422386ffc 100644
--- a/kubernetes/policy/components/policy-clamp-ac-http-ppnt/values.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-http-ppnt/values.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2023 Nordix Foundation.
+# Copyright (C) 2021-2023, 2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +44,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-clamp-ac-http-ppnt:8.0.1
+image: onap/policy-clamp-ac-http-ppnt:8.1.0
pullPolicy: Always
componentName: &componentName policy-clamp-ac-http-ppnt
diff --git a/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/Chart.yaml b/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/Chart.yaml
index 09dadf2806..9abe71d998 100644
--- a/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/Chart.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/Chart.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021 Nordix Foundation. All rights reserved.
+# Copyright (C) 2021, 2025 Nordix Foundation. All rights reserved.
# Modifications Copyright © 2021 Orange
# Modifications Copyright © 2021-2022, 2024 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP Policy Clamp Controlloop K8s Participant
name: policy-clamp-ac-k8s-ppnt
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/values.yaml b/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/values.yaml
index ea00a34dad..c9f3f9bdc3 100644
--- a/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/values.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-k8s-ppnt/values.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2024 Nordix Foundation.
+# Copyright (C) 2021-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -45,7 +45,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-clamp-ac-k8s-ppnt:8.0.1
+image: onap/policy-clamp-ac-k8s-ppnt:8.1.0
pullPolicy: Always
componentName: &componentName policy-clamp-ac-k8s-ppnt
diff --git a/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/Chart.yaml b/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/Chart.yaml
index 2982043dab..49a6e4dc2e 100755..100644
--- a/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/Chart.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/Chart.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2023-2024 Nordix Foundation. All rights reserved.
+# Copyright (C) 2023-2025 Nordix Foundation. All rights reserved.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,7 @@
apiVersion: v2
description: ONAP Policy Clamp Kserve Participant
name: policy-clamp-ac-kserve-ppnt
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/values.yaml b/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/values.yaml
index 2221ce83ba..61cc461b41 100755..100644
--- a/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/values.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-kserve-ppnt/values.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2023 Nordix Foundation.
+# Copyright (C) 2023, 2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +44,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-clamp-ac-kserve-ppnt:8.0.1
+image: onap/policy-clamp-ac-kserve-ppnt:8.1.0
pullPolicy: Always
componentName: &componentName policy-clamp-ac-kserve-ppnt
diff --git a/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/Chart.yaml b/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/Chart.yaml
index 49d7522eaf..5945f3b74a 100644
--- a/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/Chart.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/Chart.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2022, 2024 Nordix Foundation.
+# Copyright (C) 2021-2022, 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,7 @@
apiVersion: v2
description: ONAP Policy Clamp Controlloop Policy Participant
name: policy-clamp-ac-pf-ppnt
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/values.yaml b/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/values.yaml
index e7fbbb1f84..2bdbaa456a 100644
--- a/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/values.yaml
+++ b/kubernetes/policy/components/policy-clamp-ac-pf-ppnt/values.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2024 Nordix Foundation.
+# Copyright (C) 2021-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -56,7 +56,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-clamp-ac-pf-ppnt:8.0.1
+image: onap/policy-clamp-ac-pf-ppnt:8.1.0
pullPolicy: Always
componentName: &componentName policy-clamp-ac-pf-ppnt
diff --git a/kubernetes/policy/components/policy-clamp-runtime-acm/Chart.yaml b/kubernetes/policy/components/policy-clamp-runtime-acm/Chart.yaml
index 8b22acd09c..5d26bfdad9 100644
--- a/kubernetes/policy/components/policy-clamp-runtime-acm/Chart.yaml
+++ b/kubernetes/policy/components/policy-clamp-runtime-acm/Chart.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021, 2024 Nordix Foundation. All rights reserved.
+# Copyright (C) 2021, 2025 Nordix Foundation. All rights reserved.
# Modifications Copyright © 2021 Orange
# Modifications Copyright © 2021-2024 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP Policy Clamp Controlloop Runtime
name: policy-clamp-runtime-acm
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-clamp-runtime-acm/resources/config/acRuntimeParameters.yaml b/kubernetes/policy/components/policy-clamp-runtime-acm/resources/config/acRuntimeParameters.yaml
index f1785acb0f..a296e8c7a4 100644
--- a/kubernetes/policy/components/policy-clamp-runtime-acm/resources/config/acRuntimeParameters.yaml
+++ b/kubernetes/policy/components/policy-clamp-runtime-acm/resources/config/acRuntimeParameters.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2024 Nordix Foundation.
+# Copyright (C) 2021-2025 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,13 +25,8 @@ spring:
converters:
preferred-json-mapper: gson
datasource:
- {{ if .Values.global.mariadbGalera.useInPolicy }}
- url: jdbc:mariadb://{{ .Values.db.service.mariadbName }}:{{ .Values.db.service.mariadbPort }}/clampacm
- driverClassName: org.mariadb.jdbc.Driver
- {{ else }}
url: jdbc:postgresql://{{ .Values.db.service.pgName }}:{{ .Values.db.service.pgPort }}/clampacm
driverClassName: org.postgresql.Driver
- {{ end }}
username: ${SQL_USER}
password: ${SQL_PASSWORD}
hikari:
@@ -47,11 +42,7 @@ spring:
implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
properties:
hibernate:
- {{ if .Values.global.mariadbGalera.useInPolicy }}
- dialect: org.hibernate.dialect.MariaDBDialect
- {{ else }}
dialect: org.hibernate.dialect.PostgreSQLDialect
- {{ end }}
format_sql: true
metrics:
diff --git a/kubernetes/policy/components/policy-clamp-runtime-acm/templates/deployment.yaml b/kubernetes/policy/components/policy-clamp-runtime-acm/templates/deployment.yaml
index 5a206b996e..c09a3616b0 100644
--- a/kubernetes/policy/components/policy-clamp-runtime-acm/templates/deployment.yaml
+++ b/kubernetes/policy/components/policy-clamp-runtime-acm/templates/deployment.yaml
@@ -1,6 +1,6 @@
{{/*
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2024 Nordix Foundation.
+# Copyright (C) 2021-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,11 +34,7 @@ spec:
- /app/ready.py
args:
- --job-name
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- - {{ include "common.release" . }}-policy-galera-migrator-config
-{{ else }}
- {{ include "common.release" . }}-policy-pg-migrator-config
-{{ end }}
env:
- name: NAMESPACE
valueFrom:
diff --git a/kubernetes/policy/components/policy-clamp-runtime-acm/values.yaml b/kubernetes/policy/components/policy-clamp-runtime-acm/values.yaml
index 9f78b29dae..00bd0acdbd 100644
--- a/kubernetes/policy/components/policy-clamp-runtime-acm/values.yaml
+++ b/kubernetes/policy/components/policy-clamp-runtime-acm/values.yaml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2024 Nordix Foundation.
+# Copyright (C) 2021-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,10 +23,6 @@
global:
nodePortPrefixExt: 304
persistence: {}
- postgres:
- useInPolicy: false
- mariadbGalera:
- useInPolicy: true
#Strimzi Kafka properties
kafkaTopics:
acRuntimeOperationTopic:
@@ -55,7 +51,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-clamp-runtime-acm:8.0.1
+image: onap/policy-clamp-runtime-acm:8.1.0
pullPolicy: Always
componentName: &componentName policy-clamp-runtime-acm
@@ -95,8 +91,6 @@ db:
user: policy-user
password: policy_user
service:
- mariadbName: policy-mariadb
- mariadbPort: 3306
pgName: policy-pg-primary
pgPort: 5432
diff --git a/kubernetes/policy/components/policy-distribution/Chart.yaml b/kubernetes/policy/components/policy-distribution/Chart.yaml
index 3ac1d031a3..a11ab99849 100755..100644
--- a/kubernetes/policy/components/policy-distribution/Chart.yaml
+++ b/kubernetes/policy/components/policy-distribution/Chart.yaml
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2018 Ericsson. All rights reserved.
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021, 2024 Nordix Foundation
+# Modifications Copyright © 2021, 2024-2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP Policy Distribution
name: policy-distribution
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-distribution/values.yaml b/kubernetes/policy/components/policy-distribution/values.yaml
index f393250045..d10cf1991d 100755..100644
--- a/kubernetes/policy/components/policy-distribution/values.yaml
+++ b/kubernetes/policy/components/policy-distribution/values.yaml
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2018 Ericsson. All rights reserved.
# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property.
-# Modifications Copyright (C) 2023 Nordix Foundation
+# Modifications Copyright (C) 2023, 2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -59,7 +59,7 @@ global:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-distribution:4.0.1
+image: onap/policy-distribution:4.1.0
pullPolicy: Always
# flag to enable debugging - application support required
diff --git a/kubernetes/policy/components/policy-drools-pdp/Chart.yaml b/kubernetes/policy/components/policy-drools-pdp/Chart.yaml
index 37ab25cf88..50c84c0567 100755..100644
--- a/kubernetes/policy/components/policy-drools-pdp/Chart.yaml
+++ b/kubernetes/policy/components/policy-drools-pdp/Chart.yaml
@@ -1,7 +1,7 @@
# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018, 2020 AT&T Intellectual Property
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021, 2024 Nordix Foundation
+# Modifications Copyright © 2021, 2024-2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,7 +19,7 @@
apiVersion: v2
description: ONAP Drools Policy Engine (PDP-D)
name: policy-drools-pdp
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/base.conf b/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/base.conf
index 6f0a1bdcbe..b1a7f04b58 100644
--- a/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/base.conf
+++ b/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/base.conf
@@ -2,7 +2,7 @@
# Copyright © 2017-2018 Amdocs, Bell Canada.
# Modifications Copyright (C) 2018-2020, 2022 AT&T Intellectual Property.
# Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
-# Modifications Copyright (C) 2024 Nordix Foundation.
+# Modifications Copyright (C) 2024-2025 Nordix Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -41,21 +41,11 @@ REPOSITORY_OFFLINE={{.Values.nexus.offline}}
# Relational (SQL) DB access
-{{ if .Values.global.mariadbGalera.useInPolicy }}
-SQL_HOST={{ .Values.db.mariadbName }}
-SQL_PORT={{ .Values.db.mariadbPort }}
-JDBC_URL=jdbc:mariadb://{{ .Values.db.mariadbName }}:{{ .Values.db.mariadbPort }}/
-JDBC_OPTS=
-JDBC_DRIVER=org.mariadb.jdbc.Driver
-MYSQL_CMD=
-{{ else }}
SQL_HOST={{ .Values.db.pgName }}
SQL_PORT={{ .Values.db.pgPort }}
JDBC_URL=jdbc:postgresql://{{ .Values.db.pgName }}:{{ .Values.db.pgPort }}/
JDBC_OPTS=
JDBC_DRIVER=org.postgresql.Driver
-MYSQL_CMD=
-{{ end }}
# Liveness
LIVENESS_CONTROLLERS=*
@@ -136,7 +126,7 @@ VFC_CONTEXT_URI=api/nslcm/v1/
SDNC_HOST=sdnc.{{.Release.Namespace}}
SDNC_PORT=8282
-SDNC_CONTEXT_URI=restconf/operations/
+SDNC_CONTEXT_URI=rests/operations/
# CDS
diff --git a/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/feature-distributed-locking.properties b/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/feature-distributed-locking.properties
index d4577b577a..64ac22100f 100644
--- a/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/feature-distributed-locking.properties
+++ b/kubernetes/policy/components/policy-drools-pdp/resources/configmaps/feature-distributed-locking.properties
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# ONAP
# ================================================================================
-# Copyright (C) 2024 Nordix Foundation.
+# Copyright (C) 2024-2025 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,17 +19,10 @@
###
#Database properties
-{{ if .Values.global.mariadbGalera.useInPolicy }}
-jakarta.persistence.jdbc.driver=org.mariadb.jdbc.Driver
-jakarta.persistence.jdbc.url=${envd:JDBC_URL}pooling${envd:JDBC_OPTS}
-jakarta.persistence.jdbc.user=${envd:SQL_USER}
-jakarta.persistence.jdbc.password=${envd:SQL_PASSWORD}
-{{ else }}
jakarta.persistence.jdbc.driver=org.postgresql.Driver
jakarta.persistence.jdbc.url=${envd:JDBC_URL}pooling${envd:JDBC_OPTS}
jakarta.persistence.jdbc.user=${envd:SQL_USER}
jakarta.persistence.jdbc.password=${envd:SQL_PASSWORD}
-{{ end }}
# default property values are commented out
#distributed.locking.expire.check.seconds=900
diff --git a/kubernetes/policy/components/policy-drools-pdp/templates/statefulset.yaml b/kubernetes/policy/components/policy-drools-pdp/templates/statefulset.yaml
index a24476cc74..e8c0a5edea 100644
--- a/kubernetes/policy/components/policy-drools-pdp/templates/statefulset.yaml
+++ b/kubernetes/policy/components/policy-drools-pdp/templates/statefulset.yaml
@@ -1,7 +1,7 @@
{{/*
# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018-2020, 2022 AT&T Intellectual Property
-# Modifications Copyright (C) 2024 Nordix Foundation.
+# Modifications Copyright (C) 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -33,11 +33,7 @@ spec:
- /app/ready.py
args:
- --job-name
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- - {{ include "common.release" . }}-policy-galera-migrator-config
-{{ else }}
- {{ include "common.release" . }}-policy-pg-migrator-config
-{{ end }}
env:
- name: NAMESPACE
valueFrom:
diff --git a/kubernetes/policy/components/policy-drools-pdp/values.yaml b/kubernetes/policy/components/policy-drools-pdp/values.yaml
index 8fbd6c6446..e367cfca6d 100644
--- a/kubernetes/policy/components/policy-drools-pdp/values.yaml
+++ b/kubernetes/policy/components/policy-drools-pdp/values.yaml
@@ -1,7 +1,7 @@
# Copyright © 2017 Amdocs
# Copyright © 2017, 2021 Bell Canada
# Modifications Copyright © 2018-2022 AT&T Intellectual Property
-# Modifications Copyright (C) 2024 Nordix Foundation.
+# Modifications Copyright (C) 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,10 +21,7 @@
#################################################################
global:
nodePortPrefix: 302
- postgres:
- useInPolicy: false
- mariadbGalera:
- useInPolicy: true
+
#################################################################
# Secrets metaconfig
#################################################################
@@ -47,7 +44,7 @@ secrets:
#################################################################
# application image
# The newest images have been tested with SASL and Postgres. The images released next will have the relevant fixes
-image: onap/policy-pdpd-cl:3.0.1
+image: onap/policy-pdpd-cl:3.1.0
pullPolicy: Always
@@ -107,11 +104,8 @@ nexus:
offline: true
db:
- mariadbName: policy-mariadb
pgName: policy-pg-primary
- mariadbPort: 3306
pgPort: 5432
- user: policy-user
password: policy_user
pap:
diff --git a/kubernetes/policy/components/policy-nexus/Chart.yaml b/kubernetes/policy/components/policy-nexus/Chart.yaml
index eb6c92e75b..eb6c92e75b 100755..100644
--- a/kubernetes/policy/components/policy-nexus/Chart.yaml
+++ b/kubernetes/policy/components/policy-nexus/Chart.yaml
diff --git a/kubernetes/policy/components/policy-nexus/values.yaml b/kubernetes/policy/components/policy-nexus/values.yaml
index cc75a9fe15..cc75a9fe15 100755..100644
--- a/kubernetes/policy/components/policy-nexus/values.yaml
+++ b/kubernetes/policy/components/policy-nexus/values.yaml
diff --git a/kubernetes/policy/components/policy-opa-pdp/Chart.yaml b/kubernetes/policy/components/policy-opa-pdp/Chart.yaml
new file mode 100644
index 0000000000..6416e5016e
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/Chart.yaml
@@ -0,0 +1,33 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+apiVersion: v2
+description: ONAP Policy OPA PDP (PDP-O)
+name: policy-opa-pdp
+version: 15.0.0
+
+dependencies:
+ - name: common
+ version: ~13.x-0
+ repository: '@local'
+ - name: repositoryGenerator
+ version: ~13.x-0
+ repository: '@local'
+ - name: serviceAccount
+ version: ~13.x-0
+ repository: '@local'
diff --git a/kubernetes/policy/components/policy-opa-pdp/resources/config/config.json b/kubernetes/policy/components/policy-opa-pdp/resources/config/config.json
new file mode 100755
index 0000000000..e978b84186
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/resources/config/config.json
@@ -0,0 +1,43 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+{
+ "logging": {
+ "level": "debug"
+ },
+ "services": [
+ {
+ "name": "opa-bundle-server",
+ "url": "http://policy-opa-pdp:8282/opa/bundles"
+ }
+ ],
+ "bundles": {
+ "opabundle": {
+ "service": "opa-bundle-server",
+ "resource": "bundle.tar.gz",
+ "polling": {
+ "min_delay_seconds": 60,
+ "max_delay_seconds": 120
+ }
+ }
+ },
+ "decision_logs": {
+ "console": true
+ }
+}
diff --git a/kubernetes/policy/components/policy-opa-pdp/resources/policies/policy-data.tar.gz b/kubernetes/policy/components/policy-opa-pdp/resources/policies/policy-data.tar.gz
new file mode 100644
index 0000000000..fa841c0191
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/resources/policies/policy-data.tar.gz
Binary files differ
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/authorizationpolicy.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/authorizationpolicy.yaml
new file mode 100755
index 0000000000..e2b4537dc8
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/authorizationpolicy.yaml
@@ -0,0 +1,21 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+{{ include "common.authorizationPolicy" . }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/configmap.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/configmap.yaml
new file mode 100755
index 0000000000..cc08af6937
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/configmap.yaml
@@ -0,0 +1,42 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-configmap-config
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+data:
+{{ tpl (.Files.Glob "resources/config/*.{sql,json,properties,xml}").AsConfig . | indent 2 }}
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-configmap-policies-data
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+{{- with .Files.Glob "resources/policies/*" }}
+binaryData:
+{{- range $path, $bytes := . }}
+ {{ base $path }}: {{ $.Files.Get $path | b64enc | quote }}
+{{- end }}
+{{- end }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/deployment.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/deployment.yaml
new file mode 100755
index 0000000000..6c25bac01c
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/deployment.yaml
@@ -0,0 +1,137 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+apiVersion: apps/v1
+kind: Deployment
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+spec:
+ selector: {{- include "common.selectors" . | nindent 4 }}
+ replicas: {{ .Values.replicaCount }}
+ template:
+ metadata: {{- include "common.templateMetadata" . | nindent 6 }}
+ spec:
+ {{ include "common.podSecurityContext" . | indent 6 | trim }}
+ initContainers:
+ - command:
+ - /bin/sh
+ args:
+ - -c
+ - |
+ echo "*** set right permissions to the different folders"
+ chown -R {{ .Values.permissions.uid }}:{{ .Values.permissions.gid }} /var/log;
+ chmod -R 755 /var/log
+ chown -R {{ .Values.permissions.uid }}:{{ .Values.permissions.gid }} /opt/;
+ chmod -R 755 /opt/*
+ tar -xvf /tmp/policies/policy-data.tar.gz -C /opt/
+ image: {{ include "repositoryGenerator.image.busybox" . }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ {{ include "common.containerSecurityContext" . | indent 8 | trim }}
+ name: {{ include "common.name" . }}-readiness
+ volumeMounts:
+ - name: logs
+ mountPath: /var/log
+ - name: tmp-policies-data
+ mountPath: /tmp/policies
+ - name : opa-policies-data
+ mountPath: /opt/
+
+ containers:
+ - name: {{ include "common.name" . }}
+ {{ include "common.containerSecurityContext" . | indent 10 | trim }}
+ image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ ports: {{ include "common.containerPorts" . | nindent 12 }}
+ # disable liveness probe when breakpoints set in debugger
+ # so K8s doesn't restart unresponsive container
+ env:
+ - name: UseSASLForKAFKA
+ value: "{{ .Values.kafka.useSASL }}"
+ - name: KAFKA_URL
+ value: {{ include "common.release" . }}-{{ .Values.global.kafkaBootstrap }}
+ - name: GROUPID
+ value: "{{ .Values.kafka.groupid }}"
+ - name: LOG_LEVEL
+ value: "{{ .Values.log.loglevel }}"
+ - name: PAP_TOPIC
+ value: "{{ .Values.kafka.topic }}"
+ - name: API_USER
+ {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "api-creds" "key" "login") | indent 10 }}
+ - name: API_PASSWORD
+ {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "api-creds" "key" "password") | indent 10 }}
+ - name: RESTSERVER_USER
+ {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restserver-creds" "key" "login") | indent 10 }}
+ - name: RESTSERVER_PASSWORD
+ {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restserver-creds" "key" "password") | indent 10 }}
+ - name: JAASLOGIN
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.name" . }}-ku
+ key: sasl.jaas.config
+ {{- if eq .Values.liveness.enabled true }}
+ livenessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ {{ end -}}
+ readinessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ volumeMounts:
+
+ - name: opa-policies-data
+ mountPath: /opt
+ - name: opa-config
+ mountPath: /app/config
+ - name: opa-bundles
+ mountPath: /app/bundles
+ - name: logs
+ mountPath: /var/log
+ resources: {{ include "common.resources" . | nindent 12 }}
+ {{- if .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+ {{- end -}}
+ {{- if .Values.affinity }}
+ affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+ {{- end }}
+ serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
+ volumes:
+ - name: tmp-policies-data
+ configMap:
+ name: {{ include "common.fullname" . }}-configmap-policies-data
+ defaultMode: 0755
+ - name: opa-policies-data
+ persistentVolumeClaim:
+ claimName: {{ include "common.fullname" . }}-policies-data
+ - name: opa-config
+ configMap:
+ name: {{ include "common.fullname" . }}-configmap-config
+ defaultMode: 0755
+ - name: opa-bundles
+ emptyDir:
+ sizeLimit: {{ .Values.dirSizes.bundleDir.sizeLimit }}
+ - name: logs
+ emptyDir:
+ sizeLimit: {{ .Values.dirSizes.logDir.sizeLimit }}
+ {{- include "common.imagePullSecrets" . | nindent 6 }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/kafkauser.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/kafkauser.yaml
new file mode 100755
index 0000000000..faf315356c
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/kafkauser.yaml
@@ -0,0 +1,20 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+{{ include "common.kafkauser" . }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/pvc.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/pvc.yaml
new file mode 100755
index 0000000000..5a1e9e3450
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/pvc.yaml
@@ -0,0 +1,38 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: {{ include "common.fullname" . }}-policies-data
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+ accessModes:
+ - {{ .Values.persistence.accessMode }}
+ resources:
+ requests:
+ storage: {{ .Values.persistence.logsSize }}
+ storageClassName: {{ include "common.storageClass" . }}
+ volumeMode: Filesystem
+
+{{- end }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/secrets.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/secrets.yaml
new file mode 100755
index 0000000000..0c47a8bd77
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/secrets.yaml
@@ -0,0 +1,21 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+{{ include "common.secretFast" . }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/service.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/service.yaml
new file mode 100755
index 0000000000..1d45a0baef
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/service.yaml
@@ -0,0 +1,21 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+{{ include "common.service" . }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/templates/serviceMonitor.yaml b/kubernetes/policy/components/policy-opa-pdp/templates/serviceMonitor.yaml
new file mode 100755
index 0000000000..96774208de
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/templates/serviceMonitor.yaml
@@ -0,0 +1,23 @@
+{{/*
+# ============LICENSE_START=======================================================
+# Copyright (c) 2024 Deutsche Telekom
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+*/}}
+
+{{- if .Values.global.prometheusEnabled }}
+{{ include "common.serviceMonitor" . }}
+{{- end }}
diff --git a/kubernetes/policy/components/policy-opa-pdp/values.yaml b/kubernetes/policy/components/policy-opa-pdp/values.yaml
new file mode 100644
index 0000000000..20c7e513bc
--- /dev/null
+++ b/kubernetes/policy/components/policy-opa-pdp/values.yaml
@@ -0,0 +1,253 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2025 Deutsche Telekom Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ persistence: {}
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+ - uid: api-creds
+ type: basicAuth
+ externalSecret: '{{ tpl (default "" .Values.apiServer.credsExternalSecret) . }}'
+ login: '{{ .Values.apiServer.user }}'
+ password: '{{ .Values.apiServer.password }}'
+ passwordPolicy: required
+ - uid: restserver-creds
+ type: basicAuth
+ externalSecret: '{{ tpl (default "" .Values.restServer.credsExternalSecret) . }}'
+ login: '{{ .Values.restServer.user }}'
+ password: '{{ .Values.restServer.password }}'
+ passwordPolicy: required
+
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+image: onap/policy-opa-pdp:1.0.0
+pullPolicy: Always
+
+componentName: &componentName policy-opa-pdp
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+log:
+ loglevel: "debug"
+
+
+# application configuration
+
+permissions:
+ uid: 100
+ gid: 102
+
+restServer:
+ user: healthcheck
+ password: zb!XztG34
+
+apiServer:
+ user: policyadmin
+ password: zb!XztG34
+
+config:
+ # Event consumption (kafka) properties
+ kafka:
+ consumer:
+ groupId: policy-opa-pdp
+ app:
+ listener:
+ policyPdpPapTopic: policy-pdp-pap
+
+securityContext:
+ user_id: 0
+ group_id : 0
+ runAsNonRoot: false
+
+
+containerSecurityContext:
+ enabled: true
+ privileged: false
+ allowPrivilegeEscalation: true
+ readOnlyRootFilesystem: false
+ runAsNonRoot: false
+ runAsUser: 0
+ runAsGroup: 0
+
+
+kafka:
+ groupid: "policy-opa-pdp"
+ topic: "policy-pdp-pap"
+ useSASL: "true"
+ brokers: "onap-strimzi-kafka-bootstrap.onap:9092"
+
+persistence:
+ enabled: true
+ volumeReclaimPolicy: Retain
+ accessMode: ReadWriteMany
+ logsSize: 1Gi
+ mountPath: /dockerdata-nfs
+ mountSubPath: policy/opapdp
+ storageClass: "cinder-os"
+ enableDefaultStorageclass: false
+ parameters: {}
+ storageclassProvisioner: cinder-os
+
+
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+ initialDelaySeconds: 20
+ periodSeconds: 10
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+readiness:
+ initialDelaySeconds: 20
+ periodSeconds: 10
+
+service:
+ type: ClusterIP
+ name: *componentName
+ internalPort: 8282
+ ports:
+ - name: http
+ port: 8282
+
+ingress:
+ enabled: false
+
+serviceMesh:
+ authorizationPolicy:
+ authorizedPrincipals:
+ - serviceAccount: dcae-datafile-collector-read
+ - serviceAccount: dcae-datalake-admin-ui-read
+ - serviceAccount: dcae-datalake-des-read
+ - serviceAccount: dcae-datalake-feeder-read
+ - serviceAccount: dcae-heartbeat-read
+ - serviceAccount: dcae-hv-ves-collector-read
+ - serviceAccount: dcae-kpi-ms-read
+ - serviceAccount: dcae-pm-mapper-read
+ - serviceAccount: dcae-pmsh-read
+ - serviceAccount: dcae-prh-read
+ - serviceAccount: dcae-restconf-collector-read
+ - serviceAccount: dcae-slice-analysis-ms-read
+ - serviceAccount: dcae-snmptrap-collector-read
+ - serviceAccount: dcae-son-handler-read
+ - serviceAccount: dcae-tcagen2-read
+ - serviceAccount: dcae-ves-collector-read
+ - serviceAccount: dcae-ves-mapper-read
+ - serviceAccount: dcae-ves-openapi-manager-read
+ - serviceAccount: strimzi-kafka-read
+ - serviceAccount: oof-read
+ - serviceAccount: sdnc-read
+
+flavor: small
+resources:
+ small:
+ limits:
+ cpu: "1"
+ memory: "1Gi"
+ requests:
+ cpu: "0.5"
+ memory: "1Gi"
+ large:
+ limits:
+ cpu: "2"
+ memory: "2Gi"
+ requests:
+ cpu: "1"
+ memory: "2Gi"
+ unlimited: {}
+
+
+dirSizes:
+ emptyDir:
+ sizeLimit: 1Gi
+ logDir:
+ sizeLimit: 500Mi
+ policyDir:
+ sizeLimit: 100Mi
+ bundleDir:
+ sizeLimit: 5Gi
+
+
+#Pods Service Account
+serviceAccount:
+ nameOverride: *componentName
+ roles:
+ - read
+
+metrics:
+ serviceMonitor:
+ # Override the labels based on the Prometheus config parameter: serviceMonitorSelector.
+ # The default operator for prometheus enforces the below label.
+ labels:
+ app: '{{ include "common.name" . }}'
+ helm.sh/chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
+ app.kubernetes.io/instance: '{{ include "common.release" . }}'
+ app.kubernetes.io/managed-by: '{{ .Release.Service }}'
+ version: '{{ .Chart.Version | replace "+" "_" }}'
+ release: prometheus
+ enabled: true
+ port: policy-opa-pdp
+ interval: 60s
+ isHttps: false
+ basicAuth:
+ enabled: true
+ externalSecretNameSuffix: policy-opa-pdp-restserver-creds
+ externalSecretUserKey: login
+ externalSecretPasswordKey: password
+ selector:
+ app: '{{ include "common.name" . }}'
+ chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
+ release: '{{ include "common.release" . }}'
+ heritage: '{{ .Release.Service }}'
+
+config:
+ # Event consumption (kafka) properties
+ kafka:
+ consumer:
+ groupId: policy-opa-pdp
+ app:
+ listener:
+ policyPdpPapTopic: policy-pdp-pap
+
+# Strimzi Kafka config
+kafkaUser:
+ authenticationType: scram-sha-512
+ acls:
+ - name: policy-opa-pdp
+ type: group
+ operations: [ Create, Describe, Read, Write ]
+ - name: policy-pdp-pap
+ type: topic
+ patternType: prefix
+ operations: [ Create, Describe, Read, Write ]
diff --git a/kubernetes/policy/components/policy-pap/Chart.yaml b/kubernetes/policy/components/policy-pap/Chart.yaml
index 29f9ed3e72..58ecf66e3a 100755..100644
--- a/kubernetes/policy/components/policy-pap/Chart.yaml
+++ b/kubernetes/policy/components/policy-pap/Chart.yaml
@@ -2,7 +2,7 @@
# Copyright (C) 2019 Nordix Foundation.
# Modified Copyright (C) 2020 AT&T Intellectual Property.
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021, 2024 Nordix Foundation
+# Modifications Copyright © 2021, 2024-2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,7 +23,7 @@
apiVersion: v2
description: ONAP Policy Administration (PAP)
name: policy-pap
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-pap/resources/config/papParameters.yaml b/kubernetes/policy/components/policy-pap/resources/config/papParameters.yaml
index 58dfc9f497..72c8ad5fc3 100644
--- a/kubernetes/policy/components/policy-pap/resources/config/papParameters.yaml
+++ b/kubernetes/policy/components/policy-pap/resources/config/papParameters.yaml
@@ -1,6 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2022 Bell Canada. All rights reserved.
-# Modifications Copyright © 2022-2024 Nordix Foundation
+# Modifications Copyright © 2022-2025 Nordix Foundation
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -26,20 +26,6 @@ spring:
converters:
preferred-json-mapper: gson
datasource:
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- url: jdbc:mariadb://{{ .Values.db.service.name }}:{{ .Values.db.service.internalPort }}/policyadmin
- driverClassName: org.mariadb.jdbc.Driver
- username: "${SQL_USER}"
- password: "${SQL_PASSWORD}"
- hikari:
- maximumPoolSize: 20
- jpa:
- hibernate:
- ddl-auto: none
- naming:
- physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
- implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
-{{- else }}
url: jdbc:postgresql://{{ .Values.db.service.pgName }}:{{ .Values.db.service.internalPgPort }}/policyadmin
driverClassName: org.postgresql.Driver
username: "${SQL_USER}"
@@ -55,7 +41,6 @@ spring:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
-{{ end }}
server:
port: 6969
diff --git a/kubernetes/policy/components/policy-pap/templates/deployment.yaml b/kubernetes/policy/components/policy-pap/templates/deployment.yaml
index f7c400865f..e94e82764d 100644
--- a/kubernetes/policy/components/policy-pap/templates/deployment.yaml
+++ b/kubernetes/policy/components/policy-pap/templates/deployment.yaml
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2020 AT&T Intellectual Property.
# Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
-# Modifications Copyright (C) 2024 Nordix Foundation.
+# Modifications Copyright (C) 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,11 +36,7 @@ spec:
- /app/ready.py
args:
- --job-name
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- - {{ include "common.release" . }}-policy-galera-migrator-config
-{{ else }}
- {{ include "common.release" . }}-policy-pg-migrator-config
-{{ end }}
env:
- name: NAMESPACE
valueFrom:
diff --git a/kubernetes/policy/components/policy-pap/values.yaml b/kubernetes/policy/components/policy-pap/values.yaml
index 2a5d938a01..b2b8502d36 100755..100644
--- a/kubernetes/policy/components/policy-pap/values.yaml
+++ b/kubernetes/policy/components/policy-pap/values.yaml
@@ -2,7 +2,7 @@
# Copyright (C) 2019 Nordix Foundation.
# Modifications Copyright (C) 2019-2021 AT&T Intellectual Property.
# Modifications Copyright (C) 2020-2022 Bell Canada. All rights reserved.
-# Modifications Copyright © 2022-2024 Nordix Foundation
+# Modifications Copyright © 2022-2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,10 +26,6 @@
global:
nodePortPrefixExt: 304
persistence: {}
- postgres:
- useInPolicy: false
- mariadbGalera:
- useInPolicy: true
#################################################################
# Secrets metaconfig
@@ -71,7 +67,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-pap:4.0.1
+image: onap/policy-pap:4.1.0
pullPolicy: Always
# flag to enable debugging - application support required
@@ -83,9 +79,7 @@ db:
user: policy-user
password: policy_user
service:
- name: policy-mariadb
pgName: policy-pg-primary
- internalPort: 3306
internalPgPort: 5432
restServer:
@@ -148,14 +142,14 @@ flavor: small
resources:
small:
limits:
- cpu: "1"
+ cpu: "2"
memory: "1Gi"
requests:
- cpu: "0.5"
+ cpu: "1"
memory: "1Gi"
large:
limits:
- cpu: "2"
+ cpu: "3"
memory: "2Gi"
requests:
cpu: "1"
diff --git a/kubernetes/policy/components/policy-xacml-pdp/Chart.yaml b/kubernetes/policy/components/policy-xacml-pdp/Chart.yaml
index f4046126dd..a8236dc68a 100755..100644
--- a/kubernetes/policy/components/policy-xacml-pdp/Chart.yaml
+++ b/kubernetes/policy/components/policy-xacml-pdp/Chart.yaml
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright © 2021 Orange
-# Modifications Copyright © 2021, 2024 Nordix Foundation
+# Modifications Copyright © 2021, 2024-2025 Nordix Foundation
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP Policy XACML PDP (PDP-X)
name: policy-xacml-pdp
-version: 15.0.0
+version: 16.0.0
dependencies:
- name: common
diff --git a/kubernetes/policy/components/policy-xacml-pdp/resources/config/xacml.properties b/kubernetes/policy/components/policy-xacml-pdp/resources/config/xacml.properties
index 478cf84ca5..46d6b2a842 100644
--- a/kubernetes/policy/components/policy-xacml-pdp/resources/config/xacml.properties
+++ b/kubernetes/policy/components/policy-xacml-pdp/resources/config/xacml.properties
@@ -1,6 +1,6 @@
{{/*
# ============LICENSE_START=======================================================
-# Copyright (C) 2024 Nordix Foundation. All rights reserved.
+# Copyright (C) 2024-2025 Nordix Foundation. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -67,14 +67,8 @@ xacml.pip.engines=count-recent-operations,get-operation-outcome
#
# JPA Properties
#
-{{ if .Values.global.mariadbGalera.useInPolicy }}
-eclipselink.target-database=MySQL
-jakarta.persistence.jdbc.driver=org.mariadb.jdbc.Driver
-jakarta.persistence.jdbc.url=jdbc:mariadb://{{ .Values.db.service.mariadbName }}:{{ .Values.db.service.mariadbPort }}/operationshistory
-{{ else }}
eclipselink.target-database=PostgreSQL
jakarta.persistence.jdbc.driver=org.postgresql.Driver
jakarta.persistence.jdbc.url=jdbc:postgresql://{{ .Values.db.service.pgName }}:{{ .Values.db.service.pgPort }}/operationhistory
-{{ end }}
jakarta.persistence.jdbc.user=${SQL_USER}
jakarta.persistence.jdbc.password=${SQL_PASSWORD}
diff --git a/kubernetes/policy/components/policy-xacml-pdp/templates/deployment.yaml b/kubernetes/policy/components/policy-xacml-pdp/templates/deployment.yaml
index 828f6ec2c7..4411762ff7 100644
--- a/kubernetes/policy/components/policy-xacml-pdp/templates/deployment.yaml
+++ b/kubernetes/policy/components/policy-xacml-pdp/templates/deployment.yaml
@@ -1,7 +1,7 @@
{{/*
# ============LICENSE_START=======================================================
# Copyright (C) 2020 AT&T Intellectual Property.
-# Modifications Copyright (C) 2024 Nordix Foundation.
+# Modifications Copyright (C) 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,11 +35,7 @@ spec:
- /app/ready.py
args:
- --job-name
-{{ if .Values.global.mariadbGalera.useInPolicy }}
- - {{ include "common.release" . }}-policy-galera-migrator-config
-{{ else }}
- {{ include "common.release" . }}-policy-pg-migrator-config
-{{ end }}
env:
- name: NAMESPACE
valueFrom:
diff --git a/kubernetes/policy/components/policy-xacml-pdp/values.yaml b/kubernetes/policy/components/policy-xacml-pdp/values.yaml
index bdad532b40..4ec53223b5 100644
--- a/kubernetes/policy/components/policy-xacml-pdp/values.yaml
+++ b/kubernetes/policy/components/policy-xacml-pdp/values.yaml
@@ -1,6 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright (C) 2024 Nordix Foundation.
+# Modifications Copyright (C) 2024-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,10 +23,7 @@
#################################################################
global:
persistence: {}
- postgres:
- useInPolicy: false
- mariadbGalera:
- useInPolicy: true
+
#################################################################
# Secrets metaconfig
#################################################################
@@ -54,7 +51,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/policy-xacml-pdp:4.0.1
+image: onap/policy-xacml-pdp:4.1.0
pullPolicy: Always
componentName: &componentName policy-xacml-pdp
@@ -68,8 +65,6 @@ db:
user: policy-user
password: policy_user
service:
- mariadbName: policy-mariadb
- mariadbPort: 3306
pgName: policy-pg-primary
pgPort: 5432
diff --git a/kubernetes/policy/resources/config/db.sh b/kubernetes/policy/resources/config/db.sh
deleted file mode 100755
index d793a024df..0000000000
--- a/kubernetes/policy/resources/config/db.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada, AT&T
-# Modifications Copyright © 2018, 2020 AT&T Intellectual Property
-# Modifications Copyright (C) 2021 Nordix Foundation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-*/}}
-
-mysqlcmd() { mysql -h ${MYSQL_HOST} -P ${MYSQL_PORT} "$@"; };
-
-i=5
-RESULT_VARIABLE=0
-echo "Check if user ${MYSQL_USER} is created in DB ${MYSQL_HOST}"
-while [ $i -gt 0 ] && [ "$RESULT_VARIABLE" != 1 ]
-do
- i=$(( i-1 ))
- RESULT_VARIABLE="$(mysqlcmd -uroot -p"${MYSQL_ROOT_PASSWORD}" -se "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '${MYSQL_USER}')")"
- if [ "$RESULT_VARIABLE" = 1 ]; then
- echo "User ${MYSQL_USER} exists"
- else
- echo "User ${MYSQL_USER} does not exist"
- sleep 10
- fi
-done
-if [ "$RESULT_VARIABLE" != 1 ]; then
- exit 1
-fi
-for db in migration pooling policyadmin policyclamp operationshistory clampacm
-do
- echo "Create DB ${db}"
- mysqlcmd -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};"
- echo "Grand access for user ${MYSQL_USER}"
- mysqlcmd -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "GRANT ALL PRIVILEGES ON \`${db}\`.* TO '${MYSQL_USER}'@'%' ;"
-done
-echo "Flush privileges"
-mysqlcmd -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;"
diff --git a/kubernetes/policy/templates/job.yaml b/kubernetes/policy/templates/job.yaml
index ad5b8fbf5a..a21077249b 100755
--- a/kubernetes/policy/templates/job.yaml
+++ b/kubernetes/policy/templates/job.yaml
@@ -1,7 +1,7 @@
{{/*
# Copyright © 2018 Amdocs, Bell Canada
# Modifications Copyright © 2020 AT&T Intellectual Property
-# Modifications Copyright (C) 2022-2024 Nordix Foundation.
+# Modifications Copyright (C) 2022-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,92 +17,6 @@
# limitations under the License.
*/}}
-{{ if .Values.global.mariadbGalera.useInPolicy }}
-apiVersion: batch/v1
-kind: Job
-metadata:
- name: {{ include "common.fullname" . }}-galera-init
- namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}-galera-init
- release: {{ include "common.release" . }}
-spec:
- template:
- metadata:
- labels:
- app: {{ include "common.name" . }}-galera-init
- release: {{ include "common.release" . }}
- name: {{ include "common.name" . }}-galera-init
- spec:
- {{ include "common.podSecurityContext" . | indent 6 | trim }}
- {{- include "common.imagePullSecrets" . | nindent 6 }}
- initContainers:
- {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for_mariadb ) | indent 6 | trim }}
- containers:
- - name: {{ include "common.name" . }}-galera-config
- image: {{ include "repositoryGenerator.image.mariadb" . }}
- imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- {{ include "common.containerSecurityContext" . | indent 8 | trim }}
- volumeMounts:
- - mountPath: /dbcmd-config/db.sh
- name: {{ include "common.fullname" . }}-config
- subPath: db.sh
- command:
- - /bin/sh
- - -cx
- - |
- {{- if include "common.requireSidecarKiller" . }}
- echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
- /dbcmd-config/db.sh
- env:
- - name: MYSQL_ROOT_PASSWORD
- {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-password" "key" "password") | indent 10 }}
- - name: MYSQL_HOST
- value: "{{ index .Values "mariadb-galera" "service" "name" }}"
- - name: MYSQL_USER
- {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
- - name: MYSQL_PORT
- value: "{{ index .Values "mariadb-galera" "service" "internalPort" }}"
- resources: {{ include "common.resources" . | nindent 10 }}
- {{- if (include "common.requireSidecarKiller" .) }}
- - name: policy-service-mesh-wait-for-job-container
- image: {{ include "repositoryGenerator.image.quitQuit" . }}
- imagePullPolicy: Always
- {{ include "common.containerSecurityContext" . | indent 8 | trim }}
- command:
- - /bin/sh
- - "-c"
- args:
- - echo "waiting 10s for istio side cars to be up"; sleep 10s;
- /app/ready.py --service-mesh-check {{ include "common.name" . }}-galera-config -t 45;
- env:
- - name: NAMESPACE
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.namespace
- {{ include "common.containerSecurityContext" . | indent 8 | trim }}
- resources:
- limits:
- cpu: 100m
- memory: 500Mi
- requests:
- cpu: 10m
- memory: 10Mi
- {{- end }}
- restartPolicy: Never
- serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
- volumes:
- - name: {{ include "common.fullname" . }}-config
- configMap:
- name: {{ include "common.fullname" . }}-db-configmap
- defaultMode: 0755
- items:
- - key: db.sh
- path: db.sh
-{{ end }}
-
-{{ if .Values.global.postgres.useInPolicy }}
---
apiVersion: batch/v1
kind: Job
@@ -112,6 +26,9 @@ metadata:
labels:
app: {{ include "common.name" . }}-pg-init
release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
template:
metadata:
@@ -188,114 +105,8 @@ spec:
items:
- key: db-pg.sh
path: db-pg.sh
-{{ end }}
---
-{{ if .Values.global.mariadbGalera.useInPolicy }}
-apiVersion: batch/v1
-kind: Job
-metadata:
- name: {{ include "common.fullname" . }}-galera-migrator-config
- namespace: {{ include "common.namespace" . }}
- labels:
- app: {{ include "common.name" . }}-galera-migrator-config
- release: {{ include "common.release" . }}
-spec:
- template:
- metadata:
- labels:
- app: {{ include "common.name" . }}-galera-migrator-config
- release: {{ include "common.release" . }}
- name: {{ include "common.name" . }}-galera-migrator-config
- spec:
- {{ include "common.podSecurityContext" . | indent 6 | trim }}
- {{- include "common.imagePullSecrets" . | nindent 6 }}
- initContainers:
- - name: {{ include "common.name" . }}-init-readiness
- {{ include "common.containerSecurityContext" . | indent 10 | trim }}
- image: {{ include "repositoryGenerator.image.readiness" . }}
- imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- command:
- - /app/ready.py
- args:
- - --job-name
- - {{ include "common.fullname" . }}-galera-init
- env:
- - name: NAMESPACE
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.namespace
- resources:
- limits:
- cpu: "100m"
- memory: "500Mi"
- requests:
- cpu: "3m"
- memory: "20Mi"
- containers:
- - name: {{ include "common.name" . }}-galera-db-migrator
- {{ include "common.containerSecurityContext" . | indent 10 | trim }}
- image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.dbmigrator.image }}
- imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- volumeMounts:
- - mountPath: /opt/app/policy/etc/db/
- name: {{ include "common.fullname" . }}-migration-writable
- - mountPath: /dbcmd-config/db_migrator_policy_init.sh
- name: {{ include "common.fullname" . }}-config
- subPath: db_migrator_policy_init.sh
- command:
- - /bin/sh
- - -cx
- - |
- {{- if include "common.requireSidecarKiller" . }}
- echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
- /dbcmd-config/db_migrator_policy_init.sh
- env:
- - name: SQL_HOST
- value: "{{ index .Values "mariadb-galera" "service" "name" }}"
- - name: SQL_USER
- {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
- - name: SQL_PASSWORD
- {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
- - name: SQL_DB
- value: {{ .Values.dbmigrator.schemas }}
- - name: POLICY_HOME
- value: {{ .Values.dbmigrator.policy_home }}
- - name: SCRIPT_DIRECTORY
- value: "sql"
- resources: {{ include "common.resources" . | nindent 12 }}
- {{- if (include "common.requireSidecarKiller" .) }}
- - name: policy-service-mesh-wait-for-job-container
- {{ include "common.containerSecurityContext" . | indent 10 | trim }}
- image: {{ include "repositoryGenerator.image.quitQuit" . }}
- imagePullPolicy: Always
- command:
- - /bin/sh
- - "-c"
- args:
- - echo "waiting 10s for istio side cars to be up"; sleep 10s;
- /app/ready.py --service-mesh-check {{ include "common.name" . }}-galera-db-migrator -t 45;
- env:
- - name: NAMESPACE
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.namespace
- {{- end }}
- restartPolicy: Never
- serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
- volumes:
- - name: {{ include "common.fullname" . }}-migration-writable
- emptyDir: {}
- - name: {{ include "common.fullname" . }}-config
- configMap:
- name: {{ include "common.fullname" . }}-db-configmap
- defaultMode: 0755
- items:
- - key: db_migrator_policy_init.sh
- path: db_migrator_policy_init.sh
-{{ end }}
-{{ if .Values.global.postgres.useInPolicy }}
+
---
apiVersion: batch/v1
kind: Job
@@ -305,6 +116,9 @@ metadata:
labels:
app: {{ include "common.name" . }}-pg-migrator-config
release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
template:
metadata:
@@ -402,4 +216,3 @@ spec:
items:
- key: db_migrator_pg_policy_init.sh
path: db_migrator_pg_policy_init.sh
-{{ end }}
diff --git a/kubernetes/policy/values.yaml b/kubernetes/policy/values.yaml
index 6cd26dd359..6e813825a0 100644
--- a/kubernetes/policy/values.yaml
+++ b/kubernetes/policy/values.yaml
@@ -1,6 +1,6 @@
# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018-2020 AT&T Intellectual Property
-# Modifications Copyright (C) 2021-2024 Nordix Foundation.
+# Modifications Copyright (C) 2021-2025 Nordix Foundation.
# Modifications Copyright © 2024 Deutsche Telekom
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,27 +19,9 @@
# Global configuration defaults.
#################################################################
global:
- mariadbGalera:
- useInPolicy: true
- localCluster: true
- # flag to enable the DB creation via mariadb-operator
- useOperator: false
- # if useOperator set to "true", set "enableServiceAccount to "false"
- # as the SA is created by the Operator
- enableServiceAccount: false
- # '&mariadbConfig' means we "store" the values for later use in the file
- # with '*mariadbConfig' pointer.
- config: &mariadbConfig
- mysqlDatabase: policyadmin
- service: &mariadbService policy-mariadb
- internalPort: 3306
- nameOverride: *mariadbService
- # (optional) if localCluster=false and an external secret is used set this variable
- #userRootSecret: <secretName>
prometheusEnabled: false
postgres:
- useInPolicy: false
- localCluster: false
+ localCluster: true
# flag to enable the DB creation via pgo-operator
useOperator: false
service:
@@ -66,20 +48,7 @@ secrets:
- uid: db-root-password
name: &dbRootPassSecretName '{{ include "common.release" . }}-policy-db-root-password'
type: password
- externalSecret: '{{ .Values.global.mariadbGalera.useInPolicy | ternary
- ( .Values.global.mariadbGalera.localCluster | ternary
- ( hasSuffix "policy-db-root-password" (index .Values "mariadb-galera" "rootUser" "externalSecret") | ternary
- ""
- (tpl (default "" (index .Values "mariadb-galera" "rootUser" "externalSecret")) .)
- )
- ( not (empty (default "" .Values.global.mariadbGalera.userRootSecret)) | ternary
- .Values.global.mariadbGalera.userRootSecret
- (include "common.mariadb.secret.rootPassSecretName"
- (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)
- )
- )
- )
- ( .Values.global.postgres.localCluster | ternary
+ externalSecret: '{{ .Values.global.postgres.localCluster | ternary
( hasSuffix "policy-db-root-password" (index .Values "postgres" "config" "pgRootPasswordExternalSecret") | ternary
""
(tpl (default "" (index .Values "postgres" "config" "pgRootPasswordExternalSecret")) .)
@@ -90,33 +59,18 @@ secrets:
(dict "dot" . "chartName" .Values.global.postgres.nameOverride)
)
)
- ) }}'
- password: '{{ .Values.global.mariadbGalera.useInPolicy | ternary
- (index .Values "mariadb-galera" "rootUser" "password")
- (index .Values "postgres" "config" "pgRootPassword")
}}'
+ password: '{{ (index .Values "postgres" "config" "pgRootPassword") }}'
policy: generate
- uid: db-secret
name: &dbSecretName '{{ include "common.release" . }}-policy-db-secret'
type: basicAuth
- externalSecret: '{{ .Values.global.mariadbGalera.useInPolicy | ternary
- ( hasSuffix "policy-db-secret" (index .Values "mariadb-galera" "db" "externalSecret") | ternary
- ""
- (tpl (default "" (index .Values "mariadb-galera" "db" "externalSecret")) .)
- )
- ( hasSuffix "policy-db-secret" (index .Values "postgres" "config" "pgUserExternalSecret") | ternary
- ""
- (tpl (default "" (index .Values "postgres" "config" "pgUserExternalSecret")) .)
- )
+ externalSecret: '{{ hasSuffix "policy-db-secret" (index .Values "postgres" "config" "pgUserExternalSecret") | ternary
+ ""
+ (tpl (default "" (index .Values "postgres" "config" "pgUserExternalSecret")) .)
}}'
- login: '{{ .Values.global.mariadbGalera.useInPolicy | ternary
- (index .Values "mariadb-galera" "db" "user")
- (index .Values "postgres" "config" "pgUserName")
- }}'
- password: '{{ .Values.global.mariadbGalera.useInPolicy | ternary
- (index .Values "mariadb-galera" "db" "password")
- (index .Values "postgres" "config" "pgUserPassword")
- }}'
+ login: '{{ (index .Values "postgres" "config" "pgUserName") }}'
+ password: '{{ (index .Values "postgres" "config" "pgUserPassword") }}'
passwordPolicy: generate
- uid: policy-app-user-creds
name: &policyAppCredsSecret '{{ include "common.release" . }}-policy-app-user-creds'
@@ -173,6 +127,10 @@ policy-drools-pdp:
db: *dbSecretsHook
config:
jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.policyKafkaUser }}'
+policy-opa-pdp:
+ enabled: true
+ config:
+ jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.policyKafkaUser }}'
policy-distribution:
enabled: true
db: *dbSecretsHook
@@ -204,11 +162,8 @@ policy-nexus:
#################################################################
dbmigrator:
- # New released image will allow full SASL and Postgres (drools included). Tested with snapshot. Release to come later.
- image: onap/policy-db-migrator:4.0.1
- # These schemas will be required with the new version of db-migrator
- # schemas: "policyadmin clampacm pooling operationshistory"
- schemas: "policyadmin"
+ image: onap/policy-db-migrator:4.1.0
+ schemas: "policyadmin clampacm pooling operationshistory"
policy_home: "/opt/app/policy"
subChartsOnly:
@@ -220,9 +175,9 @@ debugEnabled: false
# default number of instances
replicaCount: 1
-nodeSelector: {}
+nodeSelector: { }
-affinity: {}
+affinity: { }
# probe configuration parameters
liveness:
@@ -236,7 +191,6 @@ readiness:
initialDelaySeconds: 10
periodSeconds: 10
-
config:
policyAppUserName: runtimeUser
policyPdpPapTopic:
@@ -262,31 +216,7 @@ config:
groupId: policy-group
someConfig: blah
-mariadb-galera:
- # mariadb-galera.config and global.mariadbGalera.config must be equals
- db:
- user: policy-user
- # password:
- externalSecret: *dbSecretName
- name: &mysqlDbName policyadmin
- rootUser:
- externalSecret: *dbRootPassSecretName
- nameOverride: *mariadbService
- # mariadb-galera.service and global.mariadbGalera.service must be equals
- service:
- name: *mariadbService
- replicaCount: 1
- mariadbOperator:
- galera:
- enabled: false
- persistence:
- enabled: true
- mountSubPath: policy/maria/data
- size: 3Gi
- serviceAccount:
- nameOverride: *mariadbService
-
-postgresImage: library/postgres:latest
+postgresImage: library/postgres:17.2
# application configuration override for postgres
postgres:
nameOverride: &postgresName policy-postgres
@@ -294,6 +224,7 @@ postgres:
name: *postgresName
name2: policy-pg-primary
name3: policy-pg-replica
+ internalPort: 5432
container:
name:
primary: policy-pg-primary
@@ -312,9 +243,6 @@ readinessCheck:
wait_for_postgres:
services:
- '{{ .Values.global.postgres.service.name2 }}'
- wait_for_mariadb:
- services:
- - '{{ include "common.mariadbService" . }}'
restServer:
policyPapUserName: policyadmin
@@ -340,7 +268,7 @@ resources:
requests:
cpu: "200m"
memory: "2Gi"
- unlimited: {}
+ unlimited: { }
securityContext:
user_id: 100
@@ -351,3 +279,18 @@ serviceAccount:
nameOverride: policy
roles:
- read
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/portal-ng/components/portal-ng-history/values.yaml b/kubernetes/portal-ng/components/portal-ng-history/values.yaml
index a12e70c575..eb19442844 100644
--- a/kubernetes/portal-ng/components/portal-ng-history/values.yaml
+++ b/kubernetes/portal-ng/components/portal-ng-history/values.yaml
@@ -34,10 +34,10 @@ service:
resources:
small:
limits:
- cpu: "500m"
+ cpu: "1"
memory: "512Mi"
requests:
- cpu: "100m"
+ cpu: "200m"
memory: "256Mi"
large:
limits:
diff --git a/kubernetes/robot/values.yaml b/kubernetes/robot/values.yaml
index 6025462649..32dfa2330b 100644
--- a/kubernetes/robot/values.yaml
+++ b/kubernetes/robot/values.yaml
@@ -22,7 +22,7 @@ global: # global defaults
# application image
repository: nexus3.onap.org:10001
-image: onap/testsuite:1.12.2
+image: onap/testsuite:1.14.0
pullPolicy: Always
ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
diff --git a/kubernetes/sdc/Chart.yaml b/kubernetes/sdc/Chart.yaml
index 86d3408f0e..d2dc711b00 100644
--- a/kubernetes/sdc/Chart.yaml
+++ b/kubernetes/sdc/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: Service Design and Creation Umbrella Helm charts
name: sdc
-version: 13.0.1
+version: 13.0.5
dependencies:
- name: common
diff --git a/kubernetes/sdc/components/sdc-be/Chart.yaml b/kubernetes/sdc/components/sdc-be/Chart.yaml
index e93607c017..2bb7f3be8b 100644
--- a/kubernetes/sdc/components/sdc-be/Chart.yaml
+++ b/kubernetes/sdc/components/sdc-be/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP Service Design and Creation Backend API
name: sdc-be
-version: 13.0.0
+version: 13.0.4
dependencies:
- name: common
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/configuration.yaml b/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/configuration.yaml
new file mode 100644
index 0000000000..8103700bd9
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/configuration.yaml
@@ -0,0 +1,1253 @@
+identificationHeaderFields:
+ - HTTP_IV_USER
+ - HTTP_CSP_FIRSTNAME
+ - HTTP_CSP_LASTNAME
+ - HTTP_IV_REMOTE_ADDRESS
+ - HTTP_CSP_WSTYPE
+
+
+# catalog backend hostname
+beFqdn: {{ .Values.beFqdn }}
+
+# catalog backend http port
+beHttpPort: {{ .Values.beHttpPort }}
+
+# catalog backend http context
+beContext: /sdc/rest/config/get
+
+# catalog backend protocol
+beProtocol: http
+
+tlsCert: {{ .Values.tlsCert }}
+tlsKey: {{ .Values.tlsKey }}
+caCert: {{ .Values.caCert }}
+
+# catalog backend ssl port
+beSslPort: {{ .Values.beSslPort }}
+version: 1.1.0
+released: 2012-11-30
+toscaConformanceLevel: 11.0
+minToscaConformanceLevel: 3.0
+
+janusGraphCfgFile: {{ .Values.janusGraphCfgFile }}
+janusGraphInMemoryGraph: false
+janusGraphLockTimeout: 1800
+#startup: connect to JanusGraph DB when it is down during ASDC--More-- (2% of 27930 bytes)
+janusGraphReconnectIntervalInSeconds: 3
+
+# The read timeout towards JanusGraph DB when health check is invoked:
+janusGraphHealthCheckReadTimeout: 1
+
+ #startup: connect to Elasticsearch when it is down during ASDC--More-- (3% of 27930 bytes)
+
+uebHealthCheckReconnectIntervalInSeconds: 15
+uebHealthCheckReadTimeout: 4
+
+# Protocols
+protocols:
+ - http
+ - https
+
+# Default imports
+defaultImports:
+ - nodes:
+ file: nodes.yml
+ - datatypes:
+ file: data.yml
+ - capabilities:
+ file: capabilities.yml
+ - relationships:
+ file: relationships.yml
+ - groups:
+ file: groups.yml
+ - policies:
+ file: policies.yml
+ - annotations:
+ file: annotations.yml
+
+# Global CSAR Import Files
+globalCsarImports:
+ - annotations.yml
+ - artifacts.yml
+ - capabilities.yml
+ - data.yml
+ - groups.yml
+ - interfaces.yml
+ - nodes.yml
+ - policies.yml
+ - relationships.yml
+
+# Users
+users:
+ tom: passwd
+ bob: passwd
+
+basicAuth:
+ enabled: {{ .Values.basicAuthConfig.enabled }}
+ userName: {{ .Values.basicAuth.userName }}
+ userPass: {{ .Values.basicAuth.userPass }}
+ excludedUrls: "/sdc2/rest/healthCheck"
+
+
+cassandraConfig:
+ cassandraHosts: [{{ .Values.cassandra.hostname }}]
+ cassandraPort: {{ .Values.cassandra.port }}
+ localDataCenter: {{ .Values.cassandra.datacenterName }}
+ reconnectTimeout : 30000
+ socketReadTimeout: {{ .Values.cassandraConfig.socketReadTimeout }}
+ socketConnectTimeout: {{ .Values.cassandraConfig.socketConnectTimeout }}
+ authenticate: true
+ username: {{ .Values.cassandra.cassandraUsername }}
+ password: {{ .Values.cassandra.cassandraPassword }}
+ ssl: {{ .Values.cassandraConfig.ssl }}
+ keystorePath: {{ .Values.cassandraConfig.keystorePath }}
+ keystorePassword: {{ .Values.cassandraConfig.keystorePassword }}
+ truststorePath: {{ .Values.cassandraConfig.truststorePath }}
+ truststorePassword: {{ .Values.cassandraConfig.truststorePassword }}
+ keySpaces:
+ - { name: dox, replicationStrategy: NetworkTopologyStrategy, replicationInfo: [{{ if .Values.pairEnvName }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}','{{ .Values.cassandra.clusterName }}{{ .Values.pairEnvName }}','{{ .Values.cassandra.replicationFactor }}'{{ else }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}'{{ end }}]}
+ - { name: sdcaudit, replicationStrategy: NetworkTopologyStrategy, replicationInfo: [{{ if .Values.pairEnvName }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}','{{ .Values.cassandra.clusterName }}{{ .Values.pairEnvName }}','{{ .Values.cassandra.replicationFactor }}'{{ else }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}'{{ end }}]}
+ - { name: sdcartifact, replicationStrategy: NetworkTopologyStrategy, replicationInfo: [{{ if .Values.pairEnvName }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}','{{ .Values.cassandra.clusterName }}{{ .Values.pairEnvName }}','{{ .Values.cassandra.replicationFactor }}'{{ else }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}'{{ end }}]}
+ - { name: sdccomponent, replicationStrategy: NetworkTopologyStrategy, replicationInfo: [{{ if .Values.pairEnvName }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}','{{ .Values.cassandra.clusterName }}{{ .Values.pairEnvName }}','{{ .Values.cassandra.replicationFactor }}'{{ else }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}'{{ end }}]}
+ - { name: sdcrepository, replicationStrategy: NetworkTopologyStrategy, replicationInfo: [{{ if .Values.pairEnvName }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}','{{ .Values.cassandra.clusterName }}{{ .Values.pairEnvName }}','{{ .Values.cassandra.replicationFactor }}'{{ else }}'{{ .Values.cassandra.datacenterName }}','{{ .Values.cassandra.replicationFactor }}'{{ end }}]}
+licenseTypes:
+ - User
+ - Installation
+ - CPU
+
+#Deployment artifacts placeHolder
+resourceTypes: &allResourceTypes
+ - VFC
+ - CP
+ - VL
+ - VF
+ - CR
+ - VFCMT
+ - Abstract
+ - CVFC
+ - Configuration
+ - ServiceProxy
+ - PNF
+
+componentAllowedInstanceTypes:
+ Resource:
+ VF:
+ - VFC
+ - VF
+ - CR
+ - CP
+ - PNF
+ - CVFC
+ - VL
+ - Configuration
+ - ServiceProxy
+ - Abstract
+ CVFC:
+ - VFC
+ - VF
+ - CR
+ - CP
+ - PNF
+ - CVFC
+ - VL
+ - ServiceProxy
+ - Abstract
+ PNF:
+ - VF
+ - CR
+ - CP
+ - PNF
+ - CVFC
+ - VL
+ - Configuration
+ - ServiceProxy
+ - Abstract
+ CR:
+ - VF
+ - CR
+ - CP
+ - PNF
+ - CVFC
+ - VL
+ - Configuration
+ - ServiceProxy
+ - Abstract
+ VL:
+ - VL
+ Service:
+ "*":
+ - VF
+ - VFC
+ - CR
+ - CP
+ - PNF
+ - CVFC
+ - VL
+ - Configuration
+ - ServiceProxy
+ - Abstract
+
+artifacts:
+ - type: CONTROLLER_BLUEPRINT_ARCHIVE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - zip
+ - type: HELM
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - tgz
+ - type: YANG_XML
+ categories:
+ - DEPLOYMENT
+ - INFORMATIONAL
+ componentTypes:
+ - SERVICE
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - xml
+ - type: VNF_CATALOG
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ - type: MODEL_INVENTORY_PROFILE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ - type: MODEL_QUERY_SPEC
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ - type: UCPE_LAYER_2_CONFIGURATION
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ #AAI Artifacts
+ - type: AAI_SERVICE_MODEL
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ - type: AAI_VF_MODULE_MODEL
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ - type: AAI_VF_INSTANCE_MODEL
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes:
+ acceptedTypes:
+ - xml
+ #Plan
+ - type: PLAN
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ - RESOURCE
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ - VF
+ - VFC
+ acceptedTypes:
+ - xml
+ - type: WORKFLOW
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ - RESOURCE
+ resourceTypes:
+ - VFC
+ - CP
+ - VL
+ - VF
+ - CR
+ - VFCMT
+ - Abstract
+ - CVFC
+ - PNF
+ acceptedTypes:
+ - type: HEAT
+ categories:
+ - DEPLOYMENT
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: HEAT_VOL
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: HEAT_NET
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: HEAT_NESTED
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: HEAT_ARTIFACT
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: CLOUD_TECHNOLOGY_SPECIFIC_ARTIFACT
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - zip
+ - tgz
+ - csar
+ - type: VNF_CATALOG
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - xml
+ - type: VF_LICENSE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - xml
+ - type: VENDOR_LICENSE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - xml
+ - type: MODEL_INVENTORY_PROFILE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - xml
+ - type: MODEL_QUERY_SPEC
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - xml
+ - type: LIFECYCLE_OPERATIONS
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFC
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: VES_EVENTS
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ - VFC
+ - CP
+ - VL
+ - VF
+ - CR
+ - VFCMT
+ - Abstract
+ - CVFC
+ - PNF
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: PERFORMANCE_COUNTER
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ - RESOURCE_INSTANCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - csv
+ - type: APPC_CONFIG
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ acceptedTypes:
+ - type: DCAE_TOSCA
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFCMT
+ acceptedTypes:
+ - yml
+ - yaml
+ - type: DCAE_JSON
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFCMT
+ acceptedTypes:
+ - json
+ - type: DCAE_POLICY
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFCMT
+ acceptedTypes:
+ - emf
+ - type: DCAE_DOC
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFCMT
+ acceptedTypes:
+ - type: DCAE_EVENT
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFCMT
+ acceptedTypes:
+ - type: AAI_VF_MODEL
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ acceptedTypes:
+ - xml
+ - type: AAI_VF_MODULE_MODEL
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ acceptedTypes:
+ - xml
+ - type: OTHER
+ categories:
+ - DEPLOYMENT
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VFC
+ - CVFC
+ - CP
+ - VL
+ - VF
+ - VFCMT
+ - Abstract
+ - PNF
+ acceptedTypes:
+ - type: SNMP_POLL
+ categories:
+ - DEPLOYMENT
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ - RESOURCE_INSTANCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: SNMP_TRAP
+ categories:
+ - DEPLOYMENT
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ - RESOURCE_INSTANCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: PM_DICTIONARY
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: YANG_MODULE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - yang
+ - type: ANSIBLE_PLAYBOOK
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: ONBOARDED_PACKAGE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - csar
+ - zip
+ - type: ETSI_PACKAGE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - csar
+ - zip
+ - type: ASD_PACKAGE
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - PNF
+ acceptedTypes:
+ - csar
+ - zip
+ - type: HEAT_ENV
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - env
+ - type: VF_MODULES_METADATA
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - json
+ - type: DCAE_INVENTORY_TOSCA
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - yml
+ - yaml
+ - type: DCAE_INVENTORY_JSON
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - json
+ - type: DCAE_INVENTORY_POLICY
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - emf
+ - type: DCAE_INVENTORY_DOC
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - type: DCAE_INVENTORY_BLUEPRINT
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - type: DCAE_INVENTORY_EVENT
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - RESOURCE_INSTANCE
+ resourceTypes:
+ acceptedTypes:
+ - type: CHEF
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: PUPPET
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: SHELL
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: YANG
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: BPEL
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: DG_XML
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: MURANO_PKG
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: PNF_SW_INFORMATION
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - PNF
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: GUIDE
+ categories:
+ - INFORMATIONAL
+ componentTypes:
+ - RESOURCE
+ resourceTypes:
+ - VF
+ - VFC
+ - CVFC
+ - PNF
+ acceptedTypes:
+ - yaml
+ - yml
+ - type: FLOW
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - type: SHELL_SCRIPT
+ categories:
+ - DEPLOYMENT
+ componentTypes:
+ - SERVICE
+ - SERVICE_INSTANCE
+ - RESOURCE
+ - RESOURCE_INSTANCE
+ resourceTypes: *allResourceTypes
+ acceptedTypes:
+ - sh
+ - type: TOSCA_CSAR
+ categories:
+ - TOSCA
+ componentTypes:
+ resourceTypes:
+ acceptedTypes:
+ - csar
+ - type: TOSCA_TEMPLATE
+ categories:
+ - TOSCA
+ componentTypes:
+ resourceTypes:
+ acceptedTypes:
+ - yml
+ - yaml
+ - type: NETWORK_CALL_FLOW
+ categories:
+ componentTypes:
+ resourceTypes:
+ acceptedTypes:
+ - type: ICON
+ categories:
+ componentTypes:
+ resourceTypes:
+ acceptedTypes:
+
+deploymentResourceArtifacts:
+
+deploymentResourceInstanceArtifacts:
+ heatEnv:
+ displayName: "HEAT ENV"
+ type: HEAT_ENV
+ description: "Auto-generated HEAT Environment deployment artifact"
+ fileExtension: "env"
+ VfHeatEnv:
+ displayName: "VF HEAT ENV"
+ type: HEAT_ENV
+ description: "VF Auto-generated HEAT Environment deployment artifact"
+ fileExtension: "env"
+
+#tosca artifacts placeholders
+toscaArtifacts:
+ assetToscaTemplate:
+ artifactName: -template.yml
+ displayName: Tosca Template
+ type: TOSCA_TEMPLATE
+ description: TOSCA representation of the asset
+ assetToscaCsar:
+ artifactName: -csar.csar
+ displayName: Tosca Model
+ type: TOSCA_CSAR
+ description: TOSCA definition package of the asset
+
+#Informational artifacts placeHolder
+excludeResourceCategory:
+ - Generic
+excludeResourceType:
+ - PNF
+ - CR
+informationalResourceArtifacts:
+ features:
+ displayName: Features
+ type: OTHER
+ capacity:
+ displayName: Capacity
+ type: OTHER
+ vendorTestResult:
+ displayName: Vendor Test Result
+ type: OTHER
+ testScripts:
+ displayName: Test Scripts
+ type: OTHER
+ CloudQuestionnaire:
+ displayName: Cloud Questionnaire (completed)
+ type: OTHER
+ HEATTemplateFromVendor:
+ displayName: HEAT Template from Vendor
+ type: HEAT
+ resourceSecurityTemplate:
+ displayName: Resource Security Template
+ type: OTHER
+
+excludeServiceCategory:
+
+informationalServiceArtifacts:
+ serviceArtifactPlan:
+ displayName: Service Artifact Plan
+ type: OTHER
+ summaryOfImpactsToECOMPElements:
+ displayName: Summary of impacts to ECOMP elements,OSSs, BSSs
+ type: OTHER
+ automationCompositionFunctions:
+ displayName: Automation Composition Functions
+ type: OTHER
+ dimensioningInfo:
+ displayName: Dimensioning Info
+ type: OTHER
+ affinityRules:
+ displayName: Affinity Rules
+ type: OTHER
+ operationalPolicies:
+ displayName: Operational Policies
+ type: OTHER
+ serviceSpecificPolicies:
+ displayName: Service-specific Policies
+ type: OTHER
+ engineeringRules:
+ displayName: Engineering Rules (ERD)
+ type: OTHER
+ distributionInstructions:
+ displayName: Distribution Instructions
+ type: OTHER
+ certificationTestResults:
+ displayName: TD Certification Test Results
+ type: OTHER
+ deploymentVotingRecord:
+ displayName: Deployment Voting Record
+ type: OTHER
+ serviceQuestionnaire:
+ displayName: Service Questionnaire
+ type: OTHER
+ serviceSecurityTemplate:
+ displayName: Service Security Template
+ type: OTHER
+
+serviceApiArtifacts:
+ configuration:
+ displayName: Configuration
+ type: OTHER
+ instantiation:
+ displayName: Instantiation
+ type: OTHER
+ monitoring:
+ displayName: Monitoring
+ type: OTHER
+ reporting:
+ displayName: Reporting
+ type: OTHER
+ logging:
+ displayName: Logging
+ type: OTHER
+ testing:
+ displayName: Testing
+ type: OTHER
+
+additionalInformationMaxNumberOfKeys: 50
+
+systemMonitoring:
+ enabled: false
+ isProxy: false
+ probeIntervalInSeconds: 15
+heatArtifactDeploymentTimeout:
+ defaultMinutes: 30
+ minMinutes: 1
+ maxMinutes: 120
+
+unLoggedUrls:
+ - /sdc2/rest/monitoring
+ - /sdc2/rest/healthCheck
+
+cleanComponentsConfiguration:
+ cleanIntervalInMinutes: 1440
+ componentsToClean:
+ - Resource
+ - Service
+
+artifactsIndex: resources
+
+heatEnvArtifactHeader: ""
+heatEnvArtifactFooter: ""
+
+onboarding:
+ host: {{ .Values.ONBOARDING_BE.host }}
+ protocol: {{ if .Values.disableHttp }}https{{ else }}http{{ end }}
+ port: {{ if .Values.disableHttp }}{{ .Values.ONBOARDING_BE.httpsPort }}{{ else }}{{ .Values.ONBOARDING_BE.httpPort }}{{ end }}
+ getVspPackageUri: "/onboarding-api/v1.0/vendor-software-products/packages/%s?versionId=%s" # /onboarding-api/v1.0/vendor-software-products/packages/:vspId?versionId=:vspVersionId
+ getLatestVspPackageUri: "/onboarding-api/v1.0/vendor-software-products/packages/%s" # /onboarding-api/v1.0/vendor-software-products/packages/:vspId
+ getVspUri: "/onboarding-api/v1.0/vendor-software-products/%s/versions/%s" # /onboarding-api/v1.0/vendor-software-products/:vspId/versions/:vspVersionId
+ getLatestVspUri: "/onboarding-api/v1.0/vendor-software-products/%s" # /onboarding-api/v1.0/vendor-software-products/:vspId
+ healthCheckUri: "/onboarding-api/v1.0/healthcheck"
+
+# #GSS IDNS
+switchoverDetector:
+ gBeFqdn:
+ gFeFqdn:
+ beVip: 1.2.3.4
+ feVip: 1.2.3.4
+ beResolveAttempts: 3
+ feResolveAttempts: 3
+ enabled: false
+ interval: 60
+ changePriorityUser: ecompasdc
+ changePriorityPassword: ecompasdc123
+ publishNetworkUrl:
+ publishNetworkBody: '{"note":"comment"}'
+ groups:
+ beSet: { changePriorityUrl: "", changePriorityBody: '{"name":"","uri":"","no_ad_redirection":false,"v4groups":{"failover_groups":["","","failover_policy":["FAILALL"]},"comment":"","intended_app_proto":"DNS"}'}
+ feSet: { changePriorityUrl: "", changePriorityBody: '{"name":"","uri":"","no_ad_redirection":false,"v4groups":{"failover_groups":["",""],"failover_policy":["FAILALL"]},"comment":"","intended_app_proto":"DNS"}'}
+applicationL1Cache:
+ datatypes:
+ enabled: true
+ firstRunDelay: 10
+ pollIntervalInSec: 60
+
+applicationL2Cache:
+ enabled: false
+ catalogL1Cache:
+ enabled: false
+ resourcesSizeInCache: 300
+ servicesSizeInCache: 200
+ productsSizeInCache: 100
+ queue:
+ syncIntervalInSecondes: 43200
+ waitOnShutDownInMinutes: 10
+ numberOfCacheWorkers: 4
+
+toscaValidators:
+ stringMaxLength: 2500
+
+disableAudit: false
+
+vfModuleProperties:
+ min_vf_module_instances:
+ forBaseModule: 1
+ forNonBaseModule: 0
+ max_vf_module_instances:
+ forBaseModule: 1
+ forNonBaseModule:
+ initial_count:
+ forBaseModule: 1
+ forNonBaseModule: 0
+ vf_module_type:
+ forBaseModule: Base
+ forNonBaseModule: Expansion
+
+genericAssetNodeTypes:
+ VFC: org.openecomp.resource.abstract.nodes.VFC
+ CVFC: org.openecomp.resource.abstract.nodes.VFC
+ VF : org.openecomp.resource.abstract.nodes.VF
+ CR : org.openecomp.resource.abstract.nodes.CR
+ PNF: org.openecomp.resource.abstract.nodes.PNF
+ Service: org.openecomp.resource.abstract.nodes.service
+ ETSI NFV Network Service: tosca.nodes.nfv.NS
+
+# Defines the base types for Services
+# <category name>:
+# required: <boolean> //if the base type is mandatory or not
+# baseTypes: <list of TOSCA types> //the base types. Required if the base type is required.
+# If not provided, the category will have no base type.
+serviceBaseNodeTypes:
+ ETSI NFV Network Service:
+ required: true
+ baseTypes:
+ - tosca.nodes.nfv.NS
+ AutomationComposition:
+ required: false
+
+workloadContext: Production
+
+environmentContext:
+ defaultValue: General_Revenue-Bearing
+ validValues:
+ - Critical_Revenue-Bearing
+ - Vital_Revenue-Bearing
+ - Essential_Revenue-Bearing
+ - Important_Revenue-Bearing
+ - Needed_Revenue-Bearing
+ - Useful_Revenue-Bearing
+ - General_Revenue-Bearing
+ - Critical_Non-Revenue
+ - Vital_Non-Revenue
+ - Essential_Non-Revenue
+ - Important_Non-Revenue
+ - Needed_Non-Revenue
+ - Useful_Non-Revenue
+ - General_Non-Revenue
+
+gabConfig:
+ - artifactType: 'VES_EVENTS'
+ pathsAndNamesDefinitions:
+ -
+ friendlyName: "Action"
+ path: "event.action[2]"
+ searchable: true
+ -
+ friendlyName: "Comment"
+ path: "event.comment"
+ searchable: true
+ -
+ friendlyName: "Alarm Additional Information"
+ path: "event.structure.faultFields.structure.alarmAdditionalInformation.comment"
+ searchable: true
+ - artifactType: 'PM_DICTIONARY'
+ pathsAndNamesDefinitions:
+ -
+ friendlyName: "measType"
+ path: "pmMetaData.pmFields.measType"
+ searchable: true
+ -
+ friendlyName: "measDescription"
+ path: "pmMetaData.pmFields.measDescription"
+ searchable: true
+ -
+ friendlyName: "measCondition"
+ path: "pmMetaData.pmFields.measCondition"
+ searchable: false
+ -
+ friendlyName: "measResultUnits"
+ path: "pmMetaData.pmFields.measResultUnits"
+ searchable: false
+ -
+ friendlyName: "measResultRange"
+ path: "pmMetaData.pmFields.measResultRange"
+ searchable: false
+ -
+ friendlyName: "measObjClass"
+ path: "pmMetaData.pmFields.measObjClass"
+ searchable: true
+ -
+ friendlyName: "measCollectionMethod"
+ path: "pmMetaData.pmFields.measCollectionMethod"
+ searchable: false
+ -
+ friendlyName: "measInfoId"
+ path: "pmMetaData.pmFields.measInfoId"
+ searchable: true
+ -
+ friendlyName: "iMeasInfoId"
+ path: "pmMetaData.pmFields.iMeasInfoId"
+ searchable: false
+dmaapConsumerConfiguration:
+ active: {{ .Values.dmaapConsumerConfiguration.active }}
+ hosts: localhost:3905
+ consumerGroup: sdc
+ consumerId: mama
+ timeoutMs: 15000
+ limit: 1
+ pollingInterval: 2
+ topic: topic
+ latitude: 32.109333
+ longitude: 34.855499
+ version: 1.0
+ serviceName: localhost/events
+ environment: TEST
+ partner: BOT_R
+ routeOffer: MR1
+ protocol: https
+ contenttype: application/json
+ dme2TraceOn: true
+ aftEnvironment: AFTUAT
+ aftDme2ConnectionTimeoutMs: 15000
+ aftDme2RoundtripTimeoutMs: 240000
+ aftDme2ReadTimeoutMs: 50000
+ dme2preferredRouterFilePath: DME2preferredRouter.txt
+ timeLimitForNotificationHandleMs: 120000
+ credential:
+ username: user
+ password:
+ aftDme2SslEnable: true
+ aftDme2ClientSslCertAlias: certman
+
+dmaapProducerConfiguration:
+ active: true
+ hosts: {{ .Values.dmaapProducerConfiguration.hosts }}
+ consumerGroup: sdc-{{ .Values.chefEnvironment }}-1730226683
+ consumerId: sdc-{{ .Values.chefEnvironment }}1-1730226683
+ timeoutMs: 15000
+ limit: 1
+ pollingInterval: 2
+ topic: {{ .Values.dmaapProducerConfiguration.topic }}
+ latitude: 32.109333
+ longitude: 34.855499
+ version: 1.0
+ serviceName: {{ .Values.dmaapProducerConfiguration.serviceName }}
+ environment: {{ .Values.dmaapProducerConfiguration.environment }}
+ partner: BOT_R
+ routeOffer: MR1
+ protocol: {{ .Values.dmaapProducerConfiguration.protocol }}
+ contenttype: application/json
+ dme2TraceOn: true
+ aftEnvironment: {{ .Values.dmaapProducerConfiguration.aftEnvironment }}
+ aftDme2ConnectionTimeoutMs: 15000
+ aftDme2RoundtripTimeoutMs: 240000
+ aftDme2ReadTimeoutMs: 50000
+ dme2preferredRouterFilePath: {{ .Values.dmaapProducerConfiguration.dme2preferredRouterFilePath }}
+ timeLimitForNotificationHandleMs: 120000
+ credential:
+ username: {{ .Values.dmaapProducerConfiguration.username }}
+ password: {{ .Values.dmaapProducerConfiguration.password }}
+ aftDme2SslEnable: true
+ aftDme2ClientSslCertAlias: certman
+
+# ToDo: AF - had to remove due to configuration laod class failure
+#dmeConfiguration:
+# lookupUriFormat: "http://DME2RESOLVE/service=%s/version=1.0.0/envContext=%s/routeOffer=DEFAULT"
+# dme2Search: DME2SEARCH
+# dme2Resolve: DME2RESOLVE
+
+excludedPolicyTypesMapping:
+# VF:
+# - a.b.c
+# - c.d.e
+#CR:
+# - x.y.z
+
+excludedGroupTypesMapping:
+ CR:
+ - org.openecomp.groups.VfModule
+ - org.openecomp.groups.heat.HeatStack
+ - org.openecomp.groups.Group
+ - tosca.groups.Root
+ PNF:
+ - org.openecomp.groups.VfModule
+ - org.openecomp.groups.heat.HeatStack
+ - org.openecomp.groups.Group
+ - tosca.groups.Root
+ VF:
+ - org.openecomp.groups.VfModule
+ - org.openecomp.groups.heat.HeatStack
+ - org.openecomp.groups.Group
+ - tosca.groups.Root
+ Service:
+ - org.openecomp.groups.VfModule
+ - org.openecomp.groups.heat.HeatStack
+ - org.openecomp.groups.Group
+ - tosca.groups.Root
+
+healthStatusExclude:
+ - DE
+ - DMAAP
+ - DMAAP_PRODUCER
+ - ON_BOARDING
+ - DCAE
+ - PORTAL
+ - External API
+
+#Auto Healing
+enableAutoHealing: false
+appVersion: {{ .Values.appVersion }}
+
+artifactGeneratorConfig: Artifact-Generator.properties
+resourcesForUpgrade:
+ 8.0:
+ - org.openecomp.resource.cp.extCP
+ - tosca.nodes.network.Network
+ - tosca.nodes.network.Port
+ - org.openecomp.resource.cp.nodes.network.SubInterface
+skipUpgradeFailedVfs: true
+skipUpgradeVSPs: true
+autoHealingOwner: jh0003
+supportAllottedResourcesAndProxy: true
+deleteLockTimeoutInSeconds: 60
+maxDeleteComponents: 10
+
+# This configuration entry lists all node type names prefix that shall be allowed on SDC.
+definedResourceNamespace:
+ - org.openecomp.resource.
+ - org.onap.policy.clamp.acm.
+ - tosca.nodes.
+
+# This configuration entry lists all Directives values that shall be allowed on SDC.
+directives:
+ - select
+ - selectable
+ - substitute
+ - substitutable
+
+externalCsarStore:
+ storageType: NONE # NONE, MINIO
+ endpoint:
+ host: 127.0.0.1
+ port: 9000
+ secure: false
+ credentials:
+ accessKey: "login"
+ secretKey: "password"
+ tempPath: "/home/onap/temp/"
+ uploadPartSize: 200000000
+
+#This configuration specifies the delimiter used to differentiate instance name and count
+componentInstanceCounterDelimiter: " "
+
+# Comma separated list of excluded URLs by the DataValidatorFilter
+dataValidatorFilterExcludedUrls: "/healthCheck,/followed,/authorize"
+
+#Space separated list of permitted ancestors
+permittedAncestors: {{ .Values.permittedAncestors }}
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/distribution-engine-configuration.yaml b/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/distribution-engine-configuration.yaml
new file mode 100644
index 0000000000..f096b13fcc
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/distribution-engine-configuration.yaml
@@ -0,0 +1,84 @@
+uebServers:
+ - no-message-router.onap
+ - no-message-router.onap
+
+uebPublicKey: {{ .Values.uebPublicKey }}
+uebSecretKey: {{ .Values.uebSecretKey }}
+
+distributionNotifTopicName: {{ if .Values.distributionNotifTopicName }}{{ .Values.distributionNotifTopicName }}{{- else }}SDC-DISTR-NOTIF-TOPIC{{- end }}
+
+distributionStatusTopicName: {{ if .Values.distributionStatusTopicName }}{{ .Values.distributionStatusTopicName }}{{- else }}SDC-DISTR-STATUS-TOPIC{{- end }}
+
+kafkaBootStrapServers: {{ .Values.kafkaBootStrapServers }}
+
+initRetryIntervalSec: 5
+initMaxIntervalSec: 60
+
+distribNotifServiceArtifactTypes:
+ info:
+ - MURANO-PKG
+
+distribNotifResourceArtifactTypes:
+ lifecycle:
+ - HEAT
+ - DG-XML
+
+environments:
+ - {{ .Values.chefEnvironment }}
+
+distributionStatusTopic:
+ pollingIntervalSec: 60
+ fetchTimeSec: 15
+ consumerGroup: sdc-{{ .Values.chefEnvironment }}
+ consumerId: sdc-{{ .Values.chefEnvironment }}1
+
+
+distributionNotificationTopic:
+ minThreadPoolSize: 0
+ maxThreadPoolSize: 10
+ maxWaitingAfterSendingSeconds: 5
+
+createTopic:
+ partitionCount: 1
+ replicationCount: 1
+
+startDistributionEngine: true
+
+#This is false by default, since ONAP Dmaap currently doesn't support https
+useHttpsWithDmaap: false
+opEnvRecoveryIntervalSec: 180
+allowedTimeBeforeStaleSec: 300
+
+aaiConfig:
+ httpRequestConfig:
+ serverRootUrl: https://localhost:8443
+ resourceNamespaces:
+ operationalEnvironments: /aai/v12/cloud-infrastructure/operational-environments
+
+ httpClientConfig:
+ timeouts:
+ readTimeoutMs: 5000
+ connectTimeoutMs: 1000
+ clientCertificate:
+ keyStore: /app/jetty/base/be/etc/non-prod.jks
+ keyStorePassword: hmXYcznAljMSisdy8zgcag==
+ headers:
+ X-FromAppId: asdc
+ numOfRetries: 3
+
+msoConfig:
+ httpRequestConfig:
+ serverRootUrl: http://127.0.0.1:8080/onap/mso/infra/modelDistributions/v1
+ resourceNamespaces:
+ distributions: /distributions
+
+ httpClientConfig:
+ timeouts:
+ readTimeoutMs: 2000
+ connectTimeoutMs: 500
+ basicAuthorization:
+ userName: asdc
+ password: OTLEp5lfVhYdyw5EAtTUBQ==
+ numOfRetries: 3
+
+currentArtifactInstallationTimeout: 120
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/janusgraph.properties b/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/janusgraph.properties
new file mode 100644
index 0000000000..a08f7bd77a
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/catalog-be/janusgraph.properties
@@ -0,0 +1,39 @@
+storage.backend=cql
+storage.hostname={{ .Values.cassandra.hostname }}
+storage.port={{ .Values.cassandra.port }}
+storage.username={{ .Values.cassandra.cassandraUsername }}
+storage.password={{ .Values.cassandra.cassandraPassword }}
+storage.connection-timeout={{ .Values.cassandra.connectionTimeout }}
+storage.cql.keyspace=sdctitan
+
+storage.cql.ssl.enabled={{ .Values.cassandra.cassandraSslEnabled }}
+storage.cql.ssl.keystore.location={{ .Values.cassandra.keystoreLocation }}
+storage.cql.ssl.keystore.password={{ .Values.cassandra.keystorePassword }}
+storage.cql.ssl.truststore.location={{ .Values.cassandra.truststoreLocation }}
+storage.cql.ssl.truststore.password={{ .Values.cassandra.truststorePassword }}
+
+storage.cql.read-consistency-level={{ .Values.cassandra.readConsistencyLevel }}
+storage.cql.write-consistency-level={{ .Values.cassandra.writeConsistencyLevel }}
+storage.cql.replication-strategy-class=NetworkTopologyStrategy
+
+
+{{- $replicationStrategyOptions := "" -}}
+{{- if .Values.pairEnvName | eq "" }}
+{{- $replicationStrategyOptions = printf "%s,%d" .Values.cassandra.datacenterName (int .Values.cassandra.replicationFactor) -}}
+{{- else }}
+{{- $replicationStrategyOptions = printf "%s,%d,%s%s,%d" .Values.cassandra.datacenterName (int .Values.cassandra.replicationFactor) .Values.cassandra.cluster_name .Values.pairEnvName (int .Values.cassandra.replicationFactor) -}}
+{{- end }}
+
+storage.cql.replication-strategy-options={{ $replicationStrategyOptions }}
+
+storage.cql.local-datacenter={{ .Values.cassandra.datacenterName }}
+
+cache.db-cache ={{ .Values.cassandra.db_cache }}
+cache.db-cache-clean-wait = 20
+cache.db-cache-time = 180000
+cache.db-cache-size = 0.5
+
+cache.tx-cache-size = 1000000
+
+storage.lock.retries=5
+graph.replace-instance-if-exists=true
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/logging/logback.xml b/kubernetes/sdc/components/sdc-be/resources/config/logging/logback.xml
index fcbca71f33..b6804b379d 100644
--- a/kubernetes/sdc/components/sdc-be/resources/config/logging/logback.xml
+++ b/kubernetes/sdc/components/sdc-be/resources/config/logging/logback.xml
@@ -34,6 +34,9 @@
<property name="pattern"
value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n"/>
+ <logger name="org.janusgraph.graphdb.transaction" level="ERROR" />
+ <logger name="org.openecomp.sdc.be.components.impl.CassandraHealthCheck" level="WARN" />
+
<!-- STDOUT -->
<appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
<encoder>
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/ready-probe.sh b/kubernetes/sdc/components/sdc-be/resources/config/ready-probe.sh
new file mode 100644
index 0000000000..4bad479d91
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/ready-probe.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+health_check_http_code=$(curl -k --max-time 5 -o /dev/null -w '%{http_code}' {{ if .Values.global.disableHttp }}https://127.0.0.1:{{ .Values.beSslPort }}{{- else -}}http://127.0.0.1:{{ .Values.beHttpPort }}{{- end -}}/sdc2/rest/healthCheck)
+
+if [ "$health_check_http_code" -eq 200 ]; then
+ exit 0
+else
+ echo "Health check http status: $health_check_http_code"
+ exit 1
+fi
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/resource/key.properties b/kubernetes/sdc/components/sdc-be/resources/config/resource/key.properties
new file mode 100644
index 0000000000..72fd2f6440
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/resource/key.properties
@@ -0,0 +1,41 @@
+###
+# ============LICENSE_START==========================================
+# ONAP Portal SDK
+# ===================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the ?License?);
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the ?License?);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+#
+#
+###
+
+# Properties read by the ECOMP Framework library (epsdk-fw)
+
+cipher.enc.key = AGLDdG4D04BKm2IxIWEr8o==
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/resource/portal.properties b/kubernetes/sdc/components/sdc-be/resources/config/resource/portal.properties
new file mode 100644
index 0000000000..c3ba1b1aa0
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/resource/portal.properties
@@ -0,0 +1,89 @@
+###
+# ============LICENSE_START==========================================
+# ONAP Portal SDK
+# ===================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the ?License?);
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the ?License?);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+#
+#
+###
+# Properties read by ECOMP Framework library, ecompFW.jar
+
+##########################################################################
+# The following properties should NOT be changed by partner applications.
+##########################################################################
+
+portal.api.prefix = /api
+max.idle.time = 5
+user.attribute.name = user_attribute
+
+#Use REST API instead of UEB to fetch the functional menu data
+use_rest_for_functional_menu=true
+
+
+##########################################################################
+# The following properties MUST be changed by partner applications.
+##########################################################################
+
+# Name of java class that implements the OnBoardingApiService interface.
+portal.api.impl.class = org.openecomp.sdc.be.ecomp.PortalRestApiCentralServiceImpl
+role_access_centralized = remote
+
+# Cookie set by CSP-SSO
+#csp_cookie_name = onapCsp
+
+# CSP setting, most use PROD; DEV also recognized
+csp_gate_keeper_prod_key = PROD
+
+# URL of the Portal where this app is onboarded
+ecomp_redirect_url = https://portal-app.onap:30225/ONAPPORTAL/login.htm
+
+# URL of the ECOMP Portal REST API
+ecomp_rest_url = https://portal-app.onap:8443/ONAPPORTAL/auxapi
+
+# Connection and Read timeout values
+ext_req_connection_timeout = 15000
+ext_req_read_timeout = 20000
+
+# Name of java class that implements the OnBoardingApiService interface.
+portal.api.impl.class = org.openecomp.sdc.be.ecomp.PortalRestApiCentralServiceImpl
+
+#Portal user & key
+portal_app_name = Ipwxi2oLvDxctMA1royaRw1W0jhucLx+grHzci3ePIA=
+portal_pass = j85yNhyIs7zKYbR1VlwEfNhS6b7Om4l0Gx5O8931sCI=
+portal_user = Ipwxi2oLvDxctMA1royaRw1W0jhucLx+grHzci3ePIA=
+
+
+# UEB key generated while on-boarding
+ueb_app_key = ""
+
+# Applications do not need to run a UEB listener after 1607.
+ueb_listeners_enable = false
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/start.d/http.ini b/kubernetes/sdc/components/sdc-be/resources/config/start.d/http.ini
new file mode 100644
index 0000000000..e637e2378d
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/start.d/http.ini
@@ -0,0 +1,29 @@
+# ---------------------------------------
+# Module: http
+--module=http
+
+### HTTP Connector Configuration
+
+## Connector host/address to bind to
+# jetty.http.host=0.0.0.0
+
+## Connector port to listen on
+jetty.http.port= {{ .Values.jetty.httpPort }}
+
+## Connector idle timeout in milliseconds
+jetty.http.idleTimeout=30000
+
+## Connector socket linger time in seconds (-1 to disable)
+# jetty.http.soLingerTime=-1
+
+## Number of acceptors (-1 picks default based on number of cores)
+# jetty.http.acceptors=-1
+
+## Number of selectors (-1 picks default based on number of cores)
+# jetty.http.selectors=-1
+
+## ServerSocketChannel backlog (0 picks platform default)
+# jetty.http.acceptorQueueSize=0
+
+## Thread priority delta to give to acceptor threads
+# jetty.http.acceptorPriorityDelta=0
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/start.d/https.ini b/kubernetes/sdc/components/sdc-be/resources/config/start.d/https.ini
new file mode 100644
index 0000000000..68c36e8c57
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/start.d/https.ini
@@ -0,0 +1,29 @@
+# ---------------------------------------
+# Module: https
+--module=https
+
+### HTTPS Connector Configuration
+
+## Connector host/address to bind to
+# jetty.https.host=0.0.0.0
+
+## Connector port to listen on
+jetty.https.port={{ .Values.jetty.httpsPort }}
+
+## Connector idle timeout in milliseconds
+jetty.https.idleTimeout=30000
+
+## Connector socket linger time in seconds (-1 to disable)
+# jetty.https.soLingerTime=-1
+
+## Number of acceptors (-1 picks default based on number of cores)
+# jetty.https.acceptors=-1
+
+## Number of selectors (-1 picks default based on number of cores)
+# jetty.https.selectors=-1
+
+## ServerSocketChannel backlog (0 picks platform default)
+# jetty.https.acceptorQueueSize=0
+
+## Thread priority delta to give to acceptor threads
+# jetty.https.acceptorPriorityDelta=0
diff --git a/kubernetes/sdc/components/sdc-be/resources/config/start.d/ssl.ini b/kubernetes/sdc/components/sdc-be/resources/config/start.d/ssl.ini
new file mode 100644
index 0000000000..43941594de
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/resources/config/start.d/ssl.ini
@@ -0,0 +1,100 @@
+# ---------------------------------------
+# Module: ssl
+--module=ssl
+
+### TLS(SSL) Connector Configuration
+
+## Connector host/address to bind to
+# jetty.ssl.host=0.0.0.0
+
+## Connector port to listen on
+jetty.ssl.port={{ .Values.jetty.httpsPort }}
+
+## Connector idle timeout in milliseconds
+# jetty.ssl.idleTimeout=30000
+
+## Connector socket linger time in seconds (-1 to disable)
+# jetty.ssl.soLingerTime=-1
+
+## Number of acceptors (-1 picks default based on number of cores)
+# jetty.ssl.acceptors=-1
+
+## Number of selectors (-1 picks default based on number of cores)
+# jetty.ssl.selectors=-1
+
+## ServerSocketChannel backlog (0 picks platform default)
+# jetty.ssl.acceptorQueueSize=0
+
+## Thread priority delta to give to acceptor threads
+# jetty.ssl.acceptorPriorityDelta=0
+
+## Whether request host names are checked to match any SNI names
+# jetty.ssl.sniHostCheck=true
+
+## max age in seconds for a Strict-Transport-Security response header (default -1)
+# jetty.ssl.stsMaxAgeSeconds=31536000
+
+## include subdomain property in any Strict-Transport-Security header (default false)
+# jetty.ssl.stsIncludeSubdomains=true
+
+### SslContextFactory Configuration
+## Note that OBF passwords are not secure, just protected from casual observation
+## See http://www.eclipse.org/jetty/documentation/current/configuring-security-secure-passwords.html
+
+## Keystore file path (relative to $jetty.base)
+{{- if .Values.jetty.keystorePath }}
+jetty.sslContext.keyStorePath={{ .Values.jetty.keystorePath }}
+{{- end }}
+
+## Truststore file path (relative to $jetty.base)
+{{- if .Values.jetty.truststorePath }}
+i
+jetty.sslContext.trustStorePath={{ .Values.jetty.truststorePath }}
+{{- end }}
+
+## Keystore password
+{{- if .Values.jetty.keystorePassword }}
+jetty.sslContext.keyStorePassword={{ .Values.jetty.keystorePassword }}
+{{- end }}
+
+## Keystore type and provider
+# jetty.sslContext.keyStoreType=JKS
+# jetty.sslContext.keyStoreProvider=
+
+## KeyManager password
+{{- if .Values.jetty.keystorePassword }}
+jetty.sslContext.keyManagerPassword={{ .Values.jetty.keystorePassword }}
+{{- end }}
+
+## Truststore password
+# tp{{ .Values.jetty.truststorePassword }}end
+# kp{{ .Values.jetty.keystorePassword }}end
+{{- if .Values.jetty.truststorePassword }}
+jetty.sslContext.trustStorePassword={{ .Values.jetty.truststorePassword }}
+{{- end }}
+
+## Truststore type and provider
+# jetty.sslContext.trustStoreType=JKS
+# jetty.sslContext.trustStoreProvider=
+
+## whether client certificate authentication is required
+jetty.sslContext.needClientAuth={{ .Values.jetty.truststorePassword | quote | default "false" | not | toString }}
+
+## Whether client certificate authentication is desired
+# jetty.sslContext.wantClientAuth=false
+
+## Whether cipher order is significant (since java 8 only)
+# jetty.sslContext.useCipherSuitesOrder=true
+
+## To configure Includes / Excludes for Cipher Suites or Protocols see tweak-ssl.xml example at
+## https://www.eclipse.org/jetty/documentation/current/configuring-ssl.html#configuring-sslcontextfactory-cipherSuites
+
+## Set the size of the SslSession cache
+# jetty.sslContext.sslSessionCacheSize=-1
+
+## Set the timeout (in seconds) of the SslSession cache timeout
+# jetty.sslContext.sslSessionTimeout=-1
+
+## Allow SSL renegotiation
+# jetty.sslContext.renegotiationAllowed=true
+# jetty.sslContext.renegotiationLimit=5
diff --git a/kubernetes/sdc/components/sdc-be/templates/autoscaling.yaml b/kubernetes/sdc/components/sdc-be/templates/autoscaling.yaml
new file mode 100644
index 0000000000..b7f265319b
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-be/templates/autoscaling.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "common.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/sdc/components/sdc-be/templates/configmap.yaml b/kubernetes/sdc/components/sdc-be/templates/configmap.yaml
index 332cd74661..77b70a2c81 100644
--- a/kubernetes/sdc/components/sdc-be/templates/configmap.yaml
+++ b/kubernetes/sdc/components/sdc-be/templates/configmap.yaml
@@ -27,5 +27,81 @@ metadata:
heritage: {{ .Release.Service }}
data:
{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
-
-
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-http-be-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/start.d/http.ini").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-https-be-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/start.d/https.ini").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-ssl-be-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/start.d/ssl.ini").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-catalog-be-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/catalog-be/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-catalog-be-resource-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/resource/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-be-ready-probe-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/ready-probe.sh").AsConfig . | indent 2 }}
diff --git a/kubernetes/sdc/components/sdc-be/templates/deployment.yaml b/kubernetes/sdc/components/sdc-be/templates/deployment.yaml
index 229d4233cc..7854175623 100644
--- a/kubernetes/sdc/components/sdc-be/templates/deployment.yaml
+++ b/kubernetes/sdc/components/sdc-be/templates/deployment.yaml
@@ -20,7 +20,16 @@ kind: Deployment
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
+ {{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+ minReadySeconds: {{ .Values.minReadySeconds }}
+ strategy:
+ type: {{ .Values.updateStrategy.type }}
+ rollingUpdate:
+ maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
+ maxSurge: {{ .Values.updateStrategy.maxSurge }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
@@ -107,12 +116,26 @@ spec:
failureThreshold: {{ .Values.startup.failureThreshold }}
resources: {{ include "common.resources" . | nindent 12 }}
env:
- - name: ENVNAME
- value: {{ .Values.env.name }}
- name: JAVA_OPTIONS
value: {{ .Values.config.javaOptions }}
- name: cassandra_ssl_enabled
value: {{ .Values.config.cassandraSslEnabled | quote }}
+ - name: TLS_CERT
+ value: {{ .Values.be.tlsCert }}
+ - name: TLS_KEY
+ value: {{ .Values.be.tlsKey }}
+ - name: TLS_PASSWORD
+ value: {{ .Values.be.tlsPassword }}
+ - name: KEYSTORE_PATH
+ value: {{ .Values.be.keystorePath }}
+ - name: KEYSTORE_PASSWORD
+ value: {{ .Values.be.keystorePassword }}
+ - name: CA_CERT
+ value: {{ .Values.be.caCert }}
+ - name: TRUSTSTORE_PATH
+ value: {{ .Values.be.truststorePath }}
+ - name: TRUSTSTORE_PASSWORD
+ value: {{ .Values.be.truststorePassword }}
- name: HOST_IP
valueFrom:
fieldRef:
@@ -127,17 +150,43 @@ spec:
value: {{ .Values.global.kafka.useKafka | quote }}
{{- end }}
volumeMounts:
- - name: sdc-environments
- mountPath: /app/jetty/chef-solo/environments/
- name: logs
mountPath: /var/log/onap
- name: logback
mountPath: /tmp/logback.xml
subPath: logback.xml
+ - name: http-config
+ mountPath: /app/jetty/start.d/http.ini
+ subPath: http.ini
+ - name: https-config
+ mountPath: /app/jetty/start.d/https.ini
+ subPath: https.ini
+ - name: ssl-config
+ mountPath: /app/jetty/start.d/ssl.ini
+ subPath: ssl.ini
+ - name: catalog-be-config
+ mountPath: /app/jetty/config/catalog-be/janusgraph.properties
+ subPath: janusgraph.properties
+ - name: catalog-be-config
+ mountPath: /app/jetty/config/catalog-be/distribution-engine-configuration.yaml
+ subPath: distribution-engine-configuration.yaml
+ - name: catalog-be-config
+ mountPath: /app/jetty/config/catalog-be/configuration.yaml
+ subPath: configuration.yaml
+ - name: catalog-be-resource-config
+ mountPath: /app/jetty/resources/key.properties
+ subPath: key.properties
+ - name: catalog-be-resource-config
+ mountPath: /app/jetty/resources/portal.properties
+ subPath: portal.properties
+ - name: ready-probe-config
+ mountPath: /app/jetty/ready-probe.sh
+ subPath: ready-probe.sh
+
lifecycle:
postStart:
exec:
- command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/app/jetty/config/catalog-be/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"]
+ command: ["/bin/sh", "-c", "export SRC=/tmp/logback.xml; export DST=/app/jetty/config/catalog-be/; while [ ! -e $DST ]; do echo 'Waiting for $DST...'; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done copying logback.xml' ; echo 'Running BE_3_setup_key_and_trust_store.sh...' ; /app/jetty/BE_3_setup_key_and_trust_store.sh ; echo 'BE_3_setup_key_and_trust_store.sh completed' "]
# side car containers
{{ include "common.log.sidecar" . | nindent 8 }}
serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
@@ -146,10 +195,30 @@ spec:
- name: logback
configMap:
name : {{ include "common.fullname" . }}-logging-configmap
- - name: sdc-environments
- configMap:
- name: {{ include "common.release" . }}-sdc-environments-configmap
- defaultMode: 0755
- name: logs
emptyDir: {}
+ - name: http-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-http-be-configmap
+ defaultMode: 0755
+ - name: https-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-https-be-configmap
+ defaultMode: 0755
+ - name: ssl-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-ssl-be-configmap
+ defaultMode: 0755
+ - name: catalog-be-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-catalog-be-configmap
+ defaultMode: 0755
+ - name: catalog-be-resource-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-catalog-be-resource-configmap
+ defaultMode: 0755
+ - name: ready-probe-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-be-ready-probe-configmap
+ defaultMode: 0755
{{- include "common.imagePullSecrets" . | nindent 6 }}
diff --git a/kubernetes/sdc/components/sdc-be/templates/job.yaml b/kubernetes/sdc/components/sdc-be/templates/job.yaml
index 30400a80b7..c9fb2e8337 100644
--- a/kubernetes/sdc/components/sdc-be/templates/job.yaml
+++ b/kubernetes/sdc/components/sdc-be/templates/job.yaml
@@ -17,7 +17,15 @@
apiVersion: batch/v1
kind: Job
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
@@ -57,6 +65,13 @@ spec:
- name: {{ include "common.name" . }}-job
image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.backendInitImage }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ command:
+ - /bin/sh
+ - -c
+ - |
+ /home/onap/create_consumer_and_user.sh
+ /home/onap/check_backend.sh
+ /home/onap/import_normatives.sh
volumeMounts:
- name: {{ include "common.fullname" . }}-environments
mountPath: /home/onap/chef-solo/environments/
@@ -69,6 +84,28 @@ spec:
valueFrom:
fieldRef:
fieldPath: status.podIP
+ - name: BE_IP
+ value: {{ .Values.beInit.beIp }}
+ - name: DISABLE_HTTP
+ value: {{ .Values.disableHttp | quote }}
+ - name: BE_HTTPS_PORT
+ value: {{ .Values.beSslPort | quote }}
+ - name: BE_HTTP_PORT
+ value: {{ .Values.beHttpPort | quote }}
+ - name: TLS_CERT
+ value: {{ .Values.beInit.tlsCert }}
+ - name: TLS_KEY
+ value: {{ .Values.beInit.tlsKey }}
+ - name: TLS_KEY_PW
+ value: {{ .Values.beInit.tlsKeyPw }}
+ - name: CA_CERT
+ value: {{ .Values.beInit.caCert }}
+ - name: BASIC_AUTH_ENABLED
+ value: {{ .Values.basicAuth.enabled | quote }}
+ - name: BASIC_AUTH_USER
+ value: {{ .Values.basicAuth.userName }}
+ - name: BASIC_AUTH_PASS
+ value: {{ .Values.basicAuth.userPass }}
resources:
limits:
cpu: "800m"
diff --git a/kubernetes/sdc/components/sdc-be/values.yaml b/kubernetes/sdc/components/sdc-be/values.yaml
index 752fc2cc15..c57b252c7c 100644
--- a/kubernetes/sdc/components/sdc-be/values.yaml
+++ b/kubernetes/sdc/components/sdc-be/values.yaml
@@ -39,8 +39,8 @@ global:
# Application configuration defaults.
#################################################################
# application image
-image: onap/sdc-backend-all-plugins:1.13.6
-backendInitImage: onap/sdc-backend-init:1.13.6
+image: onap/sdc-backend-all-plugins:1.13.9
+backendInitImage: onap/sdc-backend-init:1.13.9
pullPolicy: Always
@@ -191,3 +191,143 @@ wait_for_job_container:
log:
path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+
+#######
+#######
+pairEnvName: ""
+
+
+cassandra:
+ hostname: cassandra-dc1-service.onap
+ port: 9042
+ cassandraPassword: Aa1234%^!
+ cassandraUsername: asdc_user
+ connectionTimeout: 10000
+ cassandraSslEnabled: false
+ keystoreLocation: ""
+ keystorePassword: ""
+ truststoreLocation: ""
+ truststorePassword: ""
+ clusterName: SDC-CS-
+ readConsistencyLevel: ONE
+ writeConsistencyLevel: ALL
+ #replication_strategy_options: dc1,3
+ datacenterName: dc1
+ replicationFactor: 3
+ db_cache: true
+
+cassandraConfig:
+ cassandraHosts: [cassandra-dc1-service.onap]
+ cassandraPort: 9042
+ localDataCenter: dc1
+ socketReadTimeout: 20000
+ socketConnectTimeout: 20000
+ username: asdc_user
+ password: Aa1234%^!
+ ssl: false
+ keystorePath: ""
+ keystorePassword: false
+ truststorePath: ""
+ truststorePassword: ""
+dmaapConsumerConfiguration:
+ active: false
+permittedAncestors: ""
+tlsCert: ""
+tlsKey: ""
+caCert: ""
+janusGraphCfgFile: /app/jetty/config/catalog-be/janusgraph.properties
+ONBOARDING_BE:
+ host: sdc-onboarding-be.onap
+ httpPort: 8081
+ httpsPort: 8445
+dmaapProducerConfiguration:
+ hosts: olsd004.com:3905
+ topic: SDC-FACADE-NOTIF-v1
+ serviceName: dmaap.com:3905/events
+ environment: TEST
+ protocol: ""
+ aftEnvironment: ""
+ dme2preferredRouterFilePath: ""
+ username: user1@sdc.com
+ password: password==
+appVersion: ""
+
+# Distrubution
+uebPublicKey: iPIxkpAMI8qTcQj8
+uebSecretKey: Ehq3WyT4bkif4zwgEbvshGal
+#distributionNotifTopicName: SDC-DISTR-NOTIF-TOPIC
+#distributionStatusTopicName: SDC-DISTR-STATUS-TOPIC
+kafkaBootStrapServers: onap-strimzi-kafka-bootstrap:9092
+chefEnvironment: AUTO
+
+jetty:
+ httpPort: 8080
+ httpsPort: 8443
+ keystorePath: ""
+ truststorePath: ""
+ keystorePassword: ""
+ truststorePassword: ""
+
+disableHttp: false
+beFqdn: sdc-be.onap
+beHttpPort: 8080
+beSslPort: 8443
+basicAuth:
+ enabled: true
+ userName: testName
+ userPass: testPass
+
+basicAuthConfig:
+ enabled: false
+beInit:
+ beIp: sdc-be.onap
+ tlsCert: ""
+ tlsKey: ""
+ tlsKeyPw: ""
+ caCert: ""
+
+
+be:
+ tlsCert: ""
+ tlsKey: ""
+ tlsPassword: ""
+ keystorePath: ""
+ keystorePassword: ""
+ caCert: ""
+ truststorePath: ""
+ truststorePassword: ""
+
+autoscaling:
+ enabled: true
+ minReplicas: 1
+ maxReplicas: 3
+ targetCPUUtilizationPercentage: 75
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 1
+
+# the minimum number of seconds that a newly created Pod should be ready
+minReadySeconds: 30
+updateStrategy:
+ type: RollingUpdate
+ # The number of pods that can be unavailable during the update process
+ maxUnavailable: 0
+ # The number of pods that can be created above the desired amount of pods during an update
+ maxSurge: 1
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
+
+#END
diff --git a/kubernetes/sdc/components/sdc-cs/Chart.yaml b/kubernetes/sdc/components/sdc-cs/Chart.yaml
index f0bbbca1d9..9fc41bb6da 100644
--- a/kubernetes/sdc/components/sdc-cs/Chart.yaml
+++ b/kubernetes/sdc/components/sdc-cs/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP Service Design and Creation Cassandra
name: sdc-cs
-version: 13.0.0
+version: 13.0.3
dependencies:
- name: common
diff --git a/kubernetes/sdc/components/sdc-cs/templates/job.yaml b/kubernetes/sdc/components/sdc-cs/templates/job.yaml
index c715342d5e..8f56851dcf 100644
--- a/kubernetes/sdc/components/sdc-cs/templates/job.yaml
+++ b/kubernetes/sdc/components/sdc-cs/templates/job.yaml
@@ -17,7 +17,15 @@
apiVersion: batch/v1
kind: Job
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/sdc/components/sdc-cs/values.yaml b/kubernetes/sdc/components/sdc-cs/values.yaml
index b8986ee104..d46c474542 100644
--- a/kubernetes/sdc/components/sdc-cs/values.yaml
+++ b/kubernetes/sdc/components/sdc-cs/values.yaml
@@ -18,7 +18,7 @@
#################################################################
global:
nodePortPrefix: 302
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
loggingRepository: docker.elastic.co
loggingImage: beats/filebeat:5.5.0
sdc_cassandra:
@@ -73,8 +73,8 @@ cassandra:
# application image
repository: nexus3.onap.org:10001
-image: onap/sdc-cassandra:1.13.6
-cassandraInitImage: onap/sdc-cassandra-init:1.13.6
+image: onap/sdc-cassandra:1.13.9
+cassandraInitImage: onap/sdc-cassandra-init:1.13.9
pullPolicy: Always
config:
@@ -82,6 +82,21 @@ config:
maxHeapSize: "1536M"
heapNewSize: "512M"
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
+
#environment file
env:
name: AUTO
diff --git a/kubernetes/sdc/components/sdc-fe/Chart.yaml b/kubernetes/sdc/components/sdc-fe/Chart.yaml
index 5c05fdaba6..3f8ae42a3b 100644
--- a/kubernetes/sdc/components/sdc-fe/Chart.yaml
+++ b/kubernetes/sdc/components/sdc-fe/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP Service Design and Creation Front End
name: sdc-fe
-version: 13.0.0
+version: 13.0.3
dependencies:
- name: repositoryGenerator
diff --git a/kubernetes/sdc/components/sdc-fe/resources/config/readyProbe/combined-liveness.sh b/kubernetes/sdc/components/sdc-fe/resources/config/readyProbe/combined-liveness.sh
new file mode 100644
index 0000000000..28ad30aef5
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-fe/resources/config/readyProbe/combined-liveness.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# Variables
+
+INTERNAL_PORT=8181
+HEALTHCHECK_URL="http://localhost:8181/sdc1/rest/healthCheck"
+
+# 1. TCP Socket Check for Internal Port
+
+nc -z localhost $INTERNAL_PORT
+TCP_STATUS=$?
+
+if [ $TCP_STATUS -ne 0 ]; then
+ echo "TCP check failed: Internal port $INTERNAL_PORT is not open."
+ exit 1
+fi
+
+# 2. Cassandra Health Check from API Response using jq
+
+CASSANDRA_STATUS=$(curl -s $HEALTHCHECK_URL | jq -r '.componentsInfo[] | select(.healthCheckComponent == "CASSANDRA") | .healthCheckStatus')
+
+if [ "$CASSANDRA_STATUS" != "UP" ]; then
+ echo "Cassandra API check failed: HealthCheck status is $CASSANDRA_STATUS, not UP."
+ exit 1
+fi
+
+echo "Liveness check passed: Internal port $INTERNAL_PORT is open, and Cassandra is healthy."
+exit 0
diff --git a/kubernetes/sdc/components/sdc-fe/templates/autoscaling.yaml b/kubernetes/sdc/components/sdc-fe/templates/autoscaling.yaml
new file mode 100644
index 0000000000..b7f265319b
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-fe/templates/autoscaling.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "common.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/sdc/components/sdc-fe/templates/configmap.yaml b/kubernetes/sdc/components/sdc-fe/templates/configmap.yaml
index 948a3fee99..1d4243e6fa 100644
--- a/kubernetes/sdc/components/sdc-fe/templates/configmap.yaml
+++ b/kubernetes/sdc/components/sdc-fe/templates/configmap.yaml
@@ -40,3 +40,12 @@ metadata:
heritage: {{ .Release.Service }}
data:
{{ tpl (.Files.Glob "resources/config/plugins/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-readiness-liveness-probe
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+data:
+{{ tpl (.Files.Glob "resources/config/readyProbe/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/sdc/components/sdc-fe/values.yaml b/kubernetes/sdc/components/sdc-fe/values.yaml
index 5745f06be2..72c048cd48 100644
--- a/kubernetes/sdc/components/sdc-fe/values.yaml
+++ b/kubernetes/sdc/components/sdc-fe/values.yaml
@@ -23,7 +23,7 @@ global:
# Application configuration defaults.
#################################################################
# application image
-image: onap/sdc-frontend:1.13.6
+image: onap/sdc-frontend:1.13.9
pullPolicy: Always
config:
@@ -57,7 +57,7 @@ affinity: {}
liveness:
initialDelaySeconds: 1
periodSeconds: 10
- timeoutSeconds: 15
+ timeoutSeconds: 30
successThreshold: 1
failureThreshold: 3
# necessary to disable liveness probe when setting breakpoints
@@ -67,7 +67,7 @@ liveness:
readiness:
initialDelaySeconds: 1
periodSeconds: 10
- timeoutSeconds: 15
+ timeoutSeconds: 30
successThreshold: 1
failureThreshold: 3
@@ -146,3 +146,21 @@ serviceAccount:
log:
path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+
+autoscaling:
+ enabled: true
+ minReplicas: 1
+ maxReplicas: 3
+ targetCPUUtilizationPercentage: 75
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 1
+
+# the minimum number of seconds that a newly created Pod should be ready
+minReadySeconds: 30
+updateStrategy:
+ type: RollingUpdate
+ # The number of pods that can be unavailable during the update process
+ maxUnavailable: 0
+ # The number of pods that can be created above the desired amount of pods during an update
+ maxSurge: 1
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/Chart.yaml b/kubernetes/sdc/components/sdc-onboarding-be/Chart.yaml
index 0e998b7765..30cced108c 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/Chart.yaml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP Service Design and Creation Onboarding API
name: sdc-onboarding-be
-version: 13.0.0
+version: 13.0.4
dependencies:
- name: repositoryGenerator
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/logging/logback.xml b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/logging/logback.xml
index ee22ff2cfd..dad7ce5e85 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/logging/logback.xml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/logging/logback.xml
@@ -1,223 +1,223 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-# Copyright © 2018 Amdocs, Bell Canada, AT&T, ZTE
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
--->
-<configuration scan="true" scanPeriod="3 seconds">
- <property name="logDir" value="/var/log/onap"/>
- <property name="componentName" scope="system" value="sdc"/>
- <property name="subComponentName" scope="system" value="sdc-onboarding-be"/>
- <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}"/>
- <property file="${config.home}/catalog-be/configuration.yaml"/>
- <property name="enable-all-log" scope="context" value="false"/>
- <!-- log file names -->
- <property name="errorLogName" value="error"/>
- <property name="metricsLogName" value="metrics"/>
- <property name="auditLogName" value="audit"/>
- <property name="debugLogName" value="debug"/>
- <property name="transactionLogName" value="transaction"/>
- <property name="allLogName" value="all"/>
- <property name="queueSize" value="256"/>
- <property name="maxFileSize" value="50MB"/>
- <property name="maxHistory" value="30"/>
- <property name="totalSizeCap" value="10GB"/>
- <property name="pattern"
- value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n"/>
-
- <!-- STDOUT -->
- <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
-
- <!-- STDERR -->
- <appender class="ch.qos.logback.core.ConsoleAppender" name="STDERR">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>ERROR</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <encoder>
- <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
- </encoder>
- </appender>
-
- <!-- All log -->
- <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
- <then>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
- <file>${logDirectory}/${allLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
- <appender-ref ref="ALL_ROLLING"/>
- </appender>
- </then>
- </if>
- <!-- Error log -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
- <file>${logDirectory}/${errorLogName}.log</file>
- <!-- Audit messages filter - deny audit messages -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
- <marker>AUDIT_MARKER</marker>
- </evaluator>
- <onMismatch>NEUTRAL</onMismatch>
- <onMatch>DENY</onMatch>
- </filter>
- <!-- Transaction messages filter - deny Transaction messages -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
- <marker>TRANSACTION_MARKER</marker>
- </evaluator>
- <onMismatch>NEUTRAL</onMismatch>
- <onMatch>DENY</onMatch>
- </filter>
- <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>INFO</level>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- Debug log -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
- <file>${logDirectory}/${debugLogName}.log</file>
- <!-- No need to deny audit messages - they are INFO only, will be denied anyway -->
- <!-- Transaction messages filter - deny Transaction messages, there are some DEBUG level messages among them -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
- <marker>TRANSACTION_MARKER</marker>
- </evaluator>
- <onMismatch>NEUTRAL</onMismatch>
- <onMatch>DENY</onMatch>
- </filter>
- <!-- accept DEBUG and TRACE level -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
- <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>
- </evaluator>
- <OnMismatch>DENY</OnMismatch>
- <OnMatch>NEUTRAL</OnMatch>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- Audit log -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
- <file>${logDirectory}/${auditLogName}.log</file>
- <!-- Audit messages filter - accept audit messages -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
- <marker>AUDIT_MARKER</marker>
- </evaluator>
- <onMismatch>DENY</onMismatch>
- <onMatch>ACCEPT</onMatch>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- SdncTransaction log -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
- <file>${logDirectory}/${transactionLogName}.log</file>
- <!-- Transaction messages filter - accept audit messages -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
- <marker>TRANSACTION_MARKER</marker>
- </evaluator>
- <onMismatch>DENY</onMismatch>
- <onMatch>ACCEPT</onMatch>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- Asynchronicity Configurations -->
- <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="DEBUG_ROLLING"/>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="TRANSACTION_ROLLING"/>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="ERROR_ROLLING"/>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="AUDIT_ROLLING"/>
- </appender>
- <root level="INFO">
- <appender-ref ref="ASYNC_ERROR"/>
- <appender-ref ref="ASYNC_DEBUG"/>
- <appender-ref ref="ASYNC_AUDIT"/>
- <appender-ref ref="ASYNC_TRANSACTION"/>
- <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
- <then>
- <appender-ref ref="ALL_ROLLING"/>
- </then>
- </if>
- <appender-ref ref="STDOUT"/>
- <appender-ref ref="STDERR"/>
- </root>
- <logger level="INFO" name="org.openecomp.sdc"/>
-</configuration>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+# Copyright © 2018 Amdocs, Bell Canada, AT&T, ZTE
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+-->
+<configuration scan="true" scanPeriod="3 seconds">
+ <property name="logDir" value="/var/log/onap"/>
+ <property name="componentName" scope="system" value="sdc"/>
+ <property name="subComponentName" scope="system" value="sdc-onboarding-be"/>
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}"/>
+ <property file="${config.home}/catalog-be/configuration.yaml"/>
+ <property name="enable-all-log" scope="context" value="false"/>
+ <!-- log file names -->
+ <property name="errorLogName" value="error"/>
+ <property name="metricsLogName" value="metrics"/>
+ <property name="auditLogName" value="audit"/>
+ <property name="debugLogName" value="debug"/>
+ <property name="transactionLogName" value="transaction"/>
+ <property name="allLogName" value="all"/>
+ <property name="queueSize" value="256"/>
+ <property name="maxFileSize" value="50MB"/>
+ <property name="maxHistory" value="30"/>
+ <property name="totalSizeCap" value="10GB"/>
+ <property name="pattern"
+ value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n"/>
+
+ <!-- STDOUT -->
+ <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- STDERR -->
+ <appender class="ch.qos.logback.core.ConsoleAppender" name="STDERR">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>ERROR</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <encoder>
+ <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+ </encoder>
+ </appender>
+
+ <!-- All log -->
+ <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+ <then>
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
+ <file>${logDirectory}/${allLogName}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>${maxFileSize}</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ <maxHistory>${maxHistory}</maxHistory>
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
+ <appender-ref ref="ALL_ROLLING"/>
+ </appender>
+ </then>
+ </if>
+ <!-- Error log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
+ <file>${logDirectory}/${errorLogName}.log</file>
+ <!-- Audit messages filter - deny audit messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>AUDIT_MARKER</marker>
+ </evaluator>
+ <onMismatch>NEUTRAL</onMismatch>
+ <onMatch>DENY</onMatch>
+ </filter>
+ <!-- Transaction messages filter - deny Transaction messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>TRANSACTION_MARKER</marker>
+ </evaluator>
+ <onMismatch>NEUTRAL</onMismatch>
+ <onMatch>DENY</onMatch>
+ </filter>
+ <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>${maxFileSize}</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ <maxHistory>${maxHistory}</maxHistory>
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <!-- Debug log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
+ <file>${logDirectory}/${debugLogName}.log</file>
+ <!-- No need to deny audit messages - they are INFO only, will be denied anyway -->
+ <!-- Transaction messages filter - deny Transaction messages, there are some DEBUG level messages among them -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>TRANSACTION_MARKER</marker>
+ </evaluator>
+ <onMismatch>NEUTRAL</onMismatch>
+ <onMatch>DENY</onMatch>
+ </filter>
+ <!-- accept DEBUG and TRACE level -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
+ <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>
+ </evaluator>
+ <OnMismatch>DENY</OnMismatch>
+ <OnMatch>NEUTRAL</OnMatch>
+ </filter>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>${maxFileSize}</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ <maxHistory>${maxHistory}</maxHistory>
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <!-- Audit log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
+ <file>${logDirectory}/${auditLogName}.log</file>
+ <!-- Audit messages filter - accept audit messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>AUDIT_MARKER</marker>
+ </evaluator>
+ <onMismatch>DENY</onMismatch>
+ <onMatch>ACCEPT</onMatch>
+ </filter>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>${maxFileSize}</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ <maxHistory>${maxHistory}</maxHistory>
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <!-- SdncTransaction log -->
+ <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
+ <file>${logDirectory}/${transactionLogName}.log</file>
+ <!-- Transaction messages filter - accept audit messages -->
+ <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+ <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+ <marker>TRANSACTION_MARKER</marker>
+ </evaluator>
+ <onMismatch>DENY</onMismatch>
+ <onMatch>ACCEPT</onMatch>
+ </filter>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>${maxFileSize}</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ <maxHistory>${maxHistory}</maxHistory>
+ <totalSizeCap>${totalSizeCap}</totalSizeCap>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <!-- Asynchronicity Configurations -->
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="DEBUG_ROLLING"/>
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="TRANSACTION_ROLLING"/>
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="ERROR_ROLLING"/>
+ </appender>
+ <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
+ <queueSize>${queueSize}</queueSize>
+ <appender-ref ref="AUDIT_ROLLING"/>
+ </appender>
+ <root level="INFO">
+ <appender-ref ref="ASYNC_ERROR"/>
+ <appender-ref ref="ASYNC_DEBUG"/>
+ <appender-ref ref="ASYNC_AUDIT"/>
+ <appender-ref ref="ASYNC_TRANSACTION"/>
+ <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
+ <then>
+ <appender-ref ref="ALL_ROLLING"/>
+ </then>
+ </if>
+ <appender-ref ref="STDOUT"/>
+ <appender-ref ref="STDERR"/>
+ </root>
+ <logger level="INFO" name="org.openecomp.sdc"/>
+</configuration>
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-helmvalidator.yaml b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-helmvalidator.yaml
new file mode 100644
index 0000000000..fe132179ee
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-helmvalidator.yaml
@@ -0,0 +1,6 @@
+hValidatorEnabled: {{ .Values.sdcHelmValidator.enabled }}
+hValidatorUrl: {{ .Values.sdcHelmValidator.url }}
+hValidatorVersion: {{ .Values.sdcHelmValidator.helmVersion }}
+hValidatorDeployable: {{ .Values.sdcHelmValidator.deployable }}
+hValidatorLintable: {{ .Values.sdcHelmValidator.lintable }}
+hValidatorStrictLintable: {{ .Values.sdcHelmValidator.strictLintable }}
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-vnfrepo.yaml b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-vnfrepo.yaml
new file mode 100644
index 0000000000..8b8bdec476
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/config-vnfrepo.yaml
@@ -0,0 +1,4 @@
+vnfRepoPort: {{ .Values.VnfRepo.vnfRepoPort }}
+vnfRepoHost: refrepo.{{include "common.namespace" .}}
+getVnfUri: /onapapi/vnfsdk-marketplace/v1/PackageResource/csars
+downloadVnfUri: /onapapi/vnfsdk-marketplace/v1/PackageResource/csars/%s/files/app/jetty/config/onboarding-be
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/externaltesting-configuration.yaml b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/externaltesting-configuration.yaml
new file mode 100644
index 0000000000..a617f13968
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/externaltesting-configuration.yaml
@@ -0,0 +1,5 @@
+client:
+ enabled: true
+endpoints:
+ - {{ .Values.EXTTEST.ep1_config }}
+ - {{ .Values.EXTTEST.ep2_config }}
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/features.properties b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/features.properties
new file mode 100644
index 0000000000..54c4dea02b
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/features.properties
@@ -0,0 +1 @@
+EXTERNAL_LICENSE=true
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/onboarding_configuration.yaml b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/onboarding_configuration.yaml
new file mode 100644
index 0000000000..665d891c83
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/onboarding-config/onboarding_configuration.yaml
@@ -0,0 +1,72 @@
+catalogNotificationsConfig:
+ # catalog backend protocol
+ catalogBeProtocol: {{ if .Values.global.disableHttp }}https{{- else }}http{{- end }}
+ catalogBeHttpPort: {{ (.Values.global.BE).http_port }}
+ catalogBeSslPort: {{ (.Values.global.BE).https_port }}
+ catalogBeFqdn: sdc-be.{{ include "common.namespace" . }}
+ # do not remove the "" from catalog_notification_url. it is escaping % characters coming from AUTO.json
+ catalogNotificationUrl: {{ .Values.ONBOARDING_BE.catalog_notification_url | quote }}
+
+notifications:
+ pollingIntervalMsec: 2000
+ selectionSize: 100
+ beHost: sdc-onboarding-be.{{ include "common.namespace" . }}
+ beHttpPort: {{ .Values.ONBOARDING_BE.http_port }}
+
+cassandraConfig:
+ cassandraHosts: [ {{ .Values.global.sdc_cassandra.serviceName }}.{{ include "common.namespace" . }} ]
+ cassandraPort: {{ .Values.cassandra.cassandra_port }}
+ localDataCenter: {{ .Values.global.sdc_cassandra.dataCenter }}
+ reconnectTimeout: 30000
+ socketReadTimeout: {{ .Values.cassandra.socket_read_timeout }}
+ socketConnectTimeout: {{ .Values.cassandra.socket_connect_timeout }}
+ authenticate: true
+ username: {{ .Values.cassandra.cassandra_user }}
+ password: {{ .Values.cassandra.cassandra_password }}
+ ssl: {{ .Values.config.cassandraSslEnabled }}
+ truststorePath: {{ .Values.JETTY_BASE }}/etc/truststore
+ truststorePassword: {{ .Values.cassandra.truststore_password }}
+
+authCookie:
+ securityKey: MlB1WHFpSHNVTWdJZU1PcQ==
+ maxSessionTimeOut: 86400000
+ sessionIdleTimeOut: 3600000
+ cookieName: "AuthenticationCookie"
+ path: /
+ domain: ""
+ isHttpOnly: true
+ # redirect variable name from portal.properties file
+ redirectURL: "redirect_url"
+ excludedUrls: [ '/.*' ]
+ onboardingExcludedUrls: [ '/.*' ]
+
+basicAuth:
+ enabled: {{ .Values.basic_auth.enabled }}
+ userName: {{ .Values.basic_auth.user_name }}
+ userPass: {{ .Values.basic_auth.user_pass }}
+ excludedUrls: "/v1.0/healthcheck"
+
+zipValidation:
+ ignoreManifest: false
+
+externalCsarStore:
+ storageType: NONE # NONE, MINIO
+ endpoint:
+ host: 127.0.0.1
+ port: 9000
+ secure: false
+ credentials:
+ accessKey: "login"
+ secretKey: "password"
+ foldersToStrip:
+ - Files/images
+ sizeLimit: 10000000
+ thresholdEntries: 10000
+ tempPath: "/home/onap/temp/"
+ uploadPartSize: 200000000
+
+#Space separated list of permitted ancestors
+permittedAncestors: {{ .Values.permittedAncestors | join " " }}
+
+# Comma separated list of excluded URLs by the DataValidatorFilter
+dataValidatorFilterExcludedUrls: "/healthCheck,/followed,/authorize"
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/ready-probe.sh b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/ready-probe.sh
new file mode 100644
index 0000000000..54ed6960df
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/ready-probe.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+health_check_http_code=$(curl -k --max-time 5 -o /dev/null -w '%{http_code}' -X GET --header "Accept: application/json" "{{ if .Values.global.disableHttp }}https://127.0.0.1:{{ .Values.ONBOARDING_BE.https_port }}{{- else -}}http://127.0.0.1:{{ .Values.ONBOARDING_BE.http_port }}{{- end -}}/onboarding-api/v1.0/healthcheck")
+if [ "$health_check_http_code" -eq 200 ]; then
+ exit 0
+else
+ echo "Health check http status: $health_check_http_code"
+ exit 1
+fi
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/http.ini b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/http.ini
new file mode 100644
index 0000000000..e4e66c5387
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/http.ini
@@ -0,0 +1,29 @@
+# Module: http
+--module=http
+
+### HTTP Connector Configuration
+
+## Connector host/address to bind to
+# jetty.http.host=0.0.0.0
+
+## Connector port to listen on
+#jetty.http.port=8081
+jetty.http.port= {{ .Values.ONBOARDING_BE.http_port }}
+
+## Connector idle timeout in milliseconds
+jetty.http.idleTimeout=30000
+
+## Connector socket linger time in seconds (-1 to disable)
+# jetty.http.soLingerTime=-1
+
+## Number of acceptors (-1 picks default based on number of cores)
+# jetty.http.acceptors=-1
+
+## Number of selectors (-1 picks default based on number of cores)
+# jetty.http.selectors=-1
+
+## ServerSocketChannel backlog (0 picks platform default)
+# jetty.http.acceptorQueueSize=0
+
+## Thread priority delta to give to acceptor threads
+# jetty.http.acceptorPriorityDelta=0
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/https.ini b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/https.ini
new file mode 100644
index 0000000000..ec92157dd2
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/https.ini
@@ -0,0 +1,31 @@
+# ---------------------------------------
+# Module: https
+--module=https
+
+### HTTPS Connector Configuration
+
+## Connector host/address to bind to
+# jetty.https.host=0.0.0.0
+
+## Connector port to listen on
+
+#jetty.https.port=8445
+jetty.https.port= {{ .Values.ONBOARDING_BE.https_port }}
+
+## Connector idle timeout in milliseconds
+jetty.https.idleTimeout=30000
+
+## Connector socket linger time in seconds (-1 to disable)
+# jetty.https.soLingerTime=-1
+
+## Number of acceptors (-1 picks default based on number of cores)
+# jetty.https.acceptors=-1
+
+## Number of selectors (-1 picks default based on number of cores)
+# jetty.https.selectors=-1
+
+## ServerSocketChannel backlog (0 picks platform default)
+# jetty.https.acceptorQueueSize=0
+
+## Thread priority delta to give to acceptor threads
+# jetty.https.acceptorPriorityDelta=0
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/ssl.ini b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/ssl.ini
new file mode 100644
index 0000000000..70ceffb631
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/resources/config/start.d/ssl.ini
@@ -0,0 +1,98 @@
+# ---------------------------------------
+# Module: ssl
+--module=ssl
+
+### TLS(SSL) Connector Configuration
+
+## Connector host/address to bind to
+# jetty.ssl.host=0.0.0.0
+
+## Connector port to listen on
+
+#jetty.ssl.port=8445
+jetty.ssl.port = {{ .Values.ONBOARDING_BE.https_port }}
+
+## Connector idle timeout in milliseconds
+# jetty.ssl.idleTimeout=30000
+
+## Connector socket linger time in seconds (-1 to disable)
+# jetty.ssl.soLingerTime=-1
+
+## Number of acceptors (-1 picks default based on number of cores)
+# jetty.ssl.acceptors=-1
+
+## Number of selectors (-1 picks default based on number of cores)
+# jetty.ssl.selectors=-1
+
+## ServerSocketChannel backlog (0 picks platform default)
+# jetty.ssl.acceptorQueueSize=0
+
+## Thread priority delta to give to acceptor threads
+# jetty.ssl.acceptorPriorityDelta=0
+
+## Whether request host names are checked to match any SNI names
+# jetty.ssl.sniHostCheck=true
+
+## max age in seconds for a Strict-Transport-Security response header (default -1)
+# jetty.ssl.stsMaxAgeSeconds=31536000
+
+## include subdomain property in any Strict-Transport-Security header (default false)
+# jetty.ssl.stsIncludeSubdomains=true
+
+### SslContextFactory Configuration
+## Note that OBF passwords are not secure, just protected from casual observation
+## See http://www.eclipse.org/jetty/documentation/current/configuring-security-secure-passwords.html
+
+## Keystore file path (relative to $jetty.base)
+jetty.sslContext.keyStorePath=etc/org.onap.sdc.p12
+
+## Truststore file path (relative to $jetty.base)
+jetty.sslContext.trustStorePath=etc/org.onap.sdc.trust.jks
+
+## Keystore password
+# jetty.sslContext.keyStorePassword=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
+
+#jetty.sslContext.keyStorePassword=?(kP!Yur![*!Y5!E^f(ZKc31
+jetty.sslContext.keyStorePassword= {{ .Values.jetty.keyStorePassword }}
+
+## Keystore type and provider
+# jetty.sslContext.keyStoreType=JKS
+# jetty.sslContext.keyStoreProvider=
+
+## KeyManager password
+# jetty.sslContext.keyManagerPassword=OBF:1u2u1wml1z7s1z7a1wnl1u2g
+
+#jetty.sslContext.keyManagerPassword=?(kP!Yur![*!Y5!E^f(ZKc31
+jetty.sslContext.keyManagerPassword= {{ .Values.jetty.keyManagerPassword }}
+
+## Truststore password
+# jetty.sslContext.trustStorePassword=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
+
+#jetty.sslContext.trustStorePassword=z+KEj;t+,KN^iimSiS89e#p0
+jetty.sslContext.trustStorePassword= {{ .Values.jetty.trustStorePassword }}
+
+## Truststore type and provider
+# jetty.sslContext.trustStoreType=JKS
+# jetty.sslContext.trustStoreProvider=
+
+## whether client certificate authentication is required
+# jetty.sslContext.needClientAuth=false
+
+## Whether client certificate authentication is desired
+# jetty.sslContext.wantClientAuth=false
+
+## Whether cipher order is significant (since java 8 only)
+# jetty.sslContext.useCipherSuitesOrder=true
+
+## To configure Includes / Excludes for Cipher Suites or Protocols see tweak-ssl.xml example at
+## https://www.eclipse.org/jetty/documentation/current/configuring-ssl.html#configuring-sslcontextfactory-cipherSuites
+
+## Set the size of the SslSession cache
+# jetty.sslContext.sslSessionCacheSize=-1
+
+## Set the timeout (in seconds) of the SslSession cache timeout
+# jetty.sslContext.sslSessionTimeout=-1
+
+## Allow SSL renegotiation
+# jetty.sslContext.renegotiationAllowed=true
+# jetty.sslContext.renegotiationLimit=5
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/templates/autoscaling.yaml b/kubernetes/sdc/components/sdc-onboarding-be/templates/autoscaling.yaml
new file mode 100644
index 0000000000..b7f265319b
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-onboarding-be/templates/autoscaling.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "common.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/templates/configmap.yaml b/kubernetes/sdc/components/sdc-onboarding-be/templates/configmap.yaml
index aa632f33f4..06e6b79956 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/templates/configmap.yaml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/templates/configmap.yaml
@@ -27,3 +27,68 @@ metadata:
heritage: {{ .Release.Service }}
data:
{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-onboarding-be-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/onboarding-config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-http-04-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/start.d/http.ini").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-https-04-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/start.d/https.ini").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-ssl-04-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/start.d/ssl.ini").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.release" . }}-sdc-ready-probe-configmap
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/ready-probe.sh").AsConfig . | indent 2 }}
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml b/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
index 24715bcaec..744869736c 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
@@ -21,7 +21,16 @@ kind: Deployment
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
+ {{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+ minReadySeconds: {{ .Values.minReadySeconds }}
+ strategy:
+ type: {{ .Values.updateStrategy.type }}
+ rollingUpdate:
+ maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
+ maxSurge: {{ .Values.updateStrategy.maxSurge }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
@@ -104,13 +113,38 @@ spec:
- name: SDC_CERT_DIR
value: ""
volumeMounts:
- - name: sdc-environments
- mountPath: /app/jetty/chef-solo/environments/
- name: logs
mountPath: /var/log/onap
- name: logback
mountPath: /tmp/logback.xml
subPath: logback.xml
+ - name: onboarding-conf
+ mountPath: /app/jetty/config/onboarding-be/config-vnfrepo.yaml
+ subPath: config-vnfrepo.yaml
+ - name: onboarding-conf
+ mountPath: /app/jetty/config/onboarding-be/onboarding_configuration.yaml
+ subPath: onboarding_configuration.yaml
+ - name: onboarding-conf
+ mountPath: /app/jetty/config/onboarding-be/config-helmvalidator.yaml
+ subPath: config-helmvalidator.yaml
+ - name: onboarding-conf
+ mountPath: /app/jetty/config/onboarding-be/externaltesting-configuration.yaml
+ subPath: externaltesting-configuration.yaml
+ - name: onboarding-conf
+ mountPath: /app/jetty/config/onboarding-be/features.properties
+ subPath: features.properties
+ - name: http-config
+ mountPath: /app/jetty/start.d/http.ini
+ subPath: http.ini
+ - name: https-config
+ mountPath: /app/jetty/start.d/https.ini
+ subPath: https.ini
+ - name: ssl-config
+ mountPath: /app/jetty/start.d/ssl.ini
+ subPath: ssl.ini
+ - name: ready-probe-config
+ mountPath: /app/jetty/ready-probe.sh
+ subPath: ready-probe.sh
lifecycle:
postStart:
exec:
@@ -123,10 +157,27 @@ spec:
- name: logback
configMap:
name : {{ include "common.fullname" . }}-logging-configmap
- - name: sdc-environments
+ - name: onboarding-conf
configMap:
- name: {{ include "common.release" . }}-sdc-environments-configmap
+ name: {{ include "common.release" . }}-sdc-onboarding-be-configmap
+ defaultMode: 0755
+ - name: http-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-http-04-configmap
+ defaultMode: 0755
+ - name: https-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-https-04-configmap
+ defaultMode: 0755
+ - name: ssl-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-ssl-04-configmap
+ defaultMode: 0755
+ - name: ready-probe-config
+ configMap:
+ name: {{ include "common.release" . }}-sdc-ready-probe-configmap
defaultMode: 0755
- name: logs
emptyDir: {}
{{- include "common.imagePullSecrets" . | nindent 6 }}
+
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/templates/job.yaml b/kubernetes/sdc/components/sdc-onboarding-be/templates/job.yaml
index 8ceca385a4..6a6a9781d1 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/templates/job.yaml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/templates/job.yaml
@@ -17,7 +17,15 @@
apiVersion: batch/v1
kind: Job
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/policy/resources/config/db_migrator_policy_init.sh b/kubernetes/sdc/components/sdc-onboarding-be/templates/servicemonitor.yaml
index 32ccbf18d4..937f5ef974 100644
--- a/kubernetes/policy/resources/config/db_migrator_policy_init.sh
+++ b/kubernetes/sdc/components/sdc-onboarding-be/templates/servicemonitor.yaml
@@ -1,6 +1,5 @@
-#!/bin/sh
{{/*
-# Copyright (C) 2021, 2024 Nordix Foundation.
+# Copyright © 2024 Deutsche Telekom AG
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,20 +14,6 @@
# limitations under the License.
*/}}
-for schema in ${SQL_DB}; do
- echo "Initializing $schema..."
- /opt/app/policy/bin/prepare_upgrade.sh ${schema}
-
- /opt/app/policy/bin/db-migrator -s ${schema} -o report
-
- /opt/app/policy/bin/db-migrator -s ${schema} -o upgrade
- rc=$?
-
- /opt/app/policy/bin/db-migrator -s ${schema} -o report
-
- if [ "$rc" != 0 ]; then
- break
- fi
-done
-
-exit $rc
+{{- if .Values.metrics.serviceMonitor.enabled }}
+{{ include "common.serviceMonitor" . }}
+{{- end }}
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/values.yaml b/kubernetes/sdc/components/sdc-onboarding-be/values.yaml
index a55565676c..e2aeccbf27 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/values.yaml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/values.yaml
@@ -35,8 +35,8 @@ global:
# Application configuration defaults.
#################################################################
# application image
-image: onap/sdc-onboard-backend:1.13.6
-onboardingInitImage: onap/sdc-onboard-cassandra-init:1.13.6
+image: onap/sdc-onboard-backend:1.13.9
+onboardingInitImage: onap/sdc-onboard-cassandra-init:1.13.9
pullPolicy: Always
# flag to enable debugging - application support required
@@ -159,3 +159,94 @@ wait_for_job_container:
log:
path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+
+#################################################################
+# Settings from Default.rb
+#################################################################
+ONBOARDING_BE:
+ http_port: 8081
+ https_port: 8445
+ catalog_notification_url: "%s://%s:%s/sdc2/rest/v1/catalog/notif/vsp/"
+FE:
+ http_port: 8181
+ https_port: 9443
+disableHttp: true
+cassandra:
+ truststore_password: Aa123456
+ cassandra_port: 9042
+ datacenter_name: DC-
+ cluster_name: SDC-CS-
+ socket_read_timeout: 20000
+ socket_connect_timeout: 20000
+ janusgraph_connection_timeout: 10000
+ cassandra_user: asdc_user
+ cassandra_password: Aa1234%^!
+sdcHelmValidator:
+ enabled: true
+ helmVersion: 3.5.2
+ deployable: true
+ lintable: false
+ strictLintable: false
+ url: http://sdc-helm-validator:8080/validate
+VnfRepo:
+ vnfRepoPort: 8703
+ vnfRepoHost: refrepo
+jetty:
+ trustStorePassword: "z+KEj;t+,KN^iimSiS89e#p0"
+ keyManagerPassword: "?(kP!Yur![*!Y5!E^f(ZKc31"
+ keyStorePassword: "?(kP!Yur![*!Y5!E^f(ZKc31"
+basic_auth:
+ enabled: true
+ user_name: testName
+ user_pass: testPass
+ excludedUrls: /v1.0/healthcheck
+
+EXTTEST:
+ ep1_config: vtp,VTP,true,http://refrepo:8702/onapapi/vnfsdk-marketplace,onap.*
+ ep2_config: repository,Repository,false,,.*
+
+#Addiding extra Envs
+permittedAncestors: ""
+JETTY_BASE: "/app/jetty"
+http_option: http_option
+
+autoscaling:
+ enabled: true
+ minReplicas: 1
+ maxReplicas: 3
+ targetCPUUtilizationPercentage: 75
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 1
+
+# the minimum number of seconds that a newly created Pod should be ready
+minReadySeconds: 30
+updateStrategy:
+ type: RollingUpdate
+ # The number of pods that can be unavailable during the update process
+ maxUnavailable: 0
+ # The number of pods that can be created above the desired amount of pods during an update
+ maxSurge: 1
+
+metrics:
+ serviceMonitor:
+ enabled: true
+ targetPort: 8081
+ path: /onboarding-api/v1.0/actuator/prometheus
+ basicAuth:
+ enabled: false
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/sdc/components/sdc-wfd-be/Chart.yaml b/kubernetes/sdc/components/sdc-wfd-be/Chart.yaml
index 8a1a8b34b9..725104fc63 100644
--- a/kubernetes/sdc/components/sdc-wfd-be/Chart.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-be/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP Service Design and Creation Workflow Designer backend
name: sdc-wfd-be
-version: 13.0.0
+version: 13.0.2
dependencies:
- name: repositoryGenerator
diff --git a/kubernetes/sdc/components/sdc-wfd-be/templates/autoscaling.yaml b/kubernetes/sdc/components/sdc-wfd-be/templates/autoscaling.yaml
new file mode 100644
index 0000000000..b7f265319b
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-wfd-be/templates/autoscaling.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "common.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/sdc/components/sdc-wfd-be/templates/deployment.yaml b/kubernetes/sdc/components/sdc-wfd-be/templates/deployment.yaml
index 59ebb02675..cbbfe21a6d 100644
--- a/kubernetes/sdc/components/sdc-wfd-be/templates/deployment.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-be/templates/deployment.yaml
@@ -21,7 +21,16 @@ kind: Deployment
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
+ {{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+ minReadySeconds: {{ .Values.minReadySeconds }}
+ strategy:
+ type: {{ .Values.updateStrategy.type }}
+ rollingUpdate:
+ maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
+ maxSurge: {{ .Values.updateStrategy.maxSurge }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
diff --git a/kubernetes/sdc/components/sdc-wfd-be/templates/job.yaml b/kubernetes/sdc/components/sdc-wfd-be/templates/job.yaml
index 5b6762b78f..32eb8572ab 100644
--- a/kubernetes/sdc/components/sdc-wfd-be/templates/job.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-be/templates/job.yaml
@@ -18,7 +18,15 @@
{{ if .Values.initJob.enabled }}
apiVersion: batch/v1
kind: Job
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/sdc/components/sdc-wfd-be/values.yaml b/kubernetes/sdc/components/sdc-wfd-be/values.yaml
index cc85176748..5e0b7623ae 100644
--- a/kubernetes/sdc/components/sdc-wfd-be/values.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-be/values.yaml
@@ -153,3 +153,36 @@ serviceAccount:
wait_for_job_container:
containers:
- '{{ include "common.name" . }}-job'
+
+autoscaling:
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 3
+ targetCPUUtilizationPercentage: 75
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 1
+
+# the minimum number of seconds that a newly created Pod should be ready
+minReadySeconds: 30
+updateStrategy:
+ type: RollingUpdate
+ # The number of pods that can be unavailable during the update process
+ maxUnavailable: 0
+ # The number of pods that can be created above the desired amount of pods during an update
+ maxSurge: 1
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/sdc/components/sdc-wfd-fe/Chart.yaml b/kubernetes/sdc/components/sdc-wfd-fe/Chart.yaml
index 79ff34a906..6aeee841e1 100644
--- a/kubernetes/sdc/components/sdc-wfd-fe/Chart.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-fe/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP Service Design and Creation Workflow Designer frontend
name: sdc-wfd-fe
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: repositoryGenerator
diff --git a/kubernetes/sdc/components/sdc-wfd-fe/templates/autoscaling.yaml b/kubernetes/sdc/components/sdc-wfd-fe/templates/autoscaling.yaml
new file mode 100644
index 0000000000..b7f265319b
--- /dev/null
+++ b/kubernetes/sdc/components/sdc-wfd-fe/templates/autoscaling.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels: {{- include "common.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "common.fullname" . }}
+ minReplicas: {{ .Values.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/kubernetes/sdc/components/sdc-wfd-fe/templates/deployment.yaml b/kubernetes/sdc/components/sdc-wfd-fe/templates/deployment.yaml
index ad031dabf9..fcf1398d02 100644
--- a/kubernetes/sdc/components/sdc-wfd-fe/templates/deployment.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-fe/templates/deployment.yaml
@@ -19,7 +19,16 @@ kind: Deployment
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
+ {{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
+ {{- end }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
+ minReadySeconds: {{ .Values.minReadySeconds }}
+ strategy:
+ type: {{ .Values.updateStrategy.type }}
+ rollingUpdate:
+ maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
+ maxSurge: {{ .Values.updateStrategy.maxSurge }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
diff --git a/kubernetes/sdc/components/sdc-wfd-fe/values.yaml b/kubernetes/sdc/components/sdc-wfd-fe/values.yaml
index e33cf4827d..e82e1d9a9b 100644
--- a/kubernetes/sdc/components/sdc-wfd-fe/values.yaml
+++ b/kubernetes/sdc/components/sdc-wfd-fe/values.yaml
@@ -138,3 +138,21 @@ serviceAccount:
log:
path: /var/log/onap
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+
+autoscaling:
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 3
+ targetCPUUtilizationPercentage: 75
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 1
+
+# the minimum number of seconds that a newly created Pod should be ready
+minReadySeconds: 30
+updateStrategy:
+ type: RollingUpdate
+ # The number of pods that can be unavailable during the update process
+ maxUnavailable: 0
+ # The number of pods that can be created above the desired amount of pods during an update
+ maxSurge: 1
diff --git a/kubernetes/sdc/values.yaml b/kubernetes/sdc/values.yaml
index 9cfae6ac66..fb6da37cec 100644
--- a/kubernetes/sdc/values.yaml
+++ b/kubernetes/sdc/values.yaml
@@ -37,7 +37,7 @@ global:
#serviceName: cassandra
#Shared cassandra cluster replicaCount, should be changed if localCluster is enabled
#to match with its own cluster replica
- #see "cassandra: replicaCount" in file sdc-cs/values.yaml)
+ #see "cassandra: replicaCount" in file sdc-cs/values.yaml
replicaCount: 3
dbCache: true
readConsistencyLevel: ONE
@@ -49,6 +49,10 @@ global:
#and cassandra 4.1.* must be "3.4.6"
cqlVersion: "3.4.6"
+ BE:
+ http_port: 8080
+ https_port: 8443
+
centralizedLoggingEnabled: true
# global Kafka config passed to sdc-be chart
kafka:
@@ -94,3 +98,26 @@ sdcHelmValidator:
lintable: false
strictLintable: false
url: http://sdc-helm-validator:8080/validate
+
+ONBOARDING_BE:
+ http_port: 8081
+ https_port: 8445
+ catalog_notification_url: "%s://%s:%s/sdc2/rest/v1/catalog/notif/vsp/"
+cassandra:
+ cassandra_port: 9042
+ concurrent_reads: 32
+ num_tokens: 256
+ data_dir: /var/lib/cassandra/data
+ hinted_handoff_enabled: true
+ cassandra_user: asdc_user
+ cassandra_password: Aa1234%^!
+ concurrent_writes: 32
+ multithreaded_compaction: false
+ cache_dir: "/var/lib/cassandra/saved_caches"
+ log_file: "/var/lib/cassandra/log/system.log"
+ phi_convict_threshold: 8
+ commitlog_dir: "/var/lib/cassandra/commitlog"
+ socket_read_timeout: 20000
+ socket_connect_timeout: 20000
+ janusgraph_connection_timeout: 10000
+
diff --git a/kubernetes/sdnc/Chart.yaml b/kubernetes/sdnc/Chart.yaml
index 5916455c73..02a3681fad 100644
--- a/kubernetes/sdnc/Chart.yaml
+++ b/kubernetes/sdnc/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: SDN Controller
name: sdnc
-version: 15.0.0
+version: 15.1.1
dependencies:
- name: common
@@ -35,7 +35,7 @@ dependencies:
repository: '@local'
condition: network-name-gen.enabled
- name: dgbuilder
- version: ~14.x-0
+ version: ~15.x-0
repository: '@local'
condition: dgbuilder.enabled
- name: sdnc-prom
@@ -52,15 +52,15 @@ dependencies:
condition: sdnc.elasticsearch.enabled,elasticsearch.enabled
# conditions for sdnc-subcharts
- name: ueb-listener
- version: ~14.x-0
+ version: ~15.x-0
repository: '@local'
condition: sdnc.ueb-listener.enabled,ueb-listener.enabled
- name: sdnc-ansible-server
- version: ~14.x-0
+ version: ~15.x-0
repository: '@local'
condition: sdnc.sdnc-ansible-server.enabled,sdnc-ansible-server.enabled
- name: sdnc-web
- version: ~14.x-0
+ version: ~15.x-0
repository: '@local'
condition: sdnc.sdnc-web.enabled,sdnc-web.enabled
- name: repositoryGenerator
diff --git a/kubernetes/sdnc/components/dgbuilder/Chart.yaml b/kubernetes/sdnc/components/dgbuilder/Chart.yaml
index 517bc393e5..31089ad91e 100644
--- a/kubernetes/sdnc/components/dgbuilder/Chart.yaml
+++ b/kubernetes/sdnc/components/dgbuilder/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: D.G. Builder application
name: dgbuilder
-version: 14.0.0
+version: 15.1.0
dependencies:
- name: common
@@ -28,4 +28,4 @@ dependencies:
repository: '@local'
- name: serviceAccount
version: ~13.x-0
- repository: '@local' \ No newline at end of file
+ repository: '@local'
diff --git a/kubernetes/sdnc/components/dgbuilder/resources/config/customSettings.js b/kubernetes/sdnc/components/dgbuilder/resources/config/customSettings.js
index abaab57254..372a0ca4c9 100644
--- a/kubernetes/sdnc/components/dgbuilder/resources/config/customSettings.js
+++ b/kubernetes/sdnc/components/dgbuilder/resources/config/customSettings.js
@@ -35,7 +35,7 @@ module.exports={
"dbUser": "${DB_USER}",
"dbPassword": "${DB_PASSWORD}",
"gitLocalRepository": "",
- "restConfUrl": "http://localhost:8181/restconf/operations/SLI-API:execute-graph",
+ "restConfUrl": "http://localhost:8181/rests/operations/SLI-API:execute-graph",
"restConfUser": "${REST_CONF_USER}",
"restConfPassword": "${REST_CONF_PASSWORD}",
"formatXML": "Y",
diff --git a/kubernetes/sdnc/components/dgbuilder/values.yaml b/kubernetes/sdnc/components/dgbuilder/values.yaml
index d22b25e5b2..754c632d42 100644
--- a/kubernetes/sdnc/components/dgbuilder/values.yaml
+++ b/kubernetes/sdnc/components/dgbuilder/values.yaml
@@ -69,7 +69,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/ccsdk-dgbuilder-image:1.6.2
+image: onap/ccsdk-dgbuilder-image:2.0.1
pullPolicy: Always
# flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/components/sdnc-ansible-server/Chart.yaml b/kubernetes/sdnc/components/sdnc-ansible-server/Chart.yaml
index 12fbd85c15..a9abeef711 100644
--- a/kubernetes/sdnc/components/sdnc-ansible-server/Chart.yaml
+++ b/kubernetes/sdnc/components/sdnc-ansible-server/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: SDN-C Ansible Server
name: sdnc-ansible-server
-version: 14.0.0
+version: 15.1.0
dependencies:
- name: common
diff --git a/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml b/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
index 13e7023808..19f0f79046 100644
--- a/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
+++ b/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
@@ -51,7 +51,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/sdnc-ansible-server-image:2.6.1
+image: onap/sdnc-ansible-server-image:3.0.2
pullPolicy: Always
# flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/components/sdnc-prom/resources/bin/switchVoting.sh b/kubernetes/sdnc/components/sdnc-prom/resources/bin/switchVoting.sh
index c36d2e3e9f..e579e62231 100755
--- a/kubernetes/sdnc/components/sdnc-prom/resources/bin/switchVoting.sh
+++ b/kubernetes/sdnc/components/sdnc-prom/resources/bin/switchVoting.sh
@@ -19,7 +19,7 @@
set -e
primary=${SDNC_IS_PRIMARY_CLUSTER:-true}
-url=http://sdnc:8282/restconf/operations/cluster-admin:change-member-voting-states-for-all-shards
+url=http://sdnc:8282/rests/operations/cluster-admin:change-member-voting-states-for-all-shards
username="${ODL_USERNAME:-{{.Values.odl.restconf.username}}}"
password="${ODL_PASSWORD:-{{.Values.odl.restconf.password}}}"
LOGFILE="/app/geo.log"
diff --git a/kubernetes/sdnc/components/sdnc-web/Chart.yaml b/kubernetes/sdnc/components/sdnc-web/Chart.yaml
index 6ffc9768a2..cf46600161 100644
--- a/kubernetes/sdnc/components/sdnc-web/Chart.yaml
+++ b/kubernetes/sdnc/components/sdnc-web/Chart.yaml
@@ -16,7 +16,7 @@
apiVersion: v2
description: SDN-C Web Server
name: sdnc-web
-version: 14.0.0
+version: 15.1.0
dependencies:
- name: common
diff --git a/kubernetes/sdnc/components/sdnc-web/values.yaml b/kubernetes/sdnc/components/sdnc-web/values.yaml
index 79de4c235e..51136a26ad 100644
--- a/kubernetes/sdnc/components/sdnc-web/values.yaml
+++ b/kubernetes/sdnc/components/sdnc-web/values.yaml
@@ -22,7 +22,7 @@ global:
# Application configuration defaults.
#################################################################
# application image
-image: "onap/sdnc-web-image:2.6.1"
+image: "onap/sdnc-web-image:3.0.2"
pullPolicy: Always
config:
diff --git a/kubernetes/sdnc/components/ueb-listener/Chart.yaml b/kubernetes/sdnc/components/ueb-listener/Chart.yaml
index 58cc32a4e7..53ba47d093 100644
--- a/kubernetes/sdnc/components/ueb-listener/Chart.yaml
+++ b/kubernetes/sdnc/components/ueb-listener/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: SDNC UEB Listener
name: ueb-listener
-version: 14.0.0
+version: 15.1.0
dependencies:
- name: common
diff --git a/kubernetes/sdnc/components/ueb-listener/resources/config/ueb-listener.properties b/kubernetes/sdnc/components/ueb-listener/resources/config/ueb-listener.properties
index e27ef36bee..580e939f70 100644
--- a/kubernetes/sdnc/components/ueb-listener/resources/config/ueb-listener.properties
+++ b/kubernetes/sdnc/components/ueb-listener/resources/config/ueb-listener.properties
@@ -9,7 +9,7 @@ org.onap.ccsdk.sli.northbound.uebclient.password=${UEB_PASSWORD}
org.onap.ccsdk.sli.northbound.uebclient.user=${UEB_USER}
org.onap.ccsdk.sli.northbound.uebclient.sdnc-user=${ODL_USER}
org.onap.ccsdk.sli.northbound.uebclient.sdnc-passwd=${ODL_PASSWORD}
-org.onap.ccsdk.sli.northbound.uebclient.asdc-api-base-url=http://sdnc.{{.Release.Namespace}}:{{.Values.config.sdncPort}}/restconf/operations/
+org.onap.ccsdk.sli.northbound.uebclient.asdc-api-base-url=http://sdnc.{{.Release.Namespace}}:{{.Values.config.sdncPort}}/rests/operations/
org.onap.ccsdk.sli.northbound.uebclient.asdc-api-namespace=org:onap:ccsdk
org.onap.ccsdk.sli.northbound.uebclient.spool.incoming=/opt/onap/sdnc/ueb-listener/spool/incoming
org.onap.ccsdk.sli.northbound.uebclient.spool.archive=/opt/onap/sdnc/ueb-listener/spool/archive
diff --git a/kubernetes/sdnc/components/ueb-listener/values.yaml b/kubernetes/sdnc/components/ueb-listener/values.yaml
index d38f18639c..c5b2fbb213 100644
--- a/kubernetes/sdnc/components/ueb-listener/values.yaml
+++ b/kubernetes/sdnc/components/ueb-listener/values.yaml
@@ -57,7 +57,7 @@ secrets:
# Application configuration defaults.
#################################################################
# application image
-image: onap/sdnc-ueb-listener-image:2.6.1
+image: onap/sdnc-ueb-listener-image:3.0.2
pullPolicy: Always
# flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/resources/config/conf/aaiclient.properties b/kubernetes/sdnc/resources/config/conf/aaiclient.properties
index 971a446d64..f7694d5b3f 100755
--- a/kubernetes/sdnc/resources/config/conf/aaiclient.properties
+++ b/kubernetes/sdnc/resources/config/conf/aaiclient.properties
@@ -55,8 +55,8 @@ org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update
# UBB Notify
org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=<%= @ubbUri %>/rests/data/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=<%= @ubbUri %>/rests/data/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
# P-Interfaces
org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
diff --git a/kubernetes/sdnc/resources/config/conf/blueprints-processor-adaptor.properties b/kubernetes/sdnc/resources/config/conf/blueprints-processor-adaptor.properties
index 4ce1851658..ada4d7b1cc 100644
--- a/kubernetes/sdnc/resources/config/conf/blueprints-processor-adaptor.properties
+++ b/kubernetes/sdnc/resources/config/conf/blueprints-processor-adaptor.properties
@@ -34,4 +34,4 @@ org.onap.ccsdk.features.blueprints.adaptors.restconf.type=generic
org.onap.ccsdk.features.blueprints.adaptors.restconf.enable=true
org.onap.ccsdk.features.blueprints.adaptors.restconf.user=${RESTCONF_USER}
org.onap.ccsdk.features.blueprints.adaptors.restconf.passwd=${RESTCONF_PASSWORD}
-org.onap.ccsdk.features.blueprints.adaptors.restconf.url=http://sdnc:8282/restconf/
+org.onap.ccsdk.features.blueprints.adaptors.restconf.url=http://sdnc:8282/rests/
diff --git a/kubernetes/sdnc/resources/config/conf/generic-resource-api-dg.properties b/kubernetes/sdnc/resources/config/conf/generic-resource-api-dg.properties
new file mode 100644
index 0000000000..89b9c1c45b
--- /dev/null
+++ b/kubernetes/sdnc/resources/config/conf/generic-resource-api-dg.properties
@@ -0,0 +1,106 @@
+restapi.templateDir=/opt/onap/sdnc/restapi/templates
+controller.url=http://localhost:8181
+controller.user=${ODL_USER}
+controller.pwd=${ODL_PASSWORD}
+honeycomb.url=http://{honeycomb-instance-ip}:8183
+honeycomb.user=${HONEYCOMB_USER}
+honeycomb.pwd=${HONEYCOMB_PASSWORD}
+restapi.trustStoreFileName=/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks
+restapi.trustStorePassword=${TRUSTSTORE_PASSWORD}
+restapi.keyStoreFileName=/opt/onap/sdnc/data/stores/sdnc.p12
+restapi.keyStorePassword=${KEYSTORE_PASSWORD}
+restapi.connection-oof-url=http://oof-osdf:8698/api/oof/v1/route
+naming.gen-name.url=http://neng-serv:8080
+naming.gen-name.user=${NENG_NAME}
+naming.gen-name.pwd=${NENG_PASSWORD}
+so.user=${SO_USER}
+so.pwd=${SO_PASSWORD}
+cds.url=http://cds-blueprints-processor-http:8080
+cds.user=${CDS_USER}
+cds.pwd=${CDS_PASSWORD}
+
+# Templates
+restapi.sz.templatefile=security-zone-allotted-resource.json
+restapi.cr.templatefile=contrail-route-allotted-resource.json
+restapi.brg.templatefile=brg-allotted-resource.json
+restapi.vpp.vxlan-tunnel.templatefile=vcpe-vxlan-tunnel.json
+restapi.vpp.bridge-domain.templatefile=vcpe-vpp-bridge-domain.json
+restapi.vpp.xconnect.templatefile=vcpe-l2-interface.json
+restapi.tx.templatefile=tunnelxconn-allotted-resource.json
+restapi.parentsvc.templatefile=parent-provided-allotted-resource.json
+restapi.network-ar.templatefile=network-provided-allotted-resources.json
+restapi.vnf-ar.templatefile=vnf-provided-allotted-resources.json
+restapi.services.templatefile=vcpe-services-service.json
+restapi.services.vnf.vfmodule.templatefile=vfmodule-vim-parameters.vgw.json
+restapi.sotn-attachment.templatefile=sotn-attachment-allotted-resource.json
+restapi.sdwan-attachment.templatefile=sdwan-attachment-allotted-resource.json
+restapi.oof-getpath.templatefile=oof-getpath.json
+restapi.transport-slice-creation.templatefile=ts-allocate-tn-slice.json
+restapi.transport-sliceA-list-creation.templatefile=ts-allocate-tn-sliceA-list.json
+restapi.transport-sliceB-list-creation.templatefile=ts-allocate-tn-sliceB-list.json
+restapi.transport-sliceG-list-creation.templatefile=ts-allocate-tn-sliceG-list.json
+restapi.ts-otn-src-domain-creation.templatefile=ts-otn-tunnel-src-domain.json
+restapi.ts-otn-dst-domain-creation.templatefile=ts-otn-tunnel-dst-domain.json
+restapi.ts-otn-domainG-creation.templatefile=ts-otn-tunnel-domainG.json
+restapi.ts-ethernet-service.templatefile=ts-ethernet-service.json
+restapi.ts-coloring-uni-port.templatefile=ts-coloring-uni-port.json
+restapi.p2p-otn-src-domain-creation.templatefile=p2p-otn-tunnel-src-domain.json
+restapi.p2p-otn-dst-domain-creation.templatefile=p2p-otn-tunnel-dst-domain.json
+restapi.p2p-otn-domainG-creation.templatefile=p2p-otn-tunnel-domainG.json
+restapi.p2p-ethernet-service.templatefile=p2p-ethernet-service.json
+restapi.p2p-ethernet-service-vlan.templatefile=p2p-ethernet-service-vlan.json
+restapi.p2p-ethernet-service-same-domain.templatefile=p2p-ethernet-service-same-domain.json
+restapi.p2p-ethernet-service-modify.templatefile=p2p-ethernet-service-modify.json
+restapi.p2p-subscribe-notification.templatefile=p2p-subscribe-notification.json
+restapi.p2p-terminate-notification.templatefile=p2p-terminate-notification.json
+restapi.p2p-create-pm-data.templatefile=p2p-create-pm-data.json
+restapi.p2p-call-ves.templatefile=p2p-call-ves.json
+restapi.cll-ethernet-service-loop.templatefile=cll-ethernet-service-loop.json
+restapi.cll-ethernet-service-loop-protection.templatefile=cll-ethernet-service-loop-protection.json
+restapi.cll-otn-src-domain-creation.templatefile=cll-otn-tunnel-src-domain.json
+restapi.cll-otn-dst-domain-creation.templatefile=cll-otn-tunnel-dst-domain.json
+restapi.cll-otn-domainG-creation.templatefile=cll-otn-tunnel-domainG.json
+restapi.cll-subscribe-notification.templatefile=cll-subscribe-notification.json
+restapi.cll-terminate-notification.templatefile=cll-terminate-notification.json
+restapi.cll-create-pm-data.templatefile=cll-create-pm-data.json
+restapi.cll-call-ves.templatefile=cll-call-ves.json
+restapi.naming.gen-name.templatefile=naming-ms-post-gen-name.json
+restapi.ss.pnf.templatefile=self-serve-pnf-assignments.json
+restapi.ss.vnf.templatefile=self-serve-vnf-assignments.json
+restapi.ss.vfmodule.templatefile=self-serve-vfmodule-assignments.json
+restapi.ss.mS.vlan.tag.assign.templatefile=self-serve-mS-vlan-tag-assignments.json
+restapi.ss.mS.vlan.tag.unassign.templatefile=self-serve-mS-vlan-tag-unassignments.json
+restapi.ss.mS.mac.address.assign.templatefile=self-serve-mS-mac-address-assign.json
+restapi.ss.mS.mac.address.unassign.templatefile=self-serve-mS-mac-address-unassign.json
+
+# Default cloud owner
+cloud-region.cloud-owner=CloudOwner
+
+# URLs
+restapi.cr-allottedresource=/rests/data/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource={allotted-resource-id}
+restapi.sz-allottedresource=/rests/data/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource={allotted-resource-id}
+restapi.brg-allottedresource=/rests/data/GENERIC-RESOURCE-API:brg-allotted-resources/brg-allotted-resource={allotted-resource-id}
+restapi.vpp-honeycomb=/rests/data/ietf-interfaces:interfaces/interface={tunnel-name}
+restapi.tx-allottedresource=/rests/data/GENERIC-RESOURCE-API:tunnelxconn-allotted-resources/tunnelxconn-allotted-resource={allotted-resource-id}
+restapi.vnf-provided-allottedresource=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id}/vnf-data/vnf-provided-allotted-resources
+restapi.network-provided-allottedresource=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id}/vnf-data/vnf-provided-allotted-resources
+restapi.pm-configuration=/rests/data/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration={configuration-id}
+restapi.network=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/networks
+restapi.vnf=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs
+restapi.vnf-api.service-information=/rests/data/VNF-API:vnfs/vnf-list={vnf-id}/service-data
+restapi.parent-provided-resource=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/provided-allotted-resources/provided-allotted-resource={allotted-resource-id}
+restapi.network-provided-resource=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/networks/network={network-id}/network-data/network-provided-allotted-resources
+restapi.services=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}
+restapi.service.vnf.vfmodule-resource=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id}/vnf-data/vf-modules/vf-module={vf-module-id}
+restapi.connection-attachment-allottedresource=/rests/data/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource={allotted-resource-id}
+restapi.naming.gen-name.service=/web/service/v1/genNetworkElementName
+restapi.ss-pnf-assignments=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/pnfs/pnf={pnf-id}
+restapi.ss-vnf-assignments=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id}
+restapi.ss-vfmodule-assignments=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id}/vnf-data/vf-modules/vf-module={vf-module-id}
+restapi.ss-mS-vlan-tag-assign=/vlantagapi/v1/{action}
+restapi.ss-mS-mac-address-assign=/api/macaddress/v1/service/assign
+restapi.ss-mS-mac-address-unassign=/api/macaddress/v1/service/unassign
+restapi.preload-network=/rests/data/GENERIC-RESOURCE-API:preload-information/preload-list={network-name}/network/preload-data/preload-network-topology-information
+restapi.preloadinformation=/rests/data/GENERIC-RESOURCE-API:preload-information/preload-list=
+restapi.vf-module=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id}/vnf-data/vf-modules/vf-module={vf-module-id}
+restapi.vnf-assign=/rests/data/GENERIC-RESOURCE-API:services/service={service-instance-id}/service-data/vnfs/vnf={vnf-id} \ No newline at end of file
diff --git a/kubernetes/sdnc/resources/config/conf/lcm-dg.properties b/kubernetes/sdnc/resources/config/conf/lcm-dg.properties
index 44ee0b998f..17dea78908 100644
--- a/kubernetes/sdnc/resources/config/conf/lcm-dg.properties
+++ b/kubernetes/sdnc/resources/config/conf/lcm-dg.properties
@@ -21,8 +21,8 @@ restapi.templateDir=/opt/onap/sdnc/restapi/templates
#RESTCONF
lcm.restconf.configscaleout.templatefile=lcm-restconf-configscaleout.json
-lcm.restconf.configscaleout.urlpath=/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances/vdns-instance/
-lcm.restconf.configscaleout.geturlpath=/restconf/operational/health-vnf-onap-plugin:health-vnf-onap-plugin-state/health-check
+lcm.restconf.configscaleout.urlpath=/rests/data/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin/vdns-instances/vdns-instance/
+lcm.restconf.configscaleout.geturlpath=/rests/data/health-vnf-onap-plugin:health-vnf-onap-plugin-state/health-check
lcm.restconf.configscaleout.user=${SCALEOUT_USER}
lcm.restconf.configscaleout.password=${SCALEOUT_PASSWORD}
lcm.restconf.user=${RESTCONF_USER}
diff --git a/kubernetes/sdnc/resources/geo/bin/switchVoting.sh b/kubernetes/sdnc/resources/geo/bin/switchVoting.sh
index a276854d5c..0ff065666f 100755
--- a/kubernetes/sdnc/resources/geo/bin/switchVoting.sh
+++ b/kubernetes/sdnc/resources/geo/bin/switchVoting.sh
@@ -33,11 +33,11 @@ PASSWORD=`awk '/odlPassword/ {print $2}' $dir/../../../values.yaml | head -1`
case "$1" in
primary)
- status=$(curl -u $USERNAME:$PASSWORD -o /dev/null -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:30202/restconf/operations/cluster-admin:change-member-voting-states-for-all-shards -d '{ "input" : { "member-voting-state" : [ { "member-name" : "member-1", "voting":true}, { "member-name" : "member-2", "voting":true}, { "member-name" : "member-3", "voting":true},{ "member-name" : "member-4", "voting":false},{ "member-name" : "member-5", "voting":false},{ "member-name" : "member-6", "voting":false}] } }' -w "%{http_code}\n" $url 2> /dev/null)
+ status=$(curl -u $USERNAME:$PASSWORD -o /dev/null -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:30202/rests/operations/cluster-admin:change-member-voting-states-for-all-shards -d '{ "input" : { "member-voting-state" : [ { "member-name" : "member-1", "voting":true}, { "member-name" : "member-2", "voting":true}, { "member-name" : "member-3", "voting":true},{ "member-name" : "member-4", "voting":false},{ "member-name" : "member-5", "voting":false},{ "member-name" : "member-6", "voting":false}] } }' -w "%{http_code}\n" $url 2> /dev/null)
;;
secondary)
- status=$(curl -u $USERNAME:$PASSWORD -o /dev/null -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:30202/restconf/operations/cluster-admin:change-member-voting-states-for-all-shards -d '{ "input" : { "member-voting-state" : [ { "member-name" : "member-1", "voting":false}, { "member-name" : "member-2", "voting":false}, { "member-name" : "member-3", "voting":false},{ "member-name" : "member-4", "voting":true},{ "member-name" : "member-5", "voting":true},{ "member-name" : "member-6", "voting":true}] } }' -w "%{http_code}\n" $url 2> /dev/null)
+ status=$(curl -u $USERNAME:$PASSWORD -o /dev/null -H "Content-Type: application/json" -H "Accept: application/json" -X POST http://localhost:30202/rests/operations/cluster-admin:change-member-voting-states-for-all-shards -d '{ "input" : { "member-voting-state" : [ { "member-name" : "member-1", "voting":false}, { "member-name" : "member-2", "voting":false}, { "member-name" : "member-3", "voting":false},{ "member-name" : "member-4", "voting":true},{ "member-name" : "member-5", "voting":true},{ "member-name" : "member-6", "voting":true}] } }' -w "%{http_code}\n" $url 2> /dev/null)
;;
*)
diff --git a/kubernetes/sdnc/templates/job.yaml b/kubernetes/sdnc/templates/job.yaml
index ffd578f3f1..4a7ca8a2ab 100755
--- a/kubernetes/sdnc/templates/job.yaml
+++ b/kubernetes/sdnc/templates/job.yaml
@@ -25,6 +25,9 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/sdnc/templates/sdnrdb-init-job.yaml b/kubernetes/sdnc/templates/sdnrdb-init-job.yaml
index 1845f6cc9f..0b630e0aa8 100755
--- a/kubernetes/sdnc/templates/sdnrdb-init-job.yaml
+++ b/kubernetes/sdnc/templates/sdnrdb-init-job.yaml
@@ -16,7 +16,17 @@
{{ if .Values.config.sdnr.enabled -}}
apiVersion: batch/v1
kind: Job
-metadata: {{- include "common.resourceMetadata" (dict "suffix" "sdnrdb-init-job" "dot" . ) | nindent 2 }}
+metadata:
+ name: {{ include "common.fullname" . }}-sdnrdb-init-job
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ include "common.release" . }}
+ heritage: {{ .Release.Service }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/sdnc/templates/statefulset.yaml b/kubernetes/sdnc/templates/statefulset.yaml
index 666a8ada12..5a89df5732 100644
--- a/kubernetes/sdnc/templates/statefulset.yaml
+++ b/kubernetes/sdnc/templates/statefulset.yaml
@@ -290,7 +290,7 @@ spec:
- name: JAVA_HOME
value: "{{ .Values.config.javaHome}}"
- name: JAVA_OPTS
- value: "-Xms{{.Values.config.odl.javaOptions.minMemory}} -Xmx{{.Values.config.odl.javaOptions.maxMemory}}"
+ value: "-XX:MaxRAMPercentage={{.Values.config.odl.javaOptions.maxRAMPercentage}}"
- name: LOG4J_FORMAT_MSG_NO_LOOKUPS
value: "true"
- name: KARAF_CONSOLE_LOG_LEVEL
@@ -394,6 +394,9 @@ spec:
- mountPath: {{ .Values.config.configDir }}/dblib.properties
name: properties
subPath: dblib.properties
+ - mountPath: {{ .Values.config.configDir }}/generic-api-dg.properties
+ name: properties
+ subPath: generic-api-dg.properties
- mountPath: {{ .Values.config.configDir }}/lcm-dg.properties
name: properties
subPath: lcm-dg.properties
diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml
index 3708bd1cdd..e61f62853f 100644
--- a/kubernetes/sdnc/values.yaml
+++ b/kubernetes/sdnc/values.yaml
@@ -216,7 +216,7 @@ certificates:
# application images
pullPolicy: Always
-image: onap/sdnc-image:2.6.1
+image: onap/sdnc-image:3.0.2
# flag to enable debugging - application support required
debugEnabled: false
@@ -316,8 +316,7 @@ config:
maxGCPauseMillis: 100
parallelGCThreads : 3
numberGCLogFiles: 10
- minMemory: 512m
- maxMemory: 2048m
+ maxRAMPercentage: 70
gcLogOptions: ""
# Next line enables gc logging
# gcLogOptions: "-Xlog:gc=trace:file={{.Values.config.odl.gcLogDir}}/gc-%t.log}:time,level,tags:filecount={{.Values.config.odl.javaOptions.numberGCLogFiles}}"
@@ -412,6 +411,20 @@ config:
# Strimzi KafkaUser/Topic config on top level
kafkaUser: *kafkaUser
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
# dependency / sub-chart configuration
network-name-gen:
@@ -653,18 +666,18 @@ flavor: small
resources:
small:
limits:
- cpu: "2"
- memory: "4.7Gi"
+ cpu: "3"
+ memory: "8Gi"
requests:
cpu: "1"
- memory: "4.7Gi"
+ memory: "8Gi"
large:
limits:
cpu: "4"
- memory: "9.4Gi"
+ memory: "10Gi"
requests:
cpu: "2"
- memory: "9.4Gi"
+ memory: "10Gi"
unlimited: {}
#Pods Service Account
diff --git a/kubernetes/so/Chart.yaml b/kubernetes/so/Chart.yaml
index 83419673fe..846b175070 100755
--- a/kubernetes/so/Chart.yaml
+++ b/kubernetes/so/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP Service Orchestrator
name: so
-version: 13.0.2
+version: 15.0.1
dependencies:
- name: common
@@ -44,7 +44,7 @@ dependencies:
repository: 'file://components/so-admin-cockpit'
condition: so-admin-cockpit.enabled
- name: so-bpmn-infra
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/so-bpmn-infra'
- name: so-catalog-db-adapter
version: ~13.x-0
@@ -78,17 +78,17 @@ dependencies:
repository: 'file://components/so-oof-adapter'
condition: so-oof-adapter.enabled
- name: so-openstack-adapter
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/so-openstack-adapter'
condition: so-openstack-adapter.enabled
- name: so-request-db-adapter
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/so-request-db-adapter'
- name: so-sdc-controller
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/so-sdc-controller'
- name: so-sdnc-adapter
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/so-sdnc-adapter'
condition: so-sdnc-adapter.enabled
- name: so-ve-vnfm-adapter
diff --git a/kubernetes/so/components/so-admin-cockpit/values.yaml b/kubernetes/so/components/so-admin-cockpit/values.yaml
index 53d185c35d..2734152240 100644
--- a/kubernetes/so/components/so-admin-cockpit/values.yaml
+++ b/kubernetes/so/components/so-admin-cockpit/values.yaml
@@ -26,7 +26,7 @@ global:
nodePortPrefix: 302
nodePortPrefixExt: 304
repository: nexus3.onap.org:10001
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
envsubstImage: dibi/envsubst
persistence:
mountPath: /dockerdata-nfs
@@ -121,17 +121,17 @@ flavor: small
resources:
small:
requests:
- cpu: "0.5"
+ cpu: "1"
memory: "1Gi"
limits:
- cpu: "1"
+ cpu: "2"
memory: "4Gi"
large:
requests:
cpu: "1"
memory: "2Gi"
limits:
- cpu: "2"
+ cpu: "3"
memory: "8Gi"
unlimited: {}
readinessProbe:
diff --git a/kubernetes/so/components/so-bpmn-infra/Chart.yaml b/kubernetes/so/components/so-bpmn-infra/Chart.yaml
index 6f52dfaef3..b379037bcf 100755
--- a/kubernetes/so/components/so-bpmn-infra/Chart.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/Chart.yaml
@@ -18,7 +18,7 @@ apiVersion: v2
appVersion: "1.0"
description: A Helm chart for SO Bpmn Infra
name: so-bpmn-infra
-version: 13.1.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/so/components/so-bpmn-infra/resources/config/overrides/override.yaml b/kubernetes/so/components/so-bpmn-infra/resources/config/overrides/override.yaml
index eebc71a11a..cab991c2e0 100755
--- a/kubernetes/so/components/so-bpmn-infra/resources/config/overrides/override.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/resources/config/overrides/override.yaml
@@ -299,7 +299,7 @@ policy:
sdnc:
auth: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==
host: http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}
- path: /restconf/operations/GENERIC-RESOURCE-API
+ path: /rests/operations/GENERIC-RESOURCE-API
si:
svc:
types: PORT-MIRROR,PPROBE
@@ -311,7 +311,7 @@ sdnc:
callback:
timeout: PT5M
lcm:
- path: '/restconf/operations/LCM:'
+ path: '/rests/operations/LCM:'
actionTimeout: 300000
dmapp:
readTopic: SDNC-LCM-WRITE
diff --git a/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml b/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
index ec1932143d..190b89d530 100755
--- a/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
@@ -20,6 +20,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ index .Values.minReadySeconds }}
strategy:
type: {{ index .Values.updateStrategy.type }}
@@ -65,7 +66,8 @@ spec:
readOnly: true
- name: {{ include "common.fullname" . }}-logs
mountPath: {{ .Values.log.path }}
-{{ include "so.helpers.livenessProbe" .| indent 8 }}
+ {{- include "so.helpers.startupProbe" .| indent 8 }}
+ {{- include "so.helpers.livenessProbe" .| indent 8 }}
ports: {{ include "common.containerPorts" . | nindent 10 }}
# Filebeat sidecar container
{{ include "common.log.sidecar" . | nindent 6 }}
diff --git a/kubernetes/so/components/so-bpmn-infra/values.yaml b/kubernetes/so/components/so-bpmn-infra/values.yaml
index d5cee518db..d2c5fa2b47 100755
--- a/kubernetes/so/components/so-bpmn-infra/values.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/values.yaml
@@ -33,6 +33,8 @@ readinessCheck:
wait_for:
jobs:
- '{{ include "common.release" . }}-so-mariadb-config-job'
+ services:
+ - 'so-catalog-db-adapter'
#################################################################
# Secrets metaconfig
@@ -60,7 +62,7 @@ secrets:
#################################################################
# Application configuration defaults.
#################################################################
-image: onap/so/bpmn-infra:1.13.0
+image: onap/so/bpmn-infra:1.15.0
pullPolicy: Always
kafkaUser:
@@ -136,6 +138,7 @@ vnf:
version: v2
replicaCount: 1
+revisionHistoryLimit: 1
minReadySeconds: 10
containerPort: &containerPort 8081
logPath: ./logs/bpmn/
@@ -178,8 +181,7 @@ resources:
livenessProbe:
path: /manage/health
scheme: HTTP
- initialDelaySeconds: 600
- periodSeconds: 60
+ periodSeconds: 20
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 3
diff --git a/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml b/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
index e3a77de71d..02673ecce5 100755
--- a/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
@@ -19,6 +19,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ index .Values.minReadySeconds }}
strategy:
type: {{ index .Values.updateStrategy.type }}
@@ -57,7 +58,8 @@ spec:
- name: config
mountPath: /app/config
readOnly: true
-{{ include "so.helpers.livenessProbe" .| indent 8 }}
+ {{- include "so.helpers.startupProbe" .| indent 8 }}
+ {{- include "so.helpers.livenessProbe" .| indent 8 }}
ports: {{ include "common.containerPorts" . | nindent 10 }}
serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
volumes:
diff --git a/kubernetes/so/components/so-catalog-db-adapter/values.yaml b/kubernetes/so/components/so-catalog-db-adapter/values.yaml
index 5a5325f629..85f7467038 100755
--- a/kubernetes/so/components/so-catalog-db-adapter/values.yaml
+++ b/kubernetes/so/components/so-catalog-db-adapter/values.yaml
@@ -82,6 +82,7 @@ mso:
auth: Basic YnBlbDpwYXNzd29yZDEk
replicaCount: 1
+revisionHistoryLimit: 1
minReadySeconds: 10
containerPort: &containerPort 8082
logPath: ./logs/catdb/
@@ -125,8 +126,7 @@ livenessProbe:
path: /manage/health
port: 8082
scheme: HTTP
- initialDelaySeconds: 600
- periodSeconds: 60
+ periodSeconds: 20
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 3
diff --git a/kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml b/kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml
index d8670f1c41..60baffad14 100755
--- a/kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-cnf-adapter/templates/deployment.yaml
@@ -20,6 +20,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ index .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ index .Values.minReadySeconds }}
strategy:
type: {{ index .Values.updateStrategy.type }}
@@ -80,12 +81,12 @@ spec:
readOnly: true
- name: encoder
mountPath: /input
+ {{- include "so.helpers.startupProbe" .| indent 10 }}
livenessProbe:
httpGet:
path: {{ index .Values.livenessProbe.path}}
port: {{ index .Values.containerPort }}
scheme: {{ index .Values.livenessProbe.scheme}}
- initialDelaySeconds: {{ index .Values.livenessProbe.initialDelaySeconds}}
periodSeconds: {{ index .Values.livenessProbe.periodSeconds}}
timeoutSeconds: {{ index .Values.livenessProbe.timeoutSeconds}}
successThreshold: {{ index .Values.livenessProbe.successThreshold}}
diff --git a/kubernetes/so/components/so-cnf-adapter/values.yaml b/kubernetes/so/components/so-cnf-adapter/values.yaml
index 32f87270a6..5befddc462 100755
--- a/kubernetes/so/components/so-cnf-adapter/values.yaml
+++ b/kubernetes/so/components/so-cnf-adapter/values.yaml
@@ -104,6 +104,7 @@ mso:
requestDb:
auth: ${REQUEST_AUTH}
replicaCount: 1
+revisionHistoryLimit: 1
minReadySeconds: 10
containerPort: &containerPort 8090
logPath: ./logs/cnf-adapter/
@@ -131,10 +132,10 @@ resources:
small:
limits:
cpu: "1"
- memory: "1Gi"
+ memory: "1.5Gi"
requests:
cpu: "0.5"
- memory: "1Gi"
+ memory: "1.5Gi"
large:
limits:
cpu: "2"
@@ -147,8 +148,7 @@ livenessProbe:
path: /manage/health
port: 8090
scheme: HTTP
- initialDelaySeconds: 600
- periodSeconds: 60
+ periodSeconds: 20
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 3
diff --git a/kubernetes/so/components/so-cnfm-lcm/templates/deployment.yaml b/kubernetes/so/components/so-cnfm-lcm/templates/deployment.yaml
index 45572c9692..040fbadc3d 100644
--- a/kubernetes/so/components/so-cnfm-lcm/templates/deployment.yaml
+++ b/kubernetes/so/components/so-cnfm-lcm/templates/deployment.yaml
@@ -18,6 +18,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ index .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ index .Values.minReadySeconds }}
strategy:
type: {{ index .Values.updateStrategy.type }}
diff --git a/kubernetes/so/components/so-cnfm-lcm/values.yaml b/kubernetes/so/components/so-cnfm-lcm/values.yaml
index 9a85ec8c98..add8ad439d 100644
--- a/kubernetes/so/components/so-cnfm-lcm/values.yaml
+++ b/kubernetes/so/components/so-cnfm-lcm/values.yaml
@@ -77,6 +77,7 @@ sdc:
key: 566B754875657232314F5548556D3665
replicaCount: 1
+revisionHistoryLimit: 1
minReadySeconds: 10
containerPort: &containerPort 9888
logPath: ./logs/so-cnfm-lcm/
@@ -103,7 +104,7 @@ flavor: small
resources:
small:
limits:
- cpu: "2000m"
+ cpu: "3000m"
memory: "4Gi"
requests:
cpu: "500m"
@@ -119,9 +120,9 @@ resources:
livenessProbe:
port: *containerPort
- initialDelaySeconds: 600
- periodSeconds: 60
+ periodSeconds: 20
timeoutSeconds: 10
+ initialDelaySeconds: 60
successThreshold: 1
failureThreshold: 3
@@ -152,4 +153,3 @@ serviceAccount:
nameOverride: so-cnfm-lcm
roles:
- read
-
diff --git a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
index dc6f2b74d6..ad5548733e 100644
--- a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
+++ b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
@@ -128,10 +128,10 @@ resources:
small:
limits:
cpu: "1"
- memory: "1Gi"
+ memory: "3Gi"
requests:
cpu: "0.5"
- memory: "1Gi"
+ memory: "2Gi"
large:
limits:
cpu: "2"
diff --git a/kubernetes/so/components/so-etsi-sol005-adapter/values.yaml b/kubernetes/so/components/so-etsi-sol005-adapter/values.yaml
index 2b219d0595..cfeb071b68 100755
--- a/kubernetes/so/components/so-etsi-sol005-adapter/values.yaml
+++ b/kubernetes/so/components/so-etsi-sol005-adapter/values.yaml
@@ -105,17 +105,17 @@ resources:
small:
limits:
cpu: "1"
- memory: "1Gi"
+ memory: "3Gi"
requests:
cpu: "0.5"
- memory: "1Gi"
+ memory: "2Gi"
large:
limits:
cpu: "2"
- memory: "2Gi"
+ memory: "4Gi"
requests:
cpu: "1"
- memory: "2Gi"
+ memory: "3Gi"
unlimited: {}
livenessProbe:
path: /manage/health
diff --git a/kubernetes/so/components/so-mariadb/Chart.yaml b/kubernetes/so/components/so-mariadb/Chart.yaml
index f66f740b34..fb138b690f 100755
--- a/kubernetes/so/components/so-mariadb/Chart.yaml
+++ b/kubernetes/so/components/so-mariadb/Chart.yaml
@@ -16,7 +16,7 @@
apiVersion: v2
description: MariaDB Service
name: so-mariadb
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/so/components/so-mariadb/templates/job.yaml b/kubernetes/so/components/so-mariadb/templates/job.yaml
index 20cba67a26..c075c6922a 100644
--- a/kubernetes/so/components/so-mariadb/templates/job.yaml
+++ b/kubernetes/so/components/so-mariadb/templates/job.yaml
@@ -25,10 +25,9 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
- annotations:
- "helm.sh/hook": pre-upgrade,pre-install
- "helm.sh/hook-weight": "1"
- "helm.sh/hook-delete-policy": before-hook-creation
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
@@ -81,10 +80,9 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
- annotations:
- "helm.sh/hook": post-upgrade,post-rollback,post-install
- "helm.sh/hook-weight": "0"
- "helm.sh/hook-delete-policy": before-hook-creation
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/so/components/so-mariadb/values.yaml b/kubernetes/so/components/so-mariadb/values.yaml
index 7eea6a5cf8..dbbe03cdb5 100755
--- a/kubernetes/so/components/so-mariadb/values.yaml
+++ b/kubernetes/so/components/so-mariadb/values.yaml
@@ -22,7 +22,7 @@ global:
nodePortPrefix: 302
nodePortPrefixExt: 304
repository: nexus3.onap.org:10001
- readinessImage: onap/oom/readiness:6.0.3
+ readinessImage: onap/oom/readiness:6.1.1
ubuntuInitRepository: docker.io
mariadbGalera:
# flag to enable the DB creation via mariadb-operator
@@ -212,3 +212,18 @@ readinessCheck:
wait_for:
services:
- '{{ include "common.mariadbService" . }}'
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/so/components/so-nssmf-adapter/values.yaml b/kubernetes/so/components/so-nssmf-adapter/values.yaml
index d45ee69401..09d652e4eb 100755
--- a/kubernetes/so/components/so-nssmf-adapter/values.yaml
+++ b/kubernetes/so/components/so-nssmf-adapter/values.yaml
@@ -132,17 +132,17 @@ resources:
small:
limits:
cpu: "1"
- memory: "1Gi"
+ memory: "2Gi"
requests:
cpu: "0.5"
- memory: "1Gi"
+ memory: "2Gi"
large:
limits:
cpu: "2"
- memory: "2Gi"
+ memory: "3Gi"
requests:
cpu: "1"
- memory: "2Gi"
+ memory: "3Gi"
unlimited: {}
livenessProbe:
path: /manage/health
diff --git a/kubernetes/so/components/so-openstack-adapter/Chart.yaml b/kubernetes/so/components/so-openstack-adapter/Chart.yaml
index 1129cf23a2..4051b0bd03 100755
--- a/kubernetes/so/components/so-openstack-adapter/Chart.yaml
+++ b/kubernetes/so/components/so-openstack-adapter/Chart.yaml
@@ -17,7 +17,7 @@ apiVersion: v2
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: so-openstack-adapter
-version: 13.0.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/so/components/so-openstack-adapter/values.yaml b/kubernetes/so/components/so-openstack-adapter/values.yaml
index 15074b5712..ee2cedae08 100755
--- a/kubernetes/so/components/so-openstack-adapter/values.yaml
+++ b/kubernetes/so/components/so-openstack-adapter/values.yaml
@@ -54,7 +54,7 @@ secrets:
#################################################################
# Application configuration defaults.
#################################################################
-image: onap/so/openstack-adapter:1.12.2
+image: onap/so/openstack-adapter:1.15.0
pullPolicy: Always
# Local mariadb galera instance default name
@@ -115,14 +115,14 @@ flavor: small
resources:
small:
limits:
- cpu: "1"
+ cpu: "2"
memory: "1.5Gi"
requests:
cpu: "0.5"
memory: "1.5Gi"
large:
limits:
- cpu: "2"
+ cpu: "3"
memory: "3Gi"
requests:
cpu: "1"
diff --git a/kubernetes/so/components/so-request-db-adapter/Chart.yaml b/kubernetes/so/components/so-request-db-adapter/Chart.yaml
index 32095c29b7..7ce788960d 100755
--- a/kubernetes/so/components/so-request-db-adapter/Chart.yaml
+++ b/kubernetes/so/components/so-request-db-adapter/Chart.yaml
@@ -16,7 +16,7 @@
apiVersion: v2
description: A Helm chart for request-db-adapter
name: so-request-db-adapter
-version: 13.0.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml b/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
index 329d45e480..93eef57795 100755
--- a/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
@@ -19,6 +19,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ index .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ index .Values.minReadySeconds }}
strategy:
type: {{ index .Values.updateStrategy.type }}
@@ -57,7 +58,8 @@ spec:
- name: config
mountPath: /app/config
readOnly: true
-{{ include "so.helpers.livenessProbe" .| indent 8 }}
+ {{- include "so.helpers.startupProbe" .| indent 8 }}
+ {{- include "so.helpers.livenessProbe" .| indent 8 }}
ports: {{- include "common.containerPorts" . | nindent 10 }}
serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
volumes:
diff --git a/kubernetes/so/components/so-request-db-adapter/values.yaml b/kubernetes/so/components/so-request-db-adapter/values.yaml
index 9eecb245c7..d6cad0744b 100755
--- a/kubernetes/so/components/so-request-db-adapter/values.yaml
+++ b/kubernetes/so/components/so-request-db-adapter/values.yaml
@@ -54,7 +54,7 @@ secrets:
#################################################################
# Application configuration defaults.
#################################################################
-image: onap/so/request-db-adapter:1.12.2
+image: onap/so/request-db-adapter:1.15.0
pullPolicy: Always
# Local mariadb galera instance default name
@@ -80,6 +80,7 @@ mso:
auth: Basic YnBlbDpwYXNzd29yZDEk
replicaCount: 1
+revisionHistoryLimit: 1
minReadySeconds: 10
containerPort: &containerPort 8083
logPath: ./logs/reqdb/
@@ -123,8 +124,7 @@ livenessProbe:
path: /manage/health
port: 8083
scheme: HTTP
- initialDelaySeconds: 600
- periodSeconds: 60
+ periodSeconds: 20
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 3
diff --git a/kubernetes/so/components/so-sdc-controller/Chart.yaml b/kubernetes/so/components/so-sdc-controller/Chart.yaml
index fc5496cc3a..b710b37ae6 100755
--- a/kubernetes/so/components/so-sdc-controller/Chart.yaml
+++ b/kubernetes/so/components/so-sdc-controller/Chart.yaml
@@ -17,7 +17,7 @@ apiVersion: v2
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: so-sdc-controller
-version: 13.0.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/so/components/so-sdc-controller/values.yaml b/kubernetes/so/components/so-sdc-controller/values.yaml
index 1fe5b50cf7..f7a838a8d9 100755
--- a/kubernetes/so/components/so-sdc-controller/values.yaml
+++ b/kubernetes/so/components/so-sdc-controller/values.yaml
@@ -55,7 +55,7 @@ secrets:
#################################################################
# Application configuration defaults.
#################################################################
-image: onap/so/sdc-controller:1.12.2
+image: onap/so/sdc-controller:1.15.0
pullPolicy: Always
# Local mariadb galera instance default name
diff --git a/kubernetes/so/components/so-sdnc-adapter/Chart.yaml b/kubernetes/so/components/so-sdnc-adapter/Chart.yaml
index c43cad7624..a1c886cac9 100755
--- a/kubernetes/so/components/so-sdnc-adapter/Chart.yaml
+++ b/kubernetes/so/components/so-sdnc-adapter/Chart.yaml
@@ -17,7 +17,7 @@ apiVersion: v2
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: so-sdnc-adapter
-version: 13.0.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/so/components/so-sdnc-adapter/resources/config/overrides/override.yaml b/kubernetes/so/components/so-sdnc-adapter/resources/config/overrides/override.yaml
index 55dc11526d..8c44ad7a8a 100755
--- a/kubernetes/so/components/so-sdnc-adapter/resources/config/overrides/override.yaml
+++ b/kubernetes/so/components/so-sdnc-adapter/resources/config/overrides/override.yaml
@@ -160,16 +160,16 @@ org:
bpelurl: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/WorkflowMessage
sdncauth: {{ .Values.org.onap.so.adapters.sdnc.sdncauth }}
sdncconnecttime: 5000
- sdncurl10: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/GENERIC-RESOURCE-API:'
- sdncurl11: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/VNFTOPOLOGYAIC-API:'
+ sdncurl10: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/GENERIC-RESOURCE-API:'
+ sdncurl11: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/VNFTOPOLOGYAIC-API:'
sdncurl12: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/'
- sdncurl13: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/opticalservice:'
- sdncurl5: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/config'
- sdncurl6: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/VNF-API:'
- sdncurl7: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/L3UCPE-API:'
- sdncurl8: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/NBNC-API:'
- sdncurl9: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/NORTHBOUND-API:service-topology-operation'
- sdncurl20: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/restconf/operations/LCM:'
+ sdncurl13: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/opticalservice:'
+ sdncurl5: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/data'
+ sdncurl6: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/VNF-API:'
+ sdncurl7: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/L3UCPE-API:'
+ sdncurl8: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/NBNC-API:'
+ sdncurl9: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/NORTHBOUND-API:service-topology-operation'
+ sdncurl20: 'http://{{ .Values.global.sdncOamService }}.{{ include "common.namespace" . }}:{{ .Values.global.sdncOamPort }}/rests/operations/LCM:'
service:
infra:
service-topology-infra-activate-operation: POST|90000|sdncurl9|sdnc-request-header|com:att:sdnctl:northbound-api:v1
diff --git a/kubernetes/so/components/so-sdnc-adapter/values.yaml b/kubernetes/so/components/so-sdnc-adapter/values.yaml
index 61ec096111..c228366ad8 100755
--- a/kubernetes/so/components/so-sdnc-adapter/values.yaml
+++ b/kubernetes/so/components/so-sdnc-adapter/values.yaml
@@ -61,7 +61,7 @@ secrets:
#################################################################
# Application configuration defaults.
#################################################################
-image: onap/so/sdnc-adapter:1.12.2
+image: onap/so/sdnc-adapter:1.15.0
pullPolicy: Always
org:
diff --git a/kubernetes/so/components/soHelpers/Chart.yaml b/kubernetes/so/components/soHelpers/Chart.yaml
index 36ce3fae70..280e3e237e 100755
--- a/kubernetes/so/components/soHelpers/Chart.yaml
+++ b/kubernetes/so/components/soHelpers/Chart.yaml
@@ -16,7 +16,7 @@
apiVersion: v2
description: A Helm chart for SO helpers
name: soHelpers
-version: 13.0.0
+version: 13.0.1
dependencies:
- name: common
diff --git a/kubernetes/so/components/soHelpers/templates/_livenessProbe.tpl b/kubernetes/so/components/soHelpers/templates/_livenessProbe.tpl
index e596b806ed..70ea57c709 100644
--- a/kubernetes/so/components/soHelpers/templates/_livenessProbe.tpl
+++ b/kubernetes/so/components/soHelpers/templates/_livenessProbe.tpl
@@ -7,7 +7,9 @@ livenessProbe:
path: {{ $subchartDot.Values.livenessProbe.path }}
port: {{ $subchartDot.Values.containerPort }}
scheme: {{ $subchartDot.Values.livenessProbe.scheme }}
+{{- if $subchartDot.Values.livenessProbe.initialDelaySeconds }}
initialDelaySeconds: {{ $subchartDot.Values.livenessProbe.initialDelaySeconds }}
+{{- end }}
periodSeconds: {{ $subchartDot.Values.livenessProbe.periodSeconds }}
timeoutSeconds: {{ $subchartDot.Values.livenessProbe.timeoutSeconds }}
successThreshold: {{ $subchartDot.Values.livenessProbe.successThreshold }}
diff --git a/kubernetes/so/components/soHelpers/templates/_startupProbe.tpl b/kubernetes/so/components/soHelpers/templates/_startupProbe.tpl
new file mode 100644
index 0000000000..3ea89160b7
--- /dev/null
+++ b/kubernetes/so/components/soHelpers/templates/_startupProbe.tpl
@@ -0,0 +1,14 @@
+{{- define "so.helpers.startupProbe" -}}
+{{- $dot := default . .dot -}}
+{{- $initRoot := default $dot.Values.soHelpers .initRoot -}}
+{{- $subchartDot := fromJson (include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot)) }}
+startupProbe:
+ httpGet:
+ path: {{ $subchartDot.Values.startupProbe.path }}
+ port: {{ $subchartDot.Values.containerPort }}
+ scheme: {{ $subchartDot.Values.startupProbe.scheme }}
+ periodSeconds: {{ $subchartDot.Values.startupProbe.periodSeconds }}
+ timeoutSeconds: {{ $subchartDot.Values.startupProbe.timeoutSeconds }}
+ successThreshold: {{ $subchartDot.Values.startupProbe.successThreshold }}
+ failureThreshold: {{ $subchartDot.Values.startupProbe.failureThreshold }}
+{{- end -}}
diff --git a/kubernetes/so/components/soHelpers/values.yaml b/kubernetes/so/components/soHelpers/values.yaml
index ec3fef2d81..60a71f4de0 100755
--- a/kubernetes/so/components/soHelpers/values.yaml
+++ b/kubernetes/so/components/soHelpers/values.yaml
@@ -24,10 +24,16 @@ global:
# Application configuration defaults.
#################################################################
+startupProbe:
+ path: /manage/health
+ scheme: HTTP
+ periodSeconds: 5
+ timeoutSeconds: 5
+ successThreshold: 1
+ failureThreshold: 120
livenessProbe:
path: /manage/health
scheme: HTTP
- initialDelaySeconds: 600
periodSeconds: 60
timeoutSeconds: 10
successThreshold: 1
diff --git a/kubernetes/so/resources/config/mso/mso-docker.json b/kubernetes/so/resources/config/mso/mso-docker.json
index 119a31304a..9a8284c3e9 100755
--- a/kubernetes/so/resources/config/mso/mso-docker.json
+++ b/kubernetes/so/resources/config/mso/mso-docker.json
@@ -58,15 +58,15 @@
{
"sdncurls":
[
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/L3SDN-API:",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/config/L3SDN-API:",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/Firewall-API:",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/config",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/VNF-API:",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/NBNC-API:",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/NORTHBOUND-API:service-topology-operation",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/GENERIC-RESOURCE-API:",
- "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/restconf/operations/VNFTOPOLOGYAIC-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/L3SDN-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/data/L3SDN-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/Firewall-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/data",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/VNF-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/NBNC-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/NORTHBOUND-API:service-topology-operation",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/GENERIC-RESOURCE-API:",
+ "http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/rests/operations/VNFTOPOLOGYAIC-API:",
"http://{{.Values.config.sdnc.serviceName}}:{{.Values.config.sdnc.port}}/"
],
diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml
index 0d53ea3aa8..8742059f85 100755
--- a/kubernetes/so/values.yaml
+++ b/kubernetes/so/values.yaml
@@ -154,7 +154,7 @@ dbCreds:
userName: so_user
adminName: so_admin
-image: onap/so/api-handler-infra:1.12.2
+image: onap/so/api-handler-infra:1.15.0
server:
aai:
diff --git a/kubernetes/uui/Chart.yaml b/kubernetes/uui/Chart.yaml
index 900a6c97e1..1b3ca07032 100644
--- a/kubernetes/uui/Chart.yaml
+++ b/kubernetes/uui/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP uui
name: uui
-version: 13.1.0
+version: 15.0.1
dependencies:
- name: common
@@ -31,14 +31,17 @@ dependencies:
version: ~13.x-0
repository: '@local'
- name: uui-server
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/uui-server'
- name: uui-nlp
version: ~13.x-0
repository: 'file://components/uui-nlp'
- name: uui-intent-analysis
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/uui-intent-analysis'
- name: uui-llm-adaptation
- version: ~13.x-0
+ version: ~15.x-0
repository: 'file://components/uui-llm-adaptation'
+ - name: nginx
+ version: ~18.3.x-0
+ repository: '@local'
diff --git a/kubernetes/uui/components/uui-intent-analysis/Chart.yaml b/kubernetes/uui/components/uui-intent-analysis/Chart.yaml
index bd1f6eedab..25fa9459c5 100644
--- a/kubernetes/uui/components/uui-intent-analysis/Chart.yaml
+++ b/kubernetes/uui/components/uui-intent-analysis/Chart.yaml
@@ -15,7 +15,7 @@
apiVersion: v2
description: ONAP uui intent analysis
name: uui-intent-analysis
-version: 13.0.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/uui/components/uui-intent-analysis/resources/entrypoint/run.sh b/kubernetes/uui/components/uui-intent-analysis/resources/entrypoint/run.sh
index cf68e7c96a..0107a73805 100644
--- a/kubernetes/uui/components/uui-intent-analysis/resources/entrypoint/run.sh
+++ b/kubernetes/uui/components/uui-intent-analysis/resources/entrypoint/run.sh
@@ -20,7 +20,7 @@ main_path="/home/uui"
echo @main_path@ $main_path
JAVA_PATH="$JAVA_HOME/bin/java"
-JAVA_OPTS="-Xms50m -Xmx128m"
+JAVA_OPTS="-XX:MaxRAMPercentage=${MAX_RAM_PERCENTAGE:-70}"
echo @JAVA_PATH@ $JAVA_PATH
echo @JAVA_OPTS@ $JAVA_OPTS
diff --git a/kubernetes/uui/components/uui-intent-analysis/templates/deployment.yaml b/kubernetes/uui/components/uui-intent-analysis/templates/deployment.yaml
index d2824d1bbb..890bc5e033 100644
--- a/kubernetes/uui/components/uui-intent-analysis/templates/deployment.yaml
+++ b/kubernetes/uui/components/uui-intent-analysis/templates/deployment.yaml
@@ -19,6 +19,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
diff --git a/kubernetes/uui/components/uui-intent-analysis/templates/job.yaml b/kubernetes/uui/components/uui-intent-analysis/templates/job.yaml
index 9c499132a9..639cad158a 100644
--- a/kubernetes/uui/components/uui-intent-analysis/templates/job.yaml
+++ b/kubernetes/uui/components/uui-intent-analysis/templates/job.yaml
@@ -24,6 +24,9 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/uui/components/uui-intent-analysis/values.yaml b/kubernetes/uui/components/uui-intent-analysis/values.yaml
index 73903ceae9..53c1aa036d 100644
--- a/kubernetes/uui/components/uui-intent-analysis/values.yaml
+++ b/kubernetes/uui/components/uui-intent-analysis/values.yaml
@@ -40,7 +40,7 @@ secrets:
password: '{{ .Values.postgres.config.pgUserPassword }}'
passwordPolicy: generate
-image: onap/usecase-ui-intent-analysis:14.0.0
+image: onap/usecase-ui-intent-analysis:15.0.0
pullPolicy: Always
# flag to enable debugging - application support required
@@ -49,6 +49,7 @@ flavor: small
replicaCount: 1
nodeSelector: {}
affinity: {}
+revisionHistoryLimit: 1
service:
type: ClusterIP
@@ -124,3 +125,17 @@ resources:
memory: "1Gi"
unlimited: {}
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/uui/components/uui-llm-adaptation/Chart.yaml b/kubernetes/uui/components/uui-llm-adaptation/Chart.yaml
index 1c36c236ee..2391ac35f1 100644
--- a/kubernetes/uui/components/uui-llm-adaptation/Chart.yaml
+++ b/kubernetes/uui/components/uui-llm-adaptation/Chart.yaml
@@ -15,7 +15,7 @@
apiVersion: v2
description: ONAP uui llm adaptation
name: uui-llm-adaptation
-version: 13.0.0
+version: 15.0.0
dependencies:
- name: common
diff --git a/kubernetes/uui/components/uui-llm-adaptation/resources/entrypoint/run.sh b/kubernetes/uui/components/uui-llm-adaptation/resources/entrypoint/run.sh
index f1dcefa168..7786624d53 100644
--- a/kubernetes/uui/components/uui-llm-adaptation/resources/entrypoint/run.sh
+++ b/kubernetes/uui/components/uui-llm-adaptation/resources/entrypoint/run.sh
@@ -20,7 +20,7 @@ main_path="/home/uui"
echo @main_path@ $main_path
JAVA_PATH="$JAVA_HOME/bin/java"
-JAVA_OPTS="-Xms50m -Xmx128m"
+JAVA_OPTS="-XX:MaxRAMPercentage=${MAX_RAM_PERCENTAGE:-70}"
echo @JAVA_PATH@ $JAVA_PATH
echo @JAVA_OPTS@ $JAVA_OPTS
diff --git a/kubernetes/uui/components/uui-llm-adaptation/templates/deployment.yaml b/kubernetes/uui/components/uui-llm-adaptation/templates/deployment.yaml
index d2824d1bbb..890bc5e033 100644
--- a/kubernetes/uui/components/uui-llm-adaptation/templates/deployment.yaml
+++ b/kubernetes/uui/components/uui-llm-adaptation/templates/deployment.yaml
@@ -19,6 +19,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
diff --git a/kubernetes/uui/components/uui-llm-adaptation/templates/job.yaml b/kubernetes/uui/components/uui-llm-adaptation/templates/job.yaml
index 90d6d63dab..efbcce2c4e 100644
--- a/kubernetes/uui/components/uui-llm-adaptation/templates/job.yaml
+++ b/kubernetes/uui/components/uui-llm-adaptation/templates/job.yaml
@@ -24,6 +24,9 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ include "common.release" . }}
heritage: {{ .Release.Service }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/uui/components/uui-llm-adaptation/values.yaml b/kubernetes/uui/components/uui-llm-adaptation/values.yaml
index f5804efb20..9ee1f3043e 100644
--- a/kubernetes/uui/components/uui-llm-adaptation/values.yaml
+++ b/kubernetes/uui/components/uui-llm-adaptation/values.yaml
@@ -40,7 +40,7 @@ secrets:
password: '{{ .Values.postgres.config.pgUserPassword }}'
passwordPolicy: generate
-image: onap/usecase-ui-llm-adaptation:14.0.0
+image: onap/usecase-ui-llm-adaptation:15.0.0
pullPolicy: Always
# flag to enable debugging - application support required
@@ -49,6 +49,7 @@ flavor: small
replicaCount: 1
nodeSelector: {}
affinity: {}
+revisionHistoryLimit: 1
service:
type: ClusterIP
@@ -124,3 +125,17 @@ resources:
memory: "1Gi"
unlimited: {}
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
diff --git a/kubernetes/uui/components/uui-nlp/templates/deployment.yaml b/kubernetes/uui/components/uui-nlp/templates/deployment.yaml
index 8ef27920b6..f8537bd325 100644
--- a/kubernetes/uui/components/uui-nlp/templates/deployment.yaml
+++ b/kubernetes/uui/components/uui-nlp/templates/deployment.yaml
@@ -22,6 +22,7 @@ kind: Deployment
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
replicas: 1
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
selector: {{- include "common.selectors" . | nindent 4 }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
diff --git a/kubernetes/uui/components/uui-nlp/values.yaml b/kubernetes/uui/components/uui-nlp/values.yaml
index cdfa50e3c0..abf1d7f227 100644
--- a/kubernetes/uui/components/uui-nlp/values.yaml
+++ b/kubernetes/uui/components/uui-nlp/values.yaml
@@ -43,6 +43,7 @@ service:
- name: http-upload
port: *upload_port
+revisionHistoryLimit: 1
liveness:
initialDelaySeconds: 300
diff --git a/kubernetes/uui/components/uui-server/Chart.yaml b/kubernetes/uui/components/uui-server/Chart.yaml
index 82e395ed45..e5677aa216 100644
--- a/kubernetes/uui/components/uui-server/Chart.yaml
+++ b/kubernetes/uui/components/uui-server/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP uui server
name: uui-server
-version: 13.0.0
+version: 15.0.1
dependencies:
- name: common
diff --git a/kubernetes/uui/components/uui-server/resources/config/application.properties b/kubernetes/uui/components/uui-server/resources/config/application.properties
index 36308c0313..3b966f902b 100644
--- a/kubernetes/uui/components/uui-server/resources/config/application.properties
+++ b/kubernetes/uui/components/uui-server/resources/config/application.properties
@@ -14,6 +14,7 @@
## limitations under the License.
##
## General App Properties
+spring.application.name=uui-server
server.servlet.contextPath=/api/usecaseui-server/v1
server.port=8082
spring.http.multipart.max-file-size=128MB
@@ -46,3 +47,28 @@ logging.level.*=INFO
#enable shutdown
endpoints.shutdown.enabled=true
endpoints.shutdown.sensitive=false
+
+intents.scheduledTask.enabled=false
+
+management.endpoints.web.exposure.include=*
+management.tracing.enabled={{ default .Values.global.tracing.enabled .Values.tracing.enabled }}
+management.tracing.sampling.probability={{ default .Values.global.tracing.sampling.probability .Values.tracing.collector.baseUrl }}
+management.zipkin.tracing.endpoint={{ default .Values.global.tracing.collector.baseUrl .Values.tracing.collector.baseUrl }}/api/v2/spans
+
+uui-server.client.aai.baseUrl={{ .Values.uuiServer.client.aai.baseUrl }}
+uui-server.client.aai.username={{ .Values.uuiServer.client.aai.username }}
+uui-server.client.aai.password={{ .Values.uuiServer.client.aai.password }}
+uui-server.client.so.baseUrl={{ .Values.uuiServer.client.so.baseUrl }}
+uui-server.client.so.username={{ .Values.uuiServer.client.so.username }}
+uui-server.client.so.password={{ .Values.uuiServer.client.so.password }}
+uui-server.client.sdc.baseUrl={{ .Values.uuiServer.client.sdc.baseUrl }}
+uui-server.client.sdc.username={{ .Values.uuiServer.client.sdc.username }}
+uui-server.client.sdc.password={{ .Values.uuiServer.client.sdc.password }}
+uui-server.slicing.service-invariant-uuid={{ .Values.uuiServer.slicing.serviceInvariantUuid }}
+uui-server.slicing.service-uuid={{ .Values.uuiServer.slicing.serviceUuid }}
+uui-server.slicing.global-subscriber-id={{ .Values.uuiServer.slicing.globalSubscriberId }}
+uui-server.slicing.service-type={{ .Values.uuiServer.slicing.serviceType }}
+uui-server.ccvpn.globalCustomerId={{ .Values.uuiServer.ccvpn.globalCustomerId }}
+uui-server.ccvpn.serviceType={{ .Values.uuiServer.ccvpn.serviceType }}
+uui-server.ccvpn.subscriberName={{ .Values.uuiServer.ccvpn.subscriberName }}
+uui-server.ccvpn.subscriberType={{ .Values.uuiServer.ccvpn.subscriberType }}
diff --git a/kubernetes/uui/components/uui-server/resources/entrypoint/run.sh b/kubernetes/uui/components/uui-server/resources/entrypoint/run.sh
index 283d55b741..6f585273a8 100644
--- a/kubernetes/uui/components/uui-server/resources/entrypoint/run.sh
+++ b/kubernetes/uui/components/uui-server/resources/entrypoint/run.sh
@@ -32,7 +32,7 @@ $dbScript 127.0.0.1 5432 postgres uui
echo "usecase-ui database init script finished normally..."
JAVA_PATH="$JAVA_HOME/bin/java"
-JAVA_OPTS="-Xms50m -Xmx128m"
+JAVA_OPTS="-XX:MaxRAMPercentage=${MAX_RAM_PERCENTAGE:-70}"
echo @JAVA_PATH@ $JAVA_PATH
echo @JAVA_OPTS@ $JAVA_OPTS
diff --git a/kubernetes/uui/components/uui-server/templates/deployment.yaml b/kubernetes/uui/components/uui-server/templates/deployment.yaml
index ae08054d88..6956970bbb 100644
--- a/kubernetes/uui/components/uui-server/templates/deployment.yaml
+++ b/kubernetes/uui/components/uui-server/templates/deployment.yaml
@@ -21,6 +21,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
template:
metadata: {{- include "common.templateMetadata" . | nindent 6 }}
spec:
@@ -85,14 +86,14 @@ spec:
{{- if eq .Values.liveness.enabled true }}
livenessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ index .Values.service.ports 0 "port" }}
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
{{- end }}
resources: {{ include "common.resources" . | nindent 12 }}
readinessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ index .Values.service.ports 0 "port" }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
env:
@@ -100,6 +101,8 @@ spec:
value: {{tpl .Values.msbaddr .}}
- name: MR_ADDR
value: {{tpl .Values.mraddr .}}
+ - name: AAI_ADDR
+ value: {{tpl .Values.aaiaddr .}}
- name: POSTGRES_IP
value: {{.Values.postgres.service.name2}}
- name: POSTGRES_PORT
diff --git a/kubernetes/uui/components/uui-server/templates/job.yaml b/kubernetes/uui/components/uui-server/templates/job.yaml
index e995c58a16..50cc0244c2 100644
--- a/kubernetes/uui/components/uui-server/templates/job.yaml
+++ b/kubernetes/uui/components/uui-server/templates/job.yaml
@@ -15,7 +15,15 @@
#
apiVersion: batch/v1
kind: Job
-metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ include "common.release" . }}
+ {{- if .Values.jobAnnotations }}
+ annotations: {{- include "common.tplValue" (dict "value" .Values.jobAnnotations "context" $) | nindent 4 }}
+ {{- end }}
spec:
backoffLimit: 20
template:
diff --git a/kubernetes/uui/components/uui-server/values.yaml b/kubernetes/uui/components/uui-server/values.yaml
index 6e715bd7a9..3a9aee888a 100644
--- a/kubernetes/uui/components/uui-server/values.yaml
+++ b/kubernetes/uui/components/uui-server/values.yaml
@@ -20,7 +20,11 @@
# Global configuration defaults.
#################################################################
global:
- nodePortPrefix: 302
+ tracing:
+ collector:
+ baseUrl: http://jaeger-collector.istio-system:9411
+ sampling:
+ probability: 1.0
secrets:
- uid: pg-root-pass
@@ -48,13 +52,15 @@ flavor: small
# application image
repository: nexus3.onap.org:10001
-image: onap/usecase-ui-server:14.0.0
+image: onap/usecase-ui-server:15.0.2
pullPolicy: Always
+revisionHistoryLimit: 1
# application configuration
msbaddr: msb-iag.{{include "common.namespace" .}}:80
mraddr: message-router.{{include "common.namespace" .}}:3904
+aaiaddr: aai.{{include "common.namespace" .}}:80
# application configuration override for postgres
postgres:
@@ -101,28 +107,11 @@ readiness:
periodSeconds: 10
service:
- type: NodePort
+ type: ClusterIP
name: uui-server
- internalPort: 8082
- nodePortPrefixOverride: 303
ports:
- name: http
port: 8082
- nodePort: '99'
- annotations:
- msb.onap.org/service-info: |
- {{ if .Values.global.msbEnabled -}}[
- {
- "serviceName": "usecaseui-server",
- "version": "v1",
- "url": "/api/usecase-server/v1",
- "path":"/iui/usecaseui",
- "protocol": "REST",
- "visualRange":"1",
- "port": "{{ include "common.getPort" (dict "global" . "name" "http" "getPlain" true) }}",
- "enable_ssl": false
- }
- ]{{ end }}
ingress:
enabled: false
@@ -131,6 +120,16 @@ ingress:
name: "uui-server"
port: 8082
+##
+## Use this to override the global defaults
+tracing:
+# enabled: false
+ collector: {}
+# baseUrl: http://jaeger-collector.istio-system:9411
+ sampling: {}
+# probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
+
+
# 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
@@ -147,7 +146,7 @@ resources:
cpu: "1.5"
memory: "2Gi"
requests:
- cpu: "1"
+ cpu: "300m"
memory: "1Gi"
large:
limits:
@@ -170,3 +169,43 @@ securityContext:
wait_for_job_container:
containers:
- '{{ include "common.name" . }}-job'
+
+# Annotations to control the execution and deletion of the job
+# Can be used to delete a job before an Upgrade
+#
+# jobAnnotations:
+# # In case of an ArgoCD deployment this Hook deletes the job before syncing
+# argocd.argoproj.io/hook: Sync
+# argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
+#
+# # In case of an Helm/Flux deployment this Hook deletes the job
+# # This is what defines this resource as a hook. Without this line, the
+# # job is considered part of the release.
+# "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
+# "helm.sh/hook-delete-policy": "before-hook-creation"
+# "helm.sh/hook-weight": "1"
+
+uuiServer:
+ client:
+ aai:
+ baseUrl: http://aai.onap
+ username: AAI
+ password: AAI
+ so:
+ baseUrl: http://so.onap:8080
+ username: InfraPortalClient
+ password: password1
+ sdc:
+ baseUrl: http://sdc-be:8080
+ username: aai
+ password: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+ slicing:
+ serviceInvariantUuid: defaultServiceInvariantUuid
+ serviceUuid: defaultServiceUuid
+ globalSubscriberId: defaultGlobalSubscriberId
+ serviceType: defaultServiceType
+ ccvpn:
+ globalCustomerId: defaultGlobalCustomerId
+ serviceType: defaultServiceType
+ subscriberName: defaultSubscriberName
+ subscriberType: defaultSubscriberType
diff --git a/kubernetes/uui/templates/deployment.yaml b/kubernetes/uui/templates/deployment.yaml
index c9feacc1ba..abbd35dc63 100644
--- a/kubernetes/uui/templates/deployment.yaml
+++ b/kubernetes/uui/templates/deployment.yaml
@@ -61,13 +61,13 @@ spec:
{{- if eq .Values.liveness.enabled true }}
livenessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ index .Values.service.ports 0 "port" }}
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
{{ end -}}
readinessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ index .Values.service.ports 0 "port" }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
volumeMounts:
diff --git a/kubernetes/uui/values.yaml b/kubernetes/uui/values.yaml
index 2cc0837f41..8f7c6cd3cb 100644
--- a/kubernetes/uui/values.yaml
+++ b/kubernetes/uui/values.yaml
@@ -17,7 +17,10 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
- nodePortPrefix: 302
+ tracing:
+ enabled: false
+ collectorHost: jaeger-collector.istio-system
+ collectorPort: 9411
subChartsOnly:
enabled: true
@@ -25,7 +28,7 @@ subChartsOnly:
flavor: small
# application image
-image: onap/usecase-ui:14.0.0
+image: onap/usecase-ui:15.0.1
pullPolicy: Always
# application configuration
@@ -56,35 +59,18 @@ readiness:
periodSeconds: 10
service:
- type: NodePort
+ type: ClusterIP
name: uui
- internalPort: 8080
- nodePortPrefixOverride: 303
ports:
- name: http
port: 8080
- nodePort: '98'
- annotations:
- msb.onap.org/service-info: |
- {{ if .Values.global.msbEnabled -}}[
- {
- "serviceName": "usecaseui-ui",
- "version": "v1",
- "url": "/usecase-ui",
- "path":"/iui/usecaseui",
- "protocol": "UI",
- "visualRange":"1",
- "port": "{{ include "common.getPort" (dict "global" . "name" "http" "getPlain" true) }}",
- "enable_ssl": false
- }
- ]{{ end }}
ingress:
- enabled: false
+ enabled: true
service:
- - baseaddr: "uui-ui"
- name: "uui"
- port: 8080
+ - baseaddr: uui
+ name: uui-proxy
+ port: 80
config:
ssl: "redirect"
@@ -114,3 +100,50 @@ resources:
cpu: "500m"
memory: "1Gi"
unlimited: {}
+
+nginx:
+ fullnameOverride: uui-proxy
+ serverBlock: |-
+ server {
+ listen 8080;
+ listen [::]:8080;
+
+ # Redirect root path to /usecase-ui
+ location = / {
+ return 301 /usecase-ui;
+ }
+
+ # frontend
+ location /usecase-ui {
+ proxy_pass http://uui:8080;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+ # uui-server
+ location /api/usecaseui-server {
+ proxy_pass http://uui-server:8082;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ # intent-service
+ location /api/usecaseui-intent-analysis {
+ proxy_pass http://uui-intent-analysis:8083;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ # llm-service
+ location /api/usecaseui-llm-adaptation {
+ proxy_pass http://uui-nlp:33011;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+ }