mirror of
https://github.com/Telecominfraproject/wlan-cloud-helm.git
synced 2026-03-22 11:39:18 +00:00
Compare commits
2 Commits
feature/up
...
feature/up
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12c8715136 | ||
|
|
9689a60173 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,7 +11,6 @@
|
|||||||
*.local_dev
|
*.local_dev
|
||||||
tip-wlan/resources/certs
|
tip-wlan/resources/certs
|
||||||
tip-wlan/resources/scripts
|
tip-wlan/resources/scripts
|
||||||
tip-wlan/templates
|
|
||||||
|
|
||||||
stern*
|
stern*
|
||||||
*.tgz
|
*.tgz
|
||||||
|
|||||||
@@ -71,10 +71,12 @@ dependencies:
|
|||||||
- name: kafka
|
- name: kafka
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
condition: kafka.enabled
|
condition: kafka.enabled
|
||||||
|
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
version: 10.1.0
|
version: 10.1.0
|
||||||
repository: https://charts.bitnami.com/bitnami
|
repository: https://charts.bitnami.com/bitnami
|
||||||
condition: postgresql.enabled
|
condition: postgresql.enabled
|
||||||
- name: cassandra
|
- name: cassandra
|
||||||
version: 5.5.3
|
version: 7.0.1
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
condition: cassandra.enabled
|
condition: cassandra.enabled
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
name: cassandra
|
|
||||||
apiVersion: v2
|
|
||||||
version: 5.5.3
|
|
||||||
appVersion: 3.11.6
|
|
||||||
description: Apache Cassandra is a free and open-source distributed database management system
|
|
||||||
designed to handle large amounts of data across many commodity servers, providing high
|
|
||||||
availability with no single point of failure.
|
|
||||||
Cassandra offers robust support for clusters spanning multiple datacenters, with asynchronous
|
|
||||||
masterless replication allowing low latency operations for all clients.
|
|
||||||
keywords:
|
|
||||||
- cassandra
|
|
||||||
- database
|
|
||||||
- nosql
|
|
||||||
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Cassandra_logo.svg/330px-Cassandra_logo.svg.png
|
|
||||||
sources:
|
|
||||||
- https://github.com/bitnami/bitnami-docker-cassandra
|
|
||||||
home: http://cassandra.apache.org
|
|
||||||
maintainers:
|
|
||||||
- name: Bitnami
|
|
||||||
email: containers@bitnami.com
|
|
||||||
engine: gotpl
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Contains certs needed for this service to start. Please refer to page: https://telecominfraproject.atlassian.net/wiki/spaces/WIFI/pages/262176803/Pre-requisites+before+deploying+Tip-Wlan+solution
|
|
||||||
@@ -1,238 +0,0 @@
|
|||||||
; Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
; or more contributor license agreements. See the NOTICE file
|
|
||||||
; distributed with this work for additional information
|
|
||||||
; regarding copyright ownership. The ASF licenses this file
|
|
||||||
; to you 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.
|
|
||||||
;
|
|
||||||
; Sample ~/.cqlshrc file.
|
|
||||||
|
|
||||||
[authentication]
|
|
||||||
;; If Cassandra has auth enabled, fill out these options
|
|
||||||
username = cassandra
|
|
||||||
password = cassandra
|
|
||||||
; keyspace = ks1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ui]
|
|
||||||
;; Whether or not to display query results with colors
|
|
||||||
color = on
|
|
||||||
|
|
||||||
;; Used for displaying timestamps (and reading them with COPY)
|
|
||||||
; datetimeformat = %Y-%m-%d %H:%M:%S%z
|
|
||||||
|
|
||||||
;; Display timezone
|
|
||||||
;timezone = Etc/UTC
|
|
||||||
|
|
||||||
;; The number of digits displayed after the decimal point for single and double precision numbers
|
|
||||||
;; (note that increasing this to large numbers can result in unusual values)
|
|
||||||
;float_precision = 5
|
|
||||||
;double_precision = 12
|
|
||||||
|
|
||||||
;; Used for automatic completion and suggestions
|
|
||||||
; completekey = tab
|
|
||||||
|
|
||||||
;; The encoding used for characters
|
|
||||||
; encoding = utf8
|
|
||||||
|
|
||||||
; To use another than the system default browser for cqlsh HELP to open
|
|
||||||
; the CQL doc HTML, use the 'browser' preference.
|
|
||||||
; If the field value is empty or not specified, cqlsh will use the
|
|
||||||
; default browser (specifying 'browser = default' does not work).
|
|
||||||
;
|
|
||||||
; Supported browsers are those supported by the Python webbrowser module.
|
|
||||||
; (https://docs.python.org/2/library/webbrowser.html).
|
|
||||||
;
|
|
||||||
; Hint: to use Google Chome, use
|
|
||||||
; 'browser = open -a /Applications/Google\ Chrome.app %s' on Mac OS X and
|
|
||||||
; 'browser = /usr/bin/google-chrome-stable %s' on Linux and
|
|
||||||
; 'browser = C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s' on Windows.
|
|
||||||
;
|
|
||||||
; This setting can be overridden with the --browser command line option.
|
|
||||||
;
|
|
||||||
;browser =
|
|
||||||
|
|
||||||
[cql]
|
|
||||||
;; A version of CQL to use (this should almost never be set)
|
|
||||||
; version = 3.2.1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[connection]
|
|
||||||
|
|
||||||
;; The host to connect to
|
|
||||||
hostname = tip-wlan-cassandra-headless
|
|
||||||
|
|
||||||
;; The port to connect to (9042 is the native protocol default)
|
|
||||||
port = 9042
|
|
||||||
|
|
||||||
;; Always connect using SSL - false by default
|
|
||||||
ssl = true
|
|
||||||
|
|
||||||
;; A timeout in seconds for opening new connections
|
|
||||||
; timeout = 10
|
|
||||||
|
|
||||||
;; A timeout in seconds for executing queries
|
|
||||||
; request_timeout = 10
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[csv]
|
|
||||||
;; The size limit for parsed fields
|
|
||||||
; field_size_limit = 131072
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[tracing]
|
|
||||||
;; The max number of seconds to wait for a trace to complete
|
|
||||||
; max_trace_wait = 10.0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ssl]
|
|
||||||
certfile = /opt/tip-wlan/certs/cacert.pem
|
|
||||||
|
|
||||||
;; Optional - true by default.
|
|
||||||
;validate = true
|
|
||||||
|
|
||||||
;; To be provided when require_client_auth=true
|
|
||||||
userkey = /opt/tip-wlan/certs/cassandraserverkey_dec.pem
|
|
||||||
|
|
||||||
;; To be provided when require_client_auth=true
|
|
||||||
usercert = /opt/tip-wlan/certs/cassandraservercert.pem
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Optional section, overrides default certfile in [ssl] section, if present
|
|
||||||
; [certfiles]
|
|
||||||
; 192.168.1.3 = ~/keys/cassandra01.cert
|
|
||||||
; 192.168.1.4 = ~/keys/cassandra02.cert
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Options that are common to both COPY TO and COPY FROM
|
|
||||||
; [copy]
|
|
||||||
|
|
||||||
;; The string placeholder for null values
|
|
||||||
; nullval = null
|
|
||||||
|
|
||||||
;; For COPY TO, controls whether the first line in the CSV output file will
|
|
||||||
;; contain the column names. For COPY FROM, specifies whether the first
|
|
||||||
;; line in the CSV file contains column names.
|
|
||||||
; header = false
|
|
||||||
|
|
||||||
;; The character that is used as the decimal point separator
|
|
||||||
; decimalsep = .
|
|
||||||
|
|
||||||
;; The character that is used to separate thousands
|
|
||||||
;; (defaults to the empty string)
|
|
||||||
; thousandssep =
|
|
||||||
|
|
||||||
;; The string literal format for boolean values
|
|
||||||
; boolstyle = True,False
|
|
||||||
|
|
||||||
;; The number of child worker processes to create for
|
|
||||||
;; COPY tasks. Defaults to a max of 4 for COPY FROM and 16
|
|
||||||
;; for COPY TO. However, at most (num_cores - 1) processes
|
|
||||||
;; will be created.
|
|
||||||
; numprocesses =
|
|
||||||
|
|
||||||
;; The maximum number of failed attempts to fetch a range of data (when using
|
|
||||||
;; COPY TO) or insert a chunk of data (when using COPY FROM) before giving up
|
|
||||||
; maxattempts = 5
|
|
||||||
|
|
||||||
;; How often status updates are refreshed, in seconds
|
|
||||||
; reportfrequency = 0.25
|
|
||||||
|
|
||||||
;; An optional file to output rate statistics to
|
|
||||||
; ratefile =
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Options specific to COPY TO
|
|
||||||
; [copy-to]
|
|
||||||
|
|
||||||
;; The maximum number token ranges to fetch simultaneously
|
|
||||||
; maxrequests = 6
|
|
||||||
|
|
||||||
;; The number of rows to fetch in a single page
|
|
||||||
; pagesize = 1000
|
|
||||||
|
|
||||||
;; By default the page timeout is 10 seconds per 1000 entries
|
|
||||||
;; in the page size or 10 seconds if pagesize is smaller
|
|
||||||
; pagetimeout = 10
|
|
||||||
|
|
||||||
;; Token range to export. Defaults to exporting the full ring.
|
|
||||||
; begintoken =
|
|
||||||
; endtoken =
|
|
||||||
|
|
||||||
; The maximum size of the output file measured in number of lines;
|
|
||||||
; beyond this maximum the output file will be split into segments.
|
|
||||||
; -1 means unlimited.
|
|
||||||
; maxoutputsize = -1
|
|
||||||
|
|
||||||
;; The encoding used for characters
|
|
||||||
; encoding = utf8
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Options specific to COPY FROM
|
|
||||||
; [copy-from]
|
|
||||||
|
|
||||||
;; The maximum number of rows to process per second
|
|
||||||
; ingestrate = 100000
|
|
||||||
|
|
||||||
;; The maximum number of rows to import (-1 means unlimited)
|
|
||||||
; maxrows = -1
|
|
||||||
|
|
||||||
;; A number of initial rows to skip
|
|
||||||
; skiprows = 0
|
|
||||||
|
|
||||||
;; A comma-separated list of column names to ignore
|
|
||||||
; skipcols =
|
|
||||||
|
|
||||||
;; The maximum global number of parsing errors to ignore, -1 means unlimited
|
|
||||||
; maxparseerrors = -1
|
|
||||||
|
|
||||||
;; The maximum global number of insert errors to ignore, -1 means unlimited
|
|
||||||
; maxinserterrors = 1000
|
|
||||||
|
|
||||||
;; A file to store all rows that could not be imported, by default this is
|
|
||||||
;; import_<ks>_<table>.err where <ks> is your keyspace and <table> is your table name.
|
|
||||||
; errfile =
|
|
||||||
|
|
||||||
;; The min and max number of rows inserted in a single batch
|
|
||||||
; maxbatchsize = 20
|
|
||||||
; minbatchsize = 2
|
|
||||||
|
|
||||||
;; The number of rows that are passed to child worker processes from
|
|
||||||
;; the main process at a time
|
|
||||||
; chunksize = 1000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; The options for COPY can also be specified per-table. The following
|
|
||||||
;; three sections demonstrate this.
|
|
||||||
|
|
||||||
;; Optional table-specific options for COPY
|
|
||||||
; [copy:mykeyspace.mytable]
|
|
||||||
; chunksize = 1000
|
|
||||||
|
|
||||||
;; Optional table-specific options for COPY FROM
|
|
||||||
; [copy-from:mykeyspace.mytable]
|
|
||||||
; ingestrate = 20000
|
|
||||||
|
|
||||||
;; Optional table-specific options for COPY TO
|
|
||||||
; [copy-to:mykeyspace.mytable]
|
|
||||||
; pagetimeout = 30
|
|
||||||
@@ -1,238 +0,0 @@
|
|||||||
; Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
; or more contributor license agreements. See the NOTICE file
|
|
||||||
; distributed with this work for additional information
|
|
||||||
; regarding copyright ownership. The ASF licenses this file
|
|
||||||
; to you 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.
|
|
||||||
;
|
|
||||||
; Sample ~/.cqlshrc file.
|
|
||||||
|
|
||||||
[authentication]
|
|
||||||
;; If Cassandra has auth enabled, fill out these options
|
|
||||||
username = tip_user
|
|
||||||
password = tip_password
|
|
||||||
; keyspace = ks1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ui]
|
|
||||||
;; Whether or not to display query results with colors
|
|
||||||
color = on
|
|
||||||
|
|
||||||
;; Used for displaying timestamps (and reading them with COPY)
|
|
||||||
; datetimeformat = %Y-%m-%d %H:%M:%S%z
|
|
||||||
|
|
||||||
;; Display timezone
|
|
||||||
;timezone = Etc/UTC
|
|
||||||
|
|
||||||
;; The number of digits displayed after the decimal point for single and double precision numbers
|
|
||||||
;; (note that increasing this to large numbers can result in unusual values)
|
|
||||||
;float_precision = 5
|
|
||||||
;double_precision = 12
|
|
||||||
|
|
||||||
;; Used for automatic completion and suggestions
|
|
||||||
; completekey = tab
|
|
||||||
|
|
||||||
;; The encoding used for characters
|
|
||||||
; encoding = utf8
|
|
||||||
|
|
||||||
; To use another than the system default browser for cqlsh HELP to open
|
|
||||||
; the CQL doc HTML, use the 'browser' preference.
|
|
||||||
; If the field value is empty or not specified, cqlsh will use the
|
|
||||||
; default browser (specifying 'browser = default' does not work).
|
|
||||||
;
|
|
||||||
; Supported browsers are those supported by the Python webbrowser module.
|
|
||||||
; (https://docs.python.org/2/library/webbrowser.html).
|
|
||||||
;
|
|
||||||
; Hint: to use Google Chome, use
|
|
||||||
; 'browser = open -a /Applications/Google\ Chrome.app %s' on Mac OS X and
|
|
||||||
; 'browser = /usr/bin/google-chrome-stable %s' on Linux and
|
|
||||||
; 'browser = C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s' on Windows.
|
|
||||||
;
|
|
||||||
; This setting can be overridden with the --browser command line option.
|
|
||||||
;
|
|
||||||
;browser =
|
|
||||||
|
|
||||||
[cql]
|
|
||||||
;; A version of CQL to use (this should almost never be set)
|
|
||||||
; version = 3.2.1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[connection]
|
|
||||||
|
|
||||||
;; The host to connect to
|
|
||||||
hostname = tip-wlan-cassandra-headless
|
|
||||||
|
|
||||||
;; The port to connect to (9042 is the native protocol default)
|
|
||||||
port = 9042
|
|
||||||
|
|
||||||
;; Always connect using SSL - false by default
|
|
||||||
ssl = true
|
|
||||||
|
|
||||||
;; A timeout in seconds for opening new connections
|
|
||||||
; timeout = 10
|
|
||||||
|
|
||||||
;; A timeout in seconds for executing queries
|
|
||||||
; request_timeout = 10
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[csv]
|
|
||||||
;; The size limit for parsed fields
|
|
||||||
; field_size_limit = 131072
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[tracing]
|
|
||||||
;; The max number of seconds to wait for a trace to complete
|
|
||||||
; max_trace_wait = 10.0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ssl]
|
|
||||||
certfile = /opt/tip-wlan/certs/cacert.pem
|
|
||||||
|
|
||||||
;; Optional - true by default.
|
|
||||||
;validate = true
|
|
||||||
|
|
||||||
;; To be provided when require_client_auth=true
|
|
||||||
userkey = /opt/tip-wlan/certs/cassandraserverkey_dec.pem
|
|
||||||
|
|
||||||
;; To be provided when require_client_auth=true
|
|
||||||
usercert = /opt/tip-wlan/certs/cassandraservercert.pem
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Optional section, overrides default certfile in [ssl] section, if present
|
|
||||||
; [certfiles]
|
|
||||||
; 192.168.1.3 = ~/keys/cassandra01.cert
|
|
||||||
; 192.168.1.4 = ~/keys/cassandra02.cert
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Options that are common to both COPY TO and COPY FROM
|
|
||||||
; [copy]
|
|
||||||
|
|
||||||
;; The string placeholder for null values
|
|
||||||
; nullval = null
|
|
||||||
|
|
||||||
;; For COPY TO, controls whether the first line in the CSV output file will
|
|
||||||
;; contain the column names. For COPY FROM, specifies whether the first
|
|
||||||
;; line in the CSV file contains column names.
|
|
||||||
; header = false
|
|
||||||
|
|
||||||
;; The character that is used as the decimal point separator
|
|
||||||
; decimalsep = .
|
|
||||||
|
|
||||||
;; The character that is used to separate thousands
|
|
||||||
;; (defaults to the empty string)
|
|
||||||
; thousandssep =
|
|
||||||
|
|
||||||
;; The string literal format for boolean values
|
|
||||||
; boolstyle = True,False
|
|
||||||
|
|
||||||
;; The number of child worker processes to create for
|
|
||||||
;; COPY tasks. Defaults to a max of 4 for COPY FROM and 16
|
|
||||||
;; for COPY TO. However, at most (num_cores - 1) processes
|
|
||||||
;; will be created.
|
|
||||||
; numprocesses =
|
|
||||||
|
|
||||||
;; The maximum number of failed attempts to fetch a range of data (when using
|
|
||||||
;; COPY TO) or insert a chunk of data (when using COPY FROM) before giving up
|
|
||||||
; maxattempts = 5
|
|
||||||
|
|
||||||
;; How often status updates are refreshed, in seconds
|
|
||||||
; reportfrequency = 0.25
|
|
||||||
|
|
||||||
;; An optional file to output rate statistics to
|
|
||||||
; ratefile =
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Options specific to COPY TO
|
|
||||||
; [copy-to]
|
|
||||||
|
|
||||||
;; The maximum number token ranges to fetch simultaneously
|
|
||||||
; maxrequests = 6
|
|
||||||
|
|
||||||
;; The number of rows to fetch in a single page
|
|
||||||
; pagesize = 1000
|
|
||||||
|
|
||||||
;; By default the page timeout is 10 seconds per 1000 entries
|
|
||||||
;; in the page size or 10 seconds if pagesize is smaller
|
|
||||||
; pagetimeout = 10
|
|
||||||
|
|
||||||
;; Token range to export. Defaults to exporting the full ring.
|
|
||||||
; begintoken =
|
|
||||||
; endtoken =
|
|
||||||
|
|
||||||
; The maximum size of the output file measured in number of lines;
|
|
||||||
; beyond this maximum the output file will be split into segments.
|
|
||||||
; -1 means unlimited.
|
|
||||||
; maxoutputsize = -1
|
|
||||||
|
|
||||||
;; The encoding used for characters
|
|
||||||
; encoding = utf8
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Options specific to COPY FROM
|
|
||||||
; [copy-from]
|
|
||||||
|
|
||||||
;; The maximum number of rows to process per second
|
|
||||||
; ingestrate = 100000
|
|
||||||
|
|
||||||
;; The maximum number of rows to import (-1 means unlimited)
|
|
||||||
; maxrows = -1
|
|
||||||
|
|
||||||
;; A number of initial rows to skip
|
|
||||||
; skiprows = 0
|
|
||||||
|
|
||||||
;; A comma-separated list of column names to ignore
|
|
||||||
; skipcols =
|
|
||||||
|
|
||||||
;; The maximum global number of parsing errors to ignore, -1 means unlimited
|
|
||||||
; maxparseerrors = -1
|
|
||||||
|
|
||||||
;; The maximum global number of insert errors to ignore, -1 means unlimited
|
|
||||||
; maxinserterrors = 1000
|
|
||||||
|
|
||||||
;; A file to store all rows that could not be imported, by default this is
|
|
||||||
;; import_<ks>_<table>.err where <ks> is your keyspace and <table> is your table name.
|
|
||||||
; errfile =
|
|
||||||
|
|
||||||
;; The min and max number of rows inserted in a single batch
|
|
||||||
; maxbatchsize = 20
|
|
||||||
; minbatchsize = 2
|
|
||||||
|
|
||||||
;; The number of rows that are passed to child worker processes from
|
|
||||||
;; the main process at a time
|
|
||||||
; chunksize = 1000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; The options for COPY can also be specified per-table. The following
|
|
||||||
;; three sections demonstrate this.
|
|
||||||
|
|
||||||
;; Optional table-specific options for COPY
|
|
||||||
; [copy:mykeyspace.mytable]
|
|
||||||
; chunksize = 1000
|
|
||||||
|
|
||||||
;; Optional table-specific options for COPY FROM
|
|
||||||
; [copy-from:mykeyspace.mytable]
|
|
||||||
; ingestrate = 20000
|
|
||||||
|
|
||||||
;; Optional table-specific options for COPY TO
|
|
||||||
; [copy-to:mykeyspace.mytable]
|
|
||||||
; pagetimeout = 30
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
** Please be patient while the chart is being deployed **
|
|
||||||
|
|
||||||
Cassandra can be accessed through the following URLs from within the cluster:
|
|
||||||
|
|
||||||
- CQL: {{ template "common.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.cluster.domain }}:{{ .Values.service.port }}
|
|
||||||
- Thrift: {{ template "common.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.cluster.domain }}:{{ .Values.service.thriftPort }}
|
|
||||||
|
|
||||||
To get your password run:
|
|
||||||
|
|
||||||
export CASSANDRA_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "common.fullname" . }} -o jsonpath="{.data.cassandra-password}" | base64 --decode)
|
|
||||||
|
|
||||||
Check the cluster status by running:
|
|
||||||
|
|
||||||
kubectl exec -it --namespace {{ .Release.Namespace }} $(kubectl get pods --namespace {{ .Release.Namespace }} -l app={{ template "common.name" . }},release={{ .Release.Name }} -o jsonpath='{.items[0].metadata.name}') nodetool status
|
|
||||||
|
|
||||||
To connect to your Cassandra cluster using CQL:
|
|
||||||
|
|
||||||
1. Run a Cassandra pod that you can use as a client:
|
|
||||||
|
|
||||||
kubectl run --namespace {{ .Release.Namespace }} {{ template "common.fullname" . }}-client --rm --tty -i --restart='Never' \
|
|
||||||
--env CASSANDRA_PASSWORD=$CASSANDRA_PASSWORD \
|
|
||||||
{{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }}--labels="{{ template "common.name" . }}-client=true"{{ end }} \
|
|
||||||
--image {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }} -- bash
|
|
||||||
|
|
||||||
2. Connect using the cqlsh client:
|
|
||||||
|
|
||||||
cqlsh -u {{ .Values.dbUser.user }} -p $CASSANDRA_PASSWORD {{ template "common.fullname" . }}
|
|
||||||
|
|
||||||
{{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }}
|
|
||||||
Note: Since NetworkPolicy is enabled, only pods with label
|
|
||||||
"{{ template "common.fullname" . }}-client=true"
|
|
||||||
will be able to connect to Cassandra.
|
|
||||||
{{- else -}}
|
|
||||||
|
|
||||||
To connect to your database from outside the cluster execute the following commands:
|
|
||||||
|
|
||||||
{{- if contains "NodePort" .Values.service.type }}
|
|
||||||
|
|
||||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
|
||||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "common.fullname" . }})
|
|
||||||
|
|
||||||
cqlsh -u {{ .Values.dbUser.user }} -p $CASSANDRA_PASSWORD $NODE_IP $NODE_PORT
|
|
||||||
|
|
||||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
|
||||||
|
|
||||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
|
||||||
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "common.fullname" . }}'
|
|
||||||
|
|
||||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "common.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
|
||||||
cqlsh -u {{ .Values.dbUser.user }} -p $CASSANDRA_PASSWORD $SERVICE_IP
|
|
||||||
|
|
||||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
|
||||||
|
|
||||||
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "common.fullname" . }} {{ .Values.service.port }}:{{ .Values.service.port }} &
|
|
||||||
cqlsh -u {{ .Values.dbUser.user }} -p $CASSANDRA_PASSWORD 127.0.0.1 {{ .Values.service.port }}
|
|
||||||
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if and (contains "bitnami/" .Values.image.repository) (not (.Values.image.tag | toString | regexFind "-r\\d+$|sha256:")) }}
|
|
||||||
|
|
||||||
WARNING: Rolling tag detected ({{ .Values.image.repository }}:{{ .Values.image.tag }}), please note that it is strongly recommended to avoid using rolling tags in a production environment.
|
|
||||||
+info https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/
|
|
||||||
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
{{/* vim: set filetype=mustache: */}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Return the appropriate apiVersion for networkpolicy.
|
|
||||||
*/}}
|
|
||||||
{{- define "networkPolicy.apiVersion" -}}
|
|
||||||
{{- if semverCompare ">=1.4-0, <1.7-0" .Capabilities.KubeVersion.GitVersion -}}
|
|
||||||
{{- print "extensions/v1beta1" -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- print "networking.k8s.io/v1" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Return the proper metrics image name
|
|
||||||
*/}}
|
|
||||||
{{- define "cassandra.metrics.image" -}}
|
|
||||||
{{- $registryName := .Values.metrics.image.registry -}}
|
|
||||||
{{- $repositoryName := .Values.metrics.image.repository -}}
|
|
||||||
{{- $tag := .Values.metrics.image.tag | toString -}}
|
|
||||||
{{/*
|
|
||||||
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
|
|
||||||
but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
|
|
||||||
Also, we can't use a single if because lazy evaluation is not an option
|
|
||||||
*/}}
|
|
||||||
{{- if .Values.global }}
|
|
||||||
{{- if .Values.global.imageRegistry }}
|
|
||||||
{{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Return the proper image name (for the init container volume-permissions image)
|
|
||||||
*/}}
|
|
||||||
{{- define "cassandra.volumePermissions.image" -}}
|
|
||||||
{{- $registryName := .Values.volumePermissions.image.registry -}}
|
|
||||||
{{- $repositoryName := .Values.volumePermissions.image.repository -}}
|
|
||||||
{{- $tag := .Values.volumePermissions.image.tag | toString -}}
|
|
||||||
{{/*
|
|
||||||
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
|
|
||||||
but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
|
|
||||||
Also, we can't use a single if because lazy evaluation is not an option
|
|
||||||
*/}}
|
|
||||||
{{- if .Values.global }}
|
|
||||||
{{- if .Values.global.imageRegistry }}
|
|
||||||
{{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Renders a value that contains template.
|
|
||||||
Usage:
|
|
||||||
{{ include "cassandra.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }}
|
|
||||||
*/}}
|
|
||||||
{{- define "cassandra.tplValue" -}}
|
|
||||||
{{- if typeIs "string" .value }}
|
|
||||||
{{- tpl .value .context }}
|
|
||||||
{{- else }}
|
|
||||||
{{- tpl (.value | toYaml) .context }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: cassandra-configurations-override
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
data:
|
|
||||||
{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}-headless
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
labels: {{- include "common.labels" . | nindent 4 }}
|
|
||||||
annotations: {{ include "cassandra.tplValue" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
clusterIP: None
|
|
||||||
publishNotReadyAddresses: true
|
|
||||||
ports:
|
|
||||||
- name: intra
|
|
||||||
port: 7000
|
|
||||||
targetPort: intra
|
|
||||||
- name: tls
|
|
||||||
port: 7001
|
|
||||||
targetPort: tls
|
|
||||||
- name: jmx
|
|
||||||
port: 7199
|
|
||||||
targetPort: jmx
|
|
||||||
- name: cql
|
|
||||||
port: {{ .Values.service.port }}
|
|
||||||
targetPort: cql
|
|
||||||
{{- if .Values.cluster.enableRPC }}
|
|
||||||
- name: thrift
|
|
||||||
port: {{ .Values.service.thriftPort }}
|
|
||||||
targetPort: thrift
|
|
||||||
{{- end }}
|
|
||||||
selector: {{- include "common.selectorLabels" . | nindent 4 }}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{{- if .Values.networkPolicy.enabled }}
|
|
||||||
kind: NetworkPolicy
|
|
||||||
apiVersion: {{ include "networkPolicy.apiVersion" . }}
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
labels: {{- include "common.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
podSelector:
|
|
||||||
matchLabels: {{- include "common.selectorLabels" . | nindent 6 }}
|
|
||||||
ingress:
|
|
||||||
# Allow inbound connections
|
|
||||||
# CQL and Thrift ports
|
|
||||||
- ports:
|
|
||||||
- port: {{ .Values.service.port }}
|
|
||||||
- port: {{ .Values.service.thriftPort }}
|
|
||||||
from:
|
|
||||||
{{- if not .Values.networkPolicy.allowExternal }}
|
|
||||||
- podSelector:
|
|
||||||
matchLabels:
|
|
||||||
{{ include "common.fullname" . }}-client: "true"
|
|
||||||
{{- end }}
|
|
||||||
- podSelector:
|
|
||||||
matchLabels: {{- include "common.selectorLabels" . | nindent 14 }}
|
|
||||||
# Internal ports
|
|
||||||
- ports:
|
|
||||||
- port: intra
|
|
||||||
- port: tls
|
|
||||||
- port: jmx
|
|
||||||
from:
|
|
||||||
- podSelector:
|
|
||||||
matchLabels: {{- include "common.selectorLabels" . | nindent 14 }}
|
|
||||||
{{- if .Values.metrics.enabled }}
|
|
||||||
# Allow prometheus scrapes for metrics
|
|
||||||
- ports:
|
|
||||||
- port: 8080
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{{- if (not .Values.dbUser.existingSecret) -}}
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
labels: {{- include "common.labels" . | nindent 4 }}
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
{{- if .Values.dbUser.password }}
|
|
||||||
cassandra-password: {{ .Values.dbUser.password | b64enc | quote }}
|
|
||||||
{{- else if (not .Values.dbUser.forcePassword) }}
|
|
||||||
cassandra-password: {{ randAlphaNum 10 | b64enc | quote }}
|
|
||||||
{{ else }}
|
|
||||||
cassandra-password: {{ required "A Cassandra Password is required!" .Values.dbUser.password }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: cassandra-ssl-certs
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
truststore: {{ .Files.Get "resources/config/certs/truststore.jks" | b64enc }}
|
|
||||||
truststore-password: {{ .Values.creds.sslTruststorePassword | b64enc }}
|
|
||||||
keystore: {{ .Files.Get "resources/config/certs/cassandra_server_keystore.jks" | b64enc }}
|
|
||||||
keystore-password: {{ .Values.creds.sslKeystorePassword | b64enc }}
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}-client-certs
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
type: Opaque
|
|
||||||
data:
|
|
||||||
{{ tpl (.Files.Glob "resources/config/certs/*").AsSecrets . | indent 2 }}
|
|
||||||
keystore_creds: {{ .Values.creds.sslKeystorePassword | b64enc }}
|
|
||||||
truststore_creds: {{ .Values.creds.sslTruststorePassword | b64enc }}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
labels: {{- include "common.labels" . | nindent 4 }}
|
|
||||||
annotations: {{ include "cassandra.tplValue" ( dict "value" .Values.service.annotations "context" $) | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
type: {{ .Values.service.type }}
|
|
||||||
{{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }}
|
|
||||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
|
||||||
{{- end }}
|
|
||||||
ports:
|
|
||||||
- name: cql
|
|
||||||
port: {{ .Values.service.port }}
|
|
||||||
targetPort: cql
|
|
||||||
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.cql)) }}
|
|
||||||
nodePort: {{ .Values.service.nodePorts.cql }}
|
|
||||||
{{- else if eq .Values.service.type "ClusterIP" }}
|
|
||||||
nodePort: null
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.cluster.enableRPC }}
|
|
||||||
- name: thrift
|
|
||||||
port: {{ .Values.service.thriftPort }}
|
|
||||||
targetPort: thrift
|
|
||||||
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.thrift)) }}
|
|
||||||
nodePort: {{ .Values.service.nodePorts.thrift }}
|
|
||||||
{{- else if eq .Values.service.type "ClusterIP" }}
|
|
||||||
nodePort: null
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
selector: {{- include "common.selectorLabels" . | nindent 4 }}
|
|
||||||
@@ -1,306 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
labels: {{- include "common.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels: {{- include "common.selectorLabels" . | nindent 6 }}
|
|
||||||
serviceName: {{ include "common.fullname" . }}-headless
|
|
||||||
replicas: {{ .Values.cluster.replicaCount }}
|
|
||||||
updateStrategy:
|
|
||||||
type: {{ .Values.statefulset.updateStrategy }}
|
|
||||||
{{- if (eq "Recreate" .Values.statefulset.updateStrategy) }}
|
|
||||||
rollingUpdate: null
|
|
||||||
{{- else if .Values.statefulset.rollingUpdatePartition }}
|
|
||||||
rollingUpdate:
|
|
||||||
partition: {{ .Values.statefulset.rollingUpdatePartition }}
|
|
||||||
{{- end }}
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels: {{- include "common.labels" . | nindent 8 }}
|
|
||||||
{{- if .Values.podLabels }}
|
|
||||||
{{- toYaml .Values.podLabels | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if or .Values.podAnnotations (and .Values.metrics.enabled .Values.metrics.podAnnotations) }}
|
|
||||||
annotations:
|
|
||||||
{{- if .Values.podAnnotations }}
|
|
||||||
{{- toYaml .Values.podAnnotations | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.metrics.podAnnotations }}
|
|
||||||
{{- toYaml .Values.metrics.podAnnotations | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
{{- if .Values.affinity }}
|
|
||||||
affinity: {{- include "cassandra.tplValue" (dict "value" .Values.affinity "context" $) | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.nodeSelector }}
|
|
||||||
nodeSelector: {{- include "cassandra.tplValue" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.tolerations }}
|
|
||||||
tolerations: {{- include "cassandra.tplValue" (dict "value" .Values.tolerations "context" $) | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.securityContext.enabled }}
|
|
||||||
securityContext:
|
|
||||||
fsGroup: {{ .Values.securityContext.fsGroup }}
|
|
||||||
runAsUser: {{ .Values.securityContext.runAsUser }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
|
|
||||||
initContainers:
|
|
||||||
- name: volume-permissions
|
|
||||||
image: {{ include "cassandra.volumePermissions.image" . }}
|
|
||||||
imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy | quote }}
|
|
||||||
command:
|
|
||||||
- /bin/bash
|
|
||||||
- -ec
|
|
||||||
- |
|
|
||||||
chown -R {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} /bitnami/cassandra
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 0
|
|
||||||
{{- if .Values.volumePermissions.resources }}
|
|
||||||
resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /bitnami/cassandra
|
|
||||||
{{- end }}
|
|
||||||
containers:
|
|
||||||
- name: cassandra
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -ec
|
|
||||||
# Node 0 is the password seeder
|
|
||||||
- |
|
|
||||||
if [[ $HOSTNAME =~ (.*)-0$ ]]; then
|
|
||||||
echo "Setting node as password seeder"
|
|
||||||
export CASSANDRA_PASSWORD_SEEDER=yes
|
|
||||||
else
|
|
||||||
# Only node 0 will execute the startup initdb scripts
|
|
||||||
export CASSANDRA_IGNORE_INITDB_SCRIPTS=1
|
|
||||||
fi
|
|
||||||
{{ .Values.entrypoint }} {{ .Values.cmd }}
|
|
||||||
image: {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}
|
|
||||||
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
|
|
||||||
env:
|
|
||||||
- name: BITNAMI_DEBUG
|
|
||||||
value: {{ ternary "true" "false" .Values.image.debug | quote }}
|
|
||||||
- name: CASSANDRA_CLUSTER_NAME
|
|
||||||
value: {{ .Values.cluster.name }}
|
|
||||||
- name: CASSANDRA_SEEDS
|
|
||||||
{{- $global := . }}
|
|
||||||
{{- $replicas := .Values.cluster.seedCount | int }}
|
|
||||||
{{- $domain := .Values.cluster.domain }}
|
|
||||||
value: "{{- range $i, $e := until $replicas }}{{ include "common.fullname" $global }}-{{ $i }}.{{ include "common.fullname" $global }}-headless.{{ $global.Values.global.nsPrefix }}.svc.{{ $domain }}{{- if (lt ( add1 $i ) $replicas ) }},{{- end }}{{- end }}"
|
|
||||||
- name: CASSANDRA_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ if .Values.dbUser.existingSecret }}{{ .Values.dbUser.existingSecret }}{{- else }}{{ include "common.fullname" . }}{{- end }}
|
|
||||||
key: cassandra-password
|
|
||||||
- name: POD_IP
|
|
||||||
valueFrom:
|
|
||||||
fieldRef:
|
|
||||||
fieldPath: status.podIP
|
|
||||||
- name: CASSANDRA_USER
|
|
||||||
value: {{ .Values.dbUser.user | quote }}
|
|
||||||
- name: CASSANDRA_NUM_TOKENS
|
|
||||||
value: {{ .Values.cluster.numTokens | quote }}
|
|
||||||
- name: CASSANDRA_DATACENTER
|
|
||||||
value: {{ .Values.cluster.datacenter }}
|
|
||||||
- name: CASSANDRA_ENDPOINT_SNITCH
|
|
||||||
value: {{ .Values.cluster.endpointSnitch }}
|
|
||||||
{{- if .Values.tlsEncryptionSecretName }}
|
|
||||||
- name: CASSANDRA_INTERNODE_ENCRYPTION
|
|
||||||
value: {{ .Values.cluster.internodeEncryption | quote }}
|
|
||||||
- name: CASSANDRA_CLIENT_ENCRYPTION
|
|
||||||
value: {{ .Values.cluster.clientEncryption | quote }}
|
|
||||||
- name: CASSANDRA_TRUSTSTORE_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .Values.tlsEncryptionSecretName }}
|
|
||||||
key: truststore-password
|
|
||||||
- name: CASSANDRA_KEYSTORE_PASSWORD
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .Values.tlsEncryptionSecretName }}
|
|
||||||
key: keystore-password
|
|
||||||
{{- end }}
|
|
||||||
- name: CASSANDRA_RACK
|
|
||||||
value: {{ .Values.cluster.rack }}
|
|
||||||
{{- if .Values.jvm.maxHeapSize }}
|
|
||||||
- name: MAX_HEAP_SIZE
|
|
||||||
value: {{ .Values.jvm.maxHeapSize | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.jvm.newHeapSize }}
|
|
||||||
- name: HEAP_NEWSIZE
|
|
||||||
value: {{ .Values.jvm.newHeapSize | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.jvm.extraOpts }}
|
|
||||||
- name: JVM_EXTRA_OPTS
|
|
||||||
value: {{ .Values.jvm.extraOpts | quote }}
|
|
||||||
{{- end }}
|
|
||||||
- name: CASSANDRA_ENABLE_RPC
|
|
||||||
value: {{ .Values.cluster.enableRPC | quote }}
|
|
||||||
{{- if .Values.cluster.enableUDF }}
|
|
||||||
- name: CASSANDRA_ENABLE_USER_DEFINED_FUNCTIONS
|
|
||||||
value: {{ .Values.cluster.enableUDF | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.livenessProbe.enabled }}
|
|
||||||
livenessProbe:
|
|
||||||
exec:
|
|
||||||
command: ["/bin/sh", "-c", "nodetool status"]
|
|
||||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
|
||||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
|
||||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
|
||||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
|
||||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.readinessProbe.enabled }}
|
|
||||||
readinessProbe:
|
|
||||||
exec:
|
|
||||||
command: ["/bin/sh", "-c", "nodetool status | grep -E \"^UN\\s+${POD_IP}\""]
|
|
||||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
|
||||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
|
||||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
|
||||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
|
||||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if not .Values.persistence.enabled }}
|
|
||||||
lifecycle:
|
|
||||||
preStop:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -ec
|
|
||||||
- nodetool decommission
|
|
||||||
{{- end }}
|
|
||||||
ports:
|
|
||||||
- name: intra
|
|
||||||
containerPort: 7000
|
|
||||||
- name: tls
|
|
||||||
containerPort: 7001
|
|
||||||
- name: jmx
|
|
||||||
containerPort: 7199
|
|
||||||
- name: cql
|
|
||||||
containerPort: 9042
|
|
||||||
{{- if .Values.cluster.enableRPC }}
|
|
||||||
- name: thrift
|
|
||||||
containerPort: 9160
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.resources }}
|
|
||||||
resources: {{ toYaml .Values.resources | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /bitnami/cassandra
|
|
||||||
{{- if .Values.tlsEncryptionSecretName }}
|
|
||||||
- name: encryption-secrets
|
|
||||||
mountPath: /bitnami/cassandra/secrets
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.initDBConfigMap }}
|
|
||||||
- name: init-db-cm
|
|
||||||
mountPath: /docker-entrypoint-initdb.d/configmap
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.initDBSecret }}
|
|
||||||
- name: init-db-secret
|
|
||||||
mountPath: /docker-entrypoint-initdb.d/secret
|
|
||||||
{{- end }}
|
|
||||||
{{ if .Values.existingConfiguration }}
|
|
||||||
- name: configurations
|
|
||||||
mountPath: /bitnami/cassandra/conf
|
|
||||||
{{- end }}
|
|
||||||
- mountPath: /opt/tip-wlan/certs/cacert.pem
|
|
||||||
name: cassandra-client-certificates
|
|
||||||
subPath: cacert.pem
|
|
||||||
- mountPath: /opt/tip-wlan/certs/cassandraservercert.pem
|
|
||||||
name: cassandra-client-certificates
|
|
||||||
subPath: cassandraservercert.pem
|
|
||||||
- mountPath: /opt/tip-wlan/certs/cassandraserverkey_dec.pem
|
|
||||||
name: cassandra-client-certificates
|
|
||||||
subPath: cassandraserverkey_dec.pem
|
|
||||||
{{- if .Values.metrics.enabled }}
|
|
||||||
- name: metrics
|
|
||||||
image: {{ include "cassandra.metrics.image" . }}
|
|
||||||
imagePullPolicy: {{ .Values.metrics.image.pullPolicy | quote }}
|
|
||||||
ports:
|
|
||||||
- name: metrics
|
|
||||||
containerPort: 8080
|
|
||||||
protocol: TCP
|
|
||||||
- name: jmx
|
|
||||||
containerPort: 5555
|
|
||||||
{{- if .Values.metrics.resources }}
|
|
||||||
resources: {{- toYaml .Values.metrics.resources | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: metrics
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /metrics
|
|
||||||
port: metrics
|
|
||||||
initialDelaySeconds: 20
|
|
||||||
timeoutSeconds: 45
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.image.pullSecrets }}
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: {{ .Values.image.pullSecrets }}
|
|
||||||
{{- end }}
|
|
||||||
volumes:
|
|
||||||
- name: cassandra-client-certificates
|
|
||||||
secret:
|
|
||||||
secretName: {{ include "common.fullname" . }}-client-certs
|
|
||||||
{{- if .Values.tlsEncryptionSecretName }}
|
|
||||||
- name: encryption-secrets
|
|
||||||
secret:
|
|
||||||
secretName: {{ .Values.tlsEncryptionSecretName }}
|
|
||||||
items:
|
|
||||||
- key: keystore
|
|
||||||
path: keystore
|
|
||||||
- key: truststore
|
|
||||||
path: truststore
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.existingConfiguration }}
|
|
||||||
- name: configurations
|
|
||||||
configMap:
|
|
||||||
name: {{ tpl .Values.existingConfiguration $ }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.initDBConfigMap }}
|
|
||||||
- name: init-db-cm
|
|
||||||
configMap:
|
|
||||||
name: {{ tpl .Values.initDBConfigMap $ }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.initDBSecret }}
|
|
||||||
- name: init-db-secret
|
|
||||||
configMap:
|
|
||||||
name: {{ tpl .Values.initDBSecret $ }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if not .Values.persistence.enabled }}
|
|
||||||
- name: data
|
|
||||||
emptyDir: {}
|
|
||||||
{{- else }}
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- metadata:
|
|
||||||
name: data
|
|
||||||
labels:
|
|
||||||
app: {{ include "common.name" . }}
|
|
||||||
release: {{ .Release.Name }}
|
|
||||||
{{- if .Values.persistence.annotations }}
|
|
||||||
annotations: {{- toYaml .Values.persistence.annotations | nindent 10 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
{{- range .Values.persistence.accessModes }}
|
|
||||||
- {{ . | quote }}
|
|
||||||
{{- end }}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: {{ .Values.persistence.size | quote }}
|
|
||||||
{{- if .Values.persistence.storageClass }}
|
|
||||||
{{- if (eq "-" .Values.persistence.storageClass) }}
|
|
||||||
storageClassName: ""
|
|
||||||
{{- else }}
|
|
||||||
storageClassName: "{{ .Values.persistence.storageClass }}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
{{- if .Values.testsEnabled -}}
|
|
||||||
# NOTE: For the test to work, make sure that the cluster-size remains the same
|
|
||||||
# if you are doing helm-del and then helm-install with existing pvc.
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
name: {{ include "common.fullname" . }}-test-insertion-deletion
|
|
||||||
namespace: {{ include "common.namespace" . }}
|
|
||||||
annotations:
|
|
||||||
"helm.sh/hook": test-success
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: {{ include "common.name" . }}-test-cassandra-basic
|
|
||||||
image: {{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
cqlsh --cqlshrc /bitnami/cassandra/conf/cqlshrc.tip-wlan -e \
|
|
||||||
"CREATE KEYSPACE MYDB WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; \
|
|
||||||
use MYDB; \
|
|
||||||
CREATE TABLE BOOKS (id int PRIMARY KEY, title text, year text); \
|
|
||||||
INSERT INTO BOOKS (id, title, year) VALUES (1, 'Power Of Now', '1994'); \
|
|
||||||
SELECT * FROM BOOKS; \
|
|
||||||
DELETE FROM BOOKS WHERE id=1; \
|
|
||||||
SELECT * FROM BOOKS; \
|
|
||||||
DROP TABLE BOOKS; \
|
|
||||||
DROP KEYSPACE MYDB;"
|
|
||||||
volumeMounts:
|
|
||||||
{{ if .Values.existingConfiguration }}
|
|
||||||
- name: configurations
|
|
||||||
mountPath: /bitnami/cassandra/conf
|
|
||||||
{{- end }}
|
|
||||||
- mountPath: /opt/tip-wlan/certs/cacert.pem
|
|
||||||
name: cassandra-client-certificates
|
|
||||||
subPath: cacert.pem
|
|
||||||
- mountPath: /opt/tip-wlan/certs/cassandraservercert.pem
|
|
||||||
name: cassandra-client-certificates
|
|
||||||
subPath: cassandraservercert.pem
|
|
||||||
- mountPath: /opt/tip-wlan/certs/cassandraserverkey_dec.pem
|
|
||||||
name: cassandra-client-certificates
|
|
||||||
subPath: cassandraserverkey_dec.pem
|
|
||||||
restartPolicy: Never
|
|
||||||
volumes:
|
|
||||||
{{- if .Values.existingConfiguration }}
|
|
||||||
- name: configurations
|
|
||||||
configMap:
|
|
||||||
name: {{ tpl .Values.existingConfiguration $ }}
|
|
||||||
{{- end }}
|
|
||||||
- name: cassandra-client-certificates
|
|
||||||
secret:
|
|
||||||
secretName: {{ include "common.fullname" . }}-client-certs
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,331 +0,0 @@
|
|||||||
## Global Docker image parameters
|
|
||||||
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
|
|
||||||
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
|
|
||||||
##
|
|
||||||
# global:
|
|
||||||
# imageRegistry: myRegistryName
|
|
||||||
# imagePullSecrets:
|
|
||||||
# - myRegistryKeySecretName
|
|
||||||
# storageClass: myStorageClass
|
|
||||||
|
|
||||||
## Bitnami Cassandra image version
|
|
||||||
## ref: https://hub.docker.com/r/bitnami/cassandra/tags/
|
|
||||||
##
|
|
||||||
image:
|
|
||||||
registry: docker.io
|
|
||||||
repository: bitnami/cassandra
|
|
||||||
## Bitnami Cassandra image tag
|
|
||||||
## ref: https://github.com/bitnami/bitnami-docker-cassandra#supported-tags-and-respective-dockerfile-links
|
|
||||||
##
|
|
||||||
tag: 3.11.6-debian-10-r138
|
|
||||||
## Specify a imagePullPolicy
|
|
||||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
|
||||||
##
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
## Optionally specify an array of imagePullSecrets.
|
|
||||||
## Secrets must be manually created in the namespace.
|
|
||||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
||||||
##
|
|
||||||
# pullSecrets:
|
|
||||||
# - myRegistryKeySecretName
|
|
||||||
## Set to true if you would like to see extra information on logs
|
|
||||||
## It turns BASH debugging in minideb-extras-base
|
|
||||||
##
|
|
||||||
debug: false
|
|
||||||
|
|
||||||
## String to partially override cassandra.fullname template (will maintain the release name)
|
|
||||||
##
|
|
||||||
# nameOverride:
|
|
||||||
|
|
||||||
## String to fully override cassandra.fullname template
|
|
||||||
##
|
|
||||||
# fullnameOverride:
|
|
||||||
|
|
||||||
## Init containers parameters:
|
|
||||||
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
|
|
||||||
##
|
|
||||||
volumePermissions:
|
|
||||||
enabled: true
|
|
||||||
image:
|
|
||||||
registry: docker.io
|
|
||||||
repository: bitnami/minideb
|
|
||||||
tag: buster
|
|
||||||
pullPolicy: Always
|
|
||||||
## Optionally specify an array of imagePullSecrets.
|
|
||||||
## Secrets must be manually created in the namespace.
|
|
||||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
||||||
##
|
|
||||||
# pullSecrets:
|
|
||||||
# - myRegistryKeySecretName
|
|
||||||
## Init container' resource requests and limits
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
||||||
##
|
|
||||||
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:'.
|
|
||||||
limits: {}
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
requests: {}
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
|
|
||||||
## Service parameters
|
|
||||||
##
|
|
||||||
service:
|
|
||||||
## Service type
|
|
||||||
##
|
|
||||||
type: ClusterIP
|
|
||||||
## CQL port
|
|
||||||
##
|
|
||||||
port: 9042
|
|
||||||
## Thrift Client API port
|
|
||||||
##
|
|
||||||
thriftPort: 9160
|
|
||||||
## Specify the nodePort(s) value(s) for the LoadBalancer and NodePort service types.
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
|
||||||
##
|
|
||||||
nodePorts:
|
|
||||||
cql: ""
|
|
||||||
thriftPort: ""
|
|
||||||
## Set the LoadBalancer service type to internal only.
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
|
|
||||||
##
|
|
||||||
# loadBalancerIP:
|
|
||||||
## Provide any additional annotations which may be required. This can be used to
|
|
||||||
## set the LoadBalancer service type to internal only.
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
|
|
||||||
##
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
## Enable persistence using Persistent Volume Claims
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
|
||||||
##
|
|
||||||
persistence:
|
|
||||||
## If true, use a Persistent Volume Claim, If false, use emptyDir
|
|
||||||
##
|
|
||||||
enabled: false
|
|
||||||
## Persistent Volume Storage Class
|
|
||||||
## If defined, storageClassName: <storageClass>
|
|
||||||
## 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: "-"
|
|
||||||
## Persistent Volume Claim annotations
|
|
||||||
##
|
|
||||||
annotations:
|
|
||||||
## Persistent Volume Access Mode
|
|
||||||
##
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
## Persistent Volume size
|
|
||||||
##
|
|
||||||
size: 1Gi
|
|
||||||
|
|
||||||
## Cassandra pods' resource requests and limits
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
||||||
## Minimum memory for development is 4GB and 2 CPU cores
|
|
||||||
## Minimum memory for production is 8GB and 4 CPU cores
|
|
||||||
## ref: http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/architecture/architecturePlanningHardware_c.html
|
|
||||||
##
|
|
||||||
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:'.
|
|
||||||
limits: {}
|
|
||||||
# cpu: 2
|
|
||||||
# memory: 4Gi
|
|
||||||
requests: {}
|
|
||||||
# cpu: 2
|
|
||||||
# memory: 4Gi
|
|
||||||
|
|
||||||
## Secret with keystore, keystore password, truststore, truststore password
|
|
||||||
##
|
|
||||||
tlsEncryptionSecretName: cassandra-ssl-certs
|
|
||||||
## ConfigMap with custom cassandra configuration files. This overrides any other Cassandra configuration set in the chart
|
|
||||||
##
|
|
||||||
existingConfiguration: cassandra-configurations-override
|
|
||||||
## Cluster parameters
|
|
||||||
##
|
|
||||||
cluster:
|
|
||||||
name: TipWlanCluster
|
|
||||||
replicaCount: 3
|
|
||||||
seedCount: 2
|
|
||||||
numTokens: 256
|
|
||||||
datacenter: DC1
|
|
||||||
rack: RAC1
|
|
||||||
enableRPC: true
|
|
||||||
endpointSnitch: SimpleSnitch
|
|
||||||
## Enable the creation of the Pod Disruption Budget
|
|
||||||
##
|
|
||||||
pdbEnabled: true
|
|
||||||
## Minimum number of cluster nodes that will be running. Needs pdbEnabled=true
|
|
||||||
##
|
|
||||||
minAvailable: 1
|
|
||||||
## Maximum number of cluster nodes that may not be running. Needs pdbEnabled=true.
|
|
||||||
##
|
|
||||||
# maxUnavailable: 1
|
|
||||||
## Encryption values. NOTE: They require tlsEncryptionSecretName
|
|
||||||
##
|
|
||||||
internodeEncryption: all
|
|
||||||
clientEncryption: true
|
|
||||||
domain: cluster.local
|
|
||||||
|
|
||||||
## JVM Settings
|
|
||||||
##
|
|
||||||
jvm:
|
|
||||||
## Extra JVM options
|
|
||||||
##
|
|
||||||
extraOpts:
|
|
||||||
|
|
||||||
## Memory settings: These are calculated automatically
|
|
||||||
## unless specified otherwise
|
|
||||||
##
|
|
||||||
# maxHeapSize: 4G
|
|
||||||
# newHeapSize: 800M
|
|
||||||
|
|
||||||
## Database credentials
|
|
||||||
##
|
|
||||||
dbUser:
|
|
||||||
user: cassandra
|
|
||||||
forcePassword: false
|
|
||||||
password: cassandra
|
|
||||||
# existingSecret:
|
|
||||||
|
|
||||||
## ConfigMap with cql scripts. Useful for creating a keyspace
|
|
||||||
## and pre-populating data
|
|
||||||
##
|
|
||||||
# initDBConfigMap:
|
|
||||||
|
|
||||||
## Secret with cql script (with sensitive data). Useful for creating a keyspace
|
|
||||||
## and pre-populating data
|
|
||||||
##
|
|
||||||
# initDBSecret:
|
|
||||||
|
|
||||||
## Cassandra container's liveness and readiness probes
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
|
||||||
##
|
|
||||||
livenessProbe:
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 30
|
|
||||||
timeoutSeconds: 5
|
|
||||||
successThreshold: 1
|
|
||||||
failureThreshold: 5
|
|
||||||
readinessProbe:
|
|
||||||
enabled: true
|
|
||||||
initialDelaySeconds: 60
|
|
||||||
periodSeconds: 10
|
|
||||||
timeoutSeconds: 5
|
|
||||||
successThreshold: 1
|
|
||||||
failureThreshold: 5
|
|
||||||
|
|
||||||
## Additional pod annotations
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
|
||||||
##
|
|
||||||
podAnnotations: {}
|
|
||||||
|
|
||||||
## Additional pod labels
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
|
||||||
##
|
|
||||||
podLabels: {}
|
|
||||||
|
|
||||||
## Affinity for pod assignment
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
|
||||||
##
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
## Node labels for pod assignment. Evaluated as a template.
|
|
||||||
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
|
|
||||||
##
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
## Tolerations for pod assignment
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
|
||||||
##
|
|
||||||
tolerations: []
|
|
||||||
|
|
||||||
## StatefulSet settings
|
|
||||||
##
|
|
||||||
statefulset:
|
|
||||||
updateStrategy: OnDelete
|
|
||||||
# rollingUpdatePartition:
|
|
||||||
|
|
||||||
## Pod Security Context
|
|
||||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
||||||
##
|
|
||||||
securityContext:
|
|
||||||
enabled: true
|
|
||||||
fsGroup: 1001
|
|
||||||
runAsUser: 1001
|
|
||||||
|
|
||||||
## Container entrypoint and cmd (useful for using different images)
|
|
||||||
##
|
|
||||||
entrypoint: "/entrypoint.sh"
|
|
||||||
cmd: "/run.sh"
|
|
||||||
|
|
||||||
## Network policies
|
|
||||||
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
|
||||||
##
|
|
||||||
networkPolicy:
|
|
||||||
## Specifies whether a NetworkPolicy should be created
|
|
||||||
##
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
## The Policy model to apply. When set to false, only pods with the correct
|
|
||||||
## client label will have network access to the port Redis is listening
|
|
||||||
## on. When true, Redis will accept connections from any source
|
|
||||||
## (with the correct destination port).
|
|
||||||
##
|
|
||||||
# allowExternal: true
|
|
||||||
|
|
||||||
## Enable/disable the chart's tests. Useful if using this chart as a dependency of
|
|
||||||
## another chart and you don't want these tests running when trying to develop and
|
|
||||||
## test your own chart.
|
|
||||||
testsEnabled: true
|
|
||||||
|
|
||||||
## Cassandra Prometheus exporter configuration
|
|
||||||
## ref: https://hub.docker.com/r/bitnami/cassandra-exporter/tags/
|
|
||||||
##
|
|
||||||
metrics:
|
|
||||||
enabled: false
|
|
||||||
image:
|
|
||||||
registry: docker.io
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
repository: bitnami/cassandra-exporter
|
|
||||||
tag: 2.3.4-debian-10-r119
|
|
||||||
## Optionally specify an array of imagePullSecrets.
|
|
||||||
## Secrets must be manually created in the namespace.
|
|
||||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
||||||
##
|
|
||||||
# pullSecrets:
|
|
||||||
# - myRegistryKeySecretName
|
|
||||||
## Cassandra Prometheus exporter resource requests and limits
|
|
||||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
||||||
##
|
|
||||||
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:'.
|
|
||||||
limits: {}
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
requests: {}
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
## Metrics exporter pod Annotation and Labels
|
|
||||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
|
||||||
##
|
|
||||||
podAnnotations:
|
|
||||||
prometheus.io/scrape: "true"
|
|
||||||
prometheus.io/port: "8080"
|
|
||||||
creds:
|
|
||||||
sslKeystorePassword: DUMMY_PASSWORD
|
|
||||||
sslTruststorePassword: DUMMY_PASSWORD
|
|
||||||
@@ -154,19 +154,35 @@ kafka:
|
|||||||
sslKeystorePassword: mypassword
|
sslKeystorePassword: mypassword
|
||||||
sslTruststorePassword: mypassword
|
sslTruststorePassword: mypassword
|
||||||
sslKeyPassword: mypassword
|
sslKeyPassword: mypassword
|
||||||
|
|
||||||
cassandra:
|
cassandra:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
tlsEncryptionSecretName: tip-common-cassandra-certs
|
||||||
image:
|
image:
|
||||||
debug: true
|
debug: true
|
||||||
cluster:
|
|
||||||
replicaCount: 1
|
|
||||||
seedCount: 1
|
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
storageClass: standard
|
storageClass: "hostpath"
|
||||||
creds:
|
replicaCount: 1
|
||||||
sslKeystorePassword: mypassword
|
cluster:
|
||||||
sslTruststorePassword: mypassword
|
name: TipWlanCluster
|
||||||
|
seedCount: 1
|
||||||
|
internodeEncryption: all
|
||||||
|
clientEncryption: true
|
||||||
|
exporter:
|
||||||
|
enabled: false
|
||||||
|
serviceMonitor:
|
||||||
|
enabled: true
|
||||||
|
additionalLabels:
|
||||||
|
release: prometheus-operator
|
||||||
|
dbUser:
|
||||||
|
user: cassandra
|
||||||
|
password: cassandra
|
||||||
|
resources:
|
||||||
|
limits: {}
|
||||||
|
requests:
|
||||||
|
cpu: 1
|
||||||
|
memory: 3Gi
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: true
|
enabled: true
|
||||||
postgresqlDatabase: tip
|
postgresqlDatabase: tip
|
||||||
|
|||||||
30
tip-wlan/templates/cassandra-dependencies.yaml
Normal file
30
tip-wlan/templates/cassandra-dependencies.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Namespace }}-common-cassandra-certs
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
truststore: {{ .Files.Get "resources/certs/truststore.jks" | b64enc }}
|
||||||
|
truststore-password: {{ "mypassword" | b64enc }}
|
||||||
|
keystore: {{ .Files.Get "resources/certs/cassandra_server_keystore.jks" | b64enc }}
|
||||||
|
keystore-password: {{ "mypassword" | b64enc }}
|
||||||
|
cassandraservercert.pem: {{ .Files.Get "resources/certs/cassandraservercert.pem" | b64enc }}
|
||||||
|
cassandraserverkey_dec.pem: {{ .Files.Get "resources/certs/cassandraserverkey_dec.pem" | b64enc }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Namespace }}-common-cassandra-client-certs
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
cacert.pem: {{ .Files.Get "resources/certs/cacert.pem" | b64enc }}
|
||||||
|
cassandra_server_keystore.jks: {{ .Files.Get "resources/certs/cassandra_server_keystore.jks" | b64enc }}
|
||||||
|
cassandraservercert.pem: {{ .Files.Get "resources/certs/cassandraservercert.pem" | b64enc }}
|
||||||
|
cassandraserverkey_dec.pem: {{ .Files.Get "resources/certs/cassandraserverkey_dec.pem" | b64enc }}
|
||||||
|
kafka-server.pkcs12: {{ .Files.Get "resources/certs/kafka-server.pkcs12" | b64enc }}
|
||||||
|
truststore.jks: {{ .Files.Get "resources/certs/truststore.jks" | b64enc }}
|
||||||
|
server.pkcs12: {{ .Files.Get "resources/certs/server.pkcs12" | b64enc }}
|
||||||
Reference in New Issue
Block a user