diff options
author | James MacNider <James.MacNider@amdocs.com> | 2019-04-10 19:46:35 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2019-04-10 19:46:35 +0000 |
commit | e5207baa3f699ae1612d987f226b5cbf70bdc029 (patch) | |
tree | 374b75a67a58dd9f50e0ece33f2481f724c78bcc | |
parent | b7d77b29e6bf22441b9fa20a61e7bedcc703e394 (diff) | |
parent | acba0494772e847337a87b4c16b946069663a440 (diff) |
Merge "default storageclass and nfs provisioner"
-rw-r--r-- | kubernetes/common/nfs-provisioner/Chart.yaml | 18 | ||||
-rw-r--r-- | kubernetes/common/nfs-provisioner/requirements.yaml | 18 | ||||
-rw-r--r-- | kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml | 78 | ||||
-rw-r--r-- | kubernetes/common/nfs-provisioner/templates/service.yaml | 39 | ||||
-rw-r--r-- | kubernetes/common/nfs-provisioner/values.yaml | 50 | ||||
-rw-r--r-- | kubernetes/onap/requirements.yaml | 6 | ||||
-rw-r--r-- | kubernetes/onap/templates/storageclass.yaml | 34 | ||||
-rw-r--r-- | kubernetes/onap/values.yaml | 8 |
8 files changed, 249 insertions, 2 deletions
diff --git a/kubernetes/common/nfs-provisioner/Chart.yaml b/kubernetes/common/nfs-provisioner/Chart.yaml new file mode 100644 index 0000000000..fcb69b31e3 --- /dev/null +++ b/kubernetes/common/nfs-provisioner/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2019 Amdocs, Bell Canada +# +# 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: NFS provisioner +name: nfs-provisioner +version: 4.0.0 diff --git a/kubernetes/common/nfs-provisioner/requirements.yaml b/kubernetes/common/nfs-provisioner/requirements.yaml new file mode 100644 index 0000000000..d175386e2b --- /dev/null +++ b/kubernetes/common/nfs-provisioner/requirements.yaml @@ -0,0 +1,18 @@ +# Copyright © 2019 Amdocs, Bell Canada +# +# 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. + +dependencies: + - name: common + version: ~4.x-0 + repository: '@local' diff --git a/kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml b/kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml new file mode 100644 index 0000000000..58cf7a3866 --- /dev/null +++ b/kubernetes/common/nfs-provisioner/templates/nfs-provisoner.yaml @@ -0,0 +1,78 @@ +{{/* +# Copyright © 2019 Amdocs, Bell Canada +# +# 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: extensions/v1beta1 +kind: Deployment +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: + strategy: + type: Recreate + template: + metadata: + labels: + app: {{ include "common.fullname" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: {{ include "common.fullname" . }} + image: "{{ .Values.global.nfsprovisionerRepository | default .Values.nfsprovisionerRepository }}/{{ .Values.nfsprovisionerImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - name: nfs + containerPort: {{ .Values.service.nfsPort }} + - name: mountd + containerPort: {{ .Values.service.mountdPort }} + - name: rpcbind + containerPort: {{ .Values.service.rpcbindPort }} + - name: rpcbind-udp + containerPort: {{ .Values.service.rpcbindUdpPort }} + protocol: UDP + securityContext: + capabilities: + add: + - DAC_READ_SEARCH + - SYS_RESOURCE + args: + - "-provisioner={{ include "common.namespace" . }}/nfs" + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: SERVICE_NAME + value: {{ include "common.servicename" . }} + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + volumeMounts: + - name: export-volume + mountPath: /export + {{- if .Values.affinity }} + affinity: + {{ toYaml .Values.affinity | indent 8 }} + {{- end }} + volumes: + - name: export-volume + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }} diff --git a/kubernetes/common/nfs-provisioner/templates/service.yaml b/kubernetes/common/nfs-provisioner/templates/service.yaml new file mode 100644 index 0000000000..f9bba0f872 --- /dev/null +++ b/kubernetes/common/nfs-provisioner/templates/service.yaml @@ -0,0 +1,39 @@ +{{/* +# Copyright © 2019 Amdocs, Bell Canada +# +# 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. +*/}} + +kind: Service +apiVersion: v1 +metadata: + name: {{ include "common.servicename" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.fullname" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + - name: nfs + port: {{ .Values.service.nfsPort }} + - name: mountd + port: {{ .Values.service.mountdPort }} + - name: rpcbind + port: {{ .Values.service.rpcbindPort }} + - name: rpcbind-udp + port: {{ .Values.service.rpcbindUdpPort }} + protocol: UDP + selector: + app: {{ include "common.fullname" . }}
\ No newline at end of file diff --git a/kubernetes/common/nfs-provisioner/values.yaml b/kubernetes/common/nfs-provisioner/values.yaml new file mode 100644 index 0000000000..687219d680 --- /dev/null +++ b/kubernetes/common/nfs-provisioner/values.yaml @@ -0,0 +1,50 @@ +# Copyright © 2019 Amdocs, Bell Canada
+#
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+ persistence:
+ mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+dockerHubRepository: registry.hub.docker.com
+pullPolicy: Always
+
+# default number of instances
+
+nodeSelector: {}
+
+affinity: {}
+
+service:
+ name: nfs-provisioner
+ nfsPort: 2049
+ mountdPort: 20048
+ rpcbindPort: 111
+ rpcbindUdpPort: 111
+
+## Persist data to a persitent volume
+persistence:
+ enabled: true
+ mountPath: /dockerdata-nfs
+
+## NFS provisioner image properties
+nfsprovisionerRepository: quay.io
+nfsprovisionerImage: kubernetes_incubator/nfs-provisioner:v1.0.8
+
diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml index 43794d286d..ad6aadacb7 100644 --- a/kubernetes/onap/requirements.yaml +++ b/kubernetes/onap/requirements.yaml @@ -1,4 +1,4 @@ -# Copyright © 2017 Amdocs, Bell Canada +# Copyright © 2019 Amdocs, Bell Canada # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -88,6 +88,10 @@ dependencies: version: ~4.x-0 repository: '@local' condition: nbi.enabled + - name: nfs-provisioner + version: ~4.x-0 + repository: '@local' + condition: nfs-provisioner.enabled - name: pnda version: ~4.x-0 repository: '@local' diff --git a/kubernetes/onap/templates/storageclass.yaml b/kubernetes/onap/templates/storageclass.yaml new file mode 100644 index 0000000000..5418da78b5 --- /dev/null +++ b/kubernetes/onap/templates/storageclass.yaml @@ -0,0 +1,34 @@ +{{/* +# Copyright © 2019 Amdocs, Bell Canada +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/}} + +{{ if .Values.global.persistence.enableDefaultStorageclass }} +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: "{{ include "common.namespace" . }}-default-storageclass" + namespace: {{ include "common.namespace" . }} + annotations: + storageclass.kubernetes.io/is-default-class: "true" + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +provisioner: {{ .Values.global.persistence.storageclassProvisioner }} +reclaimPolicy: {{ .Values.global.persistence.volumeReclaimPolicy }} +parameters: +{{ toYaml .Values.global.persistence.parameters | indent 2 }} +{{ end }} diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml index 6b283dbc94..b62606ebde 100644 --- a/kubernetes/onap/values.yaml +++ b/kubernetes/onap/values.yaml @@ -1,4 +1,4 @@ -# Copyright © 2018 Amdocs, Bell Canada +# Copyright © 2019 Amdocs, Bell Canada # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -46,6 +46,10 @@ global: # by persistent volumes and log files persistence: mountPath: /dockerdata-nfs + enableDefaultStorageclass: false + parameters: {} + storageclassProvisioner: kubernetes.io/no-provisioner + volumeReclaimPolicy: Retain # override default resource limit flavor for all charts flavor: unlimited @@ -107,6 +111,8 @@ nbi: # openstack configuration openStackRegion: "Yolo" openStackVNFTenantId: "1234" +nfs-provisioner: + enabled: true policy: enabled: false pomba: |