From a9270d9dbdeed2da5d3527a62f9b2067b5ccb0e5 Mon Sep 17 00:00:00 2001 From: Grzegorz-Lis Date: Fri, 6 Nov 2020 12:37:36 +0000 Subject: [PORTAL] Make Portal use generic Cassandra image Portal uses currently a customized, old Cassandra Image (cassandra_music:3.0.0) which doesn't support dual stack (IPv4 and IPv6). Intention of this change is to replace this image with generic, bitnami image. Issue-ID: PORTAL-1037 Signed-off-by: Grzegorz Lis Change-Id: I6d76a09328adc20b408f1e22fd608cd44b074712 --- .../docker-entrypoint-initdb.d/portal.cql | 6 ++- .../portal-cassandra/templates/deployment.yaml | 59 +++++++++++++++++----- .../portal/components/portal-cassandra/values.yaml | 11 ++-- 3 files changed, 59 insertions(+), 17 deletions(-) (limited to 'kubernetes') diff --git a/kubernetes/portal/components/portal-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/portal.cql b/kubernetes/portal/components/portal-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/portal.cql index 4fd368a5b8..21715a9e2a 100644 --- a/kubernetes/portal/components/portal-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/portal.cql +++ b/kubernetes/portal/components/portal-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/portal.cql @@ -1,4 +1,5 @@ -// Copyright © 2018 Amdocs, Bell Canada, AT&T +// Copyright (c) 2018 Amdocs, Bell Canada, AT&T +// Modifications Copyright (c) 2020 Nokia // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -66,3 +67,6 @@ CREATE TABLE portal.spring_session_attributes ( AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99PERCENTILE'; + +CREATE TABLE portal.health_check (primary_id text PRIMARY KEY, creation_time text); +insert into portal.health_check (primary_id,creation_time) values ('ECOMPPortal-25927','2018-05-25T20:14:39.408Z'); diff --git a/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml b/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml index 80197a6094..84a78ab977 100644 --- a/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml +++ b/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml @@ -1,6 +1,7 @@ {{/* -# Copyright © 2017 Amdocs, Bell Canada -# Modifications Copyright © 2018 AT&T +# Copyright (c) 2017 Amdocs, Bell Canada +# Modifications Copyright (c) 2018 AT&T +# Modifications Copyright (c) 2020 Nokia # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -38,8 +39,13 @@ spec: spec: containers: - name: {{ include "common.name" . }} - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }} + image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }} imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + command: + - /bin/bash + - -c + - | + /opt/bitnami/scripts/cassandra/entrypoint.sh /opt/bitnami/scripts/cassandra/run.sh ports: - containerPort: {{ .Values.service.internalPort }} - containerPort: {{ .Values.service.internalPort2 }} @@ -51,37 +57,64 @@ spec: exec: command: - /bin/bash - - -c - - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }' + - -ec + - | + nodetool status initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} + successThreshold: {{ .Values.liveness.successThreshold }} + failureThreshold: {{ .Values.liveness.failureThreshold }} {{ end }} readinessProbe: exec: command: - /bin/bash - - -c - - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }' + - -ec + - | + nodetool status | grep -E "^UN\\s+${POD_IP}" initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} + successThreshold: {{ .Values.readiness.successThreshold }} + failureThreshold: {{ .Values.readiness.failureThreshold }} + lifecycle: + preStop: + exec: + command: + - bash + - -ec + - nodetool decommission env: - - name: CASSUSER + - name: CASSANDRA_USER {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-creds" "key" "login") | indent 12}} - - name: CASSPASS + - name: CASSANDRA_PASSWORD {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-creds" "key" "password") | indent 12}} - - name: JVM_OPTS - value: "{{ .Values.config.cassandraJvmOpts }}" - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP + - name: CASSANDRA_PASSWORD_SEEDER + value: "yes" + - name: BITNAMI_DEBUG + value: "true" + - name: CASSANDRA_CLUSTER_NAME + value: cassandra + - name: CASSANDRA_NUM_TOKENS + value: "256" + - name: CASSANDRA_DATACENTER + value: dc1 + - name: CASSANDRA_ENDPOINT_SNITCH + value: SimpleSnitch + - name: CASSANDRA_RACK + value: rack1 + - name: CASSANDRA_ENABLE_RPC + value: "true" volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - name: cassandra-docker-entrypoint-initdb - mountPath: /docker-entrypoint-initdb.d/aaa_portal_single.cql - subPath: portal_single.cql + mountPath: /docker-entrypoint-initdb.d/aaa_portal.cql + subPath: portal.cql - name: {{ include "common.fullname" . }}-data mountPath: /var/lib/cassandra/data resources: diff --git a/kubernetes/portal/components/portal-cassandra/values.yaml b/kubernetes/portal/components/portal-cassandra/values.yaml index a0488e5cc7..ec76d08b72 100644 --- a/kubernetes/portal/components/portal-cassandra/values.yaml +++ b/kubernetes/portal/components/portal-cassandra/values.yaml @@ -1,5 +1,6 @@ -# Copyright © 2017 Amdocs, Bell Canada -# Modifications Copyright © 2018 AT&T +# Copyright (c) 2017 Amdocs, Bell Canada +# Modifications Copyright (c) 2018 AT&T +# Modifications Copyright (c) 2020 Nokia # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,7 +23,7 @@ global: # global defaults # application image -image: onap/music/cassandra_music:3.0.0 +image: bitnami/cassandra:3.11.9-debian-10-r30 pullPolicy: Always ################################################################# @@ -56,10 +57,14 @@ liveness: # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true + successThreshold: 1 + failureThreshold: 3 readiness: initialDelaySeconds: 10 periodSeconds: 10 + successThreshold: 1 + failureThreshold: 3 ## Persist data to a persitent volume persistence: -- cgit 1.2.3-korg