feat: cloud-init supports all documented KubeSolo CLI flags
Add missing flags (--local-storage-shared-path, --debug, --pprof-server, --portainer-edge-id, --portainer-edge-key, --portainer-edge-async) so all 10 documented KubeSolo parameters can be configured via cloud-init YAML. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -44,6 +44,54 @@ func TestBuildExtraFlags(t *testing.T) {
|
||||
},
|
||||
want: "--disable servicelb --apiserver-extra-sans edge.local",
|
||||
},
|
||||
{
|
||||
name: "debug flag",
|
||||
cfg: Config{
|
||||
KubeSolo: KubeSoloConfig{Debug: true},
|
||||
},
|
||||
want: "--debug",
|
||||
},
|
||||
{
|
||||
name: "pprof-server flag",
|
||||
cfg: Config{
|
||||
KubeSolo: KubeSoloConfig{PprofServer: true},
|
||||
},
|
||||
want: "--pprof-server",
|
||||
},
|
||||
{
|
||||
name: "local-storage-shared-path",
|
||||
cfg: Config{
|
||||
KubeSolo: KubeSoloConfig{LocalStorageSharedPath: "/mnt/shared"},
|
||||
},
|
||||
want: "--local-storage-shared-path /mnt/shared",
|
||||
},
|
||||
{
|
||||
name: "portainer edge flags",
|
||||
cfg: Config{
|
||||
KubeSolo: KubeSoloConfig{
|
||||
PortainerEdgeID: "test-id-123",
|
||||
PortainerEdgeKey: "test-key-456",
|
||||
PortainerEdgeAsync: true,
|
||||
},
|
||||
},
|
||||
want: "--portainer-edge-id test-id-123 --portainer-edge-key test-key-456 --portainer-edge-async",
|
||||
},
|
||||
{
|
||||
name: "all new flags",
|
||||
cfg: Config{
|
||||
KubeSolo: KubeSoloConfig{
|
||||
ExtraFlags: "--disable traefik",
|
||||
ExtraSANs: []string{"node.local"},
|
||||
LocalStorageSharedPath: "/mnt/data/shared",
|
||||
Debug: true,
|
||||
PprofServer: true,
|
||||
PortainerEdgeID: "eid",
|
||||
PortainerEdgeKey: "ekey",
|
||||
PortainerEdgeAsync: true,
|
||||
},
|
||||
},
|
||||
want: "--disable traefik --apiserver-extra-sans node.local --local-storage-shared-path /mnt/data/shared --debug --pprof-server --portainer-edge-id eid --portainer-edge-key ekey --portainer-edge-async",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
@@ -61,9 +109,14 @@ func TestApplyKubeSolo(t *testing.T) {
|
||||
tr := true
|
||||
cfg := &Config{
|
||||
KubeSolo: KubeSoloConfig{
|
||||
ExtraFlags: "--disable traefik",
|
||||
LocalStorage: &tr,
|
||||
ExtraSANs: []string{"test.local"},
|
||||
ExtraFlags: "--disable traefik",
|
||||
LocalStorage: &tr,
|
||||
ExtraSANs: []string{"test.local"},
|
||||
LocalStorageSharedPath: "/mnt/shared",
|
||||
Debug: true,
|
||||
PortainerEdgeID: "eid",
|
||||
PortainerEdgeKey: "ekey",
|
||||
PortainerEdgeAsync: true,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -83,6 +136,21 @@ func TestApplyKubeSolo(t *testing.T) {
|
||||
if !strings.Contains(flags, "--apiserver-extra-sans test.local") {
|
||||
t.Errorf("extra-flags missing SANs: %q", flags)
|
||||
}
|
||||
if !strings.Contains(flags, "--local-storage-shared-path /mnt/shared") {
|
||||
t.Errorf("extra-flags missing local-storage-shared-path: %q", flags)
|
||||
}
|
||||
if !strings.Contains(flags, "--debug") {
|
||||
t.Errorf("extra-flags missing --debug: %q", flags)
|
||||
}
|
||||
if !strings.Contains(flags, "--portainer-edge-id eid") {
|
||||
t.Errorf("extra-flags missing --portainer-edge-id: %q", flags)
|
||||
}
|
||||
if !strings.Contains(flags, "--portainer-edge-key ekey") {
|
||||
t.Errorf("extra-flags missing --portainer-edge-key: %q", flags)
|
||||
}
|
||||
if !strings.Contains(flags, "--portainer-edge-async") {
|
||||
t.Errorf("extra-flags missing --portainer-edge-async: %q", flags)
|
||||
}
|
||||
|
||||
// Check config.yaml
|
||||
configData, err := os.ReadFile(filepath.Join(dir, "config.yaml"))
|
||||
|
||||
Reference in New Issue
Block a user