# Global chart-level labels applied to all resources (Deployment, RBAC, etc.).
labels: {}

# Overrides the default `.Release.Namespace` for all resources in this chart.
namespaceOverride: ""

# Optional imagePullSecrets added to the controller Pod spec.
# When set, the manager container also receives `--auto-scaler-image-pull-secrets=<name>` args.
imagePullSecrets: []

controller:
  # Number of controller replicas.
  replicaCount: 1

  # Deployment-level metadata
  metadata:
    labels: {}
    annotations: {}

  manager:
    config:
      # Log level: "debug", "info", "warn", "error".
      logLevel: "debug"
      # Log format: "text", "json".
      logFormat: "text"

      # Restricts the controller to only watch resources in the desired namespace.
      # Defaults to watch all namespaces when unset.
      watchSingleNamespace: ""

      # The maximum number of concurrent reconciles which can be run by the EphemeralRunner controller.
      runnerMaxConcurrentReconciles: 2

      # How the controller handles upgrades with running jobs: "immediate" or "eventual".
      updateStrategy: "immediate"

      # List of label prefixes that should NOT be propagated to internal resources.
      excludeLabelPropagationPrefixes: []
      # Example:
      # excludeLabelPropagationPrefixes:
      #   - "argocd.argoproj.io/instance"

      # K8s client rate limiter parameters.
      k8sClientRateLimiterQPS: null
      k8sClientRateLimiterBurst: null

    container:
      image: "ghcr.io/actions/gha-runner-scale-set-controller:latest"
      pullPolicy: IfNotPresent
      # Extra arguments appended to the default set generated by the chart.
      extraArgs: []
      # Container-level environment variables.
      env: []
      # Container-level security context.
      securityContext: {}
      # Container-level resource requests/limits.
      resources: {}
      # Extra container ports (metrics port is derived from controller.metrics).
      extraPorts: []

  serviceAccount:
    # Specifies whether a service account should be created.
    create: true
    # 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: ""

  # Pod-level configuration.
  pod:
    metadata:
      labels: {}
      annotations: {}

    # PodSpec fields applied to spec.template.spec.
    # Note: containers provided here are appended after the built-in manager container.
    spec:
      # Pod-level security context.
      securityContext: {}
      # Pod priority class name.
      priorityClassName: ""
      # Node selection constraints.
      nodeSelector: {}
      # Pod tolerations.
      tolerations: []
      # Pod affinity.
      affinity: {}
      # Pod topology spread constraints.
      topologySpreadConstraints: []
      # Pod termination grace period (overrides default 10s).
      terminationGracePeriodSeconds: null
      # Additional volumes appended to the default ones.
      volumes: []
      # Additional containers appended after the manager container.
      containers: []

    # Additional volume mounts appended to the manager container's default ones.
    volumeMounts: []

  # Metrics configuration. If omitted, metrics are disabled.
  # metrics:
  #   controllerManagerAddr: ":8080"
  #   listenerAddr: ":8080"
  #   listenerEndpoint: "/metrics"

