Skip to content

Make replicaCount optional#2097

Open
boqu wants to merge 8 commits intoopen-telemetry:mainfrom
boqu:optional-replica-count
Open

Make replicaCount optional#2097
boqu wants to merge 8 commits intoopen-telemetry:mainfrom
boqu:optional-replica-count

Conversation

@boqu
Copy link
Copy Markdown
Contributor

@boqu boqu commented Feb 25, 2026

Summary:

  • Makes spec.replicas conditional on .Values.replicaCount not being nil, so setting replicaCount: null omits it from the Deployment. .spec.replicas in Kubernetes Deployment is an optional field that specifies the number of desired Pods. It defaults to 1. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#replicas
  • Allows external autoscalers like KEDA to manage replicas without conflicting with the chart on every Helm upgrade or ArgoCD sync

@github-actions
Copy link
Copy Markdown
Contributor

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@github-actions github-actions bot added the Stale label Mar 12, 2026
@boqu
Copy link
Copy Markdown
Contributor Author

boqu commented Mar 12, 2026

Can I know what I can do to move this PR forward?

@github-actions github-actions bot removed the Stale label Mar 13, 2026
Copy link
Copy Markdown
Member

@TylerHelmuth TylerHelmuth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the schema need updated to allow setting replicaCount to null? Also, please remove the changes to the kube start chart. When generating the example do make generate-examples CHARTS=opentelemetry-collector.

boqu added 4 commits March 21, 2026 09:28
# Conflicts:
#	charts/opentelemetry-collector/Chart.yaml
#	charts/opentelemetry-collector/examples/alternate-config/rendered/clusterrole.yaml
#	charts/opentelemetry-collector/examples/alternate-config/rendered/clusterrolebinding.yaml
#	charts/opentelemetry-collector/examples/alternate-config/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/alternate-config/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/alternate-config/rendered/service.yaml
#	charts/opentelemetry-collector/examples/alternate-config/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/custom-metrics-hpa/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/custom-metrics-hpa/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/custom-metrics-hpa/rendered/hpa.yaml
#	charts/opentelemetry-collector/examples/custom-metrics-hpa/rendered/service.yaml
#	charts/opentelemetry-collector/examples/custom-metrics-hpa/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/service.yaml
#	charts/opentelemetry-collector/examples/daemonset-and-deployment/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-annotation-discovery/rendered/clusterrole.yaml
#	charts/opentelemetry-collector/examples/daemonset-annotation-discovery/rendered/clusterrolebinding.yaml
#	charts/opentelemetry-collector/examples/daemonset-annotation-discovery/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-annotation-discovery/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-annotation-discovery/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-cluster-metrics/rendered/clusterrole.yaml
#	charts/opentelemetry-collector/examples/daemonset-cluster-metrics/rendered/clusterrolebinding.yaml
#	charts/opentelemetry-collector/examples/daemonset-cluster-metrics/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-cluster-metrics/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-cluster-metrics/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-collector-logs/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-hostmetrics/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-lifecycle-hooks/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/daemonset-only/rendered/configmap-agent.yaml
#	charts/opentelemetry-collector/examples/daemonset-only/rendered/daemonset.yaml
#	charts/opentelemetry-collector/examples/daemonset-only/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/deployment-cluster-metrics/rendered/clusterrole.yaml
#	charts/opentelemetry-collector/examples/deployment-cluster-metrics/rendered/clusterrolebinding.yaml
#	charts/opentelemetry-collector/examples/deployment-cluster-metrics/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/deployment-cluster-metrics/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/deployment-cluster-metrics/rendered/service.yaml
#	charts/opentelemetry-collector/examples/deployment-cluster-metrics/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/deployment-only/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/deployment-only/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/deployment-only/rendered/service.yaml
#	charts/opentelemetry-collector/examples/deployment-only/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/service.yaml
#	charts/opentelemetry-collector/examples/deployment-otlp-traces/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/service.yaml
#	charts/opentelemetry-collector/examples/deployment-use-existing-configMap/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/internalTelemetryViaOTLP/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/internalTelemetryViaOTLP/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/internalTelemetryViaOTLP/rendered/service.yaml
#	charts/opentelemetry-collector/examples/internalTelemetryViaOTLP/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/kubernetesAttributes/rendered/clusterrole.yaml
#	charts/opentelemetry-collector/examples/kubernetesAttributes/rendered/clusterrolebinding.yaml
#	charts/opentelemetry-collector/examples/kubernetesAttributes/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/kubernetesAttributes/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/kubernetesAttributes/rendered/service.yaml
#	charts/opentelemetry-collector/examples/kubernetesAttributes/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/old-metrics-env-values/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/old-metrics-env-values/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/old-metrics-env-values/rendered/service.yaml
#	charts/opentelemetry-collector/examples/old-metrics-env-values/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/old-metrics-url-values/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/old-metrics-url-values/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/old-metrics-url-values/rendered/service.yaml
#	charts/opentelemetry-collector/examples/old-metrics-url-values/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/statefulset-only/rendered/configmap-statefulset.yaml
#	charts/opentelemetry-collector/examples/statefulset-only/rendered/service.yaml
#	charts/opentelemetry-collector/examples/statefulset-only/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/statefulset-only/rendered/statefulset.yaml
#	charts/opentelemetry-collector/examples/statefulset-with-pvc/rendered/configmap-statefulset.yaml
#	charts/opentelemetry-collector/examples/statefulset-with-pvc/rendered/service.yaml
#	charts/opentelemetry-collector/examples/statefulset-with-pvc/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/statefulset-with-pvc/rendered/statefulset.yaml
#	charts/opentelemetry-collector/examples/using-GOMEMLIMIT/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/using-GOMEMLIMIT/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/using-GOMEMLIMIT/rendered/service.yaml
#	charts/opentelemetry-collector/examples/using-GOMEMLIMIT/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/using-custom-config/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/using-custom-config/rendered/service.yaml
#	charts/opentelemetry-collector/examples/using-custom-config/rendered/serviceaccount.yaml
#	charts/opentelemetry-collector/examples/using-shared-processes/rendered/configmap.yaml
#	charts/opentelemetry-collector/examples/using-shared-processes/rendered/deployment.yaml
#	charts/opentelemetry-collector/examples/using-shared-processes/rendered/service.yaml
#	charts/opentelemetry-collector/examples/using-shared-processes/rendered/serviceaccount.yaml
#	charts/opentelemetry-kube-stack/Chart.yaml
#	charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml
#	charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml
#	charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml
#	charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml
#	charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml
#	charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml
@boqu
Copy link
Copy Markdown
Contributor Author

boqu commented Mar 30, 2026

Any chance we can move this PR forward?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants