Add flag for headless service under metrics config

Signed-off-by: karl <karl@shaped.ai>
This commit is contained in:
karl 2024-04-01 13:06:19 -04:00
parent 76222f9a65
commit 0010f7dd8c
3 changed files with 26 additions and 43 deletions

View file

@ -155,7 +155,6 @@ Fields to note:
| controller.extraContainers | list | `[]` | Extra containers to be added to the controller deployment |
| controller.extraEnv | list | `[]` | Extra environment variables to provide to the controller container |
| controller.extraInitContainers | list | `[]` | Enables init containers to be added to the controller deployment |
| controller.headlessService | bool | `false` | Whether to use a headless service or not. |
| controller.image.registry | string | `"quay.io"` | Registry to use for the controller |
| controller.image.repository | string | `"argoproj/workflow-controller"` | Registry to use for the controller |
| controller.image.tag | string | `""` | Image tag for the workflow controller. Defaults to `.Values.images.tag`. |
@ -171,6 +170,7 @@ Fields to note:
| controller.logging.globallevel | string | `"0"` | Set the glog logging level |
| controller.logging.level | string | `"info"` | Set the logging level (one of: `debug`, `info`, `warn`, `error`) |
| controller.metricsConfig.enabled | bool | `false` | Enables prometheus metrics server |
| controller.metricsConfig.headlessService | bool | `false` | Flag to enable headless service |
| controller.metricsConfig.ignoreErrors | bool | `false` | Flag that instructs prometheus to ignore metric emission errors. |
| controller.metricsConfig.metricRelabelings | list | `[]` | ServiceMonitor metric relabel configs to apply to samples before ingestion |
| controller.metricsConfig.metricsTTL | string | `""` | How often custom metrics are cleared from memory |

View file

@ -32,7 +32,7 @@ spec:
{{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 4 }}
sessionAffinity: None
type: {{ .Values.controller.serviceType }}
{{- if and (eq .Values.controller.serviceType "ClusterIP") .Values.controller.headlessService }}
{{- if and (eq .Values.controller.serviceType "ClusterIP") .Values.controller.metricsConfig.headlessService }}
clusterIP: None
{{- end }}
{{- if and (eq .Values.controller.serviceType "LoadBalancer") .Values.controller.loadBalancerSourceRanges }}

View file

@ -83,8 +83,7 @@ controller:
# -- Globally limits the rate at which pods are created.
# This is intended to mitigate flooding of the Kubernetes API server by workflows with a large amount of
# parallel nodes.
resourceRateLimit:
{}
resourceRateLimit: {}
# limit: 10
# burst: 1
@ -136,6 +135,8 @@ controller:
servicePort: 8080
# -- Service metrics port name
servicePortName: metrics
# -- Flag to enable headless service
headlessService: false
# -- ServiceMonitor relabel configs to apply to samples before scraping
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
relabelings: []
@ -214,8 +215,7 @@ controller:
cronWorkflowWorkers: # 8
# -- Restricts the Workflows that the controller will process.
# Only valid for 2.9+
workflowRestrictions:
{}
workflowRestrictions: {}
# templateReferencing: Strict|Secure
# telemetryConfig controls the path and port for prometheus telemetry. Telemetry is enabled and emitted in the same endpoint
@ -237,7 +237,6 @@ controller:
servicePort: 8081
# -- telemetry service port name
servicePortName: telemetry
serviceMonitor:
# -- Enable a prometheus ServiceMonitor
enabled: false
@ -288,8 +287,6 @@ controller:
# -- Service type of the controller Service
serviceType: ClusterIP
# -- Whether to use a headless service or not.
headlessService: false
# -- Annotations to be applied to the controller Service
serviceAnnotations: {}
# -- Optional labels to add to the controller Service
@ -312,8 +309,7 @@ controller:
timeoutSeconds: 30
# -- Extra environment variables to provide to the controller container
extraEnv:
[]
extraEnv: []
# - name: FOO
# value: "bar"
@ -386,8 +382,7 @@ controller:
# -- Configure when workflow controller runs in a different k8s cluster with the workflow workloads,
# or needs to communicate with the k8s apiserver using an out-of-cluster kubeconfig secret.
# @default -- `{}` (See [values.yaml])
kubeConfig:
{}
kubeConfig: {}
# # name of the kubeconfig secret, may not be empty when kubeConfig specified
# secretName: kubeconfig-secret
# # key of the kubeconfig secret, may not be empty when kubeConfig specified
@ -527,8 +522,7 @@ server:
targetMemoryUtilizationPercentage: 50
# -- Configures the scaling behavior of the target in both Up and Down directions.
# This is only available on HPA apiVersion `autoscaling/v2beta2` and newer
behavior:
{}
behavior: {}
# scaleDown:
# stabilizationWindowSeconds: 300
# policies:
@ -574,8 +568,7 @@ server:
secure: false
# -- Extra environment variables to provide to the argo-server container
extraEnv:
[]
extraEnv: []
# - name: FOO
# value: "bar"
@ -621,8 +614,7 @@ server:
# -- List of ingress hosts
## Hostnames must be provided if Ingress is enabled.
## Secrets must be manually created in the namespace
hosts:
[]
hosts: []
# - argoworkflows.example.com
# -- List of ingress paths
@ -632,8 +624,7 @@ server:
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
pathType: Prefix
# -- Additional ingress paths
extraPaths:
[]
extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
@ -648,8 +639,7 @@ server:
# name: use-annotation
# -- Ingress TLS configuration
tls:
[]
tls: []
# - secretName: argoworkflows-example-tls
# hosts:
# - argoworkflows.example.com
@ -723,8 +713,7 @@ server:
secretWhitelist: []
# -- Scopes requested from the SSO ID provider
## The 'groups' scope requests group membership information, which is usually used for authorization decisions.
scopes:
[]
scopes: []
# - groups
# -- Define how long your login is valid for (in hours)
## If omitted, defaults to 10h.
@ -740,8 +729,7 @@ server:
insecureSkipVerify: false
# -- Filter the groups returned by the OIDC provider
## A logical "OR" is used between each regex in the list
filterGroupsRegex:
[]
filterGroupsRegex: []
# - ".*argo-wf.*"
# - ".*argo-workflow.*"
@ -752,8 +740,7 @@ server:
extraInitContainers: []
# -- Array of extra K8s manifests to deploy
extraObjects:
[]
extraObjects: []
# - apiVersion: secrets-store.csi.x-k8s.io/v1
# kind: SecretProviderClass
# metadata:
@ -785,8 +772,7 @@ artifactRepository:
archiveLogs: false
# -- Store artifact in a S3-compliant object store
# @default -- See [values.yaml]
s3:
{}
s3: {}
# # Note the `key` attribute is not the actual secret, it's the PATH to
# # the contents in the associated secret, as defined by the `name` attribute.
# accessKeySecret:
@ -809,8 +795,7 @@ artifactRepository:
# enableEncryption: true
# -- Store artifact in a GCS object store
# @default -- `{}` (See [values.yaml])
gcs:
{}
gcs: {}
# bucket: <project>-argo
# keyFormat: "{{ \"{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}\" }}"
# # serviceAccountKeySecret is a secret selector.
@ -826,8 +811,7 @@ artifactRepository:
# key: serviceAccountKey
# -- Store artifact in Azure Blob Storage
# @default -- `{}` (See [values.yaml])
azure:
{}
azure: {}
# endpoint: https://mystorageaccountname.blob.core.windows.net
# container: my-container-name
# blobNameFormat: path/in/container
@ -859,8 +843,7 @@ customArtifactRepository: {}
# -- The section of [artifact repository ref](https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/).
# Each map key is the name of configmap
# @default -- `{}` (See [values.yaml])
artifactRepositoryRef:
{}
artifactRepositoryRef: {}
# # -- 1st ConfigMap
# # If you want to use this config map by default, name it "artifact-repositories".
# # Otherwise, you can provide a reference to a