mirror of
https://github.com/kubernetes-sigs/kind.git
synced 2025-12-01 07:26:05 +07:00
Adds implementation for a provider based on nerdctl. Several todos in the code but the core functionality of creating/deleting clusters is working and a simple application deployed works properly Signed-off-by: Phil Estes <estesp@gmail.com>
29 lines
798 B
Go
29 lines
798 B
Go
package runtime
|
|
|
|
import (
|
|
"os"
|
|
|
|
"sigs.k8s.io/kind/pkg/cluster"
|
|
"sigs.k8s.io/kind/pkg/log"
|
|
)
|
|
|
|
// GetDefault selected the default runtime from the environment override
|
|
func GetDefault(logger log.Logger) cluster.ProviderOption {
|
|
switch p := os.Getenv("KIND_EXPERIMENTAL_PROVIDER"); p {
|
|
case "":
|
|
return nil
|
|
case "podman":
|
|
logger.Warn("using podman due to KIND_EXPERIMENTAL_PROVIDER")
|
|
return cluster.ProviderWithPodman()
|
|
case "docker":
|
|
logger.Warn("using docker due to KIND_EXPERIMENTAL_PROVIDER")
|
|
return cluster.ProviderWithDocker()
|
|
case "nerdctl", "finch", "nerdctl.lima":
|
|
logger.Warnf("using %s due to KIND_EXPERIMENTAL_PROVIDER", p)
|
|
return cluster.ProviderWithNerdctl(p)
|
|
default:
|
|
logger.Warnf("ignoring unknown value %q for KIND_EXPERIMENTAL_PROVIDER", p)
|
|
return nil
|
|
}
|
|
}
|