Expected Behavior
- Default kubernetesController should be empty string ("")
- kubernetesController should validate empty kubernetesController as valid (just like the kompose cli)
Actual Behavior
The validation of kubernetesController (source code):
kubernetesController := kubernetesProvider.Controller
if *kubernetesController != string(DEPLOYMENT) && *kubernetesController != string(DAEMONSET) && *kubernetesController != string(REPLICATION_CONTROLLER) {
return fmt.Errorf(
"unexpected Value for Kubernetes Controller field. Possible values are: %v, %v, and %v", string(DEPLOYMENT), string(DAEMONSET), string(REPLICATION_CONTROLLER),
)
}
The validation of pod/cronjob (source code):
func (opt *ConvertOptions) IsPodController() bool {
// opt.IsDeploymentFlag = true, opt.Controller = "deployment"
return opt.IsDeploymentFlag || opt.IsDaemonSetFlag || opt.IsReplicationControllerFlag || opt.Controller != ""
}
Steps To Reproduce
package main
import (
"fmt"
"github.com/kubernetes/kompose/client"
"log"
"os"
)
func main() {
cli, err := client.NewClient(client.WithSuppressWarnings())
if err != nil {
log.Fatal("Could not create client")
}
annotations := false
controller := ""
res, err := cli.Convert(client.ConvertOptions{
InputFiles: []string{"./docker-compose.yaml"},
OutFile: os.DevNull,
//ToStdout: false,
ToStdout: true,
WithKomposeAnnotations: &annotations,
Provider: client.Kubernetes{
Chart: false,
Controller: &controller,
},
})
if err != nil {
log.Fatal("Could not convert")
}
fmt.Println(res[0])
}
Kompose Version
Docker-Compose file
version: '3'
services:
challenge:
image: busybox:stable-glibc
labels:
kompose.cronjob.schedule: "* * * * *"
kompose.cronjob.concurrency_policy: "Forbid"
kompose.cronjob.backoff_limit: "0"
command:
- "bash"
- "-c"
- "echo hello from cron"
restart: "no"
Anything else?
No response
Expected Behavior
Actual Behavior
The validation of kubernetesController (source code):
The validation of pod/cronjob (source code):
Steps To Reproduce
Kompose Version
Docker-Compose file
Anything else?
No response