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