From 6b77b72f56094248bbf0cc3cd849afd58450edb1 Mon Sep 17 00:00:00 2001 From: Mahendra Raghuwanshi Date: Fri, 15 Mar 2019 12:02:42 +0000 Subject: [PATCH] Upgrade AAI to use common shared Cassandra Change-Id: I0186b09697f32115595383c4e409e608e2cf767f Issue-ID: OOM-1652 Signed-off-by: Mahendra Raghuwanshi --- kubernetes/aai/charts/aai-cassandra/.helmignore | 21 ---- kubernetes/aai/charts/aai-cassandra/Chart.yaml | 19 --- .../charts/aai-cassandra/templates/service.yaml | 53 --------- .../aai-cassandra/templates/statefulset.yaml | 132 --------------------- .../charts/aai-cassandra/templates/volumes.yaml | 39 ------ kubernetes/aai/charts/aai-cassandra/values.yaml | 121 ------------------- .../resources/config/dynamic/conf/champ-beans.xml | 7 +- .../aai/charts/aai-champ/templates/deployment.yaml | 4 + .../resources/config/janusgraph-cached.properties | 7 +- .../config/janusgraph-realtime.properties | 8 +- .../aai-graphadmin/templates/deployment.yaml | 4 + .../aai/charts/aai-graphadmin/templates/job.yaml | 4 + .../resources/config/janusgraph-cached.properties | 8 +- .../config/janusgraph-realtime.properties | 8 +- .../charts/aai-resources/templates/deployment.yaml | 4 + .../resources/config/janusgraph-cached.properties | 8 +- .../config/janusgraph-realtime.properties | 8 +- .../charts/aai-traversal/templates/deployment.yaml | 4 + kubernetes/aai/requirements.yaml | 7 ++ kubernetes/aai/values.yaml | 24 +++- 20 files changed, 64 insertions(+), 426 deletions(-) delete mode 100644 kubernetes/aai/charts/aai-cassandra/.helmignore delete mode 100644 kubernetes/aai/charts/aai-cassandra/Chart.yaml delete mode 100644 kubernetes/aai/charts/aai-cassandra/templates/service.yaml delete mode 100644 kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml delete mode 100644 kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml delete mode 100644 kubernetes/aai/charts/aai-cassandra/values.yaml diff --git a/kubernetes/aai/charts/aai-cassandra/.helmignore b/kubernetes/aai/charts/aai-cassandra/.helmignore deleted file mode 100644 index daebc7da77..0000000000 --- a/kubernetes/aai/charts/aai-cassandra/.helmignore +++ /dev/null @@ -1,21 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj diff --git a/kubernetes/aai/charts/aai-cassandra/Chart.yaml b/kubernetes/aai/charts/aai-cassandra/Chart.yaml deleted file mode 100644 index 3987a111c0..0000000000 --- a/kubernetes/aai/charts/aai-cassandra/Chart.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright © 2018 Amdocs, Bell Canada, AT&T -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -apiVersion: v1 -description: ONAP AAI Cassandra -name: aai-cassandra -version: 4.0.0 diff --git a/kubernetes/aai/charts/aai-cassandra/templates/service.yaml b/kubernetes/aai/charts/aai-cassandra/templates/service.yaml deleted file mode 100644 index 17176f1ded..0000000000 --- a/kubernetes/aai/charts/aai-cassandra/templates/service.yaml +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright © 2018 Amdocs, Bell Canada, AT&T -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -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 }} -# Not working, open k8s bug: https://github.com/kubernetes/kubernetes/issues/58662 - publishNotReadyAddresses: true - ports: - {{if eq .Values.service.type "NodePort" -}} - - port: {{ .Values.service.internalPort }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} - name: {{ .Values.service.portName }} - - port: {{ .Values.service.internalPort2 }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} - name: {{ .Values.service.portName3 }} - - port: {{ .Values.service.internalPort3 }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }} - name: {{ .Values.service.portName3 }} - {{- else -}} - - port: {{ .Values.service.internalPort }} - name: {{ .Values.service.portName }} - - port: {{ .Values.service.internalPort2 }} - name: {{ .Values.service.portName2 }} - - port: {{ .Values.service.internalPort3 }} - name: {{ .Values.service.portName3 }} - {{- end}} - selector: - app: {{ include "common.name" . }} - release: {{ .Release.Name }} - clusterIP: None diff --git a/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml b/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml deleted file mode 100644 index bd62c56001..0000000000 --- a/kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright © 2018 Amdocs, Bell Canada, AT&T -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: apps/v1beta1 -kind: StatefulSet -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: - serviceName: {{ include "common.servicename" . }} - replicas: {{ .Values.replicaCount }} - podManagementPolicy: {{ .Values.podManagementPolicy }} - updateStrategy: - type: {{ .Values.updateStrategy.type }} - template: - metadata: - labels: - app: {{ include "common.name" . }} - release: {{ .Release.Name }} - name: {{ include "common.name" . }} - spec: - containers: - - name: {{ include "common.name" . }} - image: {{ .Values.image }} - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - ports: - - containerPort: {{ .Values.service.internalPort }} - - containerPort: {{ .Values.service.internalPort2 }} - - containerPort: {{ .Values.service.internalPort3 }} - {{- if eq .Values.liveness.enabled true }} - livenessProbe: - exec: - command: - - /bin/bash - - -c - - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }' - initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} - readinessProbe: - exec: - command: - - /bin/bash - - -c - - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }' - initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.readiness.periodSeconds }} - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "PID=$(pidof java) && kill $PID && while ps -p $PID > /dev/null; do sleep 1; done"] - env: - {{- $seed_size := default 1 .Values.replicaCount | int -}} - {{- $global := . }} - - name: MAX_HEAP_SIZE - value: {{ .Values.config.heap.max }} - - name: HEAP_NEWSIZE - value: {{ .Values.config.heap.min }} - - name: CASSANDRA_SEEDS - value: "{{- range $i, $e := until $seed_size }}{{ template "common.fullname" $global }}-{{ $i }}.{{ include "common.servicename" $global }},{{- end }}" - - name: JVM_OPTS - value: {{ .Values.config.jvmOpts | quote }} - - name: CASSANDRA_CLUSTER_NAME - value: {{ .Values.config.clusterName | quote }} - - name: CASSANDRA_DC - value: {{ .Values.config.dataCenter | quote }} - - name: CASSANDRA_RACK - value: {{ .Values.config.rackName | quote }} - - name: CASSANDRA_AUTO_BOOTSTRAP - value: {{ .Values.config.autoBootstrap | quote }} - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - volumeMounts: - - name: cassandra-data - mountPath: /var/lib/cassandra - resources: -{{ include "common.resources" . | indent 10 }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end -}} - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 8 }} - {{- end }} - volumes: - - name: localtime - hostPath: - path: /etc/localtime - {{- if not .Values.persistence.enabled }} - - name: cassandra-data - emptyDir: {} - {{- else }} - volumeClaimTemplates: - - metadata: - name: cassandra-data - labels: - app: {{ template "common.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" - annotations: - volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }} - spec: - accessModes: - - {{ .Values.persistence.accessMode | quote }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} - selector: - matchLabels: - app: {{ include "common.name" . }} - release: "{{ .Release.Name }}" - {{- end }} diff --git a/kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml b/kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml deleted file mode 100644 index b949064077..0000000000 --- a/kubernetes/aai/charts/aai-cassandra/templates/volumes.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright © 2018 Amdocs, Bell Canada, AT&T -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#{{ if .Values.persistence.enabled }} -{{- $root := . -}} -{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }} ---- -apiVersion: v1 -kind: PersistentVolume -metadata: - name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }} - namespace: {{ $root.Release.Namespace }} - labels: - type: {{ $root.Values.persistence.storageType }} - app: {{ $root.Values.service.name }} - chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }} - release: {{ $root.Release.Name }} - heritage: {{ $root.Release.Service }} -spec: - capacity: - storage: {{ $root.Values.persistence.size }} - accessModes: - - {{ $root.Values.persistence.accessMode }} - hostPath: - path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{ $i }} - persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }} -{{ end }} -#{{ end }} diff --git a/kubernetes/aai/charts/aai-cassandra/values.yaml b/kubernetes/aai/charts/aai-cassandra/values.yaml deleted file mode 100644 index 1e1d2c1c2f..0000000000 --- a/kubernetes/aai/charts/aai-cassandra/values.yaml +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright © 2018 Amdocs, Bell Canada, AT&T -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Default values for cassandra. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. -global: # global defaults - nodePortPrefix: 302 - - -# application image -dockerhubRepository: registry.hub.docker.com -image: cassandra:2.1 -pullPolicy: Always - -# application configuration -config: - heap: - max: 512M - min: 100M - jvmOpts: -Dcassandra.consistent.rangemovement=false - clusterName: aai-cluster - dataCenter: Pod lab - rackName: Rack1 - autoBootstrap: true - ports: - cql: 9042 - thrift: 9160 - # If a JVM Agent is in place - # agent: 61621 - -# default number of instances -replicaCount: 3 - -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: aai-cassandra - internalPort: 9042 - portName: cql - internalPort2: 9160 - portName2: thrift - internalPort3: 61621 - portName3: agent - -podManagementPolicy: OrderedReady -updateStrategy: - type: OnDelete - -ingress: - enabled: false - -persistence: - enabled: true - - ## A manually managed Persistent Volume and Claim - ## Requires persistence.enabled: true - ## If defined, PVC must be created manually before volume will be bound - # existingClaim: - volumeReclaimPolicy: Retain - - ## database data Persistent Volume Storage Class - ## If defined, storageClassName: - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - ## storageClass: "-" - accessMode: ReadWriteOnce - size: 2Gi - mountPath: /dockerdata-nfs - mountSubPath: aai/cassandra - storageType: local - storageClass: "" - - -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/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml b/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml index 38fd64c5dc..3977a68834 100644 --- a/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml +++ b/kubernetes/aai/charts/aai-champ/resources/config/dynamic/conf/champ-beans.xml @@ -47,12 +47,9 @@ xsi:schemaLocation=" - + - - {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} - {{- $global := . }} - + diff --git a/kubernetes/aai/charts/aai-champ/templates/deployment.yaml b/kubernetes/aai/charts/aai-champ/templates/deployment.yaml index 8e4d7f48cb..a311f68799 100644 --- a/kubernetes/aai/charts/aai-champ/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-champ/templates/deployment.yaml @@ -36,7 +36,11 @@ spec: - /root/ready.py args: - --container-name + {{- if .Values.global.cassandra.localCluster }} - aai-cassandra + {{- else }} + - cassandra + {{- end }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-cached.properties index 6a28dee46e..82e7ea9b72 100644 --- a/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-cached.properties @@ -22,17 +22,14 @@ query.smart-limit=false {{ if .Values.global.config.cluster.cassandra.dynamic }} -{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} -{{- $global := . }} - storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-{{$global.Values.global.cassandra.serviceName}}-{{ $i }}.{{$global.Values.global.cassandra.serviceName}},{{- end }} +storage.hostname={{.Values.global.cassandra.serviceName}} storage.cassandra.keyspace=aaigraph storage.cassandra.read-consistency-level=LOCAL_QUORUM storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-factor=3 +storage.cassandra.replication-factor={{.Values.global.cassandra.replicas}} storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy {{ else }} diff --git a/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-realtime.properties b/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-realtime.properties index 7832d1a969..e9e9a9e9c9 100644 --- a/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-realtime.properties +++ b/kubernetes/aai/charts/aai-graphadmin/resources/config/janusgraph-realtime.properties @@ -20,17 +20,13 @@ query.smart-limit=false {{ if .Values.global.config.cluster.cassandra.dynamic }} -{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} -{{- $global := . }} - storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-{{$global.Values.global.cassandra.serviceName}}-{{ $i }}.{{$global.Values.global.cassandra.serviceName}},{{- end }} - +storage.hostname={{.Values.global.cassandra.serviceName}} storage.cassandra.keyspace=aaigraph storage.cassandra.read-consistency-level=LOCAL_QUORUM storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-factor=3 +storage.cassandra.replication-factor={{.Values.global.cassandra.replicas}} storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy {{ else }} diff --git a/kubernetes/aai/charts/aai-graphadmin/templates/deployment.yaml b/kubernetes/aai/charts/aai-graphadmin/templates/deployment.yaml index b595ac81bf..2888a64f5e 100644 --- a/kubernetes/aai/charts/aai-graphadmin/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-graphadmin/templates/deployment.yaml @@ -54,7 +54,11 @@ spec: - /root/ready.py args: - --container-name + {{- if .Values.global.cassandra.localCluster }} - aai-cassandra + {{- else }} + - cassandra + {{- end }} - --container-name - aai-schema-service {{ end }} diff --git a/kubernetes/aai/charts/aai-graphadmin/templates/job.yaml b/kubernetes/aai/charts/aai-graphadmin/templates/job.yaml index a62202ba32..55fce011c7 100644 --- a/kubernetes/aai/charts/aai-graphadmin/templates/job.yaml +++ b/kubernetes/aai/charts/aai-graphadmin/templates/job.yaml @@ -55,7 +55,11 @@ spec: - /root/ready.py args: - --container-name + {{- if .Values.global.cassandra.localCluster }} - aai-cassandra + {{- else }} + - cassandra + {{- end }} - --container-name - aai-schema-service env: diff --git a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties index 2c22d14a41..9dc66368ce 100644 --- a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties @@ -25,17 +25,13 @@ query.smart-limit=false {{ if .Values.global.config.cluster.cassandra.dynamic }} -{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} -{{- $global := . }} - storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-{{$global.Values.global.cassandra.serviceName}}-{{ $i }}.{{$global.Values.global.cassandra.serviceName}},{{- end }} - +storage.hostname={{.Values.global.cassandra.serviceName}} storage.cassandra.keyspace=aaigraph storage.cassandra.read-consistency-level=LOCAL_QUORUM storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-factor=3 +storage.cassandra.replication-factor={{.Values.global.cassandra.replicas}} storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy {{ else }} diff --git a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties index b19c9b6df6..8791a0bd7e 100644 --- a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties +++ b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-realtime.properties @@ -23,17 +23,13 @@ query.smart-limit=false {{ if .Values.global.config.cluster.cassandra.dynamic }} -{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} -{{- $global := . }} - storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-{{$global.Values.global.cassandra.serviceName}}-{{ $i }}.{{$global.Values.global.cassandra.serviceName}},{{- end }} - +storage.hostname={{.Values.global.cassandra.serviceName}} storage.cassandra.keyspace=aaigraph storage.cassandra.read-consistency-level=LOCAL_QUORUM storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-factor=3 +storage.cassandra.replication-factor={{.Values.global.cassandra.replicas}} storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy {{ else }} diff --git a/kubernetes/aai/charts/aai-resources/templates/deployment.yaml b/kubernetes/aai/charts/aai-resources/templates/deployment.yaml index 9fe4c17cc9..84438c1f0c 100644 --- a/kubernetes/aai/charts/aai-resources/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-resources/templates/deployment.yaml @@ -814,7 +814,11 @@ spec: - /root/ready.py args: - --container-name + {{- if .Values.global.cassandra.localCluster }} - aai-cassandra + {{- else }} + - cassandra + {{- end }} - --container-name - aai-schema-service {{ end }} diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties index 2c22d14a41..9dc66368ce 100644 --- a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties @@ -25,17 +25,13 @@ query.smart-limit=false {{ if .Values.global.config.cluster.cassandra.dynamic }} -{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} -{{- $global := . }} - storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-{{$global.Values.global.cassandra.serviceName}}-{{ $i }}.{{$global.Values.global.cassandra.serviceName}},{{- end }} - +storage.hostname={{.Values.global.cassandra.serviceName}} storage.cassandra.keyspace=aaigraph storage.cassandra.read-consistency-level=LOCAL_QUORUM storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-factor=3 +storage.cassandra.replication-factor={{.Values.global.cassandra.replicas}} storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy {{ else }} diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties index b19c9b6df6..8791a0bd7e 100644 --- a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties +++ b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-realtime.properties @@ -23,17 +23,13 @@ query.smart-limit=false {{ if .Values.global.config.cluster.cassandra.dynamic }} -{{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} -{{- $global := . }} - storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-{{$global.Values.global.cassandra.serviceName}}-{{ $i }}.{{$global.Values.global.cassandra.serviceName}},{{- end }} - +storage.hostname={{.Values.global.cassandra.serviceName}} storage.cassandra.keyspace=aaigraph storage.cassandra.read-consistency-level=LOCAL_QUORUM storage.cassandra.write-consistency-level=LOCAL_QUORUM -storage.cassandra.replication-factor=3 +storage.cassandra.replication-factor={{.Values.global.cassandra.replicas}} storage.cassandra.replication-strategy-class=org.apache.cassandra.locator.SimpleStrategy {{ else }} diff --git a/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml b/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml index be4b863195..c783f7d977 100644 --- a/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml @@ -449,7 +449,11 @@ spec: - /root/ready.py args: - --container-name + {{- if .Values.global.cassandra.localCluster }} - aai-cassandra + {{- else }} + - cassandra + {{- end }} - --container-name - aai-schema-service {{ end }} diff --git a/kubernetes/aai/requirements.yaml b/kubernetes/aai/requirements.yaml index 01f6f1a9aa..24f69b2e10 100644 --- a/kubernetes/aai/requirements.yaml +++ b/kubernetes/aai/requirements.yaml @@ -19,3 +19,10 @@ dependencies: # a part of this chart's package and will not # be published independently to a repo (at this point) repository: '@local' + - name: cassandra + version: ~4.x-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' + condition: global.cassandra.localCluster diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index 1d3a3a5d24..1b359fc976 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -56,7 +56,15 @@ global: # global defaults serverPort: 30247 cassandra: - serviceName: aai-cassandra + #This will instantiate AAI cassandra cluster, default:shared cassandra. + localCluster: false + + #Service Name of the cassandra cluster to connect to. + #Override it to aai-cassandra if localCluster is enabled. + serviceName: cassandra + + #This should be same as shared cassandra instance or if localCluster is enabled + #then it should be same as aai-cassandra replicaCount replicas: 3 aai: @@ -252,6 +260,20 @@ liveness: # in debugger so K8s doesn't restart unresponsive container enabled: true +#This section is used when localCluster is enabled. AAI will create its own cassandra cluster for its specific use. +#Below command will instantiate the aai cassandra instances: +#helm deploy demo local/onap --version=4.0.0 --namespace onap --set aai.enabled=true \ +# --set aai.global.cassandra.localCluster=true \ +# --set aai.global.cassandra.serviceName=aai-cassandra +cassandra: + nameOverride: aai-cassandra + replicaCount: 3 + service: + name: aai-cassandra + persistence: + mountSubPath: aai/cassandra + enabled: true + readiness: initialDelaySeconds: 10 periodSeconds: 10 -- 2.16.6