# Declare variables to be passed into your templates. ## @section Global ## @param nameOverride Individual release name suffix. ## @param fullnameOverride Override the complete release name logic. nameOverride: "" fullnameOverride: "" ## @section Config config: plugins: ## @param config.plugins.prometheus.enabled Download the Prometheus plugin via an additional init container. The Prometheus plugin will automatically enabled, when Prometheus is enabled. ## @param config.plugins.prometheus.url URL to download the plugin. prometheus: enabled: false url: https://maven.reposilite.com/releases/com/reposilite/plugin/prometheus-plugin/{{ .Chart.AppVersion }}/prometheus-plugin-{{ .Chart.AppVersion }}-all.jar ## @section Deployment deployment: ## @param deployment.annotations Additional deployment annotations. ## @param deployment.labels Additional deployment labels. annotations: {} labels: {} ## @param deployment.additionalContainers List of additional containers. additionalContainers: [] # - command: [ "sh", "-c", "echo hello world" ] # image: "docker.io/library/busybox:latest" # name: side-car ## @param deployment.affinity Affinity for the Reposilite deployment. affinity: {} # nodeAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # nodeSelectorTerms: # - matchExpressions: # - key: kubernetes.io/os # operator: In # values: # - linux # preferredDuringSchedulingIgnoredDuringExecution: # - weight: 20 # preference: # matchExpressions: # - key: kubernetes.io/arch # operator: In # values: # - amd64 ## @param deployment.initContainers List of additional init containers. initContainers: [] # - command: [ "sh", "-c", "echo hello world" ] # image: "docker.io/library/busybox:latest" # name: init ## @param deployment.dnsConfig dnsConfig of the Reposilite deployment. dnsConfig: {} # nameservers: # - 192.0.2.1 # this is an example # searches: # - ns1.svc.cluster-domain.example # - my.dns.search.suffix # options: # - name: ndots # value: "2" # - name: edns0 ## @param deployment.dnsPolicy dnsPolicy of the Reposilite deployment. dnsPolicy: "" ## @param deployment.hostname Individual hostname of the pod. ## @param deployment.subdomain Individual domain of the pod. hostname: "" subdomain: "" ## @param deployment.hostNetwork Use the kernel network namespace of the host system. hostNetwork: false ## @param deployment.imagePullSecrets Secret to use for pulling the image. imagePullSecrets: [] # - name: "my-custom-secret" reposilite: ## @param deployment.reposilite.args Arguments passed to the Reposilite container. args: [] # - "-c" # - "echo HelloWorld" ## @param deployment.reposilite.command Command passed to the Reposilite container. command: [] # - "/bin/bash" ## @extra deployment.reposilite.env List of environment variables for the Reposilite container. ## @skip deployment.reposilite.env[0].name JAVA_OPTS: Environment variable to define custom java options. ## @skip deployment.reposilite.env[0].value Set custom java options. Use `-Xmx64M` to reduce the heap of the JVM. env: - name: JAVA_OPTS value: "-Xmx64M" # - name: SPECIAL_ENV_A # value: special-key # - name: SPECIAL_ENV # valueFrom: # configMapKeyRef: # name: special-config # key: special-key # - name: SPECIAL_ENV # valueFrom: # secretKeyRef: # name: special-secret # key: special-key ## @param deployment.reposilite.envFrom List of environment variables mounted from configMaps or secrets for the Reposilite container. envFrom: [] # - configMapRef: # name: special-config # - secretRef: # name: special-secret ## @param deployment.reposilite.image.registry Image registry, eg. `docker.io`. ## @param deployment.reposilite.image.repository Image repository, eg. `library/busybox`. ## @param deployment.reposilite.image.tag Custom image tag, eg. `0.1.0`. Defaults to `appVersion`. ## @param deployment.reposilite.image.pullPolicy Image pull policy. image: registry: docker.io repository: dzikoysk/reposilite tag: "" pullPolicy: IfNotPresent ## @param deployment.reposilite.resources CPU and memory resources of the pod. resources: {} # limits: # cpu: # ephemeral-storage: # memory: # requests: # cpu: # ephemeral-storage: # memory: ## @param deployment.reposilite.securityContext Security context of the container of the deployment. securityContext: {} # capabilities: # add: # - NET_RAW # drop: # - ALL # privileged: false # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 ## @param deployment.reposilite.volumeMounts Additional volume mounts. volumeMounts: [] # - name: my-configmap-volume # mountPath: /configmap # readOnly: true ## @param deployment.nodeSelector NodeSelector of the Reposilite deployment. nodeSelector: {} pluginContainer: ## @param deployment.pluginContainer.args Arguments passed to the plugin container. args: - "--location" - "--fail" - "--max-time" - "60" ## @param deployment.pluginContainer.image.registry Image registry, eg. `docker.io`. ## @param deployment.pluginContainer.image.repository Image repository, eg. `curlimages/curl`. ## @param deployment.pluginContainer.image.tag Custom image tag, eg. `0.1.0`. ## @param deployment.pluginContainer.image.pullPolicy Image pull policy. image: registry: docker.io repository: curlimages/curl tag: "8.16.0" pullPolicy: IfNotPresent ## @param deployment.priorityClassName PriorityClassName of the Reposilite deployment. priorityClassName: "" ## @param deployment.replicas Number of replicas for the Reposilite deployment. replicas: 1 ## @param deployment.restartPolicy Restart policy of the Reposilite deployment. restartPolicy: "" ## @param deployment.securityContext Security context of the Reposilite deployment. securityContext: {} # fsGroup: 2000 ## @param deployment.strategy.type Strategy type - `Recreate` or `RollingUpdate`. ## @param deployment.strategy.rollingUpdate.maxSurge The maximum number of pods that can be scheduled above the desired number of pods during a rolling update. ## @param deployment.strategy.rollingUpdate.maxUnavailable The maximum number of pods that can be unavailable during a rolling update. strategy: type: "RollingUpdate" rollingUpdate: maxSurge: 1 maxUnavailable: 1 ## @param deployment.terminationGracePeriodSeconds How long to wait until forcefully kill the pod. terminationGracePeriodSeconds: 60 ## @param deployment.tolerations Tolerations of the Reposilite deployment. tolerations: [] # - key: host.kubernetes.io/ssd # operator: Equal # value: "true" # effect: NoSchedule ## @param deployment.topologySpreadConstraints TopologySpreadConstraints of the Reposilite deployment. topologySpreadConstraints: [] # - maxSkew: 1 # topologyKey: kubernetes.io/hostname # whenUnsatisfiable: DoNotSchedule # labelSelector: # matchLabels: # app.kubernetes.io/instance: reposilite ## @param deployment.volumes Additional volumes to mount into the pods of the reposilite deployment. volumes: [] # - name: my-configmap-volume # config: # name: my-configmap # - name: my-secret-volume # secret: # secretName: my-secret ## @section Horizontal Pod Autoscaler (HPA) # In order for the HPA to function successfully, a metric server is required, especially for resource consumption. The # metric server enables the CPU and memory utilisation to be recorded. If such a metric server is not available, the HPA # cannot scale pods based on CPU or memory utilisation. Further information be be found here: # https://github.com/kubernetes-sigs/metrics-server#deployment hpa: ## @param hpa.enabled Enable the horizontal pod autoscaler (HPA). ## @param hpa.annotations Additional annotations for the HPA. ## @param hpa.labels Additional labels for the HPA. ## @extra hpa.behavior.scaleDown Scaling policy for scaling down. ## @skip hpa.behavior.scaleDown.policies Skip individual scale down policies. ## @skip hpa.behavior.scaleDown.stabilizationWindowSeconds Skip individual stabilizationWindowSeconds. ## @param hpa.metrics Metrics contains the specifications for which to use to calculate the desired replica count. ## @skip hpa.metrics Skip individual HPA metric configurations. ## @param hpa.minReplicas Min replicas is the lower limit for the number of replicas to which the autoscaler can scale down. ## @param hpa.maxReplicas Upper limit for the number of pods that can be set by the autoscaler. enabled: false annotations: {} labels: {} behavior: scaleDown: policies: - type: Pods value: 1 periodSeconds: 60 stabilizationWindowSeconds: 300 metrics: - resource: name: cpu target: averageUtilization: 65 type: Utilization type: Resource - resource: name: memory target: averageUtilization: 65 type: Utilization type: Resource minReplicas: 1 maxReplicas: 10 ## @section Ingress ingress: ## @param ingress.enabled Enable creation of an ingress resource. Requires, that the http service is also enabled. ## @param ingress.className Ingress class. ## @param ingress.annotations Additional ingress annotations. ## @param ingress.labels Additional ingress labels. enabled: false className: "nginx" annotations: {} labels: {} ## @param ingress.hosts Ingress specific configuration. Let ingress controller listen on specific DNS names and path's. ## @skip ingress.hosts Skip individual host configuration. hosts: [] # - host: reposilite.example.local # paths: # - path: / # pathType: Prefix ## @param ingress.tls Ingress specific TLS configuration. Use TLS encryption for specific hostnames. ## @skip ingress.tls Skip individual TLS configuration. tls: [] # - secretName: chart-example-tls # hosts: # - chart-example.local ## @section Network Policy networkPolicy: ## @param networkPolicy.enabled Enable network policies in general. ## @param networkPolicy.annotations Additional network policy annotations. ## @param networkPolicy.labels Additional network policy labels. ## @param networkPolicy.policyTypes List of policy types. Supported is ingress, egress or ingress and egress. ## @param networkPolicy.egress Concrete egress network policy implementation. ## @skip networkPolicy.egress Skip individual egress configuration. ## @param networkPolicy.ingress Concrete ingress network policy implementation. ## @skip networkPolicy.ingress Skip individual ingress configuration. enabled: false annotations: {} labels: {} policyTypes: [] # - Egress # - Ingress egress: [] # Allow outgoing DNS traffic to the internal running DNS-Server. For example core-dns. # # - to: # - namespaceSelector: # matchLabels: # kubernetes.io/metadata.name: kube-system # podSelector: # matchLabels: # k8s-app: kube-dns # ports: # - port: 53 # protocol: TCP # - port: 53 # protocol: UDP ## Allow outgoing HTTP traffic. For example to download maven artifacts from Apache Maven Central or Reposlite plugins from upstream. # - ports: # - port: 443 # protocol: TCP ingress: [] # Allow incoming HTTP traffic from prometheus. # # - from: # - namespaceSelector: # matchLabels: # kubernetes.io/metadata.name: monitoring # podSelector: # matchLabels: # app.kubernetes.io/name: prometheus # ports: # - port: http # protocol: TCP # - port: https # protocol: TCP # Allow incoming HTTP traffic from ingress-nginx. # # - from: # - namespaceSelector: # matchLabels: # kubernetes.io/metadata.name: ingress-nginx # podSelector: # matchLabels: # app.kubernetes.io/name: ingress-nginx # ports: # - port: http # protocol: TCP # - port: https # protocol: TCP ## @section Persistent Volume Claim persistentVolumeClaim: ## @param persistentVolumeClaim.enabled Enable persistence in general. ## @param persistentVolumeClaim.path Path where the persistent volume claim should be mounted into the container file system. enabled: false path: /app/data ## @param persistentVolumeClaim.existing.enabled Enable an existing persistent volume claim. ## @param persistentVolumeClaim.existing.persistentVolumeClaimName Name of the existing persistent volume claim. existing: enabled: false persistentVolumeClaimName: "" ## @param persistentVolumeClaim.new.annotations Additional service account annotations. ## @param persistentVolumeClaim.new.labels Additional service account labels. ## @param persistentVolumeClaim.new.accessMode Access mode of the persistent volume claim. More information about the access modes are in detail documented [online](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes). ## @param persistentVolumeClaim.new.size Size of the persistent volume claim. ## @param persistentVolumeClaim.new.storageClass Custom storage class. Left it empty to use the clusters default storage class. new: annotations: {} labels: {} accessMode: ReadWriteOnce size: 10Gi storageClass: "" ## @section Prometheus prometheus: ## @param prometheus.metrics.enabled Enable of scraping metrics by Prometheus. ## @param prometheus.metrics.basicAuthUsername Username for basic auth. The username and password is required by reposilite to expose metrics. Default: random alpha numeric string. ## @param prometheus.metrics.basicAuthPassword Password for basic auth. The username and password is required by reposilite to expose metrics. Default random alpha numeric string. metrics: enabled: false basicAuthUsername: "" basicAuthPassword: "" ## @param prometheus.metrics.podMonitor.enabled Enable creation of a podMonitor. Excludes the existence of a serviceMonitor resource. ## @param prometheus.metrics.podMonitor.annotations Additional podMonitor annotations. ## @param prometheus.metrics.podMonitor.enableHttp2 Enable HTTP2. ## @param prometheus.metrics.podMonitor.followRedirects FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. ## @param prometheus.metrics.podMonitor.honorLabels Honor labels. ## @param prometheus.metrics.podMonitor.labels Additional podMonitor labels. ## @param prometheus.metrics.podMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. ## @param prometheus.metrics.podMonitor.path HTTP path of the Reposilite pod for scraping Prometheus metrics. ## @param prometheus.metrics.podMonitor.port HTTP port of the Reposilite pod for scraping Prometheus metrics. ## @param prometheus.metrics.podMonitor.relabelings RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. ## @param prometheus.metrics.podMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. ## @param prometheus.metrics.podMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. ## @param prometheus.metrics.podMonitor.tlsConfig TLS configuration to use when scraping the metric endpoint by Prometheus. ## @skip prometheus.metrics.podMonitor.tlsConfig Skip individual TLS configuration. podMonitor: enabled: false annotations: {} enableHttp2: false followRedirects: false honorLabels: false labels: {} interval: "60s" path: "/metrics" port: "http" relabelings: [] scrapeTimeout: "30s" scheme: "http" tlsConfig: {} ## @param prometheus.metrics.serviceMonitor.enabled Enable creation of a serviceMonitor. Excludes the existence of a podMonitor resource. ## @param prometheus.metrics.serviceMonitor.annotations Additional serviceMonitor annotations. ## @param prometheus.metrics.serviceMonitor.labels Additional serviceMonitor labels. ## @param prometheus.metrics.serviceMonitor.enableHttp2 Enable HTTP2. ## @param prometheus.metrics.serviceMonitor.followRedirects FollowRedirects configures whether scrape requests follow HTTP 3xx redirects. ## @param prometheus.metrics.serviceMonitor.honorLabels Honor labels. ## @param prometheus.metrics.serviceMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. ## @param prometheus.metrics.serviceMonitor.path HTTP path for scraping Prometheus metrics. ## @param prometheus.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. ## @param prometheus.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. ## @param prometheus.metrics.serviceMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. ## @param prometheus.metrics.serviceMonitor.tlsConfig TLS configuration to use when scraping the metric endpoint by Prometheus. ## @skip prometheus.metrics.serviceMonitor.tlsConfig Skip individual TLS configuration. serviceMonitor: enabled: false annotations: {} labels: {} enableHttp2: false followRedirects: false honorLabels: false interval: "60s" path: "/metrics" relabelings: [] scrapeTimeout: "30s" scheme: "http" tlsConfig: {} ## @section Service ## @param service.enabled Enable the service. ## @param service.annotations Additional service annotations. ## @param service.externalIPs External IPs for the service. ## @param service.externalTrafficPolicy If `service.type` is `NodePort` or `LoadBalancer`, set this to `Local` to tell kube-proxy to only use node local endpoints for cluster external traffic. Furthermore, this enables source IP preservation. ## @param service.internalTrafficPolicy If `service.type` is `NodePort` or `LoadBalancer`, set this to `Local` to tell kube-proxy to only use node local endpoints for cluster internal traffic. ## @param service.ipFamilies IPFamilies is list of IP families (e.g. `IPv4`, `IPv6`) assigned to this service. This field is usually assigned automatically based on cluster configuration and only required for customization. ## @param service.labels Additional service labels. ## @param service.loadBalancerClass LoadBalancerClass is the class of the load balancer implementation this Service belongs to. Requires service from type `LoadBalancer`. ## @param service.loadBalancerIP LoadBalancer will get created with the IP specified in this field. Requires service from type `LoadBalancer`. ## @param service.loadBalancerSourceRanges Source range filter for LoadBalancer. Requires service from type `LoadBalancer`. ## @param service.port Port to forward the traffic to. ## @param service.scheme Name of the service port. This name is also used as scheme / port name of the service monitor resource. ## @param service.sessionAffinity Supports `ClientIP` and `None`. Enable client IP based session affinity via `ClientIP`. ## @param service.sessionAffinityConfig Contains the configuration of the session affinity. ## @param service.type Kubernetes service type for the traffic. service: enabled: true annotations: {} externalIPs: [] externalTrafficPolicy: "Cluster" internalTrafficPolicy: "Cluster" ipFamilies: [] labels: {} loadBalancerClass: "" loadBalancerIP: "" loadBalancerSourceRanges: [] port: 8080 scheme: http sessionAffinity: "None" sessionAffinityConfig: {} type: "ClusterIP" ## @section ServiceAccount serviceAccount: ## @param serviceAccount.existing.enabled Use an existing service account instead of creating a new one. Assumes that the user has all the necessary kubernetes API authorizations. ## @param serviceAccount.existing.serviceAccountName Name of the existing service account. existing: enabled: false serviceAccountName: "" ## @param serviceAccount.new.annotations Additional service account annotations. ## @param serviceAccount.new.labels Additional service account labels. ## @param serviceAccount.new.automountServiceAccountToken Enable/disable auto mounting of the service account token. ## @param serviceAccount.new.imagePullSecrets ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this serviceAccount. ## @param serviceAccount.new.secrets Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. new: annotations: {} labels: {} automountServiceAccountToken: true imagePullSecrets: [] # - name: "my-image-pull-secret" secrets: [] # - name: "my-secret" # namespace: "my-namespace" # fieldPath: "my-field"