Skip to content

feat(config): add --full flag and strip redundant upstream defaults (…#143

Merged
stevensbkang merged 1 commit intodevelopfrom
feat/ks-49/full-flag
Apr 28, 2026
Merged

feat(config): add --full flag and strip redundant upstream defaults (…#143
stevensbkang merged 1 commit intodevelopfrom
feat/ks-49/full-flag

Conversation

@stevensbkang
Copy link
Copy Markdown
Member

…KS-49)

Introduce a --full mode flag (KUBESOLO_FULL env var) that disables edge-optimised overrides and uses upstream Kubernetes defaults for all component configurations. This enables running KubeSolo in CI/testing environments with standard Kubernetes behaviour.

Flag plumbing:

  • Add Full flag to internal/config/flags with KUBESOLO_FULL env var
  • Add FullMode to types.Embedded, wire through all 5 services
  • Log active profile ("edge" or "full") at startup

Edge/full mode guards across all components:

  • apiserver: etcd metrics, request throttling, timeouts, profiling, admission plugins, audit logging
  • controller: profiling, GC threshold, sync concurrency, sync periods, API QPS/burst
  • kubelet: profiling/debug handlers, frequencies, image GC, eviction thresholds, resource reservations, max pods
  • kubeproxy: profiling, conntrack limits, sync period
  • containerd: concurrent downloads, stats collection, GC scheduler

Remove flags and config values that duplicate upstream defaults:

  • apiserver: secure-port, bind-address, enable-bootstrap-token-auth, etcd-compaction-interval, watch-cache, event-ttl, enable-garbage-collector
  • controller: bind-address, secure-port, v, concurrent-daemonset-syncs, min-resync-period
  • kubelet: enableServer, imageServiceEndpoint, registerNode, port, serializeImagePulls, registerWithTaints, imagePullProgressDeadline, RotateKubeletServerCertificate, imageGCLowThresholdPercent, registryPullQPS, registryBurst
  • kubeproxy: iptables-masquerade-bit
  • containerd: ~50 default-matching keys across CRI runtime, CRI images, grpc.v1.cri, overlayfs snapshotter, cgroup, and timeouts sections

…KS-49)

Introduce a --full mode flag (KUBESOLO_FULL env var) that disables
edge-optimised overrides and uses upstream Kubernetes defaults for all
component configurations. This enables running KubeSolo in CI/testing
environments with standard Kubernetes behaviour.

Flag plumbing:
- Add Full flag to internal/config/flags with KUBESOLO_FULL env var
- Add FullMode to types.Embedded, wire through all 5 services
- Log active profile ("edge" or "full") at startup

Edge/full mode guards across all components:
- apiserver: etcd metrics, request throttling, timeouts, profiling,
  admission plugins, audit logging
- controller: profiling, GC threshold, sync concurrency, sync periods,
  API QPS/burst
- kubelet: profiling/debug handlers, frequencies, image GC, eviction
  thresholds, resource reservations, max pods
- kubeproxy: profiling, conntrack limits, sync period
- containerd: concurrent downloads, stats collection, GC scheduler

Remove flags and config values that duplicate upstream defaults:
- apiserver: secure-port, bind-address, enable-bootstrap-token-auth,
  etcd-compaction-interval, watch-cache, event-ttl,
  enable-garbage-collector
- controller: bind-address, secure-port, v, concurrent-daemonset-syncs,
  min-resync-period
- kubelet: enableServer, imageServiceEndpoint, registerNode, port,
  serializeImagePulls, registerWithTaints, imagePullProgressDeadline,
  RotateKubeletServerCertificate, imageGCLowThresholdPercent,
  registryPullQPS, registryBurst
- kubeproxy: iptables-masquerade-bit
- containerd: ~50 default-matching keys across CRI runtime, CRI images,
  grpc.v1.cri, overlayfs snapshotter, cgroup, and timeouts sections
@linear
Copy link
Copy Markdown

linear Bot commented Apr 28, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a “full” runtime profile to KubeSolo so CI/dev environments can run closer to upstream Kubernetes defaults, while keeping edge-optimized overrides as the default behavior.

Changes:

  • Introduce --full / KUBESOLO_FULL flag and plumb FullMode through embedded config and services.
  • Gate edge-optimized overrides behind !FullMode across apiserver/controller/kubelet/kube-proxy/containerd configs.
  • Remove/stop setting multiple flags/config values that duplicate upstream defaults; refactor containerd config generation into smaller helpers.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
types/types.go Adds FullMode to embedded runtime config for cross-service plumbing.
internal/config/flags/flags.go Adds --full flag + KUBESOLO_FULL env var.
cmd/kubesolo/main.go Wires flag into bootstrap embedded config; logs active profile; passes full mode into kube-proxy.
pkg/kubernetes/apiserver/service.go Stores fullMode on apiserver service.
pkg/kubernetes/apiserver/flags.go Applies edge-only apiserver overrides behind !fullMode; strips redundant defaults.
pkg/kubernetes/controller/service.go Stores fullMode on controller-manager service.
pkg/kubernetes/controller/flags.go Applies edge-only controller-manager overrides behind !fullMode; strips redundant defaults.
pkg/kubernetes/kubelet/service.go Stores fullMode on kubelet service.
pkg/kubernetes/kubelet/config.go Moves edge-specific kubelet settings behind !fullMode; strips redundant defaults.
pkg/kubernetes/kubeproxy/service.go Extends constructor to accept fullMode.
pkg/kubernetes/kubeproxy/flags.go Applies edge-only kube-proxy overrides behind !fullMode; strips redundant defaults.
pkg/runtime/containerd/service.go Stores fullMode on containerd service.
pkg/runtime/containerd/config.go Removes many default-matching keys; adds helper generators and gates edge-only settings behind !fullMode.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/config/flags/flags.go
Comment thread pkg/kubernetes/kubelet/config.go
@stevensbkang stevensbkang merged commit 4f722be into develop Apr 28, 2026
8 checks passed
@stevensbkang stevensbkang deleted the feat/ks-49/full-flag branch April 28, 2026 20:50
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