aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/common/music/charts/music-cassandra-job
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/common/music/charts/music-cassandra-job')
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/.helmignore21
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/Chart.yaml19
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt13
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql19
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql8
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql23
-rwxr-xr-xkubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml24
-rwxr-xr-xkubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml24
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml88
-rw-r--r--kubernetes/common/music/charts/music-cassandra-job/values.yaml70
10 files changed, 309 insertions, 0 deletions
diff --git a/kubernetes/common/music/charts/music-cassandra-job/.helmignore b/kubernetes/common/music/charts/music-cassandra-job/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/common/music/charts/music-cassandra-job/Chart.yaml b/kubernetes/common/music/charts/music-cassandra-job/Chart.yaml
new file mode 100644
index 0000000000..fd421764fa
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/Chart.yaml
@@ -0,0 +1,19 @@
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+
+apiVersion: v1
+description: Cassandra Job - Run CQL Scripts after Cassandra Starts.
+name: music-cassandra-job
+version: 3.0.0
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt b/kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt
new file mode 100644
index 0000000000..7f60913d26
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt
@@ -0,0 +1,13 @@
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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. \ No newline at end of file
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql
new file mode 100644
index 0000000000..a76d774bd3
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql
@@ -0,0 +1,19 @@
+CREATE KEYSPACE IF NOT EXISTS admin
+ WITH REPLICATION = {
+ 'class' : '{{.Values.cql.keyspace.replicationClass}}',
+ 'replication_factor': {{.Values.cql.keyspace.replicationFactor}}
+ }
+ AND DURABLE_WRITES = true;
+
+CREATE TABLE IF NOT EXISTS admin.keyspace_master (
+ uuid uuid,
+ keyspace_name text,
+ application_name text,
+ is_api boolean,
+ password text,
+ username text,
+ is_aaf boolean,
+ PRIMARY KEY (uuid)
+);
+
+describe keyspaces;
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql
new file mode 100644
index 0000000000..24f2ad77f7
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql
@@ -0,0 +1,8 @@
+CREATE ROLE IF NOT EXISTS {{.Values.cql.adminUser.username}}
+WITH PASSWORD = '{{.Values.cql.adminUser.password}}'
+AND SUPERUSER = true
+AND LOGIN = true;
+
+ALTER ROLE cassandra
+WITH PASSWORD = '{{.Values.cql.adminUser.passwordReplace}}';
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql
new file mode 100644
index 0000000000..a516be857b
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql
@@ -0,0 +1,23 @@
+CREATE KEYSPACE testks
+ WITH REPLICATION = {
+ 'class' : '{{.Values.cql.keyspace.replicationClass}}',
+ 'replication_factor': {{.Values.cql.keyspace.replicationFactor}}
+ }
+ AND DURABLE_WRITES = true;
+
+CREATE TABLE testks.keyspace_master_table (
+ uuid uuid,
+ keyspace_name text,
+ application_name text,
+ is_api boolean,
+ password text,
+ username text,
+ is_aaf boolean,
+ PRIMARY KEY (uuid)
+);
+
+DESCRIBE KEYSPACES;
+DESCRIBE keyspace testks;
+SELECT * FROM system_auth.roles;
+DROP keyspace testks;
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml b/kubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml
new file mode 100755
index 0000000000..011dccda25
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml
@@ -0,0 +1,24 @@
+{{/*
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-cql
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/cql/*").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml b/kubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml
new file mode 100755
index 0000000000..72733b3088
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml
@@ -0,0 +1,24 @@
+{{/*
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "common.fullname" . }}-extra-cql
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/cql/extra/*").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml b/kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml
new file mode 100644
index 0000000000..6ec282e44e
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml
@@ -0,0 +1,88 @@
+{{/*
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+*/}}
+
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ include "common.fullname" . }}-config
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}-job
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}-job
+ release: {{ .Release.Name }}
+ spec:
+ restartPolicy: Never
+ initContainers:
+ - name: {{ include "common.name" . }}-readiness
+ image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - music-cassandra
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ containers:
+ - name: {{ include "common.name" . }}-update-job
+ image: "{{ .Values.global.repository }}/{{ .Values.job.cassandra.image }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ env:
+ - name: CASS_HOSTNAME
+ value: "{{ .Values.job.host }}"
+ - name: USERNAME
+ value: "{{ .Values.cql.adminUser.username }}"
+ - name: PORT
+ value: "{{ .Values.job.port }}"
+ - name: PASSWORD
+ value: "{{ .Values.cql.adminUser.password }}"
+ - name: TIMEOUT
+ value: "{{ .Values.job.timeout }}"
+ - name: DELAY
+ value: "{{ .Values.job.delay }}"
+ volumeMounts:
+ # Admin cql Files that setup Admin Keyspace and Change Admin user.
+ - name: {{ include "common.name" . }}-cql
+ mountPath: /cql/admin.cql
+ subPath: admin.cql
+ - name: {{ include "common.name" . }}-cql
+ mountPath: /cql/admin_pw.cql
+ subPath: admin_pw.cql
+ # This is where Apps or MISC will put any of their own startup cql scripts.
+ - name: {{ include "common.name" . }}-extra-cql
+ mountPath: /cql/extra
+ volumes:
+ - name: {{ include "common.name" . }}-cql
+ configMap:
+ name: {{ include "common.fullname" . }}-cql
+ - name: {{ include "common.name" . }}-extra-cql
+ configMap:
+ name: {{ include "common.fullname" . }}-extra-cql
+ restartPolicy: Never
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/values.yaml b/kubernetes/common/music/charts/music-cassandra-job/values.yaml
new file mode 100644
index 0000000000..65883d9656
--- /dev/null
+++ b/kubernetes/common/music/charts/music-cassandra-job/values.yaml
@@ -0,0 +1,70 @@
+# Copyright © 2018 AT&T, Amdocs, Bell Canada 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.
+
+# Default values for cassandra.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global:
+ pullPolicy: Always
+ repository: nexus3.onap.org:10001
+
+ # readiness check
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:2.0.0
+
+ # logging agent
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+ replicaCount: 3
+
+job:
+ host: music-cassandra
+ port: 9042
+ busybox:
+ image: library/busybox:latest
+ cassandra:
+ image: onap/music/cassandra_job:latest
+ timeout: 30
+ delay: 120
+cql:
+ keyspace:
+ replicationClass: "SimpleStrategy"
+ replicationFactor: 3
+ adminUser:
+ username: nelson24
+ password: nelson24
+ passwordReplace: A2C4E6G8I0J2L4O6Q8S0U2W4Y6
+
+podManagementPolicy: OrderedReady
+updateStrategy:
+ type: OnDelete
+
+ingress:
+ enabled: false
+
+tolerations: []
+
+affinity: {}
+
+persistence:
+ enabled: true
+
+resources:
+ limits:
+ cpu: 1
+ memory: 1Gi
+ requests:
+ cpu: 1
+ memory: 1Gi