12 Commits

Author SHA1 Message Date
Devin Canterberry
e224a31190 🏁 v1.16.0 Release 2021-12-11 14:20:24 -08:00
Devin Canterberry
a36de54d0c Merge pull request #44 from MrSimonEmms/main
Conditionally create service account and add to deployment
2021-12-11 14:19:18 -08:00
Simon Emms
2b24174cea Conditionally create service account and add to deployment
Signed-off-by: Simon Emms <simon@simonemms.com>
2021-12-07 11:54:11 +00:00
Devin Canterberry
2fd6d8fbf0 🏁 v1.15.0 Release 2021-12-05 22:28:32 -08:00
Devin Canterberry
6305476063 Merge pull request #37 from SimonRupar/main
Enable metrics via Prometheus Operator
2021-12-05 22:25:32 -08:00
Devin Canterberry
cfb7daa4e4 Merge pull request #42 from MrSimonEmms/main
Support deployment to a namespace
2021-12-05 15:50:35 -08:00
Simon Emms
851575797a Support deployment to a namespace
Signed-off-by: Simon Emms <simon@simonemms.com>
2021-12-05 15:21:31 +00:00
SimonRupar
489a0cfe5e Updated typo to enable(d) 2021-11-22 11:25:20 +01:00
Devin Canterberry
f9fbd04f6f 🏁 v1.14.0 Release 2021-10-19 23:56:15 -07:00
SimonRupar
f38b9b4a58 Enable metrics via Prometheus Operator 2021-10-14 17:11:09 +02:00
Devin Canterberry
935935622c Merge pull request #35 from vvanouytsel/main
Support additional env variables
2021-10-13 08:44:22 -07:00
Vincent Van Ouytsel
4c49800452 Support additional env variables 2021-10-13 09:32:25 +02:00
13 changed files with 124 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
apiVersion: v1
description: A Helm chart for Docker Registry
name: docker-registry
version: 1.13.2
version: 1.16.0
appVersion: 2.7.1
home: https://hub.docker.com/_/registry/
icon: https://helm.twun.io/docker-registry.png

View File

@@ -43,6 +43,9 @@ their default values.
| `persistence.size` | Amount of space to claim for PVC | `10Gi` |
| `persistence.storageClass` | Storage Class to use for PVC | `-` |
| `persistence.existingClaim` | Name of an existing PVC to use for config | `nil` |
| `serviceAccount.create` | Create ServiceAccount | `false` |
| `serviceAccount.name` | ServiceAccount name | `nil` |
| `serviceAccount.annotations` | Annotations to add to the ServiceAccount | `{}` |
| `service.port` | TCP port on which the service is exposed | `5000` |
| `service.type` | service type | `ClusterIP` |
| `service.clusterIP` | if `service.type` is `ClusterIP` and this is non-empty, sets the cluster IP of the service | `nil` |
@@ -82,6 +85,7 @@ their default values.
| `proxy.username` | Remote registry login username | `nil` |
| `proxy.password` | Remote registry login password | `nil` |
| `proxy.secretRef` | The ref for an external secret containing the proxyUsername and proxyPassword keys | `""` |
| `namespace` | specify a namespace to install the chart to - defaults to `.Release.Namespace` | `{{ .Release.Namespace }}` |
| `nodeSelector` | node labels for pod assignment | `{}` |
| `affinity` | affinity settings | `{}` |
| `tolerations` | pod tolerations | `[]` |
@@ -91,8 +95,18 @@ their default values.
| `ingress.path` | Ingress service path | `/` |
| `ingress.hosts` | Ingress hostnames | `[]` |
| `ingress.tls` | Ingress TLS configuration (YAML) | `[]` |
| `metrics.enabled` | Enable metrics on Service | `false` |
| `metrics.port` | TCP port on which the service metrics is exposed | `5001` |
| `metrics.serviceMonitor.annotations` | Prometheus Operator ServiceMonitor annotations | `{}` |
| `metrics.serviceMonitor.enable` | If true, Prometheus Operator ServiceMonitor will be created | `false` |
| `metrics.serviceMonitor.labels` | Prometheus Operator ServiceMonitor labels | `{}` |
| `metrics.prometheusRule.annotations` | Prometheus Operator PrometheusRule annotations | `{}` |
| `metrics.prometheusRule.enable` | If true, Prometheus Operator prometheusRule will be created | `false` |
| `metrics.prometheusRule.labels` | Prometheus Operator prometheusRule labels | `{}` |
| `metrics.prometheusRule.rules` | PrometheusRule defining alerting rules for a Prometheus instance | `{}` |
| `extraVolumeMounts` | Additional volumeMounts to the registry container | `[]` |
| `extraVolumes` | Additional volumes to the pod | `[]` |
| `extraEnvVars` | Additional environment variables to the pod | `[]` |
Specify each parameter using the `--set key=value[,key=value]` argument to
`helm install`.

View File

@@ -2,6 +2,7 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "docker-registry.fullname" . }}-config
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}

View File

@@ -2,6 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "docker-registry.fullname" . }}
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
@@ -32,6 +33,9 @@ spec:
{{ toYaml $.Values.podAnnotations | indent 8 }}
{{- end }}
spec:
{{- if or (eq .Values.serviceAccount.create true) (ne .Values.serviceAccount.name "") }}
serviceAccountName: {{ .Values.serviceAccount.name | default (include "docker-registry.fullname" .) }}
{{- end }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{ toYaml .Values.imagePullSecrets | indent 8 }}
@@ -54,6 +58,11 @@ spec:
- /etc/docker/registry/config.yml
ports:
- containerPort: 5000
{{- if .Values.metrics.enabled }}
- containerPort: {{ (split ":" .Values.configData.http.debug.addr)._1 }}
name: metrics
protocol: TCP
{{- end }}
livenessProbe:
httpGet:
{{- if .Values.tlsSecretName }}
@@ -175,6 +184,9 @@ spec:
{{- if .Values.persistence.deleteEnabled }}
- name: REGISTRY_STORAGE_DELETE_ENABLED
value: "true"
{{- end }}
{{- with .Values.extraEnvVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
{{- if .Values.secrets.htpasswd }}

View File

@@ -6,6 +6,7 @@ apiVersion: {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
kind: Ingress
metadata:
name: {{ template "docker-registry.fullname" . }}
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}

View File

@@ -3,6 +3,7 @@ apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: {{ template "docker-registry.fullname" . }}
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}

View File

@@ -0,0 +1,17 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled -}}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ template "docker-registry.fullname" . }}
labels:
app.kubernetes.io/component: controller
{{- if .Values.metrics.prometheusRule.labels }}
{{- toYaml .Values.metrics.prometheusRule.labels | nindent 4 }}
{{- end }}
spec:
{{- if .Values.metrics.prometheusRule.rules }}
groups:
- name: {{ template "docker-registry.fullname" . }}
rules: {{- toYaml .Values.metrics.prometheusRule.rules | nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -4,6 +4,7 @@ kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "docker-registry.fullname" . }}
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"

View File

@@ -2,6 +2,7 @@ apiVersion: v1
kind: Secret
metadata:
name: {{ template "docker-registry.fullname" . }}-secret
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}

View File

@@ -2,6 +2,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ template "docker-registry.fullname" . }}
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
@@ -36,6 +37,12 @@ spec:
targetPort: 5000
{{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}
{{- if .Values.metrics.enabled }}
- port: {{ .Values.metrics.port }}
protocol: TCP
name: metrics
targetPort: {{ (split ":" .Values.configData.http.debug.addr)._1 }}
{{- end }}
selector:
app: {{ template "docker-registry.name" . }}

View File

@@ -0,0 +1,19 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: {{ template "docker-registry.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
{{- if .Values.serviceAccount.name }}
name: {{ .Values.serviceAccount.name }}
{{- else }}
name: {{ include "docker-registry.fullname" . }}
{{- end }}
{{- if .Values.serviceAccount.annotations }}
annotations:
{{ toYaml .Values.serviceAccount.annotations | indent 4 }}
{{- end }}
{{- end -}}

View File

@@ -0,0 +1,21 @@
{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled -}}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "docker-registry.fullname" . }}-servicemonitor
labels:
app: {{ template "docker-registry.name" . }}-metrics
release: {{ .Release.Name }}
{{- if .Values.metrics.serviceMonitor.labels }}
{{ toYaml .Values.metrics.serviceMonitor.labels | indent 4 }}
{{- end }}
spec:
selector:
matchLabels:
app: {{ template "docker-registry.name" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
endpoints:
- port: metrics
interval: 15s
{{- end }}

View File

@@ -12,6 +12,11 @@ updateStrategy: {}
podAnnotations: {}
podLabels: {}
serviceAccount:
create: false
name: ""
annotations: {}
image:
repository: registry
tag: 2.7.1
@@ -110,6 +115,19 @@ proxy:
# Keys: proxyUsername, proxyPassword
secretRef: ""
metrics:
enabled: false
port: 5001
# Create a prometheus-operator servicemonitor
serviceMonitor:
enabled: false
labels: {}
# prometheus-operator PrometheusRule defining alerting rules for a Prometheus instance
prometheusRule:
enabled: false
labels: {}
rules: {}
configData:
version: 0.1
log:
@@ -122,6 +140,11 @@ configData:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
debug:
addr: :5001
prometheus:
enabled: false
path: /metrics
health:
storagedriver:
enabled: true
@@ -160,3 +183,8 @@ extraVolumes: []
# - key: cloudfront.pem
# path: cloudfront.pem
# mode: 511
extraEnvVars: []
## Additional ENV variables to set
# - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
# value: "/var/lib/example"