349 lines
10 KiB
YAML
349 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: true
|
|
annotations: {}
|
|
className: nginx-internal
|
|
# -- Provide an array of values for the ingress host mapping
|
|
hosts:
|
|
- host: athens-prd.meeshogcp.in
|
|
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: true
|
|
accessMode: ReadWriteOnce
|
|
storageClass: "premium-rwo"
|
|
size: 10Gi
|
|
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: "meesho-admin-prd-0622"
|
|
bucket: "gcs-infr-dvps-athens-prd"
|
|
# -- 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:
|
|
- name: ATHENS_DOWNLOAD_MODE
|
|
value: sync
|
|
|
|
# -- 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: true
|
|
# -- 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://proxy.golang.org"
|
|
|
|
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: 16
|
|
|
|
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:
|
|
iam.gke.io/gcp-service-account: jenkins-prd-agent@meesho-devops-admin-0622.iam.gserviceaccount.com
|
|
name: "athens-proxy-admin-prd"
|
|
|
|
# -- see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling
|
|
nodeSelector:
|
|
dedicated: dind
|
|
|
|
# -- see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling
|
|
tolerations:
|
|
- key: "dedicated"
|
|
operator: "Equal"
|
|
value: "dind"
|
|
effect: "NoSchedule"
|
|
|
|
# -- 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: '15'
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: '12'
|
|
memory: 6Gi
|
|
|
|
# -- 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
|