mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	Add helm chart
This commit is contained in:
		
							parent
							
								
									05ebf3a6b4
								
							
						
					
					
						commit
						1f99c26e78
					
				
							
								
								
									
										15
									
								
								chart/stirling-pdf/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								chart/stirling-pdf/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
appVersion: 0.14.2
 | 
			
		||||
description: locally hosted web application that allows you to perform various operations on PDF files
 | 
			
		||||
home: https://github.com/Frooodle/Stirling-PDF
 | 
			
		||||
keywords:
 | 
			
		||||
- stirling-pdf
 | 
			
		||||
- helm
 | 
			
		||||
- charts repo
 | 
			
		||||
maintainers:
 | 
			
		||||
- name: Frooodle
 | 
			
		||||
  url: https://github.com/Frooodle/Stirling-PDF
 | 
			
		||||
name: stirling-pdf
 | 
			
		||||
sources:
 | 
			
		||||
- https://github.com/Frooodle/Stirling-PDF
 | 
			
		||||
version: 1.0.0
 | 
			
		||||
							
								
								
									
										30
									
								
								chart/stirling-pdf/templates/NOTES.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								chart/stirling-pdf/templates/NOTES.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
** Please be patient while the chart is being deployed **
 | 
			
		||||
 | 
			
		||||
Get the stirlingpdf URL by running:
 | 
			
		||||
 | 
			
		||||
{{- if contains "NodePort" .Values.service.type }}
 | 
			
		||||
 | 
			
		||||
  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "stirlingpdf.fullname" . }})
 | 
			
		||||
  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
 | 
			
		||||
  echo http://$NODE_IP:$NODE_PORT/
 | 
			
		||||
 | 
			
		||||
{{- else if contains "LoadBalancer" .Values.service.type }}
 | 
			
		||||
 | 
			
		||||
** Please ensure an external IP is associated to the {{ template "stirlingpdf.fullname" . }} service before proceeding **
 | 
			
		||||
** Watch the status using: kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "stirlingpdf.fullname" . }} **
 | 
			
		||||
 | 
			
		||||
  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "stirlingpdf.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
 | 
			
		||||
  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}/
 | 
			
		||||
 | 
			
		||||
OR
 | 
			
		||||
 | 
			
		||||
  export SERVICE_HOST=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "stirlingpdf.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
 | 
			
		||||
  echo http://$SERVICE_HOST:{{ .Values.service.externalPort }}/
 | 
			
		||||
 | 
			
		||||
{{- else if contains "ClusterIP"  .Values.service.type }}
 | 
			
		||||
 | 
			
		||||
  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "stirlingpdf.name" . }}" -l "release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
 | 
			
		||||
  echo http://127.0.0.1:8080/
 | 
			
		||||
  kubectl port-forward $POD_NAME 8080:8080 --namespace {{ .Release.Namespace }}
 | 
			
		||||
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										129
									
								
								chart/stirling-pdf/templates/_helpers.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								chart/stirling-pdf/templates/_helpers.tpl
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,129 @@
 | 
			
		||||
{{/*
 | 
			
		||||
Expand the name of the chart.
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.name" -}}
 | 
			
		||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Create a default fully qualified app name.
 | 
			
		||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
 | 
			
		||||
If release name contains chart name it will be used as a full name.
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.fullname" -}}
 | 
			
		||||
{{- if .Values.fullnameOverride }}
 | 
			
		||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
{{- $name := default .Chart.Name .Values.nameOverride }}
 | 
			
		||||
{{- if contains $name .Release.Name }}
 | 
			
		||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{- /*
 | 
			
		||||
Create chart name and version as used by the chart label.
 | 
			
		||||
 | 
			
		||||
It does minimal escaping for use in Kubernetes labels.
 | 
			
		||||
 | 
			
		||||
Example output:
 | 
			
		||||
 | 
			
		||||
stirlingpdf-0.4.5
 | 
			
		||||
*/ -}}
 | 
			
		||||
{{- define "stirlingpdf.chart" -}}
 | 
			
		||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Common labels
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.labels" -}}
 | 
			
		||||
helm.sh/chart: {{ include "stirlingpdf.chart" . }}
 | 
			
		||||
{{ include "stirlingpdf.selectorLabels" . }}
 | 
			
		||||
{{- if .Chart.AppVersion }}
 | 
			
		||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.commonLabels}}
 | 
			
		||||
{{ toYaml .Values.commonLabels }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Selector labels
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.selectorLabels" -}}
 | 
			
		||||
app.kubernetes.io/name: {{ include "stirlingpdf.name" . }}
 | 
			
		||||
app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Create the name of the service account to use
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.serviceAccountName" -}}
 | 
			
		||||
{{- if .Values.serviceAccount.create }}
 | 
			
		||||
{{- default (include "stirlingpdf.fullname" .) .Values.serviceAccount.name }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
{{- default "default" .Values.serviceAccount.name }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Return the proper image name to change the volume permissions
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.volumePermissions.image" -}}
 | 
			
		||||
{{- $registryName := .Values.volumePermissions.image.registry -}}
 | 
			
		||||
{{- $repositoryName := .Values.volumePermissions.image.repository -}}
 | 
			
		||||
{{- $tag := .Values.volumePermissions.image.tag | toString -}}
 | 
			
		||||
{{/*
 | 
			
		||||
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
 | 
			
		||||
but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
 | 
			
		||||
Also, we can't use a single if because lazy evaluation is not an option
 | 
			
		||||
*/}}
 | 
			
		||||
{{- if .Values.global }}
 | 
			
		||||
    {{- if .Values.global.imageRegistry }}
 | 
			
		||||
        {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
 | 
			
		||||
    {{- else -}}
 | 
			
		||||
        {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
 | 
			
		||||
    {{- end -}}
 | 
			
		||||
{{- else -}}
 | 
			
		||||
    {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{/*
 | 
			
		||||
Return the proper Docker Image Registry Secret Names
 | 
			
		||||
*/}}
 | 
			
		||||
{{- define "stirlingpdf.imagePullSecrets" -}}
 | 
			
		||||
{{/*
 | 
			
		||||
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
 | 
			
		||||
but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else logic.
 | 
			
		||||
Also, we can not use a single if because lazy evaluation is not an option
 | 
			
		||||
*/}}
 | 
			
		||||
{{- if .Values.global }}
 | 
			
		||||
{{- if .Values.global.imagePullSecrets }}
 | 
			
		||||
imagePullSecrets:
 | 
			
		||||
{{- range .Values.global.imagePullSecrets }}
 | 
			
		||||
  - name: {{ . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- else if or .Values.image.pullSecrets .Values.volumePermissions.image.pullSecrets }}
 | 
			
		||||
imagePullSecrets:
 | 
			
		||||
{{- range .Values.image.pullSecrets }}
 | 
			
		||||
  - name: {{ . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- range .Values.volumePermissions.image.pullSecrets }}
 | 
			
		||||
  - name: {{ . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- else if or .Values.image.pullSecrets .Values.volumePermissions.image.pullSecrets }}
 | 
			
		||||
imagePullSecrets:
 | 
			
		||||
{{- range .Values.image.pullSecrets }}
 | 
			
		||||
  - name: {{ . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- range .Values.volumePermissions.image.pullSecrets }}
 | 
			
		||||
  - name: {{ . }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										129
									
								
								chart/stirling-pdf/templates/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								chart/stirling-pdf/templates/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,129 @@
 | 
			
		||||
apiVersion: apps/v1
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "stirlingpdf.fullname" . }}
 | 
			
		||||
  {{- with .Values.deployment.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
    {{- if .Values.deployment.labels }}
 | 
			
		||||
    {{- toYaml .Values.deployment.labels | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      {{- include "stirlingpdf.selectorLabels" . | nindent 6 }}
 | 
			
		||||
  replicas: {{ .Values.replicaCount }}
 | 
			
		||||
  strategy:
 | 
			
		||||
{{ toYaml .Values.strategy | indent 4 }}
 | 
			
		||||
  revisionHistoryLimit: 10
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      {{- with .Values.podAnnotations }}
 | 
			
		||||
      annotations:
 | 
			
		||||
        {{- toYaml . | nindent 8 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      labels:
 | 
			
		||||
        {{- include "stirlingpdf.selectorLabels" . | nindent 8 }}
 | 
			
		||||
        {{- if .Values.podLabels }}
 | 
			
		||||
        {{- toYaml .Values.podLabels | nindent 8 }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
    spec:
 | 
			
		||||
      {{- if .Values.priorityClassName }}
 | 
			
		||||
      priorityClassName: "{{ .Values.priorityClassName }}"
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      {{- if .Values.securityContext.enabled }}
 | 
			
		||||
      securityContext:
 | 
			
		||||
        fsGroup: {{ .Values.securityContext.fsGroup }}
 | 
			
		||||
        {{- if .Values.securityContext.runAsNonRoot }}
 | 
			
		||||
        runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
        {{- if .Values.securityContext.supplementalGroups }}
 | 
			
		||||
        supplementalGroups: {{ .Values.securityContext.supplementalGroups }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      {{- else if .Values.persistence.enabled }}
 | 
			
		||||
      initContainers:
 | 
			
		||||
      - name: volume-permissions
 | 
			
		||||
        image: {{ template "stirlingpdf.volumePermissions.image" . }}
 | 
			
		||||
        imagePullPolicy: "{{ .Values.volumePermissions.image.pullPolicy }}"
 | 
			
		||||
        securityContext:
 | 
			
		||||
          {{- toYaml .Values.containerSecurityContext | nindent 10 }}
 | 
			
		||||
        command: ['sh', '-c', 'chown -R {{ .Values.securityContext.fsGroup }}:{{ .Values.securityContext.fsGroup }} {{ .Values.persistence.path }}']
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
        - mountPath: {{ .Values.persistence.path }}
 | 
			
		||||
          name: storage-volume
 | 
			
		||||
      {{- end }}
 | 
			
		||||
{{- include "stirlingpdf.imagePullSecrets" . | indent 6 }}
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: {{ .Chart.Name }}
 | 
			
		||||
        image: {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}
 | 
			
		||||
        imagePullPolicy: {{ .Values.image.pullPolicy }}
 | 
			
		||||
        securityContext:
 | 
			
		||||
          {{- toYaml .Values.containerSecurityContext | nindent 10 }}
 | 
			
		||||
{{- if .Values.envs }}
 | 
			
		||||
        env:
 | 
			
		||||
{{ toYaml .Values.envs | indent 8 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.extraArgs }}
 | 
			
		||||
        args:
 | 
			
		||||
{{ toYaml .Values.extraArgs | indent 8 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
        ports:
 | 
			
		||||
        - name: http
 | 
			
		||||
          containerPort: 8080
 | 
			
		||||
        livenessProbe:
 | 
			
		||||
          httpGet:
 | 
			
		||||
            path: /
 | 
			
		||||
            port: http
 | 
			
		||||
{{ toYaml .Values.probes.livenessHttpGetConfig | indent 12 }}
 | 
			
		||||
{{ toYaml .Values.probes.liveness | indent 10 }}
 | 
			
		||||
        readinessProbe:
 | 
			
		||||
          httpGet:
 | 
			
		||||
            path: /
 | 
			
		||||
            port: http
 | 
			
		||||
{{ toYaml .Values.probes.readinessHttpGetConfig | indent 12 }}
 | 
			
		||||
{{ toYaml .Values.probes.readiness | indent 10 }}
 | 
			
		||||
        volumeMounts:
 | 
			
		||||
{{- if .Values.deployment.extraVolumeMounts }}
 | 
			
		||||
        {{- toYaml .Values.deployment.extraVolumeMounts | nindent 8 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.deployment.sidecarContainers }}
 | 
			
		||||
{{- range $name, $spec :=  .Values.deployment.sidecarContainers }}
 | 
			
		||||
      - name: {{ $name }}
 | 
			
		||||
{{- toYaml $spec | nindent 8 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
      {{- with .Values.resources }}
 | 
			
		||||
        resources:
 | 
			
		||||
{{ toYaml . | indent 10 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
    {{- with .Values.nodeSelector }}
 | 
			
		||||
      nodeSelector:
 | 
			
		||||
{{ toYaml . | indent 8 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
    {{- with .Values.affinity }}
 | 
			
		||||
      affinity:
 | 
			
		||||
{{ toYaml . | indent 8 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
    {{- with .Values.tolerations }}
 | 
			
		||||
      tolerations:
 | 
			
		||||
{{ toYaml . | indent 8 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
    {{- if .Values.schedulerName }}
 | 
			
		||||
      schedulerName: {{ .Values.schedulerName }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
      serviceAccountName: {{ include "stirlingpdf.serviceAccountName" . }}
 | 
			
		||||
      automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
 | 
			
		||||
      volumes:
 | 
			
		||||
      {{- if .Values.deployment.extraVolumes }}
 | 
			
		||||
      {{- toYaml .Values.deployment.extraVolumes | nindent 6 }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      - name: storage-volume
 | 
			
		||||
      {{- if .Values.persistence.enabled }}
 | 
			
		||||
        persistentVolumeClaim:
 | 
			
		||||
          claimName: {{ .Values.persistence.existingClaim | default (include "stirlingpdf.fullname" .) }}
 | 
			
		||||
      {{- else }}
 | 
			
		||||
        emptyDir: {}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
							
								
								
									
										85
									
								
								chart/stirling-pdf/templates/ingress.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								chart/stirling-pdf/templates/ingress.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,85 @@
 | 
			
		||||
{{- if .Values.ingress.enabled }}
 | 
			
		||||
{{- $servicePort := .Values.service.externalPort -}}
 | 
			
		||||
{{- $serviceName := include "stirlingpdf.fullname" . -}}
 | 
			
		||||
{{- $ingressExtraPaths := .Values.ingress.extraPaths -}}
 | 
			
		||||
---
 | 
			
		||||
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion }}
 | 
			
		||||
apiVersion: extensions/v1beta1
 | 
			
		||||
{{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion }}
 | 
			
		||||
apiVersion: networking.k8s.io/v1beta1
 | 
			
		||||
{{- else }}
 | 
			
		||||
apiVersion: networking.k8s.io/v1
 | 
			
		||||
{{- end }}
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "stirlingpdf.fullname" . }}
 | 
			
		||||
  {{- with .Values.ingress.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.ingress.labels }}
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  {{- with .Values.ingress.ingressClassName }}
 | 
			
		||||
  ingressClassName: {{ . }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  rules:
 | 
			
		||||
  {{- range .Values.ingress.hosts }}
 | 
			
		||||
  - host: {{ .name }}
 | 
			
		||||
    http:
 | 
			
		||||
      paths:
 | 
			
		||||
      {{- range $ingressExtraPaths }}
 | 
			
		||||
      - path: {{ default "/" .path | quote }}
 | 
			
		||||
        backend:
 | 
			
		||||
        {{- if semverCompare "<1.19-0" $.Capabilities.KubeVersion.GitVersion }}
 | 
			
		||||
          {{- if $.Values.service.servicename }}
 | 
			
		||||
          serviceName: {{ $.Values.service.servicename }}
 | 
			
		||||
          {{- else }}
 | 
			
		||||
          serviceName: {{ default $serviceName .service }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          servicePort: {{ default $servicePort .port }}
 | 
			
		||||
        {{- else }}
 | 
			
		||||
          service:
 | 
			
		||||
            {{- if $.Values.service.servicename }}
 | 
			
		||||
            name: {{ $.Values.service.servicename }}
 | 
			
		||||
            {{- else }}
 | 
			
		||||
            name: {{ default $serviceName .service }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            port:
 | 
			
		||||
              number: {{ default $servicePort .port }}
 | 
			
		||||
        pathType: {{ default $.Values.ingress.pathType .pathType }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
      - path: {{ default "/" .path | quote }}
 | 
			
		||||
        backend:
 | 
			
		||||
        {{- if semverCompare "<1.19-0" $.Capabilities.KubeVersion.GitVersion }}
 | 
			
		||||
          {{- if $.Values.service.servicename }}
 | 
			
		||||
          serviceName: {{ $.Values.service.servicename }}
 | 
			
		||||
          {{- else }}
 | 
			
		||||
          serviceName: {{ default $serviceName .service }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          servicePort: {{ default $servicePort .servicePort }}
 | 
			
		||||
        {{- else }}
 | 
			
		||||
          service:
 | 
			
		||||
            {{- if $.Values.service.servicename }}
 | 
			
		||||
            name: {{ $.Values.service.servicename }}
 | 
			
		||||
            {{- else }}
 | 
			
		||||
            name: {{ default $serviceName .service }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
            port:
 | 
			
		||||
              number: {{ default $servicePort .port }}
 | 
			
		||||
        pathType: {{ $.Values.ingress.pathType }}
 | 
			
		||||
        {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  tls:
 | 
			
		||||
  {{- range .Values.ingress.hosts }}
 | 
			
		||||
  {{- if .tls }}
 | 
			
		||||
  - hosts:
 | 
			
		||||
    - {{ .name }}
 | 
			
		||||
    secretName: {{ .tlsSecret }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
							
								
								
									
										16
									
								
								chart/stirling-pdf/templates/pv.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								chart/stirling-pdf/templates/pv.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
{{- if .Values.persistence.pv.enabled -}}
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: PersistentVolume
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ .Values.persistence.pv.pvname | default (include "stirlingpdf.fullname" .) }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
spec:
 | 
			
		||||
  capacity:
 | 
			
		||||
    storage: {{ .Values.persistence.pv.capacity.storage }}
 | 
			
		||||
  accessModes:
 | 
			
		||||
    - {{ .Values.persistence.pv.accessMode | quote }}
 | 
			
		||||
  nfs:
 | 
			
		||||
    server: {{ .Values.persistence.pv.nfs.server }}
 | 
			
		||||
    path: {{ .Values.persistence.pv.nfs.path | quote }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										27
									
								
								chart/stirling-pdf/templates/pvc.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								chart/stirling-pdf/templates/pvc.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 | 
			
		||||
kind: PersistentVolumeClaim
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "stirlingpdf.fullname" . }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.persistence.labels }}
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  accessModes:
 | 
			
		||||
    - {{ .Values.persistence.accessMode | quote }}
 | 
			
		||||
  resources:
 | 
			
		||||
    requests:
 | 
			
		||||
      storage: {{ .Values.persistence.size | quote }}
 | 
			
		||||
{{- if .Values.persistence.storageClass }}
 | 
			
		||||
{{- if (eq "-" .Values.persistence.storageClass) }}
 | 
			
		||||
  storageClassName: ""
 | 
			
		||||
{{- else }}
 | 
			
		||||
  storageClassName: "{{ .Values.persistence.storageClass }}"
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.persistence.volumeName }}
 | 
			
		||||
  volumeName: "{{ .Values.persistence.volumeName }}"
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										48
									
								
								chart/stirling-pdf/templates/service.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								chart/stirling-pdf/templates/service.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ .Values.service.servicename | default (include "stirlingpdf.fullname" .) }}
 | 
			
		||||
  {{- with .Values.service.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
  {{- toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.service.labels }}
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  type: {{ .Values.service.type }}
 | 
			
		||||
  {{- if (or (eq .Values.service.type "LoadBalancer") (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort)))) }}
 | 
			
		||||
  externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerIP) }}
 | 
			
		||||
  loadBalancerIP: {{ .Values.service.loadBalancerIP }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges) }}
 | 
			
		||||
  loadBalancerSourceRanges:
 | 
			
		||||
  {{- with .Values.service.loadBalancerSourceRanges }}
 | 
			
		||||
{{ toYaml . | indent 2 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- if eq .Values.service.type "ClusterIP" }}
 | 
			
		||||
  {{- if .Values.service.clusterIP }}
 | 
			
		||||
  clusterIP: {{ .Values.service.clusterIP }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  ports:
 | 
			
		||||
  - port: {{ .Values.service.externalPort }}
 | 
			
		||||
{{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
 | 
			
		||||
    nodePort: {{.Values.service.nodePort}}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.service.targetPort }}
 | 
			
		||||
    targetPort: {{ .Values.service.targetPort }}
 | 
			
		||||
    name: {{ .Values.service.targetPort }}
 | 
			
		||||
{{- else }}
 | 
			
		||||
    targetPort: http
 | 
			
		||||
    name: http
 | 
			
		||||
{{- end }}
 | 
			
		||||
    protocol: TCP
 | 
			
		||||
    
 | 
			
		||||
  selector:
 | 
			
		||||
    {{- include "stirlingpdf.selectorLabels" . | nindent 4 }}
 | 
			
		||||
							
								
								
									
										13
									
								
								chart/stirling-pdf/templates/serviceaccount.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								chart/stirling-pdf/templates/serviceaccount.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
{{- if .Values.serviceAccount.create -}}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: ServiceAccount
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "stirlingpdf.serviceAccountName" . }}
 | 
			
		||||
  {{- with .Values.serviceAccount.annotations }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    {{ toYaml . | nindent 4 }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										31
									
								
								chart/stirling-pdf/templates/servicemonitor.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								chart/stirling-pdf/templates/servicemonitor.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }}
 | 
			
		||||
apiVersion: monitoring.coreos.com/v1
 | 
			
		||||
kind: ServiceMonitor
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "stirlingpdf.fullname" . }}
 | 
			
		||||
  namespace: {{ .Values.serviceMonitor.namespace | default .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    {{- include "stirlingpdf.labels" . | nindent 4 }}
 | 
			
		||||
    {{- with .Values.serviceMonitor.labels }}
 | 
			
		||||
    {{- toYaml . | nindent 4 }}
 | 
			
		||||
    {{- end }}
 | 
			
		||||
spec:
 | 
			
		||||
  endpoints:
 | 
			
		||||
  - targetPort: 8080
 | 
			
		||||
{{- if .Values.serviceMonitor.interval }}
 | 
			
		||||
    interval: {{ .Values.serviceMonitor.interval }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.serviceMonitor.metricsPath }}
 | 
			
		||||
    path: {{ .Values.serviceMonitor.metricsPath }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
{{- if .Values.serviceMonitor.timeout }}
 | 
			
		||||
    scrapeTimeout: {{ .Values.serviceMonitor.timeout }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
  jobLabel: {{ include "stirlingpdf.fullname" . }}
 | 
			
		||||
  namespaceSelector:
 | 
			
		||||
    matchNames:
 | 
			
		||||
    - {{ .Release.Namespace }}
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      {{- include "stirlingpdf.selectorLabels" . | nindent 6 }}
 | 
			
		||||
{{- end }}
 | 
			
		||||
							
								
								
									
										239
									
								
								chart/stirling-pdf/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								chart/stirling-pdf/values.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,239 @@
 | 
			
		||||
extraArgs: []
 | 
			
		||||
  # - --storage-timestamp-tolerance 1s
 | 
			
		||||
replicaCount: 1
 | 
			
		||||
strategy:
 | 
			
		||||
  type: RollingUpdate
 | 
			
		||||
image:
 | 
			
		||||
  repository: frooodle/s-pdf
 | 
			
		||||
  # took Chart appVersion by default
 | 
			
		||||
  tag: ~
 | 
			
		||||
  pullPolicy: IfNotPresent
 | 
			
		||||
secret:
 | 
			
		||||
  labels: {}
 | 
			
		||||
## Labels to apply to all resources
 | 
			
		||||
##
 | 
			
		||||
commonLabels: {}
 | 
			
		||||
# team_name: dev
 | 
			
		||||
 | 
			
		||||
envs: []
 | 
			
		||||
# - name: PP_HOME_NAME
 | 
			
		||||
#   value: "Stirling PDF"
 | 
			
		||||
# - name: APP_HOME_DESCRIPTION
 | 
			
		||||
#   value: "Your locally hosted one-stop-shop for all your PDF needs."
 | 
			
		||||
# - name: APP_NAVBAR_NAME
 | 
			
		||||
#   value: "Stirling PDF"
 | 
			
		||||
# - name: ALLOW_GOOGLE_VISIBILITY
 | 
			
		||||
#   value: "true"
 | 
			
		||||
# - name: APP_ROOT_PATH
 | 
			
		||||
#   value: "/"
 | 
			
		||||
# - name: APP_LOCALE
 | 
			
		||||
#   value: "en_GB"
 | 
			
		||||
 | 
			
		||||
deployment:
 | 
			
		||||
  ## stirling-pdf Deployment annotations
 | 
			
		||||
  annotations: {}
 | 
			
		||||
  #   name: value
 | 
			
		||||
  labels: {}
 | 
			
		||||
  #   name: value
 | 
			
		||||
  # additional volumes
 | 
			
		||||
  extraVolumes: []
 | 
			
		||||
  #  - name: nginx-config
 | 
			
		||||
  #    secret:
 | 
			
		||||
  #      secretName: nginx-config
 | 
			
		||||
  # additional volumes to mount
 | 
			
		||||
  extraVolumeMounts: []
 | 
			
		||||
  ## sidecarContainers for the stirling-pdf
 | 
			
		||||
  # Can be used to add a proxy to the pod that does
 | 
			
		||||
  # scanning for secrets, signing, authentication, validation
 | 
			
		||||
  # of the chart's content, send notifications...
 | 
			
		||||
  sidecarContainers: {}
 | 
			
		||||
  ## Example sidecarContainer which uses an extraVolume from above and
 | 
			
		||||
  ## a named port that can be referenced in the service as targetPort.
 | 
			
		||||
  #  proxy:
 | 
			
		||||
  #    image: nginx:latest
 | 
			
		||||
  #    ports:
 | 
			
		||||
  #      - name: proxy
 | 
			
		||||
  #        containerPort: 8081
 | 
			
		||||
  #    volumeMounts:
 | 
			
		||||
  #      - name: nginx-config
 | 
			
		||||
  #        readOnly: true
 | 
			
		||||
  #        mountPath: /etc/nginx
 | 
			
		||||
 | 
			
		||||
## Pod annotations
 | 
			
		||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
 | 
			
		||||
## Read more about kube2iam to provide access to s3 https://github.com/jtblin/kube2iam
 | 
			
		||||
##
 | 
			
		||||
podAnnotations: {}
 | 
			
		||||
  # iam.amazonaws.com/role: role-arn
 | 
			
		||||
 | 
			
		||||
## Pod labels
 | 
			
		||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
 | 
			
		||||
podLabels: {}
 | 
			
		||||
  # name: value
 | 
			
		||||
 | 
			
		||||
service:
 | 
			
		||||
  servicename:
 | 
			
		||||
  type: ClusterIP
 | 
			
		||||
  externalTrafficPolicy: Local
 | 
			
		||||
  ## Uses pre-assigned IP address from cloud provider
 | 
			
		||||
  ## Only valid if service.type: LoadBalancer
 | 
			
		||||
  loadBalancerIP:
 | 
			
		||||
  ## Limits which cidr blocks can connect to service's load balancer
 | 
			
		||||
  ## Only valid if service.type: LoadBalancer
 | 
			
		||||
  loadBalancerSourceRanges: []
 | 
			
		||||
  # clusterIP: None
 | 
			
		||||
  externalPort: 8080
 | 
			
		||||
  ## targetPort of the container to use. If a sidecar should handle the
 | 
			
		||||
  ## requests first, use the named port from the sidecar. See sidecar example
 | 
			
		||||
  ## from deployment above. Leave empty to use stirling-pdf directly.
 | 
			
		||||
  targetPort:
 | 
			
		||||
  nodePort:
 | 
			
		||||
  annotations: {}
 | 
			
		||||
  labels: {}
 | 
			
		||||
 | 
			
		||||
serviceMonitor:
 | 
			
		||||
  enabled: false
 | 
			
		||||
  # namespace: prometheus
 | 
			
		||||
  labels: {}
 | 
			
		||||
  metricsPath: "/metrics"
 | 
			
		||||
  # timeout: 60
 | 
			
		||||
  # interval: 60
 | 
			
		||||
 | 
			
		||||
resources: {}
 | 
			
		||||
#  limits:
 | 
			
		||||
#    cpu: 100m
 | 
			
		||||
#    memory: 128Mi
 | 
			
		||||
#  requests:
 | 
			
		||||
#    cpu: 80m
 | 
			
		||||
#    memory: 64Mi
 | 
			
		||||
 | 
			
		||||
probes:
 | 
			
		||||
  liveness:
 | 
			
		||||
    initialDelaySeconds: 5
 | 
			
		||||
    periodSeconds: 10
 | 
			
		||||
    timeoutSeconds: 1
 | 
			
		||||
    successThreshold: 1
 | 
			
		||||
    failureThreshold: 3
 | 
			
		||||
  livenessHttpGetConfig:
 | 
			
		||||
    scheme: HTTP
 | 
			
		||||
  readiness:
 | 
			
		||||
    initialDelaySeconds: 5
 | 
			
		||||
    periodSeconds: 10
 | 
			
		||||
    timeoutSeconds: 1
 | 
			
		||||
    successThreshold: 1
 | 
			
		||||
    failureThreshold: 3
 | 
			
		||||
  readinessHttpGetConfig:
 | 
			
		||||
    scheme: HTTP
 | 
			
		||||
 | 
			
		||||
serviceAccount:
 | 
			
		||||
  create: true
 | 
			
		||||
  name: ""
 | 
			
		||||
  automountServiceAccountToken: false
 | 
			
		||||
  ## Annotations for the Service Account
 | 
			
		||||
  annotations: {}
 | 
			
		||||
 | 
			
		||||
# UID/GID 1000 is the default user "stirling-pdf" used in
 | 
			
		||||
# the container image starting in v0.8.0 and above. This
 | 
			
		||||
# is required for local persistent storage. If your cluster
 | 
			
		||||
# does not allow this, try setting securityContext: {}
 | 
			
		||||
securityContext:
 | 
			
		||||
  enabled: true
 | 
			
		||||
  fsGroup: 1000
 | 
			
		||||
  ## Optionally, specify supplementalGroups and/or
 | 
			
		||||
  ## runAsNonRoot for security purposes
 | 
			
		||||
  # runAsNonRoot: true
 | 
			
		||||
  # supplementalGroups: [1000]
 | 
			
		||||
 | 
			
		||||
containerSecurityContext: {}
 | 
			
		||||
 | 
			
		||||
priorityClassName: ""
 | 
			
		||||
 | 
			
		||||
nodeSelector: {}
 | 
			
		||||
 | 
			
		||||
tolerations: []
 | 
			
		||||
 | 
			
		||||
affinity: {}
 | 
			
		||||
 | 
			
		||||
persistence:
 | 
			
		||||
  enabled: false
 | 
			
		||||
  accessMode: ReadWriteOnce
 | 
			
		||||
  size: 8Gi
 | 
			
		||||
  labels: {}
 | 
			
		||||
    # name: value
 | 
			
		||||
  path: /tmp
 | 
			
		||||
  ## A manually managed Persistent Volume and Claim
 | 
			
		||||
  ## Requires persistence.enabled: true
 | 
			
		||||
  ## If defined, PVC must be created manually before volume will be bound
 | 
			
		||||
  # existingClaim:
 | 
			
		||||
 | 
			
		||||
  ## stirling-pdf data Persistent Volume Storage Class
 | 
			
		||||
  ## If defined, storageClassName: <storageClass>
 | 
			
		||||
  ## If set to "-", storageClassName: "", which disables dynamic provisioning
 | 
			
		||||
  ## If undefined (the default) or set to null, no storageClassName spec is
 | 
			
		||||
  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
 | 
			
		||||
  ##   GKE, AWS & OpenStack)
 | 
			
		||||
  ##
 | 
			
		||||
  # storageClass: "-"
 | 
			
		||||
  # volumeName:
 | 
			
		||||
  pv:
 | 
			
		||||
    enabled: false
 | 
			
		||||
    pvname:
 | 
			
		||||
    capacity:
 | 
			
		||||
      storage: 8Gi
 | 
			
		||||
    accessMode: ReadWriteOnce
 | 
			
		||||
    nfs:
 | 
			
		||||
      server:
 | 
			
		||||
      path:
 | 
			
		||||
 | 
			
		||||
## Init containers parameters:
 | 
			
		||||
## volumePermissions: Change the owner of the persistent volume mountpoint to RunAsUser:fsGroup
 | 
			
		||||
##
 | 
			
		||||
volumePermissions:
 | 
			
		||||
  image:
 | 
			
		||||
    registry: docker.io
 | 
			
		||||
    repository: bitnami/minideb
 | 
			
		||||
    tag: buster
 | 
			
		||||
    pullPolicy: Always
 | 
			
		||||
    ## Optionally specify an array of imagePullSecrets.
 | 
			
		||||
    ## Secrets must be manually created in the namespace.
 | 
			
		||||
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
 | 
			
		||||
    ##
 | 
			
		||||
    # pullSecrets:
 | 
			
		||||
    #   - myRegistryKeySecretName
 | 
			
		||||
 | 
			
		||||
## Ingress for load balancer
 | 
			
		||||
ingress:
 | 
			
		||||
  enabled: false
 | 
			
		||||
  pathType: "ImplementationSpecific"
 | 
			
		||||
  ## stirling-pdf Ingress labels
 | 
			
		||||
  ##
 | 
			
		||||
  labels: {}
 | 
			
		||||
    # dns: "route53"
 | 
			
		||||
 | 
			
		||||
  ## stirling-pdf Ingress annotations
 | 
			
		||||
  ##
 | 
			
		||||
  annotations: {}
 | 
			
		||||
    # kubernetes.io/ingress.class: nginx
 | 
			
		||||
    # kubernetes.io/tls-acme: "true"
 | 
			
		||||
 | 
			
		||||
  ## stirling-pdf Ingress hostnames
 | 
			
		||||
  ## Must be provided if Ingress is enabled
 | 
			
		||||
  ##
 | 
			
		||||
  hosts: []
 | 
			
		||||
    # - name: stirling-pdf.domain1.com
 | 
			
		||||
    #   path: /
 | 
			
		||||
    #   tls: false
 | 
			
		||||
    # - name: stirling-pdf.domain2.com
 | 
			
		||||
    #   path: /
 | 
			
		||||
    #
 | 
			
		||||
    #   ## Set this to true in order to enable TLS on the ingress record
 | 
			
		||||
    #   tls: true
 | 
			
		||||
    #
 | 
			
		||||
    #   ## If TLS is set to true, you must declare what secret will store the key/certificate for TLS
 | 
			
		||||
    #   ## Secrets must be added manually to the namespace
 | 
			
		||||
    #   tlsSecret: stirling-pdf.domain2-tls
 | 
			
		||||
 | 
			
		||||
  # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
 | 
			
		||||
  # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
 | 
			
		||||
  ingressClassName:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user