[CONTRIB] Uses new tpls for repos / images 56/115256/4
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>
Sat, 21 Nov 2020 21:52:46 +0000 (22:52 +0100)
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>
Sun, 29 Nov 2020 09:09:40 +0000 (10:09 +0100)
This commit makes Contrib chart to use the new generator for repositories and
images.
As new templates doesn't work well with "sub charts", we move also
subcharts to components folder.

Issue-ID: OOM-2364
Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Change-Id: I33ca36a2b25e67fd9f74ae408cd34f58405d6b80

73 files changed:
kubernetes/contrib/Makefile
kubernetes/contrib/components/Makefile [new file with mode: 0644]
kubernetes/contrib/components/awx/Makefile
kubernetes/contrib/components/awx/charts/awx/values.yaml [deleted file]
kubernetes/contrib/components/awx/components/Makefile [new file with mode: 0644]
kubernetes/contrib/components/awx/components/awx-postgres/Chart.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/Chart.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/requirements.yaml [moved from kubernetes/contrib/components/awx/charts/awx/Chart.yaml with 79% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/NOTES.txt [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/deployment.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/deployment.yaml with 96% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/pv.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/pv.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/pvc.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/pvc.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/templates/service.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/awx/components/awx-postgres/values.yaml [moved from kubernetes/contrib/components/awx/charts/awx-postgres/values.yaml with 98% similarity]
kubernetes/contrib/components/awx/requirements.yaml
kubernetes/contrib/components/awx/resources/config/credentials.py [moved from kubernetes/contrib/components/awx/charts/awx/resources/config/credentials.py with 100% similarity]
kubernetes/contrib/components/awx/resources/config/environment.sh [moved from kubernetes/contrib/components/awx/charts/awx/resources/config/environment.sh with 100% similarity]
kubernetes/contrib/components/awx/templates/configmap.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/job.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/job.yaml with 95% similarity]
kubernetes/contrib/components/awx/templates/secret.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/secret.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/service.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/serviceaccout.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/serviceaccout.yaml with 100% similarity]
kubernetes/contrib/components/awx/templates/statefulset.yaml [moved from kubernetes/contrib/components/awx/charts/awx/templates/statefulset.yaml with 93% similarity]
kubernetes/contrib/components/awx/values.yaml
kubernetes/contrib/components/ejbca/requirements.yaml
kubernetes/contrib/components/ejbca/templates/deployment.yaml
kubernetes/contrib/components/ejbca/values.yaml
kubernetes/contrib/components/netbox/Makefile
kubernetes/contrib/components/netbox/components/Makefile [new file with mode: 0644]
kubernetes/contrib/components/netbox/components/netbox-app/.helmignore [moved from kubernetes/contrib/components/netbox/charts/netbox-app/.helmignore with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/Chart.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/Chart.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/configuration/configuration.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/configuration/configuration.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/configuration/gunicorn_config.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/configuration/gunicorn_config.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/configuration/ldap_config.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/configuration/ldap_config.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/initializers/custom_fields.yml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/initializers/custom_fields.yml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/initializers/groups.yml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/initializers/groups.yml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/initializers/users.yml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/initializers/users.yml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/provisioning/provision.sh [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/provisioning/provision.sh with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/startup_scripts/00_users.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/startup_scripts/00_users.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/startup_scripts/10_groups.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/startup_scripts/10_groups.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/resources/config/startup_scripts/20_custom_fields.py [moved from kubernetes/contrib/components/netbox/charts/netbox-app/resources/config/startup_scripts/20_custom_fields.py with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/NOTES.txt [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/configmap.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/deployment.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/deployment.yaml with 98% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/job.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/job.yaml with 92% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/pv.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/pv.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/pvc.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/pvc.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/secrets.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/secrets.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/templates/service.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-app/values.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-app/values.yaml with 95% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/.helmignore [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/.helmignore with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/Chart.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/Chart.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/netbox/components/netbox-nginx/resources/config/nginx.conf [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/resources/config/nginx.conf with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/NOTES.txt [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/configmap.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/deployment.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/deployment.yaml with 96% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/templates/service.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-nginx/values.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-nginx/values.yaml with 99% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/.helmignore [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/.helmignore with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/Chart.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/Chart.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/requirements.yaml [new file with mode: 0755]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/NOTES.txt [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/NOTES.txt with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/configmap.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/configmap.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/deployment.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/deployment.yaml with 96% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/pv.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/pv.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/pvc.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/pvc.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/templates/service.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/templates/service.yaml with 100% similarity]
kubernetes/contrib/components/netbox/components/netbox-postgres/values.yaml [moved from kubernetes/contrib/components/netbox/charts/netbox-postgres/values.yaml with 98% similarity]
kubernetes/contrib/components/netbox/requirements.yaml
kubernetes/contrib/components/netbox/values.yaml
kubernetes/contrib/dns-server-for-vhost-ingress-testing/bind9dns/templates/deployment.yaml
kubernetes/contrib/requirements.yaml

index 32386fc..4d35146 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2018  AT&T Intellectual Property.  All rights reserved.
+# Copyright © 2020 Samsung Electronics
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dns-server-for-vhost-ingress-testing ingress-nginx-post-inst metallb-loadbalancer-inst tools
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
 
-make-contrib: make-contrib-awx make-contrib-netbox make-contrib-ejbca make-contrib-core
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
 
-make-contrib-awx:
-       cd components && $(HELM_BIN) dep up awx && $(HELM_BIN) lint awx
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
 
-make-contrib-ejbca:
-       cd components && $(HELM_BIN) dep up ejbca && $(HELM_BIN) lint ejbca
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
 
-make-contrib-netbox:
-       cd components && $(HELM_BIN) dep up netbox && $(HELM_BIN) lint netbox
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
 
-make-contrib-core:
-       $(HELM_BIN) dep up . && $(HELM_BIN) lint .
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
 
 clean:
-       @find . -type f -name '*.tgz' -delete
-       @find . -type f -name '*.lock' -delete
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/Makefile b/kubernetes/contrib/components/Makefile
new file mode 100644 (file)
index 0000000..bf267b7
--- /dev/null
@@ -0,0 +1,51 @@
+# Copyright © 2020 Samsung Electronics
+#
+# 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
index cb88b57..4c79718 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2019 Bell Canada
+# Copyright © 2020 Samsung Electronics
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dist resources templates charts docker
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
 
-make-awx:
-       cd charts && $(HELM_BIN) dep up awx-postgres
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/awx/charts/awx/values.yaml b/kubernetes/contrib/components/awx/charts/awx/values.yaml
deleted file mode 100755 (executable)
index fd77a12..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright © 2019 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.
-
-# Default values for mariadb.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
-
-global: # global defaults
-  nodePortPrefixExt: 304
-  persistence: {}
-
-# application image
-repository: ansible
-image:
-  web: awx_web:9.0.1
-  task: awx_task:9.0.1
-  rabbitmq: awx_rabbitmq:3.7.4
-  memcached: memcached:1.5.20
-pullPolicy: Always
-
-# application configuration
-config:
-  postgresUser: awx
-  postgresPassword: awx
-  postgresDB: awx
-# RabbitMQ Configuration
-  rabbitmqUser: awx
-  rabbitmqPassword: awxpass
-  rabbitmqVhost: awx
-  rabbitmqErlangCookie: cookiemonster3
-# This will create or update a default admin (superuser) account in AWX, if not provided
-# then these default values are used
-  awxAdminUser: admin
-  awxAdminPassword: password
-  awxAdminEmail: cds@onap.org
-# AWX Secret key
-# It's *very* important that this stay the same between upgrades or you will lose the ability to decrypt
-# your credentials
-  secretKey: awxsecret
-
-ingress:
-  enabled: false
-
-# default number of instances
-replicaCount: 1
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-  enabled: true
-
-## Persist data to a persitent volume
-persistence:
-  enabled: true
-  volumeReclaimPolicy: Retain
-
-  # Uncomment the storageClass parameter to use an existing PV
-  # that will match the following class.
-  # When uncomment the storageClass, the PV is not created anymore.
-
-  # storageClass: "nfs-dev-sc"
-
-  accessMode: ReadWriteOnce
-  size: 5Gi
-
-  # When using storage class, mountPath and mountSubPath are
-  # simply ignored.
-
-  mountPath: /dockerdata-nfs
-  mountSubPath: awx/pgdata
-
-service:
-  rmqmgmt:
-    type: ClusterIP
-    portName: rmqmgmt
-    internalPort: 15672
-    externalPort: 15672
-  web:
-    type: NodePort
-    portName: web
-    internalPort: 8052
-    externalPort: 80
-    nodePort: 78
-  rabbitmq:
-    type: ClusterIP
-    http:
-      portName: http
-      internalPort: 15672
-      externalPort: 15672
-    amqp:
-      portName: amqp
-      internalPort: 5672
-      externalPort: 5672
-
-resources: {}
diff --git a/kubernetes/contrib/components/awx/components/Makefile b/kubernetes/contrib/components/awx/components/Makefile
new file mode 100644 (file)
index 0000000..bf267b7
--- /dev/null
@@ -0,0 +1,51 @@
+# Copyright © 2020 Samsung Electronics
+#
+# 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-description: Ansible AWX application
-name: awx
-version: 6.0.0
+dependencies:
+  - name: common
+    version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
index a748aff..5eda4db 100755 (executable)
 dependencies:
   - name: common
     version: ~6.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
+  - name: awx-postgres    
+    version: ~6.x-0
+    repository: 'file://components/awx-postgres'
@@ -37,7 +37,7 @@ spec:
       restartPolicy: Never
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -53,7 +53,7 @@ spec:
       containers:
       - command: ["/bin/sh","-c"]
         args: ["/etc/tower/job-entrypoint.sh"]
-        image: "{{ .Values.repository }}/{{ .Values.image.task }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.task }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-mgnt
         resources:
@@ -44,7 +44,7 @@ spec:
 
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -60,7 +60,7 @@ spec:
 
       containers:
 
-      - image: "{{ .Values.repository }}/{{ .Values.image.web }}"
+      - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.web }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-web
         ports:
@@ -88,7 +88,7 @@ spec:
         - name: AWX_SKIP_MIGRATIONS
           value: "1"
 
-        image: "{{ .Values.repository }}/{{ .Values.image.task }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.task }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-celery
         resources:
@@ -127,7 +127,7 @@ spec:
         - name: K8S_SERVICE_NAME
           value: {{ include "common.servicename" . }}-rabbitmq
 
-        image: "{{ .Values.repository }}/{{ .Values.image.rabbitmq }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.rabbitmq }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-rabbit
         livenessProbe:
@@ -165,7 +165,7 @@ spec:
         - mountPath: /etc/rabbitmq
           name: rabbitmq-config
 
-      - image: "{{ .Values.image.memcached }}"
+      - image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image.memcached }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-memcached
         resources:
index 1ed35c2..a29866d 100755 (executable)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#################################################################
-# Global configuration defaults.
-#################################################################
-global:
-  readinessRepository: nexus3.onap.org:10001
+# Default values for mariadb.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+global: # global defaults
   nodePortPrefixExt: 304
   commonConfigPrefix: awx
-  readinessImage: onap/oom/readiness:3.0.1
+  persistence: {}
 
-#################################################################
-# Application configuration defaults.
-#################################################################
 # application image
-repository: hub.docker.io
+image:
+  web: ansible/awx_web:9.0.1
+  task: ansible/awx_task:9.0.1
+  rabbitmq: ansible/awx_rabbitmq:3.7.4
+  memcached: memcached:1.5.20
 pullPolicy: Always
 
+# application configuration
+config:
+  postgresUser: awx
+  postgresPassword: awx
+  postgresDB: awx
+# RabbitMQ Configuration
+  rabbitmqUser: awx
+  rabbitmqPassword: awxpass
+  rabbitmqVhost: awx
+  rabbitmqErlangCookie: cookiemonster3
+# This will create or update a default admin (superuser) account in AWX, if not provided
+# then these default values are used
+  awxAdminUser: admin
+  awxAdminPassword: password
+  awxAdminEmail: cds@onap.org
+# AWX Secret key
+# It's *very* important that this stay the same between upgrades or you will lose the ability to decrypt
+# your credentials
+  secretKey: awxsecret
+
+ingress:
+  enabled: false
+
 # default number of instances
 replicaCount: 1
+
 nodeSelector: {}
+
 affinity: {}
 
-ingress:
-  enabled: false
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  enabled: true
+
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+
+  # Uncomment the storageClass parameter to use an existing PV
+  # that will match the following class.
+  # When uncomment the storageClass, the PV is not created anymore.
+
+  # storageClass: "nfs-dev-sc"
+
+  accessMode: ReadWriteOnce
+  size: 5Gi
+
+  # When using storage class, mountPath and mountSubPath are
+  # simply ignored.
+
+  mountPath: /dockerdata-nfs
+  mountSubPath: awx/pgdata
+
+service:
+  rmqmgmt:
+    type: ClusterIP
+    portName: rmqmgmt
+    internalPort: 15672
+    externalPort: 15672
+  web:
+    type: NodePort
+    portName: web
+    internalPort: 8052
+    externalPort: 80
+    nodePort: 78
+  rabbitmq:
+    type: ClusterIP
+    http:
+      portName: http
+      internalPort: 15672
+      externalPort: 15672
+    amqp:
+      portName: amqp
+      internalPort: 5672
+      externalPort: 5672
 
 resources: {}
index e87bc08..0054203 100644 (file)
@@ -23,3 +23,6 @@ dependencies:
     version: ~6.x-0
     repository: '@local'
     condition: not global.mariadbGalera.localCluster
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
index 55de54f..a10b059 100644 (file)
@@ -40,11 +40,11 @@ spec:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}-ejbca
-        image: {{ .Values.ejbca.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.ejbca.image }}
         imagePullPolicy: {{ .Values.pullPolicy }}
         lifecycle:
           postStart:
index 35160e4..c26bfe2 100644 (file)
@@ -12,8 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  mariadbGalera: &mariadbGalera 
+  mariadbGalera: &mariadbGalera
     #This flag allows EJBCA to instantiate its own mariadb-galera cluster
     localCluster: false
     service: mariadb-galera
@@ -37,7 +36,6 @@ secrets:
     password: '{{ .Values.config.ejbca.clientIak }}'
 
 # application configuration
-repository: nexus3.onap.org:10001
 config:
   db:
     userName: ejbca
index da18203..4c79718 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2018 Amdocs, Bell Canada
+# Copyright © 2020 Samsung Electronics
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dist resources templates charts docker
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
 
-make-netbox:
-       cd charts && $(HELM_BIN) dep up netbox-postgres && $(HELM_BIN) dep up netbox-nginx && $(HELM_BIN) dep up netbox-app
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/netbox/components/Makefile b/kubernetes/contrib/components/netbox/components/Makefile
new file mode 100644 (file)
index 0000000..bf267b7
--- /dev/null
@@ -0,0 +1,51 @@
+# Copyright © 2020 Samsung Electronics
+#
+# 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.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
+
+make-%:
+       @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+       @if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+       @mkdir -p $(PACKAGE_DIR)
+       @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+       @$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+       @rm -f */requirements.lock
+       @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
+%:
+       @:
diff --git a/kubernetes/contrib/components/netbox/components/netbox-app/requirements.yaml b/kubernetes/contrib/components/netbox/components/netbox-app/requirements.yaml
new file mode 100755 (executable)
index 0000000..9a0c10d
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2018 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: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
@@ -35,7 +35,7 @@ spec:
       restartPolicy: Never
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -50,7 +50,7 @@ spec:
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-provisioning-job
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-provisioning
           mountPath: /tmp
@@ -42,11 +42,7 @@ config:
   superuserName: admin
   superuserEmail: admin@onap.org
 
-  curlImage: curlimages/curl:7.69.1
-  dockerHubRepository: docker.io
-
-repository: netboxcommunity
-image: netbox:v2.5.8
+image: netboxcommunity/netbox:v2.5.8
 
 # probe configuration parameters
 liveness:
diff --git a/kubernetes/contrib/components/netbox/components/netbox-nginx/requirements.yaml b/kubernetes/contrib/components/netbox/components/netbox-nginx/requirements.yaml
new file mode 100755 (executable)
index 0000000..9a0c10d
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2018 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: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["nginx"]
         args: ["-c", "/etc/netbox-nginx/nginx.conf","-g", "daemon off;"]
diff --git a/kubernetes/contrib/components/netbox/components/netbox-postgres/requirements.yaml b/kubernetes/contrib/components/netbox/components/netbox-postgres/requirements.yaml
new file mode 100755 (executable)
index 0000000..9a0c10d
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2018 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: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
@@ -37,7 +37,7 @@ spec:
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
index 6e0025e..29cf5e2 100755 (executable)
 dependencies:
   - name: common
     version: ~6.x-0
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
+  - name: netbox-app
+    version: ~6.x-0
+    repository: 'file://components/netbox-app'
+  - name: netbox-nginx
+    version: ~6.x-0
+    repository: 'file://components/netbox-nginx'
+  - name: netbox-postgres
+    version: ~6.x-0
+    repository: 'file://components/netbox-postgres'
\ No newline at end of file
index 5dc4535..04d2f27 100755 (executable)
 # Global configuration defaults.
 #################################################################
 global:
-  readinessRepository: nexus3.onap.org:10001
   nodePortPrefixExt: 304
   commonConfigPrefix: netbox
-  readinessImage: onap/oom/readiness:3.0.1
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-repository: hub.docker.io
 pullPolicy: Always
 
 # default number of instances
index 1a76ba0..7640be6 100644 (file)
@@ -36,7 +36,7 @@ spec:
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+          image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: DNS_FORWARDER
index b173931..7e60bfa 100644 (file)
@@ -28,3 +28,6 @@ dependencies:
     version: ~6.x-0
     repository: 'file://components/netbox'
     condition: netbox.enabled
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'