diff options
37 files changed, 923 insertions, 658 deletions
diff --git a/kubernetes/aaf/.gitignore b/kubernetes/aaf/.gitignore new file mode 100644 index 0000000000..3a4f8ba352 --- /dev/null +++ b/kubernetes/aaf/.gitignore @@ -0,0 +1 @@ +/sms/ diff --git a/kubernetes/aaf/charts/aaf-cs/.helmignore b/kubernetes/aaf/charts/aaf-cass/.helmignore index daebc7da77..daebc7da77 100644 --- a/kubernetes/aaf/charts/aaf-cs/.helmignore +++ b/kubernetes/aaf/charts/aaf-cass/.helmignore diff --git a/kubernetes/aaf/charts/aaf-cs/Chart.yaml b/kubernetes/aaf/charts/aaf-cass/Chart.yaml index ff083ac95f..f06d149300 100644 --- a/kubernetes/aaf/charts/aaf-cs/Chart.yaml +++ b/kubernetes/aaf/charts/aaf-cass/Chart.yaml @@ -14,5 +14,5 @@ apiVersion: v1 description: ONAP AAF cassandra -name: aaf-cs +name: aaf-cass version: 4.0.0 diff --git a/kubernetes/aaf/charts/aaf-cs/templates/NOTES.txt b/kubernetes/aaf/charts/aaf-cass/templates/NOTES.txt index bd74a42cd5..bd74a42cd5 100644 --- a/kubernetes/aaf/charts/aaf-cs/templates/NOTES.txt +++ b/kubernetes/aaf/charts/aaf-cass/templates/NOTES.txt diff --git a/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml index 3abdcb3c7f..c664d034bb 100644 --- a/kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-cass/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.cass.replicas }} template: metadata: labels: @@ -32,39 +32,62 @@ spec: spec: containers: - name: {{ include "common.name" . }} - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_cass:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + # installing with cmd "onap" will not only initialize the DB, but add ONAP bootstrap data as well command: ["/bin/bash","/opt/app/aaf/cass_init/cmd.sh","onap"] + lifecycle: + preStop: + exec: + command: ["/bin/sh","-c","rm /opt/app/aaf/status/aaf-cass"] ports: - - containerPort: {{ .Values.service.externalPort }} - - containerPort: {{ .Values.service.externalPort2 }} - - containerPort: {{ .Values.service.externalPort3 }} - - containerPort: {{ .Values.service.externalPort4 }} + - name: storage + containerPort: {{.Values.global.aaf.cass.storage_port}} + - name: ssl-storage + containerPort: {{.Values.global.aaf.cass.ssl_storage_port}} + - name: native-trans + containerPort: {{.Values.global.aaf.cass.native_trans_port}} + - name: rpc + containerPort: {{.Values.global.aaf.cass.rpc_port}} env: - name: CASSANDRA_CLUSTER_NAME - value: "osaaf" + value: {{.Values.global.aaf.cass.cluster_name}} - name: CASSANDRA_DC - value: "dc1" + value: {{.Values.global.aaf.cass.dc}} - name: HEAP_NEWSIZE - value: "512M" + value: {{.Values.global.aaf.cass.heap_new_size}} - name: MAX_HEAP_SIZE - value: "1024M" + value: {{.Values.global.aaf.cass.max_heap_size}} + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: MY_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: MY_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP volumeMounts: - mountPath: /var/lib/cassandra - name: cassandra-storage + name: aaf-cass-vol + - mountPath: /opt/app/aaf/status + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort3 }} + port: {{.Values.global.aaf.cass.native_trans_port}} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort3 }} + port: {{.Values.global.aaf.cass.native_trans_port}} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -81,10 +104,13 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: cassandra-storage + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-cass-vol {{- if .Values.persistence.enabled }} persistentVolumeClaim: - claimName: {{ include "common.fullname" . }} + claimName: {{ include "common.fullname" . }}-pvc {{- else }} emptyDir: {} {{- end }} diff --git a/kubernetes/aaf/charts/aaf-cs/templates/pv.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml index 4209179af8..8249d84698 100644 --- a/kubernetes/aaf/charts/aaf-cs/templates/pv.yaml +++ b/kubernetes/aaf/charts/aaf-cass/templates/pv.yaml @@ -18,7 +18,7 @@ kind: PersistentVolume apiVersion: v1 metadata: - name: {{ include "common.fullname" . }} + name: {{ include "common.fullname" . }}-pv namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} @@ -41,4 +41,4 @@ spec: storageClassName: "{{ .Values.persistence.storageClass }}" {{- end }} {{- end }} -{{- end -}}
\ No newline at end of file +{{- end -}} diff --git a/kubernetes/aaf/charts/aaf-cs/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml index b102ffa08d..4f9dac07b7 100644 --- a/kubernetes/aaf/charts/aaf-cs/templates/pvc.yaml +++ b/kubernetes/aaf/charts/aaf-cass/templates/pvc.yaml @@ -18,7 +18,7 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: {{ include "common.fullname" . }} + name: {{ include "common.fullname" .}}-pvc namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} @@ -45,4 +45,4 @@ spec: storageClassName: "{{ .Values.persistence.storageClass }}" {{- end }} {{- end }} -{{- end -}}
\ No newline at end of file +{{- end -}} diff --git a/kubernetes/aaf/charts/aaf-cass/templates/service.yaml b/kubernetes/aaf/charts/aaf-cass/templates/service.yaml new file mode 100644 index 0000000000..71882b1c6e --- /dev/null +++ b/kubernetes/aaf/charts/aaf-cass/templates/service.yaml @@ -0,0 +1,49 @@ +# 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.servicename" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +# annotations: +# service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" +spec: + type: {{ .Values.service.type }} + ports: + - name: storage + protocol: TCP + port: {{.Values.global.aaf.cass.storage_port}} + containerPort: {{.Values.global.aaf.cass.storage_port}} + - name: ssl-storage + protocol: TCP + port: {{.Values.global.aaf.cass.ssl_storage_port}} + containerPort: {{.Values.global.aaf.cass.ssl_storage_port}} + - name: native-trans + protocol: TCP + port: {{.Values.global.aaf.cass.native_trans_port}} + containerPort: {{.Values.global.aaf.cass.native_trans_port}} + - name: rpc + protocol: TCP + port: {{.Values.global.aaf.cass.rpc_port}} + containerPort: {{.Values.global.aaf.cass.rpc_port}} + 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-cass/values.yaml index 77837451ab..ee05a19575 100644 --- a/kubernetes/aaf/charts/aaf-cs/values.yaml +++ b/kubernetes/aaf/charts/aaf-cass/values.yaml @@ -22,37 +22,29 @@ flavor: small ################################################################# # Application configuration defaults. ################################################################# -# application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_cass:2.1.9-SNAPSHOT-latest -pullPolicy: Always - # application configuration config: {} -# default number of instances -replicaCount: 1 - nodeSelector: {} affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 120 + initialDelaySeconds: 5 periodSeconds: 10 service: name: aaf-cass type: ClusterIP - portName: aaf-cs + portName: aaf-cass #targetPort internalPort: 7000 #port @@ -69,22 +61,23 @@ ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 10000Mi - requests: - cpu: 10m - memory: 8500Mi - large: - limits: - cpu: 400m - memory: 12000Mi - requests: - cpu: 40m - memory: 9000Mi - unlimited: {} +resources: {} + # Following AAI's advice, and not trying to guess on Cass usage. Guessing just makes it slow +# small: +# limits: +# cpu: "1000m" +# memory: 4096Mi +# requests: +# cpu: 20m +# memory: 2048Mi +# large: +# limits: +# cpu: 400m +# memory: 12000Mi +# requests: +# cpu: 40m +# memory: 9000Mi +# unlimited: {} persistence: enabled: true @@ -93,5 +86,5 @@ persistence: mountSubPath: "cass" volumeReclaimPolicy: Retain accessMode: ReadWriteOnce - size: 10Gi + size: 20Gi storageClass: "manual" diff --git a/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml index f78dfdc541..87bcaa4b7c 100644 --- a/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.cm.replicas }} template: metadata: labels: @@ -32,61 +32,70 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - aaf-locate - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: cadi_x509_issuers + value: "{{ .Values.global.aaf.cadi_x509_issuers }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_container + value: "oom" + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: CASSANDRA_CLUSTER + value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}" +# - name: CASSANDRA_USER +# value: "" +# - name: CASSANDRA_PASSWORD +# value: "" +# - name: CASSANDRA_PORT +# value: "" containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_cm","sleep","0","cd /opt/app/aaf;bin/cm"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-cm aaf-locate && exec bin/cm"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_cm:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.cm.internal_port }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.cm.internal_port }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -103,7 +112,11 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol - emptyDir: {} + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-config-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-config-pvc imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-cm/templates/service.yaml b/kubernetes/aaf/charts/aaf-cm/templates/service.yaml index 281aa1cc8d..f54c4d8ee4 100644 --- a/kubernetes/aaf/charts/aaf-cm/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-cm/templates/service.yaml @@ -24,18 +24,10 @@ metadata: 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.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.cm.internal_port }} + nodePort: {{ .Values.global.aaf.cm.public_port }} + name: aaf-cm selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-cm/values.yaml b/kubernetes/aaf/charts/aaf-cm/values.yaml index ec7de46b36..6ace7d1143 100644 --- a/kubernetes/aaf/charts/aaf-cm/values.yaml +++ b/kubernetes/aaf/charts/aaf-cm/values.yaml @@ -24,14 +24,6 @@ flavor: small # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_cm:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-cm.onap" -pullPolicy: Always - - -# default number of instances -replicaCount: 1 nodeSelector: {} @@ -39,14 +31,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -62,19 +54,20 @@ ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 800Mi - requests: - cpu: 20m - memory: 500Mi - large: - limits: - cpu: 400m - memory: 1Gi - requests: - cpu: 40m - memory: 600Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +# small: +# limits: +# cpu: 200m +# memory: 800Mi +# requests: +# cpu: 20m +# memory: 500Mi +# large: +# limits: +# cpu: 400m +# memory: 1Gi +# requests: +# cpu: 40m +# memory: 600Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-cs/templates/service.yaml b/kubernetes/aaf/charts/aaf-cs/templates/service.yaml deleted file mode 100644 index b1716e4936..0000000000 --- a/kubernetes/aaf/charts/aaf-cs/templates/service.yaml +++ /dev/null @@ -1,62 +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. - -apiVersion: v1 -kind: Service -metadata: - name: {{ include "common.servicename" . }} - namespace: {{ include "common.namespace" . }} - labels: - app: {{ include "common.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -# annotations: -# service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" -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.portName }} - - port: {{ .Values.service.externalPort2 }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} - name: {{ .Values.service.portName }}2 - - port: {{ .Values.service.externalPort3 }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }} - name: {{ .Values.service.portName }}3 - - port: {{ .Values.service.externalPort4 }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }} - name: {{ .Values.service.portName }}4 - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - - port: {{ .Values.service.externalPort2 }} - targetPort: {{ .Values.service.internalPort2 }} - name: {{ .Values.service.portName }}2 - - port: {{ .Values.service.externalPort3 }} - targetPort: {{ .Values.service.internalPort3 }} - name: {{ .Values.service.portName }}3 - - port: {{ .Values.service.externalPort4 }} - targetPort: {{ .Values.service.internalPort4 }} - name: {{ .Values.service.portName }}4 - {{- end}} - selector: - app: {{ include "common.name" . }} - release: {{ .Release.Name }} - clusterIP: None diff --git a/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml index b93844849e..9f97da96ec 100644 --- a/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.fs.replicas }} template: metadata: labels: @@ -32,48 +32,56 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - aaf-locate - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: cadi_x509_issuers + value: "{{ .Values.global.aaf.cadi_x509_issuers }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_container + value: "oom" + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: CASSANDRA_CLUSTER + value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}" +# - name: CASSANDRA_USER +# value: "" +# - name: CASSANDRA_PASSWORD +# value: "" +# - name: CASSANDRA_PORT containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_fs","sleep","0","cd /opt/app/aaf;bin/fs"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-fs aaf-locate && exec bin/fs"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_fs:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true @@ -103,7 +111,11 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol - emptyDir: {} + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-config-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-config-pvc imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-fs/templates/service.yaml b/kubernetes/aaf/charts/aaf-fs/templates/service.yaml index 281aa1cc8d..1042afd658 100644 --- a/kubernetes/aaf/charts/aaf-fs/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-fs/templates/service.yaml @@ -24,18 +24,10 @@ metadata: 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.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.fs.internal_port }} + nodePort: {{ .Values.global.aaf.fs.public_port }} + name: aaf-hello selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-fs/values.yaml b/kubernetes/aaf/charts/aaf-fs/values.yaml index 526a9fd6f8..48ad7c10df 100644 --- a/kubernetes/aaf/charts/aaf-fs/values.yaml +++ b/kubernetes/aaf/charts/aaf-fs/values.yaml @@ -24,29 +24,23 @@ flavor: small # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_fs:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-fs.onap" pullPolicy: Always -# default number of instances -replicaCount: 1 - nodeSelector: {} affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -62,19 +56,20 @@ ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 600Mi - requests: - cpu: 10m - memory: 300Mi - large: - limits: - cpu: 500m - memory: 700Mi - requests: - cpu: 100m - memory: 400Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +# small: +# limits: +# cpu: 200m +# memory: 800Mi +# requests: +# cpu: 10m +# memory: 300Mi +# large: +# limits: +# cpu: 500m +# memory: 700Mi +# requests: +# cpu: 100m +# memory: 400Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml index 9dd87948eb..d067b5ec25 100644 --- a/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.gui.replicas }} template: metadata: labels: @@ -32,61 +32,69 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - aaf-cm - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: cadi_x509_issuers + value: "{{ .Values.global.aaf.cadi_x509_issuers }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_container + value: "oom" + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: CASSANDRA_CLUSTER + value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}" +# - name: CASSANDRA_USER +# value: "" +# - name: CASSANDRA_PASSWORD +# value: "" +# - name: CASSANDRA_PORT containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_gui","sleep","0","cd /opt/app/aaf;bin/gui"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-gui aaf-locate && exec bin/gui"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_gui:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.gui.internal_port }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.gui.internal_port }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -103,7 +111,11 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol - emptyDir: {} + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-config-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-config-pvc imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-gui/templates/service.yaml b/kubernetes/aaf/charts/aaf-gui/templates/service.yaml index 281aa1cc8d..ea06925708 100644 --- a/kubernetes/aaf/charts/aaf-gui/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-gui/templates/service.yaml @@ -24,18 +24,10 @@ metadata: 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.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.gui.internal_port }} + nodePort: {{ .Values.global.aaf.gui.public_port }} + name: aaf-gui selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-gui/values.yaml b/kubernetes/aaf/charts/aaf-gui/values.yaml index 145dec1538..3068f14ec9 100644 --- a/kubernetes/aaf/charts/aaf-gui/values.yaml +++ b/kubernetes/aaf/charts/aaf-gui/values.yaml @@ -25,29 +25,23 @@ flavor: small # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_gui:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-gui.onap" pullPolicy: Always -# default number of instances -replicaCount: 1 - nodeSelector: {} affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -64,19 +58,21 @@ ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 100m - memory: 500Mi - requests: - cpu: 10m - memory: 200Mi - large: - limits: - cpu: 200m - memory: 1Gi - requests: - cpu: 100m - memory: 500Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +#resources: +# small: +# limits: +# cpu: 100m +# memory: 500Mi +# requests: +# cpu: 10m +# memory: 200Mi +# large: +# limits: +# cpu: 200m +# memory: 1Gi +# requests: +# cpu: 100m +# memory: 500Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml index c57e57f017..9faa580023 100644 --- a/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.hello.replicas }} template: metadata: labels: @@ -32,48 +32,60 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_agent:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + - mountPath: "/opt/app/osaaf/local" + name: aaf-hello-vol + command: ["bash","-c","/opt/app/aaf_config/bin/pod_wait.sh config nc aaf-cm.{{.Release.Namespace}} 8150 remove && cd /opt/app/osaaf/local && /opt/app/aaf_config/bin/agent.sh"] env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - aaf-locate - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_container + value: "oom" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_app_ns + value: "org.osaaf.aaf" + - name: "APP_FQDN" + value: "{{ .Values.global.aaf.hello.fqdn }}" + - name: "APP_FQI" + value: "aaf@aaf.osaaf.org" + - name: "DEPLOY_FQI" + value: "deployer@people.osaaf.org" + - name: "DEPLOY_PASSWORD" + value: "demo123456!" +# Hello specific. Clients don't necessarily need this + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: aaf_locator_fqdn_oom + value: "%N.%CNS" containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_hello","sleep","0","cd /opt/app/aaf;bin/hello"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && exec bin/hello"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_hello:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + - mountPath: "/opt/app/osaaf/local" + name: aaf-hello-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true @@ -103,7 +115,10 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-hello-vol emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-hello/templates/service.yaml b/kubernetes/aaf/charts/aaf-hello/templates/service.yaml index 281aa1cc8d..102e85d39e 100644 --- a/kubernetes/aaf/charts/aaf-hello/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-hello/templates/service.yaml @@ -24,18 +24,10 @@ metadata: 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.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.hello.internal_port }} + nodePort: {{ .Values.global.aaf.hello.public_port }} + name: aaf-hello selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-hello/values.yaml b/kubernetes/aaf/charts/aaf-hello/values.yaml index 8c46b80945..c3ed9e1a64 100644 --- a/kubernetes/aaf/charts/aaf-hello/values.yaml +++ b/kubernetes/aaf/charts/aaf-hello/values.yaml @@ -18,35 +18,28 @@ global: nodePortPrefix: 302 readinessRepository: oomk8s - readinessImage: readiness-check:2.0.0 + readinessImage: readiness-check:2.0.2 flavor: small ################################################################# # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_hello:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-hello.onap" -pullPolicy: Always -# default number of instances -replicaCount: 1 - nodeSelector: {} affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -62,19 +55,21 @@ ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 200Mi - large: - limits: - cpu: 400m - memory: 1Gi - requests: - cpu: 20m - memory: 500Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +#resources: +# small: +# limits: +# cpu: 200m +# memory: 500Mi +# requests: +# cpu: 10m +# memory: 200Mi +# large: +# limits: +# cpu: 400m +# memory: 1Gi +# requests: +# cpu: 20m +# memory: 500Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml index a2f9f55c56..f504063555 100644 --- a/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.locate.replicas }} template: metadata: labels: @@ -32,61 +32,69 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - aaf-service - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: cadi_x509_issuers + value: "{{ .Values.global.aaf.cadi_x509_issuers }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_container + value: "oom" + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: CASSANDRA_CLUSTER + value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}" +# - name: CASSANDRA_USER +# value: "" +# - name: CASSANDRA_PASSWORD +# value: "" +# - name: CASSANDRA_PORT containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_locate","sleep","0","cd /opt/app/aaf;bin/locate"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-locate aaf-service && exec bin/locate"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_locate:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.locate.internal_port }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.locate.internal_port }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -103,7 +111,11 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol - emptyDir: {} + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-config-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-config-pvc imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-locate/templates/service.yaml b/kubernetes/aaf/charts/aaf-locate/templates/service.yaml index 281aa1cc8d..606d9476b8 100644 --- a/kubernetes/aaf/charts/aaf-locate/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-locate/templates/service.yaml @@ -24,18 +24,10 @@ metadata: 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.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.locate.internal_port }} + nodePort: {{ .Values.global.aaf.locate.public_port }} + name: aaf-locate selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-locate/values.yaml b/kubernetes/aaf/charts/aaf-locate/values.yaml index a3238377ab..c13f83497f 100644 --- a/kubernetes/aaf/charts/aaf-locate/values.yaml +++ b/kubernetes/aaf/charts/aaf-locate/values.yaml @@ -24,14 +24,6 @@ flavor: small # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_locate:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-locate.onap" -pullPolicy: Always - - -# default number of instances -replicaCount: 1 nodeSelector: {} @@ -39,14 +31,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -56,25 +48,27 @@ service: #targetPort internalPort: 8095 #port - externalPort: 8095 + externalPort: 31111 ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 600Mi - requests: - cpu: 20m - memory: 300Mi - large: - limits: - cpu: 400m - memory: 1Gi - requests: - cpu: 40m - memory: 500Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +#resources: +# small: +# limits: +# cpu: 200m +# memory: 600Mi +# requests: +# cpu: 20m +# memory: 300Mi +# large: +# limits: +# cpu: 400m +# memory: 1Gi +# requests: +# cpu: 40m +# memory: 500Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml index f7a34f440c..cc328d5ca6 100644 --- a/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.oauth.replicas }} template: metadata: labels: @@ -32,61 +32,69 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config aaf-service remove && bin/agent.sh"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - aaf-locate - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: cadi_x509_issuers + value: "{{ .Values.global.aaf.cadi_x509_issuers }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_container + value: "oom" + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: CASSANDRA_CLUSTER + value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}" +# - name: CASSANDRA_USER +# value: "" +# - name: CASSANDRA_PASSWORD +# value: "" +# - name: CASSANDRA_PORT containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_oauth","sleep","0","cd /opt/app/aaf;bin/oauth"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && /bin/bash bin/pod_wait.sh aaf-oauth aaf-service && exec bin/oauth"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_oauth:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.oauth.internal_port }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.oauth.internal_port }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -103,7 +111,11 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol - emptyDir: {} + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-config-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-config-pvc imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml b/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml index d94bcae31c..bb4a0517da 100644 --- a/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-oauth/templates/service.yaml @@ -24,16 +24,10 @@ metadata: heritage: {{ .Release.Service }} spec: ports: - {{if eq .Values.service.type "NodePort" -}} - - port: {{ .Values.service.externalPort }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} - name: {{ .Values.service.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.oauth.internal_port }} + nodePort: {{ .Values.global.aaf.oauth.public_port }} + name: aaf-oauth selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-oauth/values.yaml b/kubernetes/aaf/charts/aaf-oauth/values.yaml index 7cb9f3b3cb..3c29a62977 100644 --- a/kubernetes/aaf/charts/aaf-oauth/values.yaml +++ b/kubernetes/aaf/charts/aaf-oauth/values.yaml @@ -18,35 +18,26 @@ global: nodePortPrefix: 302 readinessRepository: oomk8s - readinessImage: readiness-check:2.0.0 + readinessImage: readiness-check:2.0.2 flavor: small ################################################################# # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_oauth:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-oauth.onap" -pullPolicy: Always - - -# default number of instances -replicaCount: 1 - nodeSelector: {} affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -62,19 +53,21 @@ ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 400Mi - requests: - cpu: 20m - memory: 200Mi - large: - limits: - cpu: 400m - memory: 600Mi - requests: - cpu: 40m - memory: 200Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +#resources: +# small: +# limits: +# cpu: 200m +# memory: 400Mi +# requests: +# cpu: 20m +# memory: 200Mi +# large: +# limits: +# cpu: 400m +# memory: 600Mi +# requests: +# cpu: 40m +# memory: 200Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml b/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml index 92d23126f4..1801bfec0c 100644 --- a/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml +++ b/kubernetes/aaf/charts/aaf-service/templates/deployment.yaml @@ -23,7 +23,7 @@ metadata: name: {{ include "common.fullname" . }} namespace: {{ include "common.namespace" . }} spec: - replicas: {{ .Values.replicaCount }} + replicas: {{ .Values.global.aaf.service.replicas }} template: metadata: labels: @@ -32,61 +32,72 @@ spec: spec: initContainers: - name: {{ include "common.name" . }}-config-container - image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}" + image: {{ .Values.global.repository }}/onap/aaf/aaf_config:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: ["bash","-c","cd /opt/app/aaf_config && bin/pod_wait.sh config nc aaf-cass.{{ .Release.Namespace }} 9042 sleep 15 remove && bin/agent.sh"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol env: - - name: HOSTNAME - value: "{{ .Values.global.cadi.hostname }}" - - name: AAF_ENV - value: "{{ .Values.global.cadi.aaf_env }}" - - name: AAF_REGISTER_AS - value: "{{ .Values.aaf_register_as }}" - - name: LATITUDE - value: "{{ .Values.global.cadi.cadi_latitude }}" - - name: LONGITUDE - value: "{{ .Values.global.cadi.cadi_longitude }}" - - name: CASS_HOST - value: "{{ .Values.global.cadi.cass_host }}" - - name: AAF_LOCATOR_AS - value: "{{ .Values.global.cadi.cadi_locator_as }}" - - name: {{ include "common.name" . }}-readiness - 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: aaf_env + value: "{{ .Values.global.aaf.aaf_env }}" + - name: cadi_latitude + value: "{{ .Values.global.aaf.cadi_latitude }}" + - name: cadi_longitude + value: "{{ .Values.global.aaf.cadi_longitude }}" + - name: cadi_x509_issuers + value: "{{ .Values.global.aaf.cadi_x509_issuers }}" + - name: aaf_locate_url + value: "https://aaf-locate.{{ .Release.Namespace}}:{{.Values.global.aaf.locate.internal_port}}" + - name: aaf_locator_container + value: "oom" + - name: aaf_release + value: "{{ .Values.global.aaf.aaf_release }}" + - name: aaf_locator_container_ns + value: "{{ .Release.Namespace }}" + - name: aaf_locator_public_fqdn + value: "{{.Values.global.aaf.public_fqdn}}" + - name: aaf_locator_name + value: "{{.Values.global.aaf.aaf_locator_name}}" + - name: aaf_locator_name_oom + value: "{{.Values.global.aaf.aaf_locator_name_oom}}" + - name: CASSANDRA_CLUSTER + value: "{{.Values.global.aaf.cass.fqdn}}.{{ .Release.Namespace }}" +# - name: CASSANDRA_USER +# value: "" +# - name: CASSANDRA_PASSWORD +# value: "" +# - name: CASSANDRA_PORT +# value: "" containers: - name: {{ include "common.name" . }} - command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_service","sleep","0","cd /opt/app/aaf;bin/service"] - image: "{{ include "common.repository" . }}/{{ .Values.image }}" + command: ["/bin/bash","-c","cd /opt/app/aaf && bin/pod_wait.sh aaf-service aaf-cass && exec bin/service"] + image: {{ .Values.global.repository }}/onap/aaf/aaf_service:{{.Values.global.aaf.imageVersion}} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + lifecycle: + preStop: + exec: + command: ["/bin/sh","-c","rm /opt/app/aaf/status/aaf-service* && echo $HOSTNAME >> aaf-service.hosts"] volumeMounts: - mountPath: "/opt/app/osaaf" - name: {{ include "common.name" . }}-config-vol + name: aaf-config-vol + - mountPath: "/opt/app/aaf/status" + name: aaf-status-vol - mountPath: /etc/localtime name: localtime readOnly: true {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.service.internal_port }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.global.aaf.service.internal_port }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -103,7 +114,11 @@ spec: - name: localtime hostPath: path: /etc/localtime - - name: {{ include "common.name" . }}-config-vol - emptyDir: {} + - name: aaf-status-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-status-pvc + - name: aaf-config-vol + persistentVolumeClaim: + claimName: {{ .Release.Name }}-aaf-config-pvc imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aaf/charts/aaf-service/templates/service.yaml b/kubernetes/aaf/charts/aaf-service/templates/service.yaml index 281aa1cc8d..4a318ffce3 100644 --- a/kubernetes/aaf/charts/aaf-service/templates/service.yaml +++ b/kubernetes/aaf/charts/aaf-service/templates/service.yaml @@ -24,18 +24,10 @@ metadata: 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.portName }} - {{- else -}} - - port: {{ .Values.service.externalPort }} - targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - {{- end}} + - port: {{ .Values.global.aaf.service.internal_port }} + nodePort: {{ .Values.global.aaf.service.public_port }} + name: aaf-service selector: app: {{ include "common.name" . }} release: {{ .Release.Name }} - type: {{ .Values.service.type }} + type: "NodePort" diff --git a/kubernetes/aaf/charts/aaf-service/values.yaml b/kubernetes/aaf/charts/aaf-service/values.yaml index 42cebdee55..8794afe0ce 100644 --- a/kubernetes/aaf/charts/aaf-service/values.yaml +++ b/kubernetes/aaf/charts/aaf-service/values.yaml @@ -24,14 +24,6 @@ flavor: small # Application configuration defaults. ################################################################# # application image -repository: nexus3.onap.org:10001 -image: onap/aaf/aaf_service:2.1.9-SNAPSHOT-latest -aaf_register_as: "aaf-service.onap" -pullPolicy: Always - - -# default number of instances -replicaCount: 1 nodeSelector: {} @@ -39,14 +31,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 300 + initialDelaySeconds: 120 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 30 + initialDelaySeconds: 5 periodSeconds: 10 service: @@ -56,26 +48,27 @@ service: #targetPort internalPort: 8100 #port - externalPort: 8100 - nodePort: 47 + externalPort: 31110 ingress: enabled: false # Configure resource requests and limits -resources: - small: - limits: - cpu: 200m - memory: 600Mi - requests: - cpu: 20m - memory: 300Mi - large: - limits: - cpu: 400m - memory: 1Gi - requests: - cpu: 40m - memory: 300Mi - unlimited: {} +resources: {} +# Allow END users to do this, if they want. Detrimental to Test services +#resources: +# small: +# limits: +# cpu: 200m +# memory: 800Mi +# requests: +# cpu: 20m +# memory: 300Mi +# large: +# limits: +# cpu: 400m +# memory: 1Gi +# requests: +# cpu: 40m +# memory: 300Mi +# unlimited: {} diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml index 355cd608cb..360bf4204e 100644 --- a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml +++ b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml @@ -108,4 +108,4 @@ resources: requests: cpu: 10m memory: 100Mi - unlimited: {}
\ No newline at end of file + unlimited: {} diff --git a/kubernetes/aaf/templates/aaf-config-pv.yaml b/kubernetes/aaf/templates/aaf-config-pv.yaml new file mode 100644 index 0000000000..9a1e8020db --- /dev/null +++ b/kubernetes/aaf/templates/aaf-config-pv.yaml @@ -0,0 +1,48 @@ +{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}} +######### +## ============LICENSE_START==================================================== +## org.onap.aaf +## =========================================================================== +## Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +## =========================================================================== +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## ============LICENSE_END==================================================== +## + +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ .Release.Name }}-aaf-config-pv + namespace: {{ include "common.namespace" . }} + labels: + app: {{ .Chart.Name }}-config + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.config.size}} + accessModes: + - {{ .Values.persistence.config.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.config.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.persistence.config.mountPath }} +{{- if .Values.persistence.config.storageClass }} +{{- if (eq "-" .Values.persistence.config.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.config.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/aaf/templates/aaf-config-pvc.yaml b/kubernetes/aaf/templates/aaf-config-pvc.yaml new file mode 100644 index 0000000000..b22df6d494 --- /dev/null +++ b/kubernetes/aaf/templates/aaf-config-pvc.yaml @@ -0,0 +1,52 @@ +{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}} +######### +## ============LICENSE_START==================================================== +## org.onap.aaf +## =========================================================================== +## Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +## =========================================================================== +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## ============LICENSE_END==================================================== +## +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ .Release.Name }}-aaf-config-pvc + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + app: {{ include "common.name" . }}-config + accessModes: + - {{ .Values.persistence.config.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.config.size }} +{{- if .Values.persistence.config.storageClass }} +{{- if (eq "-" .Values.persistence.config.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.config.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} + diff --git a/kubernetes/aaf/templates/aaf-status-pv.yaml b/kubernetes/aaf/templates/aaf-status-pv.yaml new file mode 100644 index 0000000000..b8d12c5cba --- /dev/null +++ b/kubernetes/aaf/templates/aaf-status-pv.yaml @@ -0,0 +1,48 @@ +{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}} +######### +## ============LICENSE_START==================================================== +## org.onap.aaf +## =========================================================================== +## Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +## =========================================================================== +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## ============LICENSE_END==================================================== +## + +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ .Release.Name }}-aaf-status-pv + namespace: {{ include "common.namespace" . }} + labels: + app: {{ .Chart.Name }}-status + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.status.size}} + accessModes: + - {{ .Values.persistence.status.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.status.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.persistence.status.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.status.mountSubPath }} +{{- if .Values.persistence.status.storageClass }} +{{- if (eq "-" .Values.persistence.status.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.status.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/aaf/templates/aaf-status-pvc.yaml b/kubernetes/aaf/templates/aaf-status-pvc.yaml new file mode 100644 index 0000000000..870ac9c89d --- /dev/null +++ b/kubernetes/aaf/templates/aaf-status-pvc.yaml @@ -0,0 +1,52 @@ +{{- if and .Values.global.persistence.enabled (not .Values.persistence.existingClaim) -}} +######### +## ============LICENSE_START==================================================== +## org.onap.aaf +## =========================================================================== +## Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +## =========================================================================== +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## ============LICENSE_END==================================================== +## +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ .Release.Name }}-aaf-status-pvc + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + app: {{ include "common.name" . }}-status + accessModes: + - {{ .Values.persistence.status.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.status.size }} +{{- if .Values.persistence.status.storageClass }} +{{- if (eq "-" .Values.persistence.status.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.status.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} + diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml index 5a095e4cd9..e07f3461c6 100644 --- a/kubernetes/aaf/values.yaml +++ b/kubernetes/aaf/values.yaml @@ -18,25 +18,83 @@ global: nodePortPrefix: 302 readinessRepository: oomk8s - readinessImage: readiness-check:2.0.0 + readinessImage: readiness-check:2.0.2 ubuntuInitRepository: registry.hub.docker.com ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 - configImage: onap/aaf/aaf_config:2.1.9-SNAPSHOT-latest persistence: enabled: true + pullPolicy: Always + repository: "nexus3.onap.org:10001" + # pullPolicy: IfNotPresent + # repository: "nexus3.onap.org:10003" - cadi: - hostname: "aaf.onap" + aaf: + imageVersion: 2.1.12-SNAPSHOT + #imageVersion: latest + readiness: false + aaf_env: "DEV" + public_fqdn: "aaf.osaaf.org" + aaf_release: "Dublin" + # DUBLIN ONLY - for M4 compatibility with Casablanca + aaf_locator_name: "public.%NS.%N" + aaf_locator_name_oom: "%NS.%N" + # EL ALTO and Beyond + # aaf_locator_name: "%NS.%N" + # aaf_locator_name_oom: "%CNS.%NS.%N" cadi_latitude: "38.0" cadi_longitude: "-72.0" - aaf_env: "DEV" - cass_host: "aaf-cass.onap" - cadi_locator_as: "aaf-locate.onap" + cadi_x509_issuers: "CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US" + + cass: + replicas: 1 + fqdn: "aaf-cass" + cluster_name: "osaaf" + heap_new_size: "512M" + max_heap_size: "1024M" + storage_port: 7000 + ssl_storage_port: 7001 + native_trans_port: 9042 + rpc_port: 9160 + dc: "dc1" + service: + replicas: 1 + fqdn: "aaf-service" + internal_port: 8100 + public_port: 31110 + locate: + replicas: 1 + fqdn: "aaf-locate" + internal_port: 8095 + public_port: 31111 + oauth: + replicas: 1 + fqdn: "aaf0oauth" + internal_port: 8140 + public_port: 31112 + gui: + replicas: 1 + fqdn: "aaf-gui" + internal_port: 8200 + public_port: 31113 + cm: + replicas: 1 + fqdn: "aaf-cm" + internal_port: 8150 + public_port: 31114 + fs: + replicas: 1 + fqdn: "aaf-fs" + internal_port: 8096 + public_port: 31115 + hello: + replicas: 0 + fqdn: "aaf-hello" + internal_port: 8130 + public_port: 31116 ################################################################# # Application configuration defaults. ################################################################# -repository: nexus3.onap.org:10001 flavor: small # default number of instances @@ -48,14 +106,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 350 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 150 periodSeconds: 10 ingress: @@ -63,31 +121,35 @@ ingress: ## Persist data to a persitent volume persistence: - mountPath: "/mnt/data/aaf" enabled: true config: #existingClaim: - volumeReclaimPolicy: Retain + volumeReclaimPolicy: Delete accessMode: ReadWriteMany size: 2Gi - mountSubPath: "config" storageClass: "manual" + mountPath: "/mnt/data/aaf/config" logs: #existingClaim: volumeReclaimPolicy: Retain accessMode: ReadWriteMany size: 2Gi - mountSubPath: "logs" storageClass: "manual" - -aaf-cs: - persistence: - #existingClaim: + mountPath: "/mnt/data/aaf/logs" + status: + volumeReclaimPolicy: Delete + accessMode: ReadWriteMany + size: 2M + storageClass: "manual" mountPath: /dockerdata-nfs - mountSubPath: "cass" + mountSubPath: "status" + cass: + #existingClaim: volumeReclaimPolicy: Retain accessMode: ReadWriteOnce size: 10Gi storageClass: "manual" + mountPath: /dockerdata-nfs + mountSubPath: "cass" resources: {} |