diff options
20 files changed, 942 insertions, 350 deletions
diff --git a/docs/MSB-OOM-MSC.png b/docs/MSB-OOM-MSC.png Binary files differdeleted file mode 100644 index 7c1e076ada..0000000000 --- a/docs/MSB-OOM-MSC.png +++ /dev/null diff --git a/docs/oom_developer_guide.rst b/docs/oom_developer_guide.rst index 1c18044b70..c9aa6290d7 100644 --- a/docs/oom_developer_guide.rst +++ b/docs/oom_developer_guide.rst @@ -4,6 +4,7 @@ .. Links .. _Helm: https://docs.helm.sh/ +.. _Helm Charts: https://github.com/kubernetes/charts .. _Kubernetes: https://Kubernetes.io/ .. _Docker: https://www.docker.com/ .. _Nexus: https://nexus.onap.org/#welcome @@ -14,6 +15,7 @@ .. _Kubernetes Storage Class: https://Kubernetes.io/docs/concepts/storage/storage-classes/ .. _Assigning Pods to Nodes: https://Kubernetes.io/docs/concepts/configuration/assign-pod-node/ + .. _developer-guide-label: OOM Developer Guide @@ -64,16 +66,336 @@ ONAP on a single laptop computer. Helm Charts =========== +A Helm chart is a collection of files that describe a related set of Kubernetes +resources. A simple chart might be used to deploy something simple, like a +memcached pod, while a complex chart might contain many micro-service arranged +in a hierarchy as found in the `aai` ONAP component. -Standard Chart Format ---------------------- +Charts are created as files laid out in a particular directory tree, then they +can be packaged into versioned archives to be deployed. There is a public +archive of `Helm Charts`_ on GitHub that includes many technologies applicable +to ONAP. Some of these charts have been used in ONAP and all of the ONAP charts +have been created following the guidelines provided. -Helm charts are available in the open-source community for a wide variety of -common software components which are used in ONAP and where possible. +The top level of the ONAP charts is shown below: +.. graphviz:: -Chart Hierarchy ---------------- + digraph onap_top_chart { + rankdir="LR"; + { + node [shape=folder] + oValues [label="values.yaml"] + oChart [label="Chart.yaml"] + dev [label="dev.yaml"] + prod [label="prod.yaml"] + crb [label="clusterrolebindings.yaml"] + secrets [label="secrets.yaml"] + } + { + node [style=dashed] + vCom [label="component"] + } + + onap -> oValues + onap -> oChart + onap -> templates + onap -> resources + oValues -> vCom + resources -> environments + environments -> dev + environments -> prod + templates -> crb + templates -> secrets + } + +Within the `values.yaml` file at the `onap` level, one will find a set of +boolean values that control which of the ONAP components get deployed as shown +below: + +.. code-block:: yaml + + aaf: # Application Authorization Framework + enabled: false + <...> + so: # Service Orchestrator + enabled: true + +By setting these flags a custom deployment can be created and used during +deployment by using the `-f` Helm option as follows:: + + > helm install local/onap -name development -f dev.yaml + +Note that there are one or more example deployment files in the +`onap/resources/environments/` directory. It is best practice to create a unique +deployment file for each environment used to ensure consistent behaviour. + +To aid in the long term supportability of ONAP, a set of common charts have +been created (and will be expanded in subsequent releases of ONAP) that can be +used by any of the ONAP components by including the common component in its +`requirements.yaml` file. The common components are arranged as follows: + +.. graphviz:: + + digraph onap_common_chart { + rankdir="LR"; + { + node [shape=folder] + mValues [label="values.yaml"] + ccValues [label="values.yaml"] + comValues [label="values.yaml"] + comChart [label="Chart.yaml"] + ccChart [label="Chart.yaml"] + mChart [label="Chart.yaml"] + + mReq [label="requirements.yaml"] + mService [label="service.yaml"] + mMap [label="configmap.yaml"] + ccName [label="_name.tpl"] + ccNS [label="_namespace.tpl"] + } + { + cCom [label="common"] + mTemp [label="templates"] + ccTemp [label="templates"] + } + { + more [label="...",style=dashed] + } + + common -> comValues + common -> comChart + common -> cCom + common -> mysql + common -> more + + cCom -> ccChart + cCom -> ccValues + cCom -> ccTemp + ccTemp -> ccName + ccTemp -> ccNS + + mysql -> mValues + mysql -> mChart + mysql -> mReq + mysql -> mTemp + mTemp -> mService + mTemp -> mMap + } + +The common section of charts consists of a set of templates that assist with +parameter substitution (`_name.tpl` and `_namespace.tpl`) and a set of charts +for components used throughout ONAP. Initially `mysql` is in the common area but +this will expand to include other databases like `mariadb-galera`, `postgres`, +and `cassandra`. Other candidates for common components include `redis` and +`kafka`. When the common components are used by other charts they are +instantiated each time. In subsequent ONAP releases some of the common +components could be a setup as services that are used by multiple ONAP +components thus minimizing the deployment and operational costs. + +All of the ONAP components have charts that follow the pattern shown below: + +.. graphviz:: + + digraph onap_component_chart { + rankdir="LR"; + { + node [shape=folder] + cValues [label="values.yaml"] + cChart [label="Chart.yaml"] + cService [label="service.yaml"] + cMap [label="configmap.yaml"] + cFiles [label="config file(s)"] + } + { + cCharts [label="charts"] + cTemp [label="templates"] + cRes [label="resources"] + + } + { + sCom [label="component",style=dashed] + } + + component -> cValues + component -> cChart + component -> cCharts + component -> cTemp + component -> cRes + cTemp -> cService + cTemp -> cMap + cRes -> config + config -> cFiles + cCharts -> sCom + } + +Note that the component charts may include a hierarchy of components and in +themselves can be quite complex. + +Configuration of the components varies somewhat from component to component but +generally follows the pattern of one or more `configmap.yaml` files which can +directly provide configuration to the containers in addition to processing +configuration files stored in the `config` directory. It is the responsibility +of each ONAP component team to update these configuration files when changes +are made to the project containers that impact configuration. + +The following section describes how the hierarchical ONAP configuration system is +key to management of such a large system. + +Configuration Management +======================== + +ONAP is a large system composed of many components - each of which are complex +systems in themselves - that needs to be deployed in a number of different +ways. For example, within a single operator's network there may be R&D +deployments under active development, pre-production versions undergoing system +testing and production systems that are operating live networks. Each of these +deployments will differ in significant ways, such as the version of the +software images deployed. In addition, there may be a number of application +specific configuration differences, such as operating system environment +variables. The following describes how the Helm configuration management +system is used within the OOM project to manage both ONAP infrastructure +configuration as well as ONAP components configuration. + +One of the artifacts that OOM/Kubernetes uses to deploy ONAP components is the +deployment specification, yet another yaml file. Within these deployment specs +are a number of parameters as shown in the following mariadb example: + +.. code-block:: yaml + + apiVersion: extensions/v1beta1 + kind: Deployment + metadata: + name: mariadb + spec: + <...> + template: + <...> + spec: + hostname: mariadb + containers: + - args: + image: nexus3.onap.org:10001/mariadb:10.1.11 + name: "mariadb" + env: + - name: MYSQL_ROOT_PASSWORD + value: password + - name: MARIADB_MAJOR + value: "10.1" + <...> + imagePullSecrets: + - name: onap-docker-registry-key + +Note that within the deployment specification, one of the container arguments +is the key/value pair image: nexus3.onap.org:10001/mariadb:10.1.11 which +specifies the version of the mariadb software to deploy. Although the +deployment specifications greatly simplify deployment, maintenance of the +deployment specifications themselves become problematic as software versions +change over time or as different versions are required for different +deployments. For example, if the R&D team needs to deploy a newer version of +mariadb than what is currently used in the production environment, they would +need to clone the deployment specification and change this value. Fortunately, +this problem has been solved with the templating capabilities of Helm. + +The following example shows how the deployment specifications are modified to +incorporate Helm templates such that key/value pairs can be defined outside of +the deployment specifications and passed during instantiation of the component. + +.. code-block:: yaml + + apiVersion: extensions/v1beta1 + kind: Deployment + metadata: + name: mariadb + namespace: "{{ .Values.nsPrefix }}-mso" + spec: + <...> + template: + <...> + spec: + hostname: mariadb + containers: + - args: + image: {{ .Values.image.mariadb }} + imagePullPolicy: {{ .Values.pullPolicy }} + name: "mariadb" + env: + - name: MYSQL_ROOT_PASSWORD + value: password + - name: MARIADB_MAJOR + value: "10.1" + <...> + imagePullSecrets: + - name: "{{ .Values.nsPrefix }}-docker-registry-key"apiVersion: extensions/v1beta1 + kind: Deployment + metadata: + name: mariadb + namespace: "{{ .Values.nsPrefix }}-mso" + spec: + <...> + template: + <...> + spec: + hostname: mariadb + containers: + - args: + image: {{ .Values.image.mariadb }} + imagePullPolicy: {{ .Values.pullPolicy }} + name: "mariadb" + env: + - name: MYSQL_ROOT_PASSWORD + value: password + - name: MARIADB_MAJOR + value: "10.1" + <...> + imagePullSecrets: + - name: "{{ .Values.nsPrefix }}-docker-registry-key" + +This version of the deployment specification has gone through the process of +templating values that are likely to change between deployments. Note that the +image is now specified as: image: {{ .Values.image.mariadb }} instead of a +string used previously. During the deployment phase, Helm (actually the Helm +sub-component Tiller) substitutes the {{ .. }} entries with a variable defined +in a values.yaml file. The content of this file is as follows: + +.. code-block:: yaml + + nsPrefix: onap + pullPolicy: IfNotPresent + image: + readiness: oomk8s/readiness-check:1.0.0 + mso: nexus3.onap.org:10001/openecomp/mso:1.0-STAGING-latest + mariadb: nexus3.onap.org:10001/mariadb:10.1.11 + +Within the values.yaml file there is an image section with the key/value pair +mariadb: nexus3.onap.org:10001/mariadb:10.1.11 which is the same value used in +the non-templated version. Once all of the substitutions are complete, the +resulting deployment specification ready to be used by Kubernetes. + +Also note that in this example, the namespace key/value pair is specified in +the values.yaml file. This key/value pair will be global across the entire +ONAP deployment and is therefore a prime example of where configuration +hierarchy can be very useful. + +When creating a deployment template consider the use of default values if +appropriate. Helm templating has built in support for DEFAULT values, here is +an example: + +.. code-block:: yaml + + imagePullSecrets: + - name: "{{ .Values.nsPrefix | default "onap" }}-docker-registry-key" + +The pipeline operator ("|") used here hints at that power of Helm templates in +that much like an operating system command line the pipeline operator allow +over 60 Helm functions to be embedded directly into the template (note that the +Helm template language is a superset of the Go template language). These +functions include simple string operations like upper and more complex flow +control operations like if/else. + + +ONAP Application Configuration +------------------------------ Dependency Management --------------------- @@ -177,17 +499,32 @@ Nodes ~~~~~ OOM works with both physical and virtual worker machines. -* Virtual Machine Deployments - If ONAP is to be deployed onto a set of virtual machines, the creation of the VMs is outside of the scope of OOM and could be done in many ways, such as +* Virtual Machine Deployments - If ONAP is to be deployed onto a set of virtual + machines, the creation of the VMs is outside of the scope of OOM and could be + done in many ways, such as - * manually, for example by a user using the OpenStack Horizon dashboard or AWS EC2, or - * automatically, for example with the use of a OpenStack Heat Orchestration Template which builds an ONAP stack, Azure ARM template, AWS CloudFormation Template, or - * orchestrated, for example with Cloudify creating the VMs from a TOSCA template and controlling their life cycle for the life of the ONAP deployment. + * manually, for example by a user using the OpenStack Horizon dashboard or + AWS EC2, or + * automatically, for example with the use of a OpenStack Heat Orchestration + Template which builds an ONAP stack, Azure ARM template, AWS CloudFormation + Template, or + * orchestrated, for example with Cloudify creating the VMs from a TOSCA + template and controlling their life cycle for the life of the ONAP + deployment. -* Physical Machine Deployments - If ONAP is to be deployed onto physical machines there are several options but the recommendation is to use Rancher along with Helm to associate hosts with a Kubernetes cluster. +* Physical Machine Deployments - If ONAP is to be deployed onto physical + machines there are several options but the recommendation is to use Rancher + along with Helm to associate hosts with a Kubernetes cluster. Pods ~~~~ -A group of containers with shared storage and networking can be grouped together into a Kubernetes pod. All of the containers within a pod are co-located and co-scheduled so they operate as a single unit. Within ONAP Amsterdam release, pods are mapped one-to-one to docker containers although this may change in the future. As explained in the Services section below the use of Pods within each ONAP component is abstracted from other ONAP components. +A group of containers with shared storage and networking can be grouped +together into a Kubernetes pod. All of the containers within a pod are +co-located and co-scheduled so they operate as a single unit. Within ONAP +Amsterdam release, pods are mapped one-to-one to docker containers although +this may change in the future. As explained in the Services section below the +use of Pods within each ONAP component is abstracted from other ONAP +components. Services ~~~~~~~~ @@ -328,10 +665,10 @@ machines). For example: nodeSelector: failure-domain.beta.Kubernetes.io/region: {{ .Values.location }} -- "location: West" is specified in the values.yaml file used to deploy - one DCAE cluster and "location: East" is specified in a second values.yaml +- "location: West" is specified in the `values.yaml` file used to deploy + one DCAE cluster and "location: East" is specified in a second `values.yaml` file (see OOM Configuration Management for more information about - configuration files like the values.yamlfile). + configuration files like the `values.yaml` file). Node affinity can also be used to achieve geographic redundancy if pods are assigned to multiple failure domains. For more information refer to `Assigning @@ -461,166 +798,142 @@ the database components of each of the projects and the same technique can be used for all persistent state information. -Configuration Management -======================== -ONAP is a large system composed of many components - each of which are complex -systems in themselves - that needs to be deployed in a number of different -ways. For example, within a single operator's network there may be R&D -deployments under active development, pre-production versions undergoing system -testing and production systems that are operating live networks. Each of these -deployments will differ in significant ways, such as the version of the -software images deployed. In addition, there may be a number of application -specific configuration differences, such as operating system environment -variables. The following describes how the Helm configuration management -system is used within the OOM project to manage both ONAP infrastructure -configuration as well as ONAP components configuration. +Environment Files +~~~~~~~~~~~~~~~~~ -One of the artifacts that OOM/Kubernetes uses to deploy ONAP components is the -deployment specification, yet another yaml file. Within these deployment specs -are a number of parameters as shown in the following mariadb example: +MSB Integration +=============== -.. code-block:: yaml +The \ `Microservices Bus +Project <https://wiki.onap.org/pages/viewpage.action?pageId=3246982>`__ provides +facilities to integrate micro-services into ONAP and therefore needs to +integrate into OOM - primarily through Consul which is the backend of +MSB service discovery. The following is a brief description of how this +integration will be done: - apiVersion: extensions/v1beta1 - kind: Deployment - metadata: - name: mariadb - spec: - <...> - template: - <...> - spec: - hostname: mariadb - containers: - - args: - image: nexus3.onap.org:10001/mariadb:10.1.11 - name: "mariadb" - env: - - name: MYSQL_ROOT_PASSWORD - value: password - - name: MARIADB_MAJOR - value: "10.1" - <...> - imagePullSecrets: - - name: onap-docker-registry-key +A registrator to push the service endpoint info to MSB service +discovery. -Note that within the deployment specification, one of the container arguments -is the key/value pair image: nexus3.onap.org:10001/mariadb:10.1.11 which -specifies the version of the mariadb software to deploy. Although the -deployment specifications greatly simplify deployment, maintenance of the -deployment specifications themselves become problematic as software versions -change over time or as different versions are required for different -deployments. For example, if the R&D team needs to deploy a newer version of -mariadb than what is currently used in the production environment, they would -need to clone the deployment specification and change this value. Fortunately, -this problem has been solved with the templating capabilities of Helm. +- The needed service endpoint info is put into the kubernetes yaml file + as annotation, including service name, Protocol,version, visual + range,LB method, IP, Port,etc. -The following example shows how the deployment specifications are modified to -incorporate Helm templates such that key/value pairs can be defined outside of -the deployment specifications and passed during instantiation of the component. +- OOM deploy/start/restart/scale in/scale out/upgrade ONAP components + +- Registrator watch the kubernetes event + +- When an ONAP component instance has been started/destroyed by OOM, + Registrator get the notification from kubernetes + +- Registrator parse the service endpoint info from annotation and + register/update/unregister it to MSB service discovery + +- MSB API Gateway uses the service endpoint info for service routing + and load balancing. + +Details of the registration service API can be found at \ `Microservice +Bus API +Documentation <https://wiki.onap.org/display/DW/Microservice+Bus+API+Documentation>`__. + +ONAP Component Registration to MSB +---------------------------------- +The charts of all ONAP components intending to register against MSB must have +an annotation in their service(s) template. A `sdc` example follows: .. code-block:: yaml - apiVersion: extensions/v1beta1 - kind: Deployment - metadata: - name: mariadb - namespace: "{{ .Values.nsPrefix }}-mso" - spec: - <...> - template: - <...> - spec: - hostname: mariadb - containers: - - args: - image: {{ .Values.image.mariadb }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: "mariadb" - env: - - name: MYSQL_ROOT_PASSWORD - value: password - - name: MARIADB_MAJOR - value: "10.1" - <...> - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key"apiVersion: extensions/v1beta1 - kind: Deployment + apiVersion: v1 + kind: Service metadata: - name: mariadb - namespace: "{{ .Values.nsPrefix }}-mso" - spec: - <...> - template: - <...> - spec: - hostname: mariadb - containers: - - args: - image: {{ .Values.image.mariadb }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: "mariadb" - env: - - name: MYSQL_ROOT_PASSWORD - value: password - - name: MARIADB_MAJOR - value: "10.1" - <...> - imagePullSecrets: - - name: "{{ .Values.nsPrefix }}-docker-registry-key" + labels: + app: sdc-be + name: sdc-be + namespace: "{{ .Values.nsPrefix }}" + annotations: + msb.onap.org/service-info: '[ + { + "serviceName": "sdc", + "version": "v1", + "url": "/sdc/v1", + "protocol": "REST", + "port": "8080", + "visualRange":"1" + }, + { + "serviceName": "sdc-deprecated", + "version": "v1", + "url": "/sdc/v1", + "protocol": "REST", + "port": "8080", + "visualRange":"1", + "path":"/sdc/v1" + } + ]' + ... -This version of the deployment specification has gone through the process of -templating values that are likely to change between deployments. Note that the -image is now specified as: image: {{ .Values.image.mariadb }} instead of a -string used previously. During the deployment phase, Helm (actually the Helm -sub-component Tiller) substitutes the {{ .. }} entries with a variable defined -in a values.yaml file. The content of this file is as follows: -.. code-block:: yaml +MSB Integration with OOM +------------------------ +A preliminary view of the OOM-MSB integration is as follows: - nsPrefix: onap - pullPolicy: IfNotPresent - image: - readiness: oomk8s/readiness-check:1.0.0 - mso: nexus3.onap.org:10001/openecomp/mso:1.0-STAGING-latest - mariadb: nexus3.onap.org:10001/mariadb:10.1.11 +.. figure:: MSB-OOM-Diagram.png -Within the values.yaml file there is an image section with the key/value pair -mariadb: nexus3.onap.org:10001/mariadb:10.1.11 which is the same value used in -the non-templated version. Once all of the substitutions are complete, the -resulting deployment specification ready to be used by Kubernetes. +A message sequence chart of the registration process: -Also note that in this example, the namespace key/value pair is specified in -the values.yaml file. This key/value pair will be global across the entire -ONAP deployment and is therefore a prime example of where configuration -hierarchy can be very useful. +.. uml:: -When creating a deployment template consider the use of default values if -appropriate. Helm templating has built in support for DEFAULT values, here is -an example: + participant "OOM" as oom + participant "ONAP Component" as onap + participant "Service Discovery" as sd + participant "External API Gateway" as eagw + participant "Router (Internal API Gateway)" as iagw -.. code-block:: yaml + box "MSB" #LightBlue + participant sd + participant eagw + participant iagw + end box - imagePullSecrets: - - name: "{{ .Values.nsPrefix | default "onap" }}-docker-registry-key" + == Deploy Servcie == -The pipeline operator ("|") used here hints at that power of Helm templates in -that much like an operating system command line the pipeline operator allow -over 60 Helm functions to be embedded directly into the template (note that the -Helm template language is a superset of the Go template language). These -functions include simple string operations like upper and more complex flow -control operations like if/else. + oom -> onap: Deploy + oom -> sd: Register service endpoints + sd -> eagw: Services exposed to external system + sd -> iagw: Services for internal use + == Component Life-cycle Management == -ONAP Application Configuration ------------------------------- + oom -> onap: Start/Stop/Scale/Migrate/Upgrade + oom -> sd: Update service info + sd -> eagw: Update service info + sd -> iagw: Update service info -Environment Files -~~~~~~~~~~~~~~~~~ + == Service Health Check == + + sd -> onap: Check the health of service + sd -> eagw: Update service status + sd -> iagw: Update service status + + +MSB Deployment Instructions +--------------------------- +MSB is helm installable ONAP component which is often automatically deployed. +To install it individually enter:: + + > helm install <repo-name>/msb + +.. note:: + TBD: Vaidate if the following procedure is still required. + +Please note that Kubernetes authentication token must be set at +*kubernetes/kube2msb/values.yaml* so the kube2msb registrator can get the +access to watch the kubernetes events and get service annotation by +Kubernetes APIs. The token can be found in the kubectl configuration file +*~/.kube/config* + +More details can be found here `MSB installation <http://onap.readthedocs.io/en/latest/submodules/msb/apigateway.git/docs/platform/installation.html>`__. -MSB Integration -=============== .. MISC .. ==== .. Note that although OOM uses Kubernetes facilities to minimize the effort diff --git a/kubernetes/aaf/Chart.yaml b/kubernetes/aaf/Chart.yaml index 24cb7fddf3..438835de40 100644 --- a/kubernetes/aaf/Chart.yaml +++ b/kubernetes/aaf/Chart.yaml @@ -13,6 +13,6 @@ # limitations under the License. apiVersion: v1 -description: A Helm chart for Kubernetes +description: ONAP Application Authorization Framework name: aaf -version: 1.1.0 +version: 2.0.0 diff --git a/kubernetes/aaf/charts/aaf-cs/.helmignore b/kubernetes/aaf/charts/aaf-cs/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-cs/.helmignore @@ -0,0 +1,21 @@ +# 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 diff --git a/kubernetes/aaf/charts/aaf-cs/Chart.yaml b/kubernetes/aaf/charts/aaf-cs/Chart.yaml new file mode 100644 index 0000000000..a0f05c4cf3 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-cs/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: ONAP AAF cassandra +name: aaf-cs +version: 2.0.0 diff --git a/kubernetes/aaf/resources/config/aaf-data/identities.dat b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-data/identities.dat index 95eb51d1be..95eb51d1be 100644 --- a/kubernetes/aaf/resources/config/aaf-data/identities.dat +++ b/kubernetes/aaf/charts/aaf-cs/resources/config/aaf-data/identities.dat diff --git a/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml new file mode 100644 index 0000000000..80b99b20b6 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml @@ -0,0 +1,75 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + name: {{ .Release.Name }} + spec: + hostname: {{ include "common.name" . }} + containers: + - args: + image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }} + volumeMounts: + - mountPath: /data + name: aaf-cs-data + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end -}} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + volumes: + - name: aaf-cs-data + secret: + secretName: {{ include "common.fullname" . }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/templates/aaf-secret.yaml b/kubernetes/aaf/charts/aaf-cs/templates/secret.yaml index 842d0c431e..4ae60f17c9 100644 --- a/kubernetes/aaf/templates/aaf-secret.yaml +++ b/kubernetes/aaf/charts/aaf-cs/templates/secret.yaml @@ -12,13 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -#{{ if not .Values.disableAafAafCs }} apiVersion: v1 kind: Secret metadata: - name: aaf-cs-data-secret - namespace: {{ .Values.nsPrefix }} + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} type: Opaque data: {{ (.Files.Glob "resources/config/aaf-cs-data/*").AsSecrets | indent 2 }} -#{{ end }} diff --git a/kubernetes/aaf/charts/aaf-cs/templates/service.yaml b/kubernetes/aaf/charts/aaf-cs/templates/service.yaml new file mode 100644 index 0000000000..facf3ce2f0 --- /dev/null +++ b/kubernetes/aaf/charts/aaf-cs/templates/service.yaml @@ -0,0 +1,60 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + #Example internal target port if required + #targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name }}2 + - port: {{ .Values.service.externalPort3 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }} + name: {{ .Values.service.name }}3 + - port: {{ .Values.service.externalPort4 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }} + name: {{ .Values.service.name }}4 + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name }}2 + - port: {{ .Values.service.externalPort3 }} + targetPort: {{ .Values.service.internalPort3 }} + name: {{ .Values.service.name }}3 + - port: {{ .Values.service.externalPort4 }} + targetPort: {{ .Values.service.internalPort4 }} + name: {{ .Values.service.name }}4 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + clusterIP: None diff --git a/kubernetes/aaf/charts/aaf-cs/values.yaml b/kubernetes/aaf/charts/aaf-cs/values.yaml new file mode 100644 index 0000000000..ea5445fa2e --- /dev/null +++ b/kubernetes/aaf/charts/aaf-cs/values.yaml @@ -0,0 +1,94 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + +# If mountPath is over NFS (e.g. /dockerdata-nfs is NFS mounted between the nodes), uncomment following lines. +# persistence: +# mountPath: /dockerdata + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: library/cassandra:2.1.17 +pullPolicy: Always + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: ClusterIP + name: aaf-cs + #targetPort + internalPort: 7000 + #port + externalPort: 7000 + + internalPort2: 7001 + externalPort2: 7001 + internalPort3: 9042 + externalPort3: 9042 + internalPort4: 9160 + externalPort4: 9160 + +ingress: + enabled: false + +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:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/aaf/requirements.yaml b/kubernetes/aaf/requirements.yaml new file mode 100644 index 0000000000..fb4321ded6 --- /dev/null +++ b/kubernetes/aaf/requirements.yaml @@ -0,0 +1,7 @@ +dependencies: + - name: common + version: ~2.0.0 + # local reference to common chart, as it is + # a part of this chart's package and will not + # be published independently to a repo (at this point) + repository: '@local' diff --git a/kubernetes/aaf/templates/aaf-cs-deployment.yaml b/kubernetes/aaf/templates/aaf-cs-deployment.yaml deleted file mode 100644 index 7f8cdb6f26..0000000000 --- a/kubernetes/aaf/templates/aaf-cs-deployment.yaml +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#{{ if not .Values.disableAafAafCs }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: aaf-cs - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.aafcsReplicas }} - selector: - matchLabels: - app: aaf-cs - template: - metadata: - labels: - app: aaf-cs - name: aaf-cs - spec: - hostname: aaf-cs - containers: - - args: - image: {{ .Values.image.csImage }}:{{ .Values.image.csVersion }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: "aaf-cs" - volumeMounts: - - mountPath: /data - name: aaf-cs-data - readinessProbe: - tcpSocket: - port: 7000 - initialDelaySeconds: 5 - periodSeconds: 10 - volumes: - - name: aaf-cs-data - secret: - secretName: aaf-cs-data-secret - imagePullSecrets: - - name: {{ .Values.nsPrefix }}-docker-registry-key -#{{ end }} diff --git a/kubernetes/aaf/templates/aaf-deployment.yaml b/kubernetes/aaf/templates/aaf-deployment.yaml deleted file mode 100644 index 0341344383..0000000000 --- a/kubernetes/aaf/templates/aaf-deployment.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#{{ if not .Values.disableAafAaf }} -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - labels: - app: aaf - name: aaf - namespace: "{{ .Values.nsPrefix }}" -spec: - replicas: {{ .Values.aafReplicas }} - selector: - matchLabels: - app: aaf - template: - metadata: - labels: - app: aaf - name: aaf - spec: - initContainers: - - command: - - /root/ready.py - args: - - --container-name - - aaf-cs - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - image: {{ .Values.image.readiness }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: aaf-readiness - containers: - - env: - - name: CASSANDRA_CLUSTER - value: cassandra_container - image: {{ .Values.image.aafImage }}:{{ .Values.image.aafVersion }} - imagePullPolicy: {{ .Values.pullPolicy }} - volumeMounts: - - mountPath: /data - name: aaf-data - name: aaf - readinessProbe: - tcpSocket: - port: 8101 - initialDelaySeconds: 5 - periodSeconds: 10 - volumes: - - name: aaf-data - configMap: - name: aaf-data-configmap - imagePullSecrets: - - name: {{ .Values.nsPrefix }}-docker-registry-key -#{{ end }} diff --git a/kubernetes/aaf/templates/all-services.yaml b/kubernetes/aaf/templates/all-services.yaml deleted file mode 100644 index 5ccbd252c8..0000000000 --- a/kubernetes/aaf/templates/all-services.yaml +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright © 2017 Amdocs, Bell Canada -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#{{ if not .Values.disableAafAafCs }} -apiVersion: v1 -kind: Service -metadata: - name: aaf-cs - namespace: "{{ .Values.nsPrefix }}" - labels: - app: aaf-cs -spec: - ports: - - name: aaf-cs-port-7000 - port: 7000 - - name: aaf-cs-port-7001 - port: 7001 - - name: aaf-cs-port-9042 - port: 9042 - - name: aaf-cs-port-9160 - port: 9160 - selector: - app: aaf-cs - clusterIP: None -#{{ end }} -#{{ if not .Values.disableAafAaf }} ---- -apiVersion: v1 -kind: Service -metadata: - name: aaf-authz-service - namespace: "{{ .Values.nsPrefix }}" - labels: - app: aaf-authz-service -spec: - ports: - - name: aaf-authz-service - port: 8101 - nodePort: {{ .Values.nodePortPrefix }}99 - selector: - app: clamp - type: NodePort -#{{ end }}
\ No newline at end of file diff --git a/kubernetes/aaf/templates/aaf-configmap.yaml b/kubernetes/aaf/templates/configmap.yaml index f89ccec946..c7cf9ae6c4 100644 --- a/kubernetes/aaf/templates/aaf-configmap.yaml +++ b/kubernetes/aaf/templates/configmap.yaml @@ -12,12 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -#{{ if not .Values.disableAafAaf }} apiVersion: v1 kind: ConfigMap metadata: - name: aaf-data-configmap - namespace: {{ .Values.nsPrefix }} + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} data: {{ (.Files.Glob "resources/config/aaf-data/*").AsConfig | indent 2 }} -#{{ end }} diff --git a/kubernetes/aaf/templates/deployment.yaml b/kubernetes/aaf/templates/deployment.yaml new file mode 100644 index 0000000000..03506b52eb --- /dev/null +++ b/kubernetes/aaf/templates/deployment.yaml @@ -0,0 +1,91 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ include "common.name" . }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + name: {{ include "common.fullname" . }} + spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - aaf-cs + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }}-readiness + containers: + - env: + - name: CASSANDRA_CLUSTER + value: cassandra_container + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - mountPath: /data + name: aaf-data + name: {{ include "common.name" . }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end -}} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + + volumes: + - name: aaf-data + configMap: + name: {{ include "common.fullname" . }} + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/templates/service.yaml b/kubernetes/aaf/templates/service.yaml new file mode 100644 index 0000000000..3f6e1f07ef --- /dev/null +++ b/kubernetes/aaf/templates/service.yaml @@ -0,0 +1,41 @@ +# Copyright © 2017 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + #Example internal target port if required + #targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + type: {{ .Values.service.type }} diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml index 088adfe6a6..4f9c1c6da0 100644 --- a/kubernetes/aaf/values.yaml +++ b/kubernetes/aaf/values.yaml @@ -12,14 +12,80 @@ # See the License for the specific language governing permissions and # limitations under the License. -nsPrefix: onap +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repository: nexus3.onap.org:10001 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.0 + +# If mountPath is over NFS (e.g. /dockerdata-nfs is NFS mounted between the nodes), uncomment following lines. +# persistence: +# mountPath: /dockerdata + +################################################################# +# Application configuration defaults. +################################################################# +# application image +repository: nexus3.onap.org:10001 +image: onap/aaf/authz-service:latest pullPolicy: Always -nodePortPrefix: 302 -aafcsReplicas: 1 -aafReplicas: 1 -image: - readiness: oomk8s/readiness-check:1.1.0 - aafImage: nexus3.onap.org:10001/onap/aaf/authz-service - aafVersion: latest - csImage: nexus3.onap.org:10001/library/cassandra - csVersion: 2.1.17 + +# flag to enable debugging - application support required +debugEnabled: false + +# application configuration +config: {} + +# default number of instances +replicaCount: 1 + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: true + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + +service: + type: NodePort + name: aaf-authz + #targetPort + internalPort: 8101 + #port + externalPort: 8101 + nodePort: 99 + +ingress: + enabled: false + +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:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/helm/starters/onap-app/templates/deployment.yaml b/kubernetes/helm/starters/onap-app/templates/deployment.yaml index 01253815a3..8b2bb4e516 100644 --- a/kubernetes/helm/starters/onap-app/templates/deployment.yaml +++ b/kubernetes/helm/starters/onap-app/templates/deployment.yaml @@ -101,4 +101,4 @@ spec: # - key: application.properties # path: application.properties imagePullSecrets: - - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml index 17707df7e4..d2df213e6b 100644 --- a/kubernetes/onap/requirements.yaml +++ b/kubernetes/onap/requirements.yaml @@ -18,7 +18,7 @@ # > helm repo add local http://127.0.0.1:8879 dependencies: - name: aaf - version: ~1.1.0 + version: ~2.0.0 repository: '@local' condition: aaf.enabled - name: aai |