diff --git a/.gitea/workflows/upload-helm.yml b/.gitea/workflows/upload-helm.yml index 836f9e5..df327a1 100644 --- a/.gitea/workflows/upload-helm.yml +++ b/.gitea/workflows/upload-helm.yml @@ -1,14 +1,12 @@ name: Upload Helm Chart run-name: Uploading helm chart -on: - push: - tags: ['*'] +on: [push] jobs: Explore-Gitea-Actions: - runs-on: shell + runs-on: ubuntu-latest env: - HELM_CHART_VERSION: "${{ github.ref_name }}" + HELM_CHART_VERSION: "1.0.34" steps: - uses: actions/checkout@v2 - name: Set up Helm @@ -19,7 +17,7 @@ jobs: - run: helm package ./Chart - name: Upload Helm Chart run: | - curl --request POST \ + curl -ki -X POST \ --user ${{ secrets.HELM_PKG_UPLOAD_USER }}:${{ secrets.HELM_PKG_UPLOAD_PASS }} \ - --form "chart=@wordyne-${HELM_CHART_VERSION}.tgz" \ - https://git.cloudyne.io/api/packages/helm/helm/api/charts + --upload-file "wordyne-${HELM_CHART_VERSION}.tgz" \ + https://helm.cloudyne.io/api/charts diff --git a/Chart/Chart.yaml b/Chart/Chart.yaml index 8f5b296..8dcbc0e 100644 --- a/Chart/Chart.yaml +++ b/Chart/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: wordyne description: Helm chart for deploying pre-built website containers to kubernetes clusters type: application -version: "1.0.24" +version: "1.0.27" appVersion: "6.2.2" diff --git a/Chart/templates/deployment.yaml b/Chart/templates/deployment.yaml index 5d1ee5c..3740674 100644 --- a/Chart/templates/deployment.yaml +++ b/Chart/templates/deployment.yaml @@ -99,16 +99,16 @@ spec: - name: serverconfig mountPath: /init-go/config.json subPath: init.json + {{- if .Values.storage.cloud.active }} + - name: cloud + mountPath: "/mnt/cloud" + {{- end }} {{- if .Values.storage.local.active }} {{- range .Values.storage.folders }} - name: local mountPath: "/app/web/app/{{ . }}" subPath: "{{ . }}" {{- end }} - {{- if .Values.storage.cloud.active }} - - name: cloud - mountPath: "/mnt/cloud" - {{- end }} {{- else }} {{- if .Values.storage.cloud.active }} {{- range .Values.storage.folders }} @@ -156,17 +156,29 @@ spec: mountPath: "/mnt/cloud" {{- end }} {{- if .Values.storage.local.active }} - {{- range .Values.storage.folders }} + {{- range .Values.storage.folders }} + {{- if or ( eq . "certificates" ) ( eq . "secrets" ) }} + - name: local + mountPath: "/app/{{ . }}" + subPath: "{{ . }}" + {{- else }} - name: local mountPath: "/app/web/app/{{ . }}" subPath: "{{ . }}" - {{- end }} + {{- end }} + {{- end }} {{- else }} {{- if .Values.storage.cloud.active }} {{- range .Values.storage.folders }} + {{- if or ( eq . "certificates" ) ( eq . "secrets" ) }} + - name: cloud + mountPath: "/app/{{ . }}" + subPath: "{{ . }}" + {{- else }} - name: cloud mountPath: "/app/web/app/{{ . }}" subPath: "{{ . }}" + {{- end }} {{- end }} {{- end }} {{- end }} @@ -187,4 +199,4 @@ spec: ports: - containerPort: 8080 name: http - protocol: TCP \ No newline at end of file + protocol: TCP diff --git a/Chart/templates/job.yaml b/Chart/templates/job.yaml new file mode 100644 index 0000000..179f043 --- /dev/null +++ b/Chart/templates/job.yaml @@ -0,0 +1,132 @@ +#dev-newchart +{{- if .Values.init.asJob }} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "..fullname" . }}-initializer + labels: + {{- include "..labels" . | nindent 4 }} + cloudyne.systems/component: site-init +spec: + backoffLimit: 2 + template: + spec: + restartPolicy: "OnFailure" + affinity: {{ include "..affinity-labels" . | nindent 8 }} + securityContext: + fsGroup: 101 + volumes: + - name: serverconfig + configMap: + name: {{ include "..fullname" . }}-cfg + {{- if and .Values.secrets .Values.secrets.external }} + {{- range .Values.secrets.external }} + {{- if eq .type "file" }} + - name: {{ .name }} + secret: + secretName: {{- include "..fullname" $ }}-exts-{{ .name }} + {{- end }} + {{- end }} + {{- end }} + {{- if .Values.storage.kubernetes }} + {{- range .Values.storage.kubernetes }} + - name: {{ .name }} + {{- if eq .type "secret" }} + secret: + secretName: "{{- include "..fullname" $ }}-sec-{{ .name }}" + {{- end }} + {{- if eq .type "configmap" }} + configMap: + name: "{{- include "..fullname" $ }}-sec-{{ .name }}" + {{- end }} + {{- end }} + {{- end }} + {{- if .Values.storage.cloud.active }} + - name: cloud + persistentVolumeClaim: + claimName: pvc-{{- include "..name" . }}-cloud + {{- end }} + {{- if .Values.storage.local.active }} + - name: local + persistentVolumeClaim: + claimName: pvc-{{- include "..name" . }}-local + {{- end }} + {{- if and .Values.secrets .Values.secrets.external }} + {{- range .Values.secrets.external }} + {{- if eq .type "docker" }} + imagePullSecrets: + - name: "{{- include "..fullname" $ }}-exts-{{ .name }}" + {{- end }} + {{- end }} + {{- end }} + {{- if .Values.storage.kubernetes }} + {{- range .Values.storage.kubernetes }} + {{- if eq .type "docker" }} + imagePullSecrets: + - name: "{{- include "..fullname" $ }}-sec-{{ .name }}" + {{- end }} + {{- end }} + {{- end }} + {{- if and .Values.storage.cloud.active .Values.storage.local.active .Values.storage.local.cloneCloud }} + initContainers: + - name: init-local-storage + securityContext: + allowPrivilegeEscalation: false + runAsUser: 0 + image: cloudyne/ubuntu-ci:latest + command: ["python3"] + args: ["/usr/local/bin/storage-clone", "/mnt/cloud", "/mnt/local"] + imagePullPolicy: IfNotPresent + volumeMounts: + - name: cloud + mountPath: /mnt/cloud + - name: local + mountPath: /mnt/local + {{- end }} + containers: + - name: init-site + securityContext: + allowPrivilegeEscalation: false + runAsUser: 0 + image: "{{ .Values.site.image }}" + imagePullPolicy: IfNotPresent + volumeMounts: + - name: serverconfig + mountPath: /init-go/config.json + subPath: init.json + {{- if .Values.storage.cloud.active }} + - name: cloud + mountPath: "/mnt/cloud" + {{- end }} + {{- if .Values.storage.local.active }} + {{- range .Values.storage.folders }} + - name: local + mountPath: "/app/web/app/{{ . }}" + subPath: "{{ . }}" + {{- end }} + {{- else }} + {{- if .Values.storage.cloud.active }} + {{- range .Values.storage.folders }} + - name: cloud + mountPath: "/app/web/app/{{ . }}" + subPath: "{{ . }}" + {{- end }} + {{- end }} + {{- end }} + + envFrom: + - configMapRef: + name: {{ include "..fullname" . }}-env + {{- if and .Values.secrets .Values.secrets.external }} + {{- range .Values.secrets.external }} + {{- if eq .type "env" }} + - secretRef: + name: "{{- include "..fullname" $ }}-exts-{{ .name }}" + {{- end }} + {{- end }} + {{- end }} + - secretRef: + name: {{ include "..fullname" . }}-db-auth + command: ["sh"] + args: ["-c", "/init-go/init-go"] +{{- end }} \ No newline at end of file