statefulSet:
  # -- Add annotations to the StatefulSet
  annotations: {}
  # -- Add labels to the StatefulSet
  labels: {}
  # -- Defines the number of replicas
  replicaCount: 1
  # -- The maximum number of revisions that will be maintained in the StatefulSet's revision history
  # Default in 10.
  revisionHistoryLimit: 5

updateStrategy:
  # -- Defines the update strategy of the StatefulSet
  type: RollingUpdate

# -- Defines a custom command to start the container
command: []

# -- Defines a custom args to start the container
args: []

image:
  # -- The image registry
  registry: docker.io
  # -- The image repository
  repository: woodpeckerci/woodpecker-server
  # -- The image pull policy
  pullPolicy: IfNotPresent
  # -- Overrides the image tag whose default is the chart appVersion.
  tag: ''

# -- Add environment variables for the server component
env:
  WOODPECKER_ADMIN: 'woodpecker,admin'
  WOODPECKER_HOST: 'https://xxxxxxx'
  # WOODPECKER_GITHUB: "true"

# -- Add extra environment variables from the secrets list
extraSecretNamesForEnvFrom: []

# whether to create the default WOODPECKER_AGENT_SECRET in woodpecker-default-agent-secret
createAgentSecret: true
# -- Create a generic secret to store things in, e.g. env values
secrets: []
# - name: secret
#   data:
#     key: value

prometheus:
  podmonitor:
    # -- deploy podmonitor
    enabled: false
    # -- scrape interval in prometheus for this podmonitor
    interval:
    # -- add labels to podmonitor (to be selected by prometheus-operator)
    labels: {}
  rules:
    # -- deploy prometheus-rules
    enabled: false
    # -- add labels to prometheus-rules (to be selected by prometheus-operator)
    labels: {}
    # -- add labels to the prometheus-rule (inside of prometheus / in the alert)
    alertLabels: {}
    # -- add own prometheus-rules
    additionalRules: []

grafana:
  dashboards:
    # -- deploy configmap with grafana dashboard (current helm-chart has no dashboards)
    enabled: false
    # -- add labels to configmap (to be selected by grafana default sidecar)
    labels:
      grafana_dashboard: '1'
    # -- add annotations to configmap (to give config on grafana-sidecar e.g. put in folder)
    annotations: {}

# -- Additional volumes that can be mounted in containers
extraVolumes:
  []
  # - name: docker-config
  #   configMap:
  #     name: docker-config
  # - name: data-volume
  #   persistentVolumeClaim:
  #     claimName: example

# -- Additional volumes that will be attached to the agent container
extraVolumeMounts:
  []
  # - name: ca-certs
  #   mountPath: /etc/ssl/certs/ca-certificates.crt

# -- Add additional init containers to the pod (evaluated as a template)
initContainers: []

persistentVolume:
  # -- Enable the creation of the persistent volume
  enabled: true
  # -- Defines the size of the persistent volume
  size: 10Gi
  # -- Defines the path where the volume should be mounted
  mountPath: '/var/lib/woodpecker'
  # -- Defines the storageClass of the persistent volume
  storageClass: ''

# -- The image pull secrets
imagePullSecrets: []
# -- Overrides the name of the helm chart of the server component
nameOverride: ''
# -- Overrides the full name of the helm chart of the server component
fullnameOverride: ''

serviceAccount:
  # -- Specifies whether a service account should be created
  create: false
  # -- Annotations to add to the service account
  annotations: {}
  # -- The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ''

# -- Add pod annotations
podAnnotations:
  {}
  # prometheus.io/scrape: "true"

# -- Add pod security context
podSecurityContext:
  fsGroup: 1000

# -- Add security context
securityContext:
  runAsUser: 1000
  runAsGroup: 1000

service:
  # -- The type of the service
  type: ClusterIP
  # -- The port of the service
  port: 80
  # -- The cluster IP of the service (optional)
  clusterIP:
  # -- The loadbalancer IP of the service (optional)
  loadBalancerIP:
  # -- Annotations to add to the service
  annotations: {}

ingress:
  # -- Enable the ingress for the server component
  enabled: false
  # -- Add annotations to the ingress
  annotations:
  # kubernetes.io/ingress.class: nginx
  # kubernetes.io/tls-acme: "true"

  # -- Defines which ingress controller will implement the resource
  ingressClassName: ''

  hosts:
    - host: chart-example.local
      paths:
        - path: /
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

networkPolicy:
  # -- deploy networkpolicy
  # @section -- NetworkPolicy
  enabled: false
  ingress:
    # -- allow to http ports
    # should be your ingress-controller
    # @section -- NetworkPolicy
    http: []

    # -- allow to metrics ports
    # should be your prometheus instance
    # @section -- NetworkPolicy
    metrics:
      - namespaceSelector:
          matchLabels:
            kubernetes.io/metadata.name: monitoring
        podSelector:
          matchLabels:
            app.kubernetes.io/name: prometheus

    # -- allow to grpc ports
    # should be your woodpecker-agent
    # @section -- NetworkPolicy
    grpc:
      - podSelector:
          matchLabels:
            app.kubernetes.io/name: agent
  egress:
    # -- activate egress no networkpolicy
    # @section -- NetworkPolicy
    enabled: true
    # -- rule to access DNS
    # @section -- NetworkPolicy
    dns:
      - namespaceSelector:
          matchLabels:
            kubernetes.io/metadata.name: kube-system
        podSelector:
          matchLabels:
            k8s-app: kube-dns
    # -- rule to access Database
    # @section -- NetworkPolicy
    database: []
    # -- rule to access additional
    # @section -- NetworkPolicy
    extra: []

# -- Specifies the ressources for the server component
resources:
  {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

# -- Configure probe options for container health checking
probes:
  # -- Configure liveness probe options
  liveness:
    # -- Number of seconds after which the probe times out (default: 10)
    timeoutSeconds: 10
    # -- How often (in seconds) to perform the probe (default: 10)
    periodSeconds: 10
    # -- Minimum consecutive successes for the probe to be considered successful after having failed (default: 1)
    successThreshold: 1
    # -- When a probe fails, Kubernetes will try failureThreshold times before giving up (default: 3)
    failureThreshold: 3
  # -- Configure readiness probe options
  readiness:
    # -- Number of seconds after which the probe times out (default: 10)
    timeoutSeconds: 10
    # -- How often (in seconds) to perform the probe (default: 10)
    periodSeconds: 10
    # -- Minimum consecutive successes for the probe to be considered successful after having failed (default: 1)
    successThreshold: 1
    # -- When a probe fails, Kubernetes will try failureThreshold times before giving up (default: 3)
    failureThreshold: 3

# -- Defines the labels of the node where the server component must be running
nodeSelector: {}

# -- Add tolerations rules
tolerations: []

# -- Add affinity
affinity: {}

# -- Overrides the default DNS configuration
dnsConfig: {}

# -- Enabled internal metrics endpoint.
metrics:
  # -- enable metrics in woodpecker
  enabled: false
  port: 9001
