aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukasz Rajewski <lukasz.rajewski@t-mobile.pl>2022-10-21 10:36:42 +0200
committerLukasz Rajewski <lukasz.rajewski@t-mobile.pl>2022-10-21 14:02:36 +0200
commit0c85ee9fc85870f8ba39befc63b8351301d4842f (patch)
treee08524866f18783ed711d2d11f0586330c65436a
parente7121fda9d1d39ee02af43e78e0d93a93e6de94f (diff)
[APACHECNF] Various updates of the demo
Issue-ID: INT-2164 Signed-off-by: Lukasz Rajewski <lukasz.rajewski@t-mobile.pl> Change-Id: I1ce506db959d5fd865898422cb018b1428ec41ac
-rw-r--r--tutorials/ApacheCNF/README.txt21
-rw-r--r--tutorials/ApacheCNF/automation/Pipfile4
-rw-r--r--tutorials/ApacheCNF/automation/__init__.py1
-rw-r--r--tutorials/ApacheCNF/automation/healthcheck.py69
-rw-r--r--tutorials/ApacheCNF/automation/instantiate.py22
-rw-r--r--tutorials/ApacheCNF/automation/k8s_client.py59
-rw-r--r--tutorials/ApacheCNF/automation/onap_settings.py33
-rw-r--r--tutorials/ApacheCNF/automation/onap_settings_tnap.py106
-rw-r--r--tutorials/ApacheCNF/service_config.yaml7
-rw-r--r--tutorials/ApacheCNF/templates/cba/Definitions/CNF.json6
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config.tar.gzbin13406 -> 0 bytes
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/Chart.yaml6
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/.helmignore22
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/Chart.yaml22
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/README.md286
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_affinities.tpl94
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_capabilities.tpl33
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_errors.tpl20
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_images.tpl43
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_labels.tpl18
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_names.tpl32
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_secrets.tpl57
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_storage.tpl23
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_tplvalues.tpl13
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_utils.tpl45
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_validations.tpl278
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_warnings.tpl14
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/values.yaml3
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/_helpers.tpl263
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/deployment.yaml172
-rw-r--r--tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/values.yaml310
-rw-r--r--tutorials/ApacheCNF/templates/helm/Makefile2
32 files changed, 203 insertions, 1881 deletions
diff --git a/tutorials/ApacheCNF/README.txt b/tutorials/ApacheCNF/README.txt
index d1130908..80c9f065 100644
--- a/tutorials/ApacheCNF/README.txt
+++ b/tutorials/ApacheCNF/README.txt
@@ -1,13 +1,14 @@
Demo directory structure:
-/templates/ #Base directory containing vFW resources
- |- /base_dummy #Directory containing base payload of VSP package in OpenStack VSP format, doesn't need further proceeding
- |- /base_native #Directory containing base payload of VSP package in Helm VSP, doesn't need further proceeding
- |- /helm #Directory containing helm charts that need to be packaged and attached to VSP package
- \- /cba #Directory containing CBA content to be included to csar package. It is prepared for
-/examples/ #Directory with context-specific overrides over general resources
-/automation/ #Directory with automation scripts. For more details read README file inside.
+/service_config.yaml # Main configuration faile. Only here eventual changes are required
+/templates/ # Base directory containing Apache CNF resources
+ |- /base_native # Directory containing base payload of VSP package in Helm VSP, doesn't need further proceeding
+ |- /helm # Directory containing helm charts that need to be packaged and attached to VSP package
+ \- /cba # Directory containing CBA content to be included to csar package. It is prepared for deployment
+ # and configuration of apache helm package
+/automation/ # Directory with automation scripts. For more details read README file inside.
-Note: Makefile script generates two VSP packages, one in Frankfurt format with helm associated with dummy heat templates and second
-with native Helm VSP format where helm packages are standalone. CBA folder contains CBA Definition for native VSP format but
-make is coverting the definition into Frankfurt format for Frankfurt VSP. Frankfurt VSP is still supported in Guilin.
+Installation requirements:
+* Helm 3.5
+* make
+* python 3.8 or higher
diff --git a/tutorials/ApacheCNF/automation/Pipfile b/tutorials/ApacheCNF/automation/Pipfile
index a8e79269..c8d35a7f 100644
--- a/tutorials/ApacheCNF/automation/Pipfile
+++ b/tutorials/ApacheCNF/automation/Pipfile
@@ -6,9 +6,9 @@ verify_ssl = true
[dev-packages]
[packages]
-onapsdk = "==9.3.0"
+onapsdk = "==10.1.0"
markupsafe = "==2.0.1"
-kubernetes = "*"
+click = "==8.1.3"
[requires]
python_version = "3.8"
diff --git a/tutorials/ApacheCNF/automation/__init__.py b/tutorials/ApacheCNF/automation/__init__.py
index 9525040e..e3af8050 100644
--- a/tutorials/ApacheCNF/automation/__init__.py
+++ b/tutorials/ApacheCNF/automation/__init__.py
@@ -16,4 +16,3 @@
# ============LICENSE_END=========================================================
from .config import Config
-from .k8s_client import K8sClient
diff --git a/tutorials/ApacheCNF/automation/healthcheck.py b/tutorials/ApacheCNF/automation/healthcheck.py
index aee101dd..9c33375e 100644
--- a/tutorials/ApacheCNF/automation/healthcheck.py
+++ b/tutorials/ApacheCNF/automation/healthcheck.py
@@ -14,14 +14,14 @@
# limitations under the License.
#
# ============LICENSE_END=========================================================
-#todo update when onapsdk > 9.3.0
import logging
+import os
import zipfile
+from io import BytesIO
from onapsdk.aai.business import Customer
from onapsdk.cds.blueprint import Workflow, Blueprint
-
-from config import Config
+from config import Config, VariablesDict
#FIXME remove from global scope
logger = logging.getLogger("")
@@ -32,29 +32,24 @@ fh.setFormatter(fh_formatter)
logger.addHandler(fh)
-def resolve_hc_inputs():
+def resolve_hc_inputs(config: Config):
logger.info("******** Check Customer *******")
- customer = None
- for found_customer in list(Customer.get_all()):
- logger.debug("Customer %s found", found_customer.subscriber_name)
- if found_customer.subscriber_name == Config.GLOBAL_CUSTOMER_ID:
- logger.info("Customer %s found", found_customer.subscriber_name)
- customer = found_customer
- break
+ customer_id = config.service_instance["customer_id"]
+ customer = Customer.get_by_global_customer_id(customer_id)
if customer is None:
- raise Exception("Customer %s wasn't found in ONAP" % Config.GLOBAL_CUSTOMER_ID)
+ raise Exception("Customer %s wasn't found in ONAP" % customer_id)
logger.info("******** Check Service Subscription *******")
service_subscription = None
for service_sub in customer.service_subscriptions:
logger.debug("Service subscription %s is found", service_sub.service_type)
- if service_sub.service_type == Config.SERVICENAME:
- logger.info("Service %s subscribed", Config.SERVICENAME)
+ if service_sub.service_type == config.service_model["model_name"]:
+ logger.info("Service %s subscribed", config.service_model["model_name"])
service_subscription = service_sub
break
logger.info("******** Retrieve Service Metadata *******")
service_instance = None
for single_service in service_subscription.service_instances:
- if single_service.instance_name == Config.SERVICE_INSTANCE_NAME:
+ if single_service.instance_name == config.service_instance["instance_name"]:
service_instance = single_service
break
service_id = service_instance.instance_id
@@ -67,26 +62,32 @@ def resolve_hc_inputs():
return service_id, vnf_id
def main():
- blueprint = None
- with zipfile.ZipFile(Config.VSPFILE, 'r') as package:
- with package.open("CBA.zip", 'r') as cba:
- blueprint = Blueprint(cba.read())
+ mypath = os.path.dirname(os.path.realpath(__file__))
+ config = Config(env_dict=VariablesDict.env_variable)
+ for vnf in config.service_model["vnfs"]:
+ file = vnf["vsp"]["vsp_file"]
+ file_path = os.path.join(mypath, file)
+ with zipfile.ZipFile(file_path, 'r') as package:
+ cba_io = BytesIO(package.read("CBA.zip"))
+ cba_io.seek(0)
+ blueprint = Blueprint(cba_io.read())
+
+ healthcheck: Workflow = blueprint.get_workflow_by_name('health-check')
+ serv_id, vnf_id = resolve_hc_inputs(config)
+ cds_input = {"health-check-properties":
+ {
+ "service-instance-id": serv_id,
+ "vnf-id": vnf_id
+ }
+ }
- healthcheck = Workflow('health-check', None, blueprint)
- serv_id, vnf_id = resolve_hc_inputs()
- cds_input = {"health-check-properties":
- {
- "service-instance-id": serv_id,
- "vnf-id": vnf_id
- }
- }
- logger.info("Requesting Healthcheck for CBA %s:%s with inputs:\n%s",
- blueprint.metadata.template_name,
- blueprint.metadata.template_version,
- cds_input)
- result = healthcheck.execute(cds_input)
- logger.info("Healthcheck process completed with result: %s", result)
- logger.info("Please check cds-blueprints-processor logs to see exact status")
+ logger.info("Requesting Healthcheck for CBA %s:%s with inputs:\n%s",
+ blueprint.metadata.template_name,
+ blueprint.metadata.template_version,
+ cds_input)
+ result = healthcheck.execute(cds_input)
+ logger.info("Healthcheck process completed with result: %s", result)
+ logger.info("Please check cds-blueprints-processor logs to see exact status")
if __name__ == "__main__":
main()
diff --git a/tutorials/ApacheCNF/automation/instantiate.py b/tutorials/ApacheCNF/automation/instantiate.py
index 0d9dc5ef..ecbeaa41 100644
--- a/tutorials/ApacheCNF/automation/instantiate.py
+++ b/tutorials/ApacheCNF/automation/instantiate.py
@@ -1,5 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2021 Orange
+# Modification Copyright (C) 2022 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.
@@ -32,7 +33,6 @@ from onapsdk.so.instantiation import (
ServiceInstantiation,
InstantiationParameter, SoService, SoServiceVnf)
from onapsdk.sdc.service import Service
-# from onapsdk.vid import LineOfBusiness, OwningEntity, Platform, Project
from onapsdk.so.so_element import OrchestrationRequest
from onapsdk.aai.service_design_and_creation import Service as AaiService
@@ -203,7 +203,7 @@ def get_aai_service(service_type):
def instantiate_service_macro(config, service, cloud_region, tenant, customer, owning_entity,
- vid_project, vid_line_of_business, vid_platform):
+ project, line_of_business, platform):
service_instance_name = config.service_instance["instance_name"]
so_input = config.so_input
for vnf in so_input["vnfs"]:
@@ -232,9 +232,9 @@ def instantiate_service_macro(config, service, cloud_region, tenant, customer, o
tenant=tenant,
customer=customer,
owning_entity=owning_entity,
- project=vid_project,
- line_of_business=vid_line_of_business,
- platform=vid_platform,
+ project=project,
+ line_of_business=line_of_business,
+ platform=platform,
service_instance_name=service_instance_name,
aai_service=aai_service,
so_service=so_service
@@ -347,7 +347,7 @@ def get_properties(vnf):
def instantiate_service_alacarte(config, service_subscription, service_model, cloud_region, tenant, customer,
owning_entity,
- vid_project, vid_line_of_business, vid_platform):
+ project, line_of_business, platform):
raise NotImplementedError("Not supported since 2022")
service_instance_name = config.service_instance["instance_name"]
@@ -358,7 +358,7 @@ def instantiate_service_alacarte(config, service_subscription, service_model, cl
tenant=tenant,
customer=customer,
owning_entity=owning_entity,
- project=vid_project,
+ project=project,
service_instance_name=service_instance_name
)
check_orchestration_status(service_instantiation)
@@ -375,8 +375,8 @@ def instantiate_service_alacarte(config, service_subscription, service_model, cl
# TODO: instance name
vnf_instantiation = service_instance.add_vnf(
vnf=vnf,
- line_of_business=vid_line_of_business,
- platform=vid_platform,
+ line_of_business=line_of_business,
+ platform=platform,
vnf_parameters=vnf_parameters
)
check_orchestration_status(vnf_instantiation)
@@ -443,8 +443,8 @@ def main():
logger.info("******** Business Objects (OE, P, Pl, LoB) *******")
project = "Project-Demonstration"
platform = "Platform-test"
- line_of_business = "Orange-LOB"
- owning_entity = add_owning_entity("Orange")
+ line_of_business = config.user_params["company_name"] + "-LOB"
+ owning_entity = add_owning_entity(config.user_params["company_name"])
logger.info("******** Delete old profiles ********")
delete_old_profiles(service, config.service_instance)
diff --git a/tutorials/ApacheCNF/automation/k8s_client.py b/tutorials/ApacheCNF/automation/k8s_client.py
deleted file mode 100644
index 98b451bc..00000000
--- a/tutorials/ApacheCNF/automation/k8s_client.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# ============LICENSE_START=======================================================
-# Copyright (C) 2021 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=========================================================
-
-import os
-from pprint import pprint
-
-import oyaml as yaml
-from kubernetes import config, client
-from kubernetes.client import OpenApiException
-
-
-class K8sClient:
- def __init__(self, kubeconfig_path):
- self.mypath = os.path.dirname(os.path.realpath(__file__))
- config.load_kube_config(config_file=os.path.join(self.mypath, kubeconfig_path))
- self.api_instance = client.CustomObjectsApi()
-
- def read_custom_object_file(self, file_path):
- with open(file_path) as crd_file:
- crd_body = yaml.load(crd_file, Loader=yaml.FullLoader)
- return crd_body
-
- def get_custom_object_details(self, crd_body):
- group = crd_body["apiVersion"].split("/")[0]
- version = crd_body["apiVersion"].split("/")[1]
- plural = crd_body["kind"].lower() + "s"
- #name = crd_body["metadata"]["name"]
-
- return group, version, plural #, name
-
- def create_custom_object(self, file_path):
- crd_body = self.read_custom_object_file(file_path)
- #group, version, plural, name = self.get_custom_object_details(crd_body)
- group, version, plural = self.get_custom_object_details(crd_body)
- api_response = None
- try:
- api_response = self.api_instance.create_cluster_custom_object(group=group,
- version=version,
- plural=plural,
- body=crd_body,
- pretty="true")
- except OpenApiException as error:
- print(str(error.status) + " " + error.reason)
- pprint(error.body)
- return api_response
diff --git a/tutorials/ApacheCNF/automation/onap_settings.py b/tutorials/ApacheCNF/automation/onap_settings.py
index e0bad35d..414685e0 100644
--- a/tutorials/ApacheCNF/automation/onap_settings.py
+++ b/tutorials/ApacheCNF/automation/onap_settings.py
@@ -24,6 +24,39 @@
# ONAP SERVICES URLS #
# #
######################
+import logging.config
+
+LOG_CONFIG = {
+ "version": 1,
+ "disable_existing_loggers": False,
+ "formatters": {
+ "default": {
+ "class": "logging.Formatter",
+ "format": "%(asctime)s %(levelname)s %(lineno)d:%(filename)s(%(process)d) - %(message)s"
+ }
+ },
+ "handlers": {
+ "console": {
+ "level": "DEBUG",
+ "class": "logging.StreamHandler",
+ "formatter": "default"
+ },
+ "file": {
+ "level": "DEBUG",
+ "class": "logging.FileHandler",
+ "formatter": "default",
+ "filename": "/tmp/pythonsdk.debug.log",
+ "mode": "w"
+ }
+ },
+ "root": {
+ "level": "DEBUG",
+ "handlers": ["console", "file"]
+ }
+}
+
+logging.config.dictConfig(LOG_CONFIG)
+
AAI_URL = "https://aai.api.sparky.simpledemo.onap.org:30233"
AAI_API_VERSION = "v23"
diff --git a/tutorials/ApacheCNF/automation/onap_settings_tnap.py b/tutorials/ApacheCNF/automation/onap_settings_tnap.py
new file mode 100644
index 00000000..90455ec1
--- /dev/null
+++ b/tutorials/ApacheCNF/automation/onap_settings_tnap.py
@@ -0,0 +1,106 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 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=========================================================
+
+"""Global settings module.""" # pylint: disable=bad-whitespace
+# uncomment if socks is used
+#from onapsdk.onap_service import OnapService
+
+######################
+# #
+# ONAP SERVICES URLS #
+# #
+######################
+
+import logging.config
+
+LOG_CONFIG = {
+ "version": 1,
+ "disable_existing_loggers": False,
+ "formatters": {
+ "default": {
+ "class": "logging.Formatter",
+ "format": "%(asctime)s %(levelname)s %(lineno)d:%(filename)s(%(process)d) - %(message)s"
+ }
+ },
+ "handlers": {
+ "console": {
+ "level": "DEBUG",
+ "class": "logging.StreamHandler",
+ "formatter": "default"
+ },
+ "file": {
+ "level": "DEBUG",
+ "class": "logging.FileHandler",
+ "formatter": "default",
+ "filename": "/tmp/pythonsdk.debug.log",
+ "mode": "w"
+ }
+ },
+ "root": {
+ "level": "DEBUG",
+ "handlers": ["console", "file"]
+ }
+}
+
+logging.config.dictConfig(LOG_CONFIG)
+TNAP_ENV = "onap.local:81"
+AAI_URL = f"http://{TNAP_ENV}/aai-api"
+AAI_API_VERSION = "v23"
+AAI_AUTH = "Basic QUFJOkFBSQ=="
+CDS_URL = "http://portal.api.simpledemo.onap.org:30449"
+CDS_AUTH = ("ccsdkapps", "ccsdkapps")
+MSB_URL = f"http://{TNAP_ENV}/msb"
+SDC_BE_URL = f"http://{TNAP_ENV}/sdc-be"
+SDC_FE_URL = f"http://{TNAP_ENV}/sdc-fe"
+SDC_AUTH = "Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="
+SDNC_URL = "https://sdnc.api.simpledemo.onap.org:30267"
+SDNC_AUTH = "Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="
+SO_URL = f"http://{TNAP_ENV}/so"
+SO_API_VERSION = "v7"
+SO_AUTH = "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA=="
+SO_CAT_DB_AUTH = "Basic YnBlbDpwYXNzd29yZDEk"
+VID_URL = "https://vid.api.simpledemo.onap.org:30200"
+VID_API_VERSION = "/vid"
+CLAMP_URL = "https://clamp.api.simpledemo.onap.org:30258"
+CLAMP_AUTH = "Basic ZGVtb0BwZW9wbGUub3NhYWYub3JnOmRlbW8xMjM0NTYh"
+VES_URL = "http://ves.api.simpledemo.onap.org:30417"
+DMAAP_URL = "http://dmaap.api.simpledemo.onap.org:3904"
+NBI_URL = "https://nbi.api.simpledemo.onap.org:30274"
+NBI_API_VERSION = "/nbi/api/v4"
+DCAEMOD_URL = ""
+HOLMES_URL = "https://aai.api.sparky.simpledemo.onap.org:30293"
+POLICY_URL = ""
+
+## GUI
+AAI_GUI_URL = "https://aai.api.sparky.simpledemo.onap.org:30220"
+AAI_GUI_SERVICE = f"{AAI_GUI_URL}/services/aai/webapp/index.html#/browse"
+CDS_GUI_SERVICE = f"{CDS_URL}/"
+SO_MONITOR_GUI_SERVICE = f"{SO_URL}/"
+SDC_GUI_SERVICE = f"{SDC_FE_URL}/sdc1/portal"
+SDNC_DG_GUI_SERVICE = f"{SDNC_URL}/nifi/"
+SDNC_ODL_GUI_SERVICE = f"{SDNC_URL}/odlux/index.html"
+
+DCAEMOD_GUI_SERVICE = f"{DCAEMOD_URL}/"
+HOLMES_GUI_SERVICE = f"{HOLMES_URL}/iui/holmes/default.html"
+POLICY_GUI_SERVICE = f"{POLICY_URL}/onap/login.html"
+POLICY_CLAMP_GUI_SERVICE = f"{CLAMP_URL}/"
+
+# uncomment if socks is used
+#OnapService.set_proxy({'http': 'socks5h://127.0.0.1:8081', 'https': 'socks5h://127.0.0.1:8081'})
+
+# execute in the shell to apply these settings
+# export ONAP_PYTHON_SDK_SETTINGS="onap_settings"
diff --git a/tutorials/ApacheCNF/service_config.yaml b/tutorials/ApacheCNF/service_config.yaml
index ef88fd27..623832a5 100644
--- a/tutorials/ApacheCNF/service_config.yaml
+++ b/tutorials/ApacheCNF/service_config.yaml
@@ -1,5 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2022 Orange
+# Modification Copyright (C) 2022 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,6 +16,7 @@
#
# ============LICENSE_END=========================================================
user_params:
+ company_name: &company company
cnf_name: &cnf_name apache
k8s_namespace: test-cnf
k8s_version: 1.18.9
@@ -28,7 +30,7 @@ cloud_regions:
- name: *region
cloud_owner: K8sCloudOwner
cloud_type: k8s
- complex_id: k8s-complex1
+ complex_id: k8scomplex1
tenants:
- name: &tenant "{{ user_params.k8s_region }}-tenant"
k8s_version: "{{ user_params.k8s_version }}"
@@ -66,7 +68,7 @@ service_model:
service_instance:
model_name: *service_model_name
instance_name: I_{{ service_model.model_name }}_{{ user_params.release_name }}
- customer_id: orange
+ customer_id: *company
cloud_region: *region # "{{ cloud_regions[0].name }}"
tenant_name: *tenant # "{{ cloud_regions[0].tenants[0].name }}"
service_type: *cnf_name
@@ -87,7 +89,6 @@ service_instance:
k8s-rb-instance-release-name: "{{ user_params.release_name }}"
k8s-rb-profile-namespace: "{{ user_params.k8s_namespace }}"
k8s-rb-config-template-name: replica-count-template
- k8s-rb-config-template-source: deployment-config
k8s-rb-config-name: replica-count-change
k8s-rb-config-value-source: custom-values
# pnfs:
diff --git a/tutorials/ApacheCNF/templates/cba/Definitions/CNF.json b/tutorials/ApacheCNF/templates/cba/Definitions/CNF.json
index bf1a423b..2e30ce01 100644
--- a/tutorials/ApacheCNF/templates/cba/Definitions/CNF.json
+++ b/tutorials/ApacheCNF/templates/cba/Definitions/CNF.json
@@ -593,12 +593,6 @@
}
}
}
- },
- "artifacts": {
- "deployment-config": {
- "type": "artifact-k8sconfig-content",
- "file": "Templates/k8s-configs/deployment-config.tar.gz"
- }
}
},
"k8s-config-apply": {
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config.tar.gz b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config.tar.gz
deleted file mode 100644
index 44fc1ddf..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config.tar.gz
+++ /dev/null
Binary files differ
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/Chart.yaml b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/Chart.yaml
deleted file mode 100644
index 82fb790c..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/Chart.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: v1
-appVersion: 2.4.46
-description: A Helm chart to modify Apache deployment
-engine: gotpl
-name: apache
-version: 7.6.0
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/.helmignore b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/.helmignore
deleted file mode 100644
index 50af0317..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/.helmignore
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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/
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/Chart.yaml b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/Chart.yaml
deleted file mode 100644
index 85ef7d65..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/Chart.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-annotations:
- category: Infrastructure
-apiVersion: v1
-appVersion: 0.8.2
-description: A Library Helm Chart for grouping common logic between bitnami charts.
- This chart is not deployable by itself.
-home: https://github.com/bitnami/charts/tree/master/bitnami/common
-icon: https://bitnami.com/downloads/logos/bitnami-mark.png
-keywords:
-- common
-- helper
-- template
-- function
-- bitnami
-maintainers:
-- email: containers@bitnami.com
- name: Bitnami
-name: common
-sources:
-- https://github.com/bitnami/charts
-- http://www.bitnami.com/
-version: 0.8.2
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/README.md b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/README.md
deleted file mode 100644
index 9bcdfd6e..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/README.md
+++ /dev/null
@@ -1,286 +0,0 @@
-# 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: 0.x.x
- repository: https://charts.bitnami.com/bitnami
-```
-
-```bash
-$ helm dependency update
-```
-
-```yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: {{ include "common.names.fullname" . }}
-data:
- myvalue: "Hello World"
-```
-
-## 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.com/) for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of [Bitnami Kubernetes Production Runtime](https://kubeprod.io/) (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications.
-
-## Prerequisites
-
-- Kubernetes 1.12+
-- Helm 2.12+ or Helm 3.0-beta3+
-
-## Parameters
-
-The following table lists the helpers available in the library which are scoped in different sections.
-
-### Affinities
-
-| Helper identifier | Description | Expected Input |
-|-------------------------------------|-----------------------------------------------------------------|------------------------------------------------------------------|
-| `common.affinities.node.soft` | Return a soft nodeAffinity definition | `dict "key" "FOO" "values" (list "BAR" "BAZ")` |
-| `common.affinities.node.hard` | Return a hard nodeAffinity definition | `dict "key" "FOO" "values" (list "BAR" "BAZ")` |
-| `common.affinities.pod.soft` | Return a soft podAffinity/podAntiAffinity definition | `dict "component" "FOO" "context" $` |
-| `common.affinities.pod.hard` | Return a hard podAffinity/podAntiAffinity definition | `dict "component" "FOO" "context" $` |
-
-### Capabilities
-
-| Helper identifier | Description | Expected Input |
-|------------------------------------------------|-----------------------------------------------------------------|----------------------------|
-| `common.capabilities.deployment.apiVersion` | Return the appropriate apiVersion for deployment. | `.` Chart context |
-| `common.capabilities.statefulset.apiVersion` | Return the appropriate apiVersion for statefulset. | `.` Chart context |
-| `common.capabilities.ingress.apiVersion` | Return the appropriate apiVersion for ingress. | `.` Chart context |
-
-### Errors
-
-| Helper identifier | Description | Expected Input |
-|------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
-| `common.errors.upgrade.passwords.empty` | It will ensure required passwords are given when we are upgrading a chart. If `validationErrors` is not empty it will throw an error and will stop the upgrade action. | `dict "validationErrors" (list $validationError00 $validationError01) "context" $` |
-
-### Images
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
-| `common.images.image` | Return the proper and full image name | `dict "imageRoot" .Values.path.to.the.image "global" $`, see [ImageRoot](#imageroot) for the structure. |
-| `common.images.pullSecrets` | Return the proper Docker Image Registry Secret Names | `dict "images" (list .Values.path.to.the.image1, .Values.path.to.the.image2) "global" .Values.global` |
-
-### Labels
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|-----------------------------|
-| `common.labels.standard` | Return Kubernetes standard labels | `.` Chart context |
-| `common.labels.matchLabels` | Return the proper Docker Image Registry Secret Names | `.` Chart context |
-
-### Names
-
-| Helper identifier | Description | Expected Inpput |
-|--------------------------------|-----------------------------------------------------------------|-----------------------------|
-| `common.names.name` | Expand the name of the chart or use `.Values.nameOverride` | `.` Chart context |
-| `common.names.fullname` | Create a default fully qualified app name. | `.` Chart context |
-| `common.names.chart` | Chart name plus version | `.` Chart context |
-
-### Secrets
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `common.secrets.name` | Generate the name of the secret. | `dict "existingSecret" .Values.path.to.the.existingSecret "defaultNameSuffix" "mySuffix" "context" $` see [ExistingSecret](#existingsecret) for the structure. |
-| `common.secrets.key` | Generate secret key. | `dict "existingSecret" .Values.path.to.the.existingSecret "key" "keyName"` see [ExistingSecret](#existingsecret) for the structure. |
-
-### Storage
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
-| `common.affinities.node.soft` | Return a soft nodeAffinity definition | `dict "persistence" .Values.path.to.the.persistence "global" $`, see [Persistence](#persistence) for the structure. |
-
-### TplValues
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `common.tplvalues.render` | Renders a value that contains template | `dict "value" .Values.path.to.the.Value "context" $`, value is the value should rendered as template, context frecuently is the chart context `$` or `.` |
-
-### Utils
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------|
-| `common.utils.fieldToEnvVar` | Build environment variable name given a field. | `dict "field" "my-password"` |
-| `common.utils.secret.getvalue` | Print instructions to get a secret value. | `dict "secret" "secret-name" "field" "secret-value-field" "context" $` |
-| `common.utils.getValueFromKey` | Gets a value from `.Values` object given its key path | `dict "key" "path.to.key" "context" $` |
-
-### Validations
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `common.validations.values.single.empty` | Validate a value must not be empty. | `dict "valueKey" "path.to.value" "secret" "secret.name" "field" "my-password" "context" $` secret and field are optional. In case they are given, the helper will generate a how to get instruction. See [ValidateValue](#validatevalue) |
-| `common.validations.values.multiple.empty` | Validate a multiple values must not be empty. It returns a shared error for all the values. | `dict "required" (list $validateValueConf00 $validateValueConf01) "context" $`. See [ValidateValue](#validatevalue) |
-| `common.validations.values.mariadb.passwords` | This helper will ensure required password for MariaDB are not empty. It returns a shared error for all the values. | `dict "secret" "mariadb-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use postgresql chart and the helper. |
-| `common.validations.values.postgresql.passwords` | This helper will ensure required password for PostgreSQL are not empty. It returns a shared error for all the values. | `dict "secret" "postgresql-secret" "subchart" "true" "context" $` subchart field is optional and could be true or false it depends on where you will use postgresql chart and the helper. |
-
-### Warnings
-
-| Helper identifier | Description | Expected Input |
-|--------------------------------|-----------------------------------------------------------------|------------------------------------------------------------------|
-| `common.warnings.rollingTag` | Warning about using rolling tag. | `ImageRoot` see [ImageRoot](#imageroot) for the structure. |
-
-## 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. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
-
-pullSecrets:
- type: array
- items:
- type: string
- description: Optionally specify an array of imagePullSecrets.
-
-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 possiblity 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 --decode)
-
- '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 --decode)
-```
-
-## Notable changes
-
-N/A
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_affinities.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_affinities.tpl
deleted file mode 100644
index 40f575cb..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_affinities.tpl
+++ /dev/null
@@ -1,94 +0,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 }}
- - {{ . }}
- {{- 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 }}
- - {{ . }}
- {{- 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 soft podAffinity/podAntiAffinity definition
-{{ include "common.affinities.pods.soft" (dict "component" "FOO" "context" $) -}}
-*/}}
-{{- define "common.affinities.pods.soft" -}}
-{{- $component := default "" .component -}}
-preferredDuringSchedulingIgnoredDuringExecution:
- - podAffinityTerm:
- labelSelector:
- matchLabels: {{- (include "common.labels.matchLabels" .context) | nindent 10 }}
- {{- if not (empty $component) }}
- {{ printf "app.kubernetes.io/component: %s" $component }}
- {{- end }}
- namespaces:
- - {{ .context.Release.Namespace }}
- topologyKey: kubernetes.io/hostname
- weight: 1
-{{- end -}}
-
-{{/*
-Return a hard podAffinity/podAntiAffinity definition
-{{ include "common.affinities.pods.hard" (dict "component" "FOO" "context" $) -}}
-*/}}
-{{- define "common.affinities.pods.hard" -}}
-{{- $component := default "" .component -}}
-requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchLabels: {{- (include "common.labels.matchLabels" .context) | nindent 8 }}
- {{- if not (empty $component) }}
- {{ printf "app.kubernetes.io/component: %s" $component }}
- {{- end }}
- namespaces:
- - {{ .context.Release.Namespace }}
- topologyKey: kubernetes.io/hostname
-{{- 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/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_capabilities.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_capabilities.tpl
deleted file mode 100644
index 143bef2a..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_capabilities.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Return the appropriate apiVersion for deployment.
-*/}}
-{{- define "common.capabilities.deployment.apiVersion" -}}
-{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
-{{- print "extensions/v1beta1" -}}
-{{- else -}}
-{{- print "apps/v1" -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for statefulset.
-*/}}
-{{- define "common.capabilities.statefulset.apiVersion" -}}
-{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
-{{- print "apps/v1beta1" -}}
-{{- else -}}
-{{- print "apps/v1" -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for ingress.
-*/}}
-{{- define "common.capabilities.ingress.apiVersion" -}}
-{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
-{{- print "extensions/v1beta1" -}}
-{{- else -}}
-{{- print "networking.k8s.io/v1beta1" -}}
-{{- end -}}
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_errors.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_errors.tpl
deleted file mode 100644
index d6d3ec65..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_errors.tpl
+++ /dev/null
@@ -1,20 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Through 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 upgrade the release%s" -}}
- {{- printf $errorString $validationErrors | fail -}}
- {{- end -}}
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_images.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_images.tpl
deleted file mode 100644
index aafde9f3..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_images.tpl
+++ /dev/null
@@ -1,43 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Return the proper image name
-{{ include "common.images.image" ( dict "imageRoot" .Values.path.to.the.image "global" $) }}
-*/}}
-{{- define "common.images.image" -}}
-{{- $registryName := .imageRoot.registry -}}
-{{- $repositoryName := .imageRoot.repository -}}
-{{- $tag := .imageRoot.tag | toString -}}
-{{- if .global }}
- {{- if .global.imageRegistry }}
- {{- $registryName = .global.imageRegistry -}}
- {{- end -}}
-{{- end -}}
-{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
-{{- end -}}
-
-{{/*
-Return the proper Docker Image Registry Secret Names
-{{ 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 }}
-
- {{- if .global }}
- {{- range .global.imagePullSecrets -}}
- {{- $pullSecrets = append $pullSecrets . -}}
- {{- end -}}
- {{- end -}}
-
- {{- range .images -}}
- {{- range .pullSecrets -}}
- {{- $pullSecrets = append $pullSecrets . -}}
- {{- end -}}
- {{- end -}}
-
- {{- if (not (empty $pullSecrets)) }}
-imagePullSecrets:
- {{- range $pullSecrets }}
- - name: {{ . }}
- {{- end }}
- {{- end }}
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_labels.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_labels.tpl
deleted file mode 100644
index 252066c7..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_labels.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Kubernetes standard labels
-*/}}
-{{- define "common.labels.standard" -}}
-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 }}
-{{- end -}}
-
-{{/*
-Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector
-*/}}
-{{- define "common.labels.matchLabels" -}}
-app.kubernetes.io/name: {{ include "common.names.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_names.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_names.tpl
deleted file mode 100644
index adf2a74f..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_names.tpl
+++ /dev/null
@@ -1,32 +0,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 -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_secrets.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_secrets.tpl
deleted file mode 100644
index ebfb5d42..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_secrets.tpl
+++ /dev/null
@@ -1,57 +0,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/master/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" .) -}}
-{{- $name = .name -}}
-{{- 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/master/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 -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_storage.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_storage.tpl
deleted file mode 100644
index 60e2a844..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_storage.tpl
+++ /dev/null
@@ -1,23 +0,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 := .persistence.storageClass -}}
-{{- if .global -}}
- {{- if .global.storageClass -}}
- {{- $storageClass = .global.storageClass -}}
- {{- end -}}
-{{- end -}}
-
-{{- if $storageClass -}}
- {{- if (eq "-" $storageClass) -}}
- {{- printf "storageClassName: \"\"" -}}
- {{- else }}
- {{- printf "storageClassName: %s" $storageClass -}}
- {{- end -}}
-{{- end -}}
-
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_tplvalues.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_tplvalues.tpl
deleted file mode 100644
index 2db16685..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_tplvalues.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Renders a value that contains template.
-Usage:
-{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $) }}
-*/}}
-{{- define "common.tplvalues.render" -}}
- {{- if typeIs "string" .value }}
- {{- tpl .value .context }}
- {{- else }}
- {{- tpl (.value | toYaml) .context }}
- {{- end }}
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_utils.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_utils.tpl
deleted file mode 100644
index 74774a3c..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_utils.tpl
+++ /dev/null
@@ -1,45 +0,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 {{ .context.Release.Namespace }} {{ .secret }} -o jsonpath="{.data.{{ .field }}}" | base64 --decode)
-{{- 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 -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_validations.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_validations.tpl
deleted file mode 100644
index 05d1edba..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_validations.tpl
+++ /dev/null
@@ -1,278 +0,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" "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.single.empty" -}}
- {{- $value := include "common.utils.getValueFromKey" (dict "key" .valueKey "context" .context) }}
-
- {{- 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' to the command.%s" .valueKey .valueKey $varname $getCurrentValue -}}
- {{- end -}}
-{{- end -}}
-
-{{/*
-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.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 (not $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 -}}
-
-{{/*
-Auxiliar function to get the right value for existingSecret.
-
-Usage:
-{{ include "common.mariadb.values.existingSecret" (dict "context" $) }}
-Params:
- - subchart - Boolean - Optional. Whether MariaDB is used as subchart or not. Default: false
-*/}}
-{{- define "common.mariadb.values.existingSecret" -}}
- {{- if .subchart -}}
- {{- .context.Values.mariadb.existingSecret | quote -}}
- {{- else -}}
- {{- .context.Values.existingSecret | quote -}}
- {{- end -}}
-{{- end -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Validate PostgreSQL required passwords are not empty.
-
-Usage:
-{{ include "common.validations.values.postgresql.passwords" (dict "secret" "secretName" "subchart" false "context" $) }}
-Params:
- - secret - String - Required. Name of the secret where postgresql values are stored, e.g: "mysql-passwords-secret"
- - subchart - Boolean - Optional. Whether postgresql is used as subchart or not. Default: false
-*/}}
-{{- define "common.validations.values.postgresql.passwords" -}}
- {{- $existingSecret := include "common.postgresql.values.existingSecret" . -}}
- {{- $enabled := include "common.postgresql.values.enabled" . -}}
- {{- $valueKeyPostgresqlPassword := include "common.postgresql.values.key.postgressPassword" . -}}
- {{- $enabledReplication := include "common.postgresql.values.enabled.replication" . -}}
- {{- $valueKeyPostgresqlReplicationEnabled := include "common.postgresql.values.key.replicationPassword" . -}}
-
- {{- if and (not $existingSecret) (eq $enabled "true") -}}
- {{- $requiredPasswords := list -}}
-
- {{- $requiredPostgresqlPassword := dict "valueKey" $valueKeyPostgresqlPassword "secret" .secret "field" "postgresql-password" -}}
- {{- $requiredPasswords = append $requiredPasswords $requiredPostgresqlPassword -}}
-
- {{- if (eq $enabledReplication "true") -}}
- {{- $requiredPostgresqlReplicationPassword := dict "valueKey" $valueKeyPostgresqlReplicationEnabled "secret" .secret "field" "postgresql-replication-password" -}}
- {{- $requiredPasswords = append $requiredPasswords $requiredPostgresqlReplicationPassword -}}
- {{- end -}}
-
- {{- include "common.validations.values.multiple.empty" (dict "required" $requiredPasswords "context" .context) -}}
- {{- end -}}
-{{- end -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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 -}}
-
-{{/*
-Auxiliar 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/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_warnings.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_warnings.tpl
deleted file mode 100644
index ae10fa41..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/templates/_warnings.tpl
+++ /dev/null
@@ -1,14 +0,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://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/
-{{- end }}
-
-{{- end -}}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/values.yaml b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/values.yaml
deleted file mode 100644
index 9ecdc93f..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/charts/common/values.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-## bitnami/common
-## It is required by CI/CD tools and processes.
-exampleValue: common-chart
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/_helpers.tpl b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/_helpers.tpl
deleted file mode 100644
index e2e14018..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/_helpers.tpl
+++ /dev/null
@@ -1,263 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "apache.name" -}}
-{{- default .Chart.Name .Values.nameOverride | 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).
-*/}}
-{{- define "apache.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 -}}
-
-{{/*
-Common labels
-*/}}
-{{- define "apache.labels" -}}
-app.kubernetes.io/name: {{ include "apache.name" . }}
-helm.sh/chart: {{ include "apache.chart" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
-{{/*
-Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector
-*/}}
-{{- define "apache.matchLabels" -}}
-app.kubernetes.io/name: {{ include "apache.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end -}}
-
-{{/*
-Return the proper Apache image name
-*/}}
-{{- define "apache.image" -}}
-{{- $registryName := .Values.image.registry -}}
-{{- $repositoryName := .Values.image.repository -}}
-{{- $tag := .Values.image.tag | toString -}}
-{{/*
-Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
-but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
-Also, we can't use a single if because lazy evaluation is not an option
-*/}}
-{{- if .Values.global }}
- {{- if .Values.global.imageRegistry }}
- {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
- {{- else -}}
- {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
- {{- end -}}
-{{- else -}}
- {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the proper Apache Docker Image Registry Secret Names
-*/}}
-{{- define "apache.imagePullSecrets" -}}
-{{/*
-Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
-but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
-Also, we can't use a single if because lazy evaluation is not an option
-*/}}
-{{- if .Values.global }}
-{{- if .Values.global.imagePullSecrets }}
-imagePullSecrets:
-{{- range .Values.global.imagePullSecrets }}
- - name: {{ . }}
-{{- end }}
-{{- else if or .Values.image.pullSecrets .Values.metrics.image.pullSecrets }}
-imagePullSecrets:
-{{- range .Values.image.pullSecrets }}
- - name: {{ . }}
-{{- end }}
-{{- range .Values.metrics.image.pullSecrets }}
- - name: {{ . }}
-{{- end }}
-{{- end -}}
-{{- else if or .Values.image.pullSecrets .Values.metrics.image.pullSecrets }}
-imagePullSecrets:
-{{- range .Values.image.pullSecrets }}
- - name: {{ . }}
-{{- end }}
-{{- range .Values.metrics.image.pullSecrets }}
- - name: {{ . }}
-{{- end }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the proper image name (for the metrics image)
-*/}}
-{{- define "apache.metrics.image" -}}
-{{- $registryName := .Values.metrics.image.registry -}}
-{{- $repositoryName := .Values.metrics.image.repository -}}
-{{- $tag := .Values.metrics.image.tag | toString -}}
-{{/*
-Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
-but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
-Also, we can't use a single if because lazy evaluation is not an option
-*/}}
-{{- if .Values.global }}
- {{- if .Values.global.imageRegistry }}
- {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
- {{- else -}}
- {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
- {{- end -}}
-{{- else -}}
- {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return true if mouting a static web page
-*/}}
-{{- define "apache.useHtdocs" -}}
-{{ default "" (or .Values.cloneHtdocsFromGit.enabled .Values.htdocsConfigMap .Values.htdocsPVC) }}
-{{- end -}}
-
-{{/*
-Return associated volume
-*/}}
-{{- define "apache.htdocsVolume" -}}
-{{- if .Values.cloneHtdocsFromGit.enabled }}
-emptyDir: {}
-{{- else if .Values.htdocsConfigMap }}
-configMap:
- name: {{ .Values.htdocsConfigMap }}
-{{- else if .Values.htdocsPVC }}
-persistentVolumeClaim:
- claimName: {{ .Values.htdocsPVC }}
-{{- end }}
-{{- end -}}
-
-{{/*
-Validate data
-*/}}
-{{- define "apache.validateValues" -}}
-{{- $messages := list -}}
-{{- $messages := append $messages (include "apache.validateValues.htdocs" .) -}}
-{{- $messages := append $messages (include "apache.validateValues.htdocsGit" .) -}}
-{{- $messages := without $messages "" -}}
-{{- $message := join "\n" $messages -}}
- {{- if $message -}}
-{{- printf "\nVALUES VALIDATION:\n%s" $message | fail -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "apache.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Validate data (htdocs)
-*/}}
-{{- define "apache.validateValues.htdocs" -}}
-{{- if or (and .Values.cloneHtdocsFromGit.enabled (or .Values.htdocsPVC .htdocsConfigMap )) (and .Values.htdocsPVC (or .Values.htdocsConfigMap .Values.cloneHtdocsFromGit.enabled )) (and .Values.htdocsConfigMap (or .Values.htdocsPVC .Values.cloneHtdocsFromGit.enabled )) }}
-apache: htdocs
- You have selected more than one way of deploying htdocs. Please select only one of htdocsConfigMap cloneHtdocsFromGit or htdocsVolume
-{{- end }}
-{{- end -}}
-
-{{/*
-Validate data (htdocs git)
-*/}}
-{{- define "apache.validateValues.htdocsGit" -}}
-{{- if .Values.cloneHtdocsFromGit.enabled }}
- {{- if not .Values.cloneHtdocsFromGit.repository }}
-apache: htdocs-git-repository
- You did not specify a git repository to clone. Please set cloneHtdocsFromGit.repository
- {{- end }}
- {{- if not .Values.cloneHtdocsFromGit.branch }}
-apache: htdocs-git-branch
- You did not specify a branch to checkout in the git repository. Please set cloneHtdocsFromGit.branch
- {{- end }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Validate values of Apache - Incorrect extra volume settings
-*/}}
-{{- define "apache.validateValues.extraVolumes" -}}
-{{- if and (.Values.extraVolumes) (not .Values.extraVolumeMounts) -}}
-apache: missing-extra-volume-mounts
- You specified extra volumes but not mount points for them. Please set
- the extraVolumeMounts value
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the proper git image name
-*/}}
-{{- define "git.image" -}}
-{{- $registryName := .Values.git.registry -}}
-{{- $repositoryName := .Values.git.repository -}}
-{{- $tag := .Values.git.tag | toString -}}
-{{/*
-Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
-but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
-Also, we can't use a single if because lazy evaluation is not an option
-*/}}
-{{- if .Values.global }}
- {{- if .Values.global.imageRegistry }}
- {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
- {{- else -}}
- {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
- {{- end -}}
-{{- else -}}
- {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Get the vhosts config map name.
-*/}}
-{{- define "apache.vhostsConfigMap" -}}
-{{- if .Values.vhostsConfigMap -}}
- {{- printf "%s" (tpl .Values.vhostsConfigMap $) -}}
-{{- else -}}
- {{- printf "%s-vhosts" (include "apache.fullname" . ) -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Get the httpd.conf config map name.
-*/}}
-{{- define "apache.httpdConfConfigMap" -}}
-{{- if .Values.httpdConfConfigMap -}}
- {{- printf "%s" (tpl .Values.httpdConfConfigMap $) -}}
-{{- else -}}
- {{- printf "%s-httpd-conf" (include "apache.fullname" . ) -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Renders a value that contains template.
-Usage:
-{{ include "apache.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }}
-*/}}
-{{- define "apache.tplValue" -}}
- {{- if typeIs "string" .value }}
- {{- tpl .value .context }}
- {{- else }}
- {{- tpl (.value | toYaml) .context }}
- {{- end }}
-{{- end -}}
-
-
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/deployment.yaml b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/deployment.yaml
deleted file mode 100644
index 45077121..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/templates/deployment.yaml
+++ /dev/null
@@ -1,172 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: {{ include "apache.fullname" . }}
- labels: {{- include "apache.labels" . | nindent 4 }}
-spec:
- selector:
- matchLabels: {{- include "apache.matchLabels" . | nindent 6 }}
- replicas: {{ .Values.replicaCount }}
- template:
- metadata:
- labels: {{- include "apache.labels" . | nindent 8 }}
- {{- if or .Values.podAnnotations (and .Values.metrics.enabled .Values.metrics.podAnnotations) }}
- annotations:
- {{- if .Values.podAnnotations }}
- {{- include "apache.tplValue" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
- {{- end }}
- {{- if and .Values.metrics.enabled .Values.metrics.podAnnotations }}
- {{- include "apache.tplValue" (dict "value" .Values.metrics.podAnnotations "context" $) | nindent 8 }}
- {{- end }}
- {{- end }}
- spec:
-{{- include "apache.imagePullSecrets" . | nindent 6 }}
- hostAliases:
- - ip: "127.0.0.1"
- hostnames:
- - "status.localhost"
- {{- if .Values.affinity }}
- affinity: {{- include "apache.tplValue" (dict "value" .Values.affinity "context" $) | nindent 8 }}
- {{- else }}
- affinity:
- podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "context" $) | nindent 10 }}
- podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "context" $) | nindent 10 }}
- nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }}
- {{- end }}
- {{- if .Values.nodeSelector }}
- nodeSelector: {{- include "apache.tplValue" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
- {{- end }}
- {{- if .Values.tolerations }}
- tolerations: {{- include "apache.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
- {{- end }}
- {{- if .Values.cloneHtdocsFromGit.enabled }}
- initContainers:
- - name: git-clone-repository
- image: {{ include "git.image" . }}
- imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
- command:
- - /bin/bash
- - -ec
- - |
- git clone {{ .Values.cloneHtdocsFromGit.repository }} --branch {{ .Values.cloneHtdocsFromGit.branch }} /app
- resources: {{- toYaml .Values.cloneHtdocsFromGit.resources | nindent 12 }}
- volumeMounts:
- - name: htdocs
- mountPath: /app
- containers:
- - name: git-repo-syncer
- image: {{ include "git.image" . }}
- imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
- command:
- - /bin/bash
- - -ec
- - |
- while true; do
- cd /app && git pull origin {{ .Values.cloneHtdocsFromGit.branch }}
- sleep {{ .Values.cloneHtdocsFromGit.interval }}
- done
- resources: {{- toYaml .Values.cloneHtdocsFromGit.resources | nindent 12 }}
- volumeMounts:
- - name: htdocs
- mountPath: /app
- {{- else }}
- containers:
- {{- end }}
- - name: apache
- image: {{ include "apache.image" . }}
- imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
- env:
- - name: BITNAMI_DEBUG
- value: {{ ternary "true" "false" .Values.image.debug | quote }}
- {{- if .Values.extraEnvVars }}
- {{- include "apache.tplValue" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
- {{- end }}
- ports:
- - name: http
- containerPort: 8080
- - name: https
- containerPort: 8443
- {{- if .Values.livenessProbe.enabled }}
- livenessProbe:
- httpGet:
- path: {{ .Values.livenessProbe.path }}
- port: http
- initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
- timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
- successThreshold: {{ .Values.livenessProbe.successThreshold }}
- failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
- {{- end }}
- {{- if .Values.readinessProbe.enabled }}
- readinessProbe:
- httpGet:
- path: {{ .Values.readinessProbe.path }}
- port: http
- initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
- periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
- timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
- successThreshold: {{ .Values.readinessProbe.successThreshold }}
- failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
- {{- end }}
- {{- if .Values.resources }}
- resources: {{- toYaml .Values.resources | nindent 12 }}
- {{- end }}
- volumeMounts:
- {{- if (include "apache.useHtdocs" .) }}
- - name: htdocs
- mountPath: /app
- {{- end }}
- {{- if or (.Files.Glob "files/vhosts/*.conf") (.Values.vhostsConfigMap) }}
- - name: vhosts
- mountPath: /vhosts
- {{- end }}
- {{- if or (.Files.Glob "files/httpd.conf") (.Values.httpdConfConfigMap) }}
- - name: httpd-conf
- mountPath: /opt/bitnami/apache/conf/httpd.conf
- subPath: httpd.conf
- {{- end }}
- {{- if .Values.extraVolumeMounts }}
- {{- include "common.tplvalues.render" ( dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }}
- {{- end }}
- {{- if .Values.metrics.enabled }}
- - name: metrics
- image: {{ template "apache.metrics.image" . }}
- imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }}
- command: ['/bin/apache_exporter', '--scrape_uri', 'http://status.localhost:8080/server-status/?auto']
- ports:
- - name: metrics
- containerPort: 9117
- 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 }}
- {{- end }}
- {{- end }}
- volumes:
- {{- if (include "apache.useHtdocs" .) }}
- - name: htdocs
- {{- include "apache.htdocsVolume" . | nindent 10 }}
- {{- end }}
- {{- if or (.Files.Glob "files/vhosts/*.conf") (.Values.vhostsConfigMap) }}
- - name: vhosts
- configMap:
- name: {{ include "apache.vhostsConfigMap" . }}
- {{- end }}
- {{- if or (.Files.Glob "files/httpd.conf") (.Values.httpdConfConfigMap) }}
- - name: httpd-conf
- configMap:
- name: {{ include "apache.httpdConfConfigMap" . }}
- {{- end }}
- {{- if .Values.extraVolumes }}
- {{- include "common.tplvalues.render" ( dict "value" .Values.extraVolumes "context" $) | nindent 8 }}
- {{- end }}
diff --git a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/values.yaml b/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/values.yaml
deleted file mode 100644
index 3437982b..00000000
--- a/tutorials/ApacheCNF/templates/cba/Templates/k8s-configs/deployment-config/values.yaml
+++ /dev/null
@@ -1,310 +0,0 @@
-## Global Docker image parameters
-## Please, note that this will override the image parameters, including dependencies, configured to use the global value
-## Current available global Docker image parameters: imageRegistry and imagepullSecrets
-##
-# global:
-# imageRegistry: myRegistryName
-# imagePullSecrets:
-# - myRegistryKeySecretName
-
-## Bitnami Apache image version
-## ref: https://hub.docker.com/r/bitnami/apache/tags/
-##
-image:
- registry: docker.io
- repository: bitnami/apache
- tag: 2.4.46-debian-10-r62
- ## Specify a imagePullPolicy
- ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-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/
- ##
- # pullSecrets:
- # - myRegistryKeySecretName
-
- ## Set to true if you would like to see extra information on logs
- ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging
- ##
- debug: false
-
-## Bitnami Git image version
-## ref: https://hub.docker.com/r/bitnami/git/tags/
-##
-git:
- registry: docker.io
- repository: bitnami/git
- tag: 2.29.0-debian-10-r0
- 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/
- ##
- # pullSecrets:
- # - myRegistryKeySecretName
-
-## String to partially override apache.fullname template (will maintain the release name)
-##
-# nameOverride:
-
-## String to fully override apache.fullname template
-##
-# fullnameOverride:
-
-## Number of Apache replicas to deploy
-##
-replicaCount: 1
-
-## Pod affinity preset
-## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
-## Allowed values: soft, hard
-##
-podAffinityPreset: ""
-
-## Pod anti-affinity preset
-## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
-## Allowed values: soft, hard
-##
-podAntiAffinityPreset: soft
-
-## Node affinity preset
-## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
-## Allowed values: soft, hard
-##
-nodeAffinityPreset:
- ## Node affinity type
- ## Allowed values: soft, hard
- type: ""
- ## Node label key to match
- ## E.g.
- ## key: "kubernetes.io/e2e-az-name"
- ##
- key: ""
- ## Node label values to match
- ## E.g.
- ## values:
- ## - e2e-az1
- ## - e2e-az2
- ##
- values: []
-
-## 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: {}
-
-## Node labels for pod assignment
-## Ref: https://kubernetes.io/docs/user-guide/node-selection/
-##
-nodeSelector: {}
-
-## Tolerations for pod assignment
-## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-##
-tolerations: []
-
-## Get the server static content from a git repository
-##
-cloneHtdocsFromGit:
- enabled: false
- # repository:
- # branch:
- interval: 60
- resources: {}
-
-## Name of a config map with the server static content
-##
-# htdocsConfigMap:
-
-## Name of a PVC with the server static content
-##
-# htdocsPVC:
-
-## Name of a config map with the virtual hosts content
-##
-# vhostsConfigMap:
-
-## Name of a config map with the httpd.conf file contents
-##
-# httpdConfConfigMap:
-
-## Pod annotations
-## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
-##
-podAnnotations: {}
-
-## Apache pods' resource requests and limits
-## ref: http://kubernetes.io/docs/user-guide/compute-resources/
-##
-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. If you do want to specify resources, uncomment the following
- # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
- limits: {}
- # cpu: 100m
- # memory: 128Mi
- requests: {}
- # cpu: 100m
- # memory: 128Mi
-
-## Apache container's liveness and readiness probes
-## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
-##
-livenessProbe:
- enabled: true
- path: "/"
- port: http
- initialDelaySeconds: 180
- periodSeconds: 20
- timeoutSeconds: 5
- failureThreshold: 6
- successThreshold: 1
-readinessProbe:
- enabled: true
- path: "/"
- port: http
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 6
- successThreshold: 1
-
-## Ingress paramaters
-##
-ingress:
- ## Set to true to enable ingress record generation
- ##
- enabled: false
-
- ## Set this to true in order to add the corresponding annotations for cert-manager
- ##
- certManager: false
-
- ## When the ingress is enabled, a host pointing to this will be created
- ##
- hostname: example.local
-
- ## Ingress annotations done as key:value pairs
- ## For a full list of possible ingress annotations, please see
- ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
- ##
- ## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set
- ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set
- annotations: {}
- # kubernetes.io/ingress.class: nginx
-
- ## 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
- ## hosts:
- ## - name: example.local
- ## path: /
-
- ## The tls configuration for the ingress
- ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
- ##
- tls:
- - hosts:
- - example.local
- secretName: example.local-tls
-
- 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
- # - name: apache.local-tls
- # key:
- # certificate:
-
-## Prometheus Exporter / Metrics
-##
-metrics:
- enabled: false
- ## Bitnami Apache Prometheus Exporter image
- ## ref: https://hub.docker.com/r/bitnami/apache-exporter/tags/
- ##
- image:
- registry: docker.io
- repository: bitnami/apache-exporter
- tag: 0.8.0-debian-10-r186
- 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/
- ##
- # pullSecrets:
- # - myRegistryKeySecretName
- ## Metrics exporter pod Annotation and Labels
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
- ##
- podAnnotations:
- prometheus.io/scrape: "true"
- prometheus.io/port: "9117"
- ## Apache Prometheus exporter resource requests and limits
- ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
- ##
- 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. If you do want to specify resources, uncomment the following
- # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
- limits: {}
- # cpu: 100m
- # memory: 128Mi
- requests: {}
- # cpu: 100m
- # memory: 128Mi
-
-## Array to add extra volumes (evaluated as a template)
-##
-extraVolumes: []
-
-## Array to add extra mounts (normally used with extraVolumes, evaluated as a template)
-##
-extraVolumeMounts: []
-
-## An array to add extra env vars
-##
-extraEnvVars: []
-
-## Service paramaters
-##
-service:
- ## Service type
- ##
- type: LoadBalancer
- ## HTTP Port
- ##
- port: 80
- ## HTTPS Port
- ##
- httpsPort: 443
- ## 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: ""
- ## Set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
- # loadBalancerIP:
- ## Provide any additional annotations which may be required. 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: {}
-
- ## Enable client source IP preservation
- ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
- ##
- externalTrafficPolicy: Cluster
diff --git a/tutorials/ApacheCNF/templates/helm/Makefile b/tutorials/ApacheCNF/templates/helm/Makefile
index 5bcea8fb..21043b35 100644
--- a/tutorials/ApacheCNF/templates/helm/Makefile
+++ b/tutorials/ApacheCNF/templates/helm/Makefile
@@ -10,7 +10,7 @@ $(vf-modules:=-package): %-package: %-build
$(vf-modules:=-build): %-build: %-clean
helm repo add bitnami https://charts.bitnami.com/bitnami
- helm pull bitnami/apache --version 7.6.0
+ helm pull bitnami/apache --version 8.12.0
$(vf-modules:=-clean):
rm -f $(@:-clean=)-*.tgz