diff options
author | Sylvain Desbureaux <sylvain.desbureaux@orange.com> | 2018-05-07 20:39:16 +0200 |
---|---|---|
committer | Mike Elliott <mike.elliott@amdocs.com> | 2018-05-17 10:56:53 -0400 |
commit | e44d170a71178fd3515310ddd8503577deb56012 (patch) | |
tree | 0b0031aa5f671a5c1cdde98b210d631ac7669c4e /kubernetes/common/mongo/templates/statefulset.yaml | |
parent | cf173e0470d1e78565d6a3db77296fe870631ec1 (diff) |
Add External Interface NBI project into OOM
NBI (North Bound Interface) is one of the new project added for Beijing
release.
Features added
==============
MongoDB common chart
--------------------
Ability to start a mongo container, with a chart consistent with other
common charts (readiness, liveness, persistence, resources, nfs,
service, ...).
Specific configuration:
* name of the db to create if needed
NBI chart
---------
Ability to start a mariadb container, with a chart consistent with other
common charts (readiness, liveness, persistence, resources, nfs,
service, ...).
Specific configuration:
* name of the db to create if needed
* name of the user that has access to the db
* password of the user that has access to the db
* root password of the database
Ability to start a NBI container, with a chart consistent with other
common charts (readiness, liveness, persistence, resources, nfs,
service, ...).
Specific configuration:
* log level
* cloudOwner
* ecompInstanceId
* openStackRegion
* openStackServiceTenantName
* sdc_authorization
* aai_authorization
* so_authorization
ONAP chart
----------
Added a requirement on NBI chart, possibility to enable/disable and
configuration to push to the chart.
Current Status
==============
- [*] adding a common chart for mongodb
- [*] make mongo chart compiling
- [*] testing the mongodb common role
- [*] creating a mariadb chart inside nbi helm
- [*] testing the mariadb chart
- [*] make mariadb chart compiling
- [*] make nbi use these charts
- [*] make nbi chart compiling
- [*] test the whole solution
- [*] create a service for nbi
Change-Id: I8dd3e79768c83b1553a05c892cf418f840931255
Issue-ID: EXTAPI-54
Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Diffstat (limited to 'kubernetes/common/mongo/templates/statefulset.yaml')
-rw-r--r-- | kubernetes/common/mongo/templates/statefulset.yaml | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/kubernetes/common/mongo/templates/statefulset.yaml b/kubernetes/common/mongo/templates/statefulset.yaml new file mode 100644 index 0000000000..8b33f611b9 --- /dev/null +++ b/kubernetes/common/mongo/templates/statefulset.yaml @@ -0,0 +1,104 @@ +{{/* +# Copyright © 2018 Orange +# +# 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: {{ .Values.service.name }} + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: +#{{ if not .Values.disableNfsProvisioner }} + - name: {{ include "common.name" . }}-readiness + command: + - /root/ready.py + args: + - --container-name + - {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} +#{{ end }} + + containers: + - name: {{ include "common.name" . }} + image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + env: + - name: MONGO_INITDB_DATABASE + value: "{{ .Values.config.dbName }}" + ports: + - containerPort: {{ .Values.service.internalPort }} + # disable liveness probe when breakpoints set in debugger + # so K8s doesn't restart unresponsive container + {{- if eq .Values.liveness.enabled true }} + livenessProbe: + exec: + command: + - mongo + - --eval + - "db.adminCommand('ping')" + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + timeoutSeconds: {{ .Values.liveness.timeoutSeconds }} + {{end -}} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + volumeMounts: + - mountPath: /var/lib/mongo + name: {{ include "common.fullname" . }}-data + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.fullname" . }}-data +#{{ if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }}-data +#{{ else }} + emptyDir: {} +#{{ end }} |