| Giorgi Lekveishvili | 4ec4c02 | 2024-08-17 15:09:24 +0400 | [diff] [blame] | 1 | # Default values for zot. |
| 2 | # This is a YAML-formatted file. |
| 3 | # Declare variables to be passed into your templates. |
| 4 | replicaCount: 1 |
| 5 | image: |
| 6 | repository: ghcr.io/project-zot/zot-linux-amd64 |
| 7 | pullPolicy: IfNotPresent |
| 8 | # Overrides the image tag whose default is the chart appVersion. |
| 9 | tag: "v2.0.3" |
| 10 | serviceAccount: |
| 11 | # Specifies whether a service account should be created |
| 12 | create: true |
| 13 | # Annotations to add to the service account |
| 14 | annotations: {} |
| 15 | # The name of the service account to use. |
| 16 | # If not set and create is true, a name is generated using the fullname template |
| 17 | name: "" |
| 18 | service: |
| 19 | type: NodePort |
| 20 | port: 5000 |
| 21 | nodePort: null # Set to a specific port if type is NodePort |
| 22 | # Annotations to add to the service |
| 23 | annotations: {} |
| 24 | # Set to a static IP if a static IP is desired, only works when |
| 25 | # type: ClusterIP |
| 26 | clusterIP: null |
| 27 | # Enabling this will publicly expose your zot server |
| 28 | # Only enable this if you have security enabled on your cluster |
| 29 | ingress: |
| 30 | enabled: false |
| 31 | annotations: {} |
| 32 | # kubernetes.io/ingress.class: nginx |
| 33 | # kubernetes.io/tls-acme: "true" |
| 34 | # If using nginx, disable body limits and increase read and write timeouts |
| 35 | # nginx.ingress.kubernetes.io/proxy-body-size: "0" |
| 36 | # nginx.ingress.kubernetes.io/proxy-read-timeout: "600" |
| 37 | # nginx.ingress.kubernetes.io/proxy-send-timeout: "600" |
| 38 | className: "nginx" |
| 39 | pathtype: ImplementationSpecific |
| 40 | hosts: |
| 41 | - host: chart-example.local |
| 42 | paths: |
| 43 | - path: / |
| 44 | tls: [] |
| 45 | # - secretName: chart-example-tls |
| 46 | # hosts: |
| 47 | # - chart-example.local |
| 48 | # By default, Kubernetes HTTP probes use HTTP 'scheme'. So if TLS is enabled |
| 49 | # in configuration, to prevent failures, the scheme must be set to 'HTTPS'. |
| 50 | httpGet: |
| 51 | scheme: HTTP |
| 52 | # By default, Kubernetes considers a Pod healthy if the liveness probe returns |
| 53 | # successfully. However, sometimes applications need additional startup time on |
| 54 | # their first initialization. By defining a startupProbe, we can allow the |
| 55 | # application to take extra time for initialization without compromising fast |
| 56 | # response to deadlocks. |
| 57 | startupProbe: |
| 58 | initialDelaySeconds: 5 |
| 59 | periodSeconds: 10 |
| 60 | failureThreshold: 3 |
| 61 | # If mountConfig is true the configMap named $CHART_RELEASE-config is mounted |
| 62 | # on the pod's '/etc/zot' directory |
| 63 | mountConfig: false |
| 64 | # If mountConfig is true the chart creates the '$CHART_RELEASE-config', if it |
| 65 | # does not exist the user is in charge of managing it (as this file includes a |
| 66 | # sample file you have to add it empty to handle it externally) ... note that |
| 67 | # the service does not reload the configFiles once mounted, so you need to |
| 68 | # delete the pods to create new ones to use the new values. |
| 69 | configFiles: |
| 70 | config.json: |- |
| 71 | { |
| 72 | "storage": { "rootDirectory": "/var/lib/registry" }, |
| 73 | "http": { "address": "0.0.0.0", "port": "5000" }, |
| 74 | "log": { "level": "debug" } |
| 75 | } |
| 76 | # Alternatively, the configuration can include authentication and acessControl |
| 77 | # data and we can use mountSecret option for the passwords. |
| 78 | # |
| 79 | # config.json: |- |
| 80 | # { |
| 81 | # "storage": { "rootDirectory": "/var/lib/registry" }, |
| 82 | # "http": { |
| 83 | # "address": "0.0.0.0", |
| 84 | # "port": "5000", |
| 85 | # "auth": { "htpasswd": { "path": "/secret/htpasswd" } }, |
| 86 | # "accessControl": { |
| 87 | # "repositories": { |
| 88 | # "**": { |
| 89 | # "policies": [{ |
| 90 | # "users": ["user"], |
| 91 | # "actions": ["read"] |
| 92 | # }], |
| 93 | # "defaultPolicy": [] |
| 94 | # } |
| 95 | # }, |
| 96 | # "adminPolicy": { |
| 97 | # "users": ["admin"], |
| 98 | # "actions": ["read", "create", "update", "delete"] |
| 99 | # } |
| 100 | # } |
| 101 | # }, |
| 102 | # "log": { "level": "debug" } |
| 103 | # } |
| 104 | |
| 105 | # externalSecrets allows to mount external (meaning not managed by this chart) |
| 106 | # Kubernetes secrets within the Zot container. |
| 107 | # The secret is identified by its name (property "secretName") and should be |
| 108 | # present in the same namespace. The property "mountPath" specifies the path |
| 109 | # within the container filesystem where the secret is mounted. |
| 110 | # |
| 111 | # Below is an example: |
| 112 | # |
| 113 | # externalSecrets: |
| 114 | # - secretName: "secret1" |
| 115 | # mountPath: "/secrets/s1" |
| 116 | # - secretName: "secret2" |
| 117 | # mountPath: "/secrets/s2" |
| 118 | externalSecrets: [] |
| 119 | # If mountSecret is true, the Secret named $CHART_RELEASE-secret is mounted on |
| 120 | # the pod's '/secret' directory (it is used to keep files with passwords, like |
| 121 | # a `htpasswd` file) |
| 122 | mountSecret: false |
| 123 | # If secretFiles does not exist the user is in charge of managing it, again, if |
| 124 | # you want to manage it the value has to be added empty to avoid using this one |
| 125 | secretFiles: |
| 126 | # Example htpasswd with 'admin:admin' & 'user:user' user:pass pairs |
| 127 | htpasswd: |- |
| 128 | admin:$2y$05$vmiurPmJvHylk78HHFWuruFFVePlit9rZWGA/FbZfTEmNRneGJtha |
| 129 | user:$2y$05$L86zqQDfH5y445dcMlwu6uHv.oXFgT6AiJCwpv3ehr7idc0rI3S2G |
| 130 | # Authentication string for Kubernetes probes, which is needed when `htpasswd` |
| 131 | # authentication is enabled, but the anonymous access policy is not. |
| 132 | # It contains a `user:password` string encoded in base64. The example value is |
| 133 | # from running `echo -n "foo:var" | base64` |
| 134 | # authHeader: "Zm9vOmJhcg==" |
| 135 | |
| 136 | # If persistence is 'true' the service uses a persistentVolumeClaim to mount a |
| 137 | # volume for zot on '/var/lib/registry'; by default the pvc used is named |
| 138 | # '$CHART_RELEASE-pvc', but the name can be changed below |
| 139 | persistence: false |
| 140 | # PVC data, only used if persistence is 'true' |
| 141 | pvc: |
| 142 | # Make the chart create the PVC, this option is used with storageClasses that |
| 143 | # can create volumes dynamically, if that is not the case is better to do it |
| 144 | # manually and set create to false |
| 145 | create: false |
| 146 | # Name of the PVC to use or create if persistence is enabled, if not set the |
| 147 | # value '$CHART_RELEASE-pvc' is used |
| 148 | name: null |
| 149 | # Volume access mode, if using more than one replica we need |
| 150 | accessMode: "ReadWriteOnce" |
| 151 | # Size of the volume requested |
| 152 | storage: 8Gi |
| 153 | # Name of the storage class to use if it is different than the default one |
| 154 | storageClassName: null |
| 155 | # List of environment variables to set on the container |
| 156 | env: |
| 157 | # - name: "TEST" |
| 158 | # value: "ME" |
| 159 | # - name: SECRET_NAME |
| 160 | # valueFrom: |
| 161 | # secretKeyRef: |
| 162 | # name: mysecret |
| 163 | # key: username |
| 164 | |
| 165 | # Extra Volume Mounts |
| 166 | extraVolumeMounts: [] |
| 167 | # - name: data |
| 168 | # mountPath: /var/lib/registry |
| 169 | |
| 170 | # Extra Volumes |
| 171 | extraVolumes: [] |
| 172 | # - name: data |
| 173 | # emptyDir: {} |
| 174 | |
| 175 | # Deployment strategy type |
| 176 | strategy: |
| 177 | type: RollingUpdate |
| 178 | # rollingUpdate: |
| 179 | # maxUnavailable: 25% |
| 180 | |
| 181 | podAnnotations: {} |