Files
devops-infra-helm-charts-gcp/helm-templates/athens-proxy/values.yaml
T
2026-08-26 03:39:42 +05:30

340 lines
10 KiB
YAML

image:
registry: docker.io
repository: gomods/athens
# Override the chart appVersion and use a specific tag
# tag: v0.12.0
# -- Specify a imagePullPolicy.
# see http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
pullPolicy: IfNotPresent
# -- Specify secrets containing credentials for pulling images
pullSecrets: []
# - name: name-of-secret
# -- Determine if the image should run as `root` or user `athens`
runAsNonRoot: false
livenessProbe:
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
readinessProbe:
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
strategy:
# -- Using RollingUpdate requires a shared storage
type: Recreate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
service:
# -- Add annotations to the service
annotations: {}
# -- Port as exposed by the service
servicePort: 80
# -- Type of service; valid values are "ClusterIP", "LoadBalancer", and
# "NodePort". "ClusterIP" is sufficient in the case when the Proxy will be used
# from within the cluster. To expose externally, consider a "NodePort" or "LoadBalancer" service or use an "Ingress".
type: ClusterIP
# Optional configuration if service is of type "NodePort"
# nodePort:
# -- Specify the nodePort in allowable range (e.g. 30000 - 32767 on minikube)
# port: 30080
ingress:
# -- Create an Ingress resource for athens
enabled: false
annotations: {}
className: ""
# -- Provide an array of values for the ingress host mapping
hosts: []
# - host: athens-proxy.local
# paths:
# - path: /
# pathType: ImplementationSpecific
# Provide a base64 encoded cert for TLS use
tls: []
# - hosts:
# - athens-proxy.local
# secretName: athens-proxy.local-tls
storage:
# -- Storage type to use. For a single instance a PVC may be sufficient
type: disk
disk:
storageRoot: "/var/lib/athens"
persistence:
# -- Note if you use disk.persistence.enabled, replicaCount should be set to 1 unless your access mode is
# 'ReadWriteMany' and strategy type must be 'Recreate'
enabled: false
accessMode: ReadWriteOnce
size: 4Gi
mongo:
url: ""
s3:
# -- You must set s3 bucket and region when running 'helm install'
region: ""
bucket: ""
useDefaultConfiguration: false
forcePathStyle: false
accessKey: ""
secretKey: ""
sessionToken: ""
minio:
# -- All these variables needs to be set when configuring athens to run with minio backend
endpoint: ""
accessKey: ""
secretKey: ""
bucket: ""
gcp:
# -- For more information, see:
# https://docs.gomods.io/install/install-on-kubernetes/#google-cloud-storage
# you must set gcp projectID and bucket when running 'helm install'
projectID: ""
bucket: ""
# -- Set serviceAccount to a key which has read/write access to the GCS bucket.
# If you are running Athens inside GCP, you will most likely not need this
# as GCP figures out internal authentication between products for you.
serviceAccount: ""
singleFlight:
# -- SingleFlight type to use.
# Options are ["memory", "etcd", "redis", "redis-sentinel", "gcp", "azureblob"].
# see https://docs.gomods.io/configuration/storage/#running-multiple-athens-pointed-at-the-same-storage
type: ""
etcd:
endpoints: ""
redis:
endpoint: ""
password: ""
lockConfig: {}
# ttl: 900
# timeout: 15
# maxRetries: 10
redisSentinel:
endpoints: ""
masterName: ""
sentinelPassword: ""
redisUsername: ""
redisPassword: ""
lockConfig: {}
# ttl: 900
# timeout: 15
# maxRetries: 10
# -- Priority class for pod scheduling.
# see API reference: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
priorityClassName: ""
# -- see API reference: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#pod-v1-core.
# the default value is 30 seconds.
terminationGracePeriodSeconds: 30
# -- Container security context configuration.
# see API reference: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#securitycontext-v1-core.
# This will override the `image.runAsNonRoot` settings in the specified container if `runAsUser` or `runAsGroup` are set
securityContext: {}
# allowPrivilegeEscalation: false
# runAsNonRoot: true
# -- Container lifecycle hooks configuration.
# see API reference: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
lifecycle: {}
# -- Set environment variables to be passed to athens pods
configEnvVars: []
# -- Add extra annotations to the athens pods
annotations: {}
# -- Add extra labels to all resources
extraLabels: {}
# HTTP basic auth
basicAuth:
# -- If enabled, it expects to find the username and password in the named secret provided below
enabled: false
# -- Secret name, containing the 'passwordSecretKey' and 'usernameSecretKey'
secretName: athens-proxy-basic-auth
passwordSecretKey: password
usernameSecretKey: username
netrc:
# -- If enabled, it expects to find the content of a valid '.netrc' file in the named secret provided below
enabled: false
# -- Secret name, containing the '.netrc' file
existingSecret: netrcsecret
# gitconfig section provides a way to inject git config file to make athens able to fetch modules from private git repos
gitconfig:
# -- If enabled, it expects to find git configuration in the named secret provided below.
# By default, gitconfig is disabled
enabled: false
# -- Name of the kubernetes secret (in the same namespace as athens-proxy) that contains git config
secretName: athens-proxy-gitconfig
# -- Key in the kubernetes secret that contains git config data
secretKey: gitconfig
upstreamProxy:
# -- This is where you can set the URL for the upstream module repository.
# If 'enabled' is set to true, Athens will try to download modules from the upstream when it doesn't find them in its own storage.
# Here's a non-exhaustive list of options you can set here:
#
# - https://gocenter.io
# - https://proxy.golang.org
enabled: false
url: "https://gocenter.io"
jaeger:
# -- Deploy a jaeger "all-in-one" pod for tracing
enabled: false
annotations: {}
# -- Type of service; valid values are "ClusterIP", "LoadBalancer", and "NodePort".
type: ClusterIP
image:
repository: jaegertracing/all-in-one
tag: latest
# -- Specify the jaeger URL for the environment variable used by athens.
# With default settings, it uses the jaeger-collector-http port of the jaeger service.
url: ""
tracing:
# -- Set ATHENS_TRACE_EXPORTER* environment variables to point to a tracing deployment.
enabled: false
# -- Value of ATHENS_TRACE_EXPORTER_URL
url: ""
# -- Value of ATHENS_TRACE_EXPORTER, supported values are "jaeger", "datadog", and "stackdriver".
type: "jaeger"
# -- Configuration for private git servers that will provide ssh and git config to athens in a ConfigMap
sshGitServers: []
## Private git servers over ssh
## to enable uncomment lines with single hash below
## hostname of the git server
# - host: git.example.com
## https path, "/scm" for bitbucket
# path: ""
## ssh username
# user: git
## ssh private key for the user
# privateKey: |
# -----BEGIN RSA PRIVATE KEY-----
# -----END RSA PRIVATE KEY-----
## ssh port
# port: 22
## ssh private key from the existing secret (to be added separately in "Secret" Resource)
# existingSecret:
# name: ssh-keys
# subPath: secret.id_rsa
# -- sshGitServers init container security context configuration
initContainerSecurityContext: {}
# allowPrivilegeEscalation: false
# runAsNonRoot: true
# -- sshGitServers init container resources (deprecated naming, if initContainerResources is defined, that will be used in preference to this value)
intiContainerResources: {}
# limits:
# cpu: 100m
# memory: 64Mi
# requests:
# cpu: 100m
# memory: 64Mi
# -- sshGitServers init container resources
initContainerResources: {}
# limits:
# cpu: 100m
# memory: 64Mi
# requests:
# cpu: 100m
# memory: 64Mi
# -- Define extra init containers for athens-proxy
extraInitContainers: []
# - name: init
# image: busybox:1.28
# command: ['sh', '-c', "echo 'hello world'"]
# -- Specify the number of go workers
goGetWorkers: 3
metrics:
serviceMonitor:
# -- Create a ServiceMonitor for prometheus
enabled: false
# namespace: "monitoring"
# labels:
# prometheus: default
serviceScrape:
# -- Create a VMServiceScrape for victoria
enabled: false
# namespace: "monitoring"
serviceAccount:
# -- Create a ServiceAccount
create: true
annotations: {}
# name: "athens-proxy"
# -- see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling
nodeSelector: {}
# -- see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling
tolerations: []
# -- see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling
affinity: {}
# -- Add extra volumes to deployment pod
extraVolumes: {}
# -- Add extra volume mounts to deployment pod primary container
extraVolumeMounts: {}
# -- Define resources for athens pods.
# see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources
resources: {}
# limits:
# cpu: 100m
# memory: 64Mi
# requests:
# cpu: 100m
# memory: 64Mi
# -- Set the number of athens-proxy replicas, unless autoscaling is enabled
replicaCount: 1
autoscaling:
# -- Enable Horizontal Pod Autoscaling
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 80
# -- Overwrite the API version used for HPA, uses 'autoscaling/v2' by default.
# see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/horizontal-pod-autoscaler-v2/
apiVersionOverride: ""
# -- Define scaling behavior for HPA
behavior: {}
# scaleDown:
# stabilizationWindowSeconds: 300
# policies:
# - type: Pods
# value: 1
# periodSeconds: 180
# scaleUp:
# stabilizationWindowSeconds: 300
# policies:
# - type: Pods
# value: 2
# periodSeconds: 60