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.extraContainers | list | `[]` | Extra containers to be added to the controller deployment |
| controller.extraEnv | list | `[]` | Extra environment variables to provide to the controller container | | 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.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.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.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`. | | 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.globallevel | string | `"0"` | Set the glog logging level |
| controller.logging.level | string | `"info"` | Set the logging level (one of: `debug`, `info`, `warn`, `error`) | | 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.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.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.metricRelabelings | list | `[]` | ServiceMonitor metric relabel configs to apply to samples before ingestion |
| controller.metricsConfig.metricsTTL | string | `""` | How often custom metrics are cleared from memory | | 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 }} {{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 4 }}
sessionAffinity: None sessionAffinity: None
type: {{ .Values.controller.serviceType }} 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 clusterIP: None
{{- end }} {{- end }}
{{- if and (eq .Values.controller.serviceType "LoadBalancer") .Values.controller.loadBalancerSourceRanges }} {{- 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. # -- 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 # This is intended to mitigate flooding of the Kubernetes API server by workflows with a large amount of
# parallel nodes. # parallel nodes.
resourceRateLimit: resourceRateLimit: {}
{}
# limit: 10 # limit: 10
# burst: 1 # burst: 1
@ -136,6 +135,8 @@ controller:
servicePort: 8080 servicePort: 8080
# -- Service metrics port name # -- Service metrics port name
servicePortName: metrics servicePortName: metrics
# -- Flag to enable headless service
headlessService: false
# -- ServiceMonitor relabel configs to apply to samples before scraping # -- ServiceMonitor relabel configs to apply to samples before scraping
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig ## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
relabelings: [] relabelings: []
@ -214,8 +215,7 @@ controller:
cronWorkflowWorkers: # 8 cronWorkflowWorkers: # 8
# -- Restricts the Workflows that the controller will process. # -- Restricts the Workflows that the controller will process.
# Only valid for 2.9+ # Only valid for 2.9+
workflowRestrictions: workflowRestrictions: {}
{}
# templateReferencing: Strict|Secure # templateReferencing: Strict|Secure
# telemetryConfig controls the path and port for prometheus telemetry. Telemetry is enabled and emitted in the same endpoint # 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 servicePort: 8081
# -- telemetry service port name # -- telemetry service port name
servicePortName: telemetry servicePortName: telemetry
serviceMonitor: serviceMonitor:
# -- Enable a prometheus ServiceMonitor # -- Enable a prometheus ServiceMonitor
enabled: false enabled: false
@ -288,8 +287,6 @@ controller:
# -- Service type of the controller Service # -- Service type of the controller Service
serviceType: ClusterIP serviceType: ClusterIP
# -- Whether to use a headless service or not.
headlessService: false
# -- Annotations to be applied to the controller Service # -- Annotations to be applied to the controller Service
serviceAnnotations: {} serviceAnnotations: {}
# -- Optional labels to add to the controller Service # -- Optional labels to add to the controller Service
@ -312,8 +309,7 @@ controller:
timeoutSeconds: 30 timeoutSeconds: 30
# -- Extra environment variables to provide to the controller container # -- Extra environment variables to provide to the controller container
extraEnv: extraEnv: []
[]
# - name: FOO # - name: FOO
# value: "bar" # value: "bar"
@ -386,8 +382,7 @@ controller:
# -- Configure when workflow controller runs in a different k8s cluster with the workflow workloads, # -- 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. # or needs to communicate with the k8s apiserver using an out-of-cluster kubeconfig secret.
# @default -- `{}` (See [values.yaml]) # @default -- `{}` (See [values.yaml])
kubeConfig: kubeConfig: {}
{}
# # name of the kubeconfig secret, may not be empty when kubeConfig specified # # name of the kubeconfig secret, may not be empty when kubeConfig specified
# secretName: kubeconfig-secret # secretName: kubeconfig-secret
# # key of the kubeconfig secret, may not be empty when kubeConfig specified # # key of the kubeconfig secret, may not be empty when kubeConfig specified
@ -527,8 +522,7 @@ server:
targetMemoryUtilizationPercentage: 50 targetMemoryUtilizationPercentage: 50
# -- Configures the scaling behavior of the target in both Up and Down directions. # -- Configures the scaling behavior of the target in both Up and Down directions.
# This is only available on HPA apiVersion `autoscaling/v2beta2` and newer # This is only available on HPA apiVersion `autoscaling/v2beta2` and newer
behavior: behavior: {}
{}
# scaleDown: # scaleDown:
# stabilizationWindowSeconds: 300 # stabilizationWindowSeconds: 300
# policies: # policies:
@ -574,8 +568,7 @@ server:
secure: false secure: false
# -- Extra environment variables to provide to the argo-server container # -- Extra environment variables to provide to the argo-server container
extraEnv: extraEnv: []
[]
# - name: FOO # - name: FOO
# value: "bar" # value: "bar"
@ -621,8 +614,7 @@ server:
# -- List of ingress hosts # -- List of ingress hosts
## Hostnames must be provided if Ingress is enabled. ## Hostnames must be provided if Ingress is enabled.
## Secrets must be manually created in the namespace ## Secrets must be manually created in the namespace
hosts: hosts: []
[]
# - argoworkflows.example.com # - argoworkflows.example.com
# -- List of ingress paths # -- List of ingress paths
@ -632,8 +624,7 @@ server:
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
pathType: Prefix pathType: Prefix
# -- Additional ingress paths # -- Additional ingress paths
extraPaths: extraPaths: []
[]
# - path: /* # - path: /*
# backend: # backend:
# serviceName: ssl-redirect # serviceName: ssl-redirect
@ -648,8 +639,7 @@ server:
# name: use-annotation # name: use-annotation
# -- Ingress TLS configuration # -- Ingress TLS configuration
tls: tls: []
[]
# - secretName: argoworkflows-example-tls # - secretName: argoworkflows-example-tls
# hosts: # hosts:
# - argoworkflows.example.com # - argoworkflows.example.com
@ -674,7 +664,7 @@ server:
enabled: false enabled: false
# -- Domains for the Google Managed Certificate # -- Domains for the Google Managed Certificate
domains: domains:
- argoworkflows.example.com - argoworkflows.example.com
## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller ## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller
## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters ## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
@ -715,16 +705,15 @@ server:
rbac: rbac:
# -- Adds ServiceAccount Policy to server (Cluster)Role. # -- Adds ServiceAccount Policy to server (Cluster)Role.
enabled: true enabled: true
# -- Whitelist to allow server to fetch Secrets # -- Whitelist to allow server to fetch Secrets
## When present, restricts secrets the server can read to a given list. ## When present, restricts secrets the server can read to a given list.
## You can use it to restrict the server to only be able to access the ## You can use it to restrict the server to only be able to access the
## service account token secrets that are associated with service accounts ## service account token secrets that are associated with service accounts
## used for authorization. ## used for authorization.
secretWhitelist: [] secretWhitelist: []
# -- Scopes requested from the SSO ID provider # -- Scopes requested from the SSO ID provider
## The 'groups' scope requests group membership information, which is usually used for authorization decisions. ## The 'groups' scope requests group membership information, which is usually used for authorization decisions.
scopes: scopes: []
[]
# - groups # - groups
# -- Define how long your login is valid for (in hours) # -- Define how long your login is valid for (in hours)
## If omitted, defaults to 10h. ## If omitted, defaults to 10h.
@ -740,8 +729,7 @@ server:
insecureSkipVerify: false insecureSkipVerify: false
# -- Filter the groups returned by the OIDC provider # -- Filter the groups returned by the OIDC provider
## A logical "OR" is used between each regex in the list ## A logical "OR" is used between each regex in the list
filterGroupsRegex: filterGroupsRegex: []
[]
# - ".*argo-wf.*" # - ".*argo-wf.*"
# - ".*argo-workflow.*" # - ".*argo-workflow.*"
@ -752,8 +740,7 @@ server:
extraInitContainers: [] extraInitContainers: []
# -- Array of extra K8s manifests to deploy # -- Array of extra K8s manifests to deploy
extraObjects: extraObjects: []
[]
# - apiVersion: secrets-store.csi.x-k8s.io/v1 # - apiVersion: secrets-store.csi.x-k8s.io/v1
# kind: SecretProviderClass # kind: SecretProviderClass
# metadata: # metadata:
@ -785,8 +772,7 @@ artifactRepository:
archiveLogs: false archiveLogs: false
# -- Store artifact in a S3-compliant object store # -- Store artifact in a S3-compliant object store
# @default -- See [values.yaml] # @default -- See [values.yaml]
s3: s3: {}
{}
# # Note the `key` attribute is not the actual secret, it's the PATH to # # 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. # # the contents in the associated secret, as defined by the `name` attribute.
# accessKeySecret: # accessKeySecret:
@ -809,8 +795,7 @@ artifactRepository:
# enableEncryption: true # enableEncryption: true
# -- Store artifact in a GCS object store # -- Store artifact in a GCS object store
# @default -- `{}` (See [values.yaml]) # @default -- `{}` (See [values.yaml])
gcs: gcs: {}
{}
# bucket: <project>-argo # bucket: <project>-argo
# keyFormat: "{{ \"{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}\" }}" # keyFormat: "{{ \"{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}\" }}"
# # serviceAccountKeySecret is a secret selector. # # serviceAccountKeySecret is a secret selector.
@ -826,8 +811,7 @@ artifactRepository:
# key: serviceAccountKey # key: serviceAccountKey
# -- Store artifact in Azure Blob Storage # -- Store artifact in Azure Blob Storage
# @default -- `{}` (See [values.yaml]) # @default -- `{}` (See [values.yaml])
azure: azure: {}
{}
# endpoint: https://mystorageaccountname.blob.core.windows.net # endpoint: https://mystorageaccountname.blob.core.windows.net
# container: my-container-name # container: my-container-name
# blobNameFormat: path/in/container # 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/). # -- The section of [artifact repository ref](https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/).
# Each map key is the name of configmap # Each map key is the name of configmap
# @default -- `{}` (See [values.yaml]) # @default -- `{}` (See [values.yaml])
artifactRepositoryRef: artifactRepositoryRef: {}
{}
# # -- 1st ConfigMap # # -- 1st ConfigMap
# # If you want to use this config map by default, name it "artifact-repositories". # # If you want to use this config map by default, name it "artifact-repositories".
# # Otherwise, you can provide a reference to a # # Otherwise, you can provide a reference to a