diff --git a/deploy/kubernetes/helm/charts/hauler/Chart.yaml b/deploy/kubernetes/helm/charts/hauler/Chart.yaml index 76d38a1..5330703 100644 --- a/deploy/kubernetes/helm/charts/hauler/Chart.yaml +++ b/deploy/kubernetes/helm/charts/hauler/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: hauler -description: Hauler Helm Chart for Kubernetes +description: Hauler Helm Chart - Airgap Swiss Army Knife icon: https://raw.githubusercontent.com/rancherfederal/hauler/main/static/rgs-hauler-logo-icon.svg type: application version: 0.1.0 diff --git a/deploy/kubernetes/helm/charts/hauler/README.md b/deploy/kubernetes/helm/charts/hauler/README.md new file mode 100644 index 0000000..eac0ab3 --- /dev/null +++ b/deploy/kubernetes/helm/charts/hauler/README.md @@ -0,0 +1,21 @@ +# Hauler Helm Chart + +| Type | Chart Version | App Version | +| ----------- | ------------- | ----------- | +| application | `0.1.0` | `1.0.2` | + +## Installing the Chart + +```bash +helm install hauler hauler/hauler -n hauler-system -f values.yaml +``` + +```bash +helm status hauler -n hauler-system +``` + +## Uninstalling the Chart + +```bash +helm uninstall hauler -n hauler-system +``` diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-deployment.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-deployment.yaml index b0c8719..b5ed000 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-deployment.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-deployment.yaml @@ -18,7 +18,9 @@ spec: app: hauler-fileserver {{- include "hauler.selectorLabels" . | nindent 8 }} spec: + {{- if or .Values.haulerJobs.hauls.enabled .Values.haulerJobs.manifests.enabled }} initContainers: + {{- if .Values.haulerJobs.hauls.enabled }} - name: wait-for-hauler-hauls-job image: {{ .Values.hauler.initContainers.image.repository }}:{{ .Values.hauler.initContainers.image.tag }} imagePullPolicy: {{ .Values.hauler.initContainers.imagePullPolicy }} @@ -31,6 +33,8 @@ spec: runAsUser: 1001 seccompProfile: type: RuntimeDefault + {{- end }} + {{- if .Values.haulerJobs.manifests.enabled }} - name: wait-for-hauler-manifests-job image: {{ .Values.hauler.initContainers.image.repository }}:{{ .Values.hauler.initContainers.image.tag }} imagePullPolicy: {{ .Values.hauler.initContainers.imagePullPolicy }} @@ -43,13 +47,15 @@ spec: runAsUser: 1001 seccompProfile: type: RuntimeDefault + {{- end }} + {{- end }} containers: - name: hauler-fileserver image: {{ .Values.hauler.image.repository }}:{{ .Values.hauler.image.tag }} imagePullPolicy: {{ .Values.hauler.imagePullPolicy }} - args: ["store", "serve", "fileserver"] + args: ["store", "serve", "fileserver", "--port", "{{ .Values.haulerFileserver.port }}"] ports: - - containerPort: {{ .Values.haulerFileserver.service.ports.port }} + - containerPort: {{ .Values.haulerFileserver.port }} volumeMounts: - name: hauler-data mountPath: /store diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-ingress.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-ingress.yaml index 2e1b49a..21ef564 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-ingress.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler-fileserver/hauler-fileserver-ingress.yaml @@ -15,7 +15,7 @@ spec: service: name: hauler-fileserver port: - number: 8080 + number: {{ $.Values.haulerFileserver.service.ports.targetPort }} path: / pathType: Prefix {{- end }} diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-deployment.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-deployment.yaml index 3e0a31a..9324dd7 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-deployment.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-deployment.yaml @@ -18,7 +18,9 @@ spec: app: hauler-registry {{- include "hauler.selectorLabels" . | nindent 8 }} spec: + {{- if or .Values.haulerJobs.hauls.enabled .Values.haulerJobs.manifests.enabled }} initContainers: + {{- if .Values.haulerJobs.hauls.enabled }} - name: wait-for-hauler-hauls-job image: {{ .Values.hauler.initContainers.image.repository }}:{{ .Values.hauler.initContainers.image.tag }} imagePullPolicy: {{ .Values.hauler.initContainers.imagePullPolicy }} @@ -31,6 +33,8 @@ spec: runAsUser: 1001 seccompProfile: type: RuntimeDefault + {{- end }} + {{- if .Values.haulerJobs.manifests.enabled }} - name: wait-for-hauler-manifests-job image: {{ .Values.hauler.initContainers.image.repository }}:{{ .Values.hauler.initContainers.image.tag }} imagePullPolicy: {{ .Values.hauler.initContainers.imagePullPolicy }} @@ -43,13 +47,15 @@ spec: runAsUser: 1001 seccompProfile: type: RuntimeDefault + {{- end }} + {{- end }} containers: - name: hauler-registry image: {{ .Values.hauler.image.repository }}:{{ .Values.hauler.image.tag }} imagePullPolicy: {{ .Values.hauler.imagePullPolicy }} - args: ["store", "serve", "registry"] + args: ["store", "serve", "registry", "--port", "{{ .Values.haulerRegistry.port }}"] ports: - - containerPort: {{ .Values.haulerRegistry.service.ports.port }} + - containerPort: {{ .Values.haulerRegistry.port }} volumeMounts: - name: hauler-data mountPath: /store diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-ingress.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-ingress.yaml index 8e2c4e9..4e33b63 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-ingress.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler-registry/hauler-registry-ingress.yaml @@ -16,7 +16,7 @@ spec: service: name: hauler-registry port: - number: 5000 + number: {{ $.Values.haulerRegistry.service.ports.targetPort }} path: / pathType: Prefix {{- end }} diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-deployment.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-deployment.yaml index fe6b161..5beda2b 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-deployment.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-deployment.yaml @@ -17,7 +17,9 @@ spec: app: hauler {{- include "hauler.selectorLabels" . | nindent 8 }} spec: + {{- if or .Values.haulerJobs.hauls.enabled .Values.haulerJobs.manifests.enabled }} initContainers: + {{- if .Values.haulerJobs.hauls.enabled }} - name: wait-for-hauler-hauls-job image: {{ .Values.hauler.initContainers.image.repository }}:{{ .Values.hauler.initContainers.image.tag }} imagePullPolicy: {{ .Values.hauler.initContainers.imagePullPolicy }} @@ -30,6 +32,8 @@ spec: runAsUser: 1001 seccompProfile: type: RuntimeDefault + {{- end }} + {{- if .Values.haulerJobs.manifests.enabled }} - name: wait-for-hauler-manifests-job image: {{ .Values.hauler.initContainers.image.repository }}:{{ .Values.hauler.initContainers.image.tag }} imagePullPolicy: {{ .Values.hauler.initContainers.imagePullPolicy }} @@ -42,12 +46,14 @@ spec: runAsUser: 1001 seccompProfile: type: RuntimeDefault + {{- end }} + {{- end }} containers: - name: hauler image: {{ .Values.hauler.image.repository }}:{{ .Values.hauler.image.tag }} imagePullPolicy: {{ .Values.hauler.imagePullPolicy }} ports: - - containerPort: {{ .Values.hauler.service.ports.port }} + - containerPort: {{ .Values.hauler.port }} volumeMounts: - name: hauler-data mountPath: /store diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ingress.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ingress.yaml index 3f82aa4..ef493a2 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ingress.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ingress.yaml @@ -16,7 +16,7 @@ spec: service: name: hauler-service port: - number: 80 + number: {{ $.Values.hauler.service.ports.targetPort }} path: / pathType: Prefix {{- end }} diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-jobs.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-jobs.yaml index b13a88b..d46a99d 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-jobs.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-jobs.yaml @@ -16,9 +16,10 @@ spec: command: ["/bin/sh", "-c"] args: - | - curl -o /hauls/longhorn.tar.zst https://rancher-airgap.s3.amazonaws.com/longhorn.tar.zst && - curl -o /hauls/neuvector.tar.zst https://rancher-airgap.s3.amazonaws.com/neuvector.tar.zst && - echo 'hauler fetch completed' + {{- range .Values.haulerJobs.hauls.artifacts }} + curl -o /hauls/{{ .name }} {{ .path }} && + {{- end }} + echo hauler fetch completed volumeMounts: - name: hauler-data mountPath: /hauls @@ -37,8 +38,9 @@ spec: args: - "store" - "load" - - "/hauls/longhorn.tar.zst" - - "/hauls/neuvector.tar.zst" + {{- range .Values.haulerJobs.hauls.artifacts }} + - "/hauls/{{ .name }}" + {{- end }} volumeMounts: - name: hauler-data mountPath: /hauls @@ -77,9 +79,10 @@ spec: command: ["/bin/sh", "-c"] args: - | - curl -o /manifests/rancher-airgap-cosign.yaml https://rancher-airgap.s3.amazonaws.com/rancher-airgap-cosign.yaml && - curl -o /manifests/rancher-airgap-helm.yaml https://rancher-airgap.s3.amazonaws.com/rancher-airgap-helm.yaml && - echo 'hauler fetch completed' + {{- range .Values.haulerJobs.manifests.artifacts }} + curl -o /manifests/{{ .name }} {{ .path }} && + {{- end }} + echo hauler fetch completed volumeMounts: - name: hauler-data mountPath: /manifests @@ -96,11 +99,12 @@ spec: image: {{ .Values.hauler.image.repository }}:{{ .Values.hauler.image.tag }} imagePullPolicy: {{ .Values.hauler.imagePullPolicy }} args: + {{- range .Values.haulerJobs.manifests.artifacts }} - "store" - "sync" - "--files" - - "/manifests/rancher-airgap-cosign.yaml" - - "/manifests/rancher-airgap-helm.yaml" + - "/manifests/{{ .name }}" + {{- end }} volumeMounts: - name: hauler-data mountPath: /manifests diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ns.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ns.yaml deleted file mode 100644 index 813a95d..0000000 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-ns.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: {{ .Release.Namespace }} - labels: - {{- include "hauler.labels" . | nindent 4 }} diff --git a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-pvc.yaml b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-pvc.yaml index 5176457..5fd57ea 100644 --- a/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-pvc.yaml +++ b/deploy/kubernetes/helm/charts/hauler/templates/hauler/hauler-pvc.yaml @@ -11,4 +11,6 @@ spec: resources: requests: storage: {{ .Values.hauler.data.pvc.storageRequest }} + {{- if .Values.hauler.data.pvc.storageClass }} storageClassName: {{ .Values.hauler.data.pvc.storageClass }} + {{- end }} diff --git a/deploy/kubernetes/helm/charts/hauler/values.yaml b/deploy/kubernetes/helm/charts/hauler/values.yaml index 6abadab..18ae4a9 100644 --- a/deploy/kubernetes/helm/charts/hauler/values.yaml +++ b/deploy/kubernetes/helm/charts/hauler/values.yaml @@ -3,8 +3,8 @@ hauler: image: - repository: zackbradys/hauler - tag: v1.0.2 + repository: ghcr.io/rancherfederal/hauler + tag: v1.0.2-rc.4 imagePullPolicy: Always initContainers: @@ -20,6 +20,8 @@ hauler: storageClass: longhorn storageRequest: 48Gi + port: 80 + ingress: enabled: true hosts: @@ -38,7 +40,7 @@ hauler: targetPort: 80 # Helm Chart Values for the Hauler Jobs -# Docs: http://hauler.dev +# Docs: https://rancherfederal.github.io/hauler-docs/docs/introduction/quickstart haulerJobs: image: @@ -50,24 +52,26 @@ haulerJobs: enabled: true artifacts: - path: https://rancher-airgap.s3.amazonaws.com/longhorn.tar.zst - name: /hauls/longhorn.tar.zst + name: longhorn.tar.zst - path: https://rancher-airgap.s3.amazonaws.com/neuvector.tar.zst - name: /hauls/neuvector.tar.zst + name: neuvector.tar.zst manifests: enabled: true - stuff: + artifacts: - path: https://rancher-airgap.s3.amazonaws.com/rancher-airgap-cosign.yaml - name: /manifests/rancher-airgap-cosign.yaml + name: rancher-airgap-cosign.yaml - path: https://rancher-airgap.s3.amazonaws.com/rancher-airgap-helm.yaml - name: /manifests/rancher-airgap-helm.yaml + name: rancher-airgap-helm.yaml # Helm Chart Values for the Hauler Fileserver -# Docs: http://hauler.dev +# Docs: https://rancherfederal.github.io/hauler-docs/docs/guides-references/command-line/hauler-store#hauler-store-serve-fileserver haulerFileserver: enabled: true + port: 8080 + ingress: enabled: true hosts: @@ -86,11 +90,13 @@ haulerFileserver: targetPort: 8080 # Helm Chart Values for the Hauler Registry -# Docs: http://hauler.dev +# Docs: https://rancherfederal.github.io/hauler-docs/docs/guides-references/command-line/hauler-store#hauler-store-serve-registry haulerRegistry: enabled: true + port: 5000 + ingress: enabled: true hosts: