Skip to content

Commit

Permalink
support podman & nerdctl
Browse files Browse the repository at this point in the history
  • Loading branch information
adrianliechti committed Jul 7, 2024
1 parent 89afa58 commit 5c60725
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 38 deletions.
2 changes: 1 addition & 1 deletion app/app_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func Provider(c *cli.Context) (provider.Provider, error) {

switch strings.ToLower(provider) {
case "", "local":
return kind.New(), nil
return kind.New()

case "none":
return none.NewFromEnvironment()
Expand Down
59 changes: 22 additions & 37 deletions provider/kind/kind.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,35 @@ import (
"time"

"github.com/adrianliechti/devkube/provider"

"sigs.k8s.io/kind/pkg/cluster"
"sigs.k8s.io/kind/pkg/log"
)

type Provider struct {
}

func New() provider.Provider {
return new(Provider)
type kind struct {
provider *cluster.Provider
}

func (p *Provider) List(ctx context.Context) ([]string, error) {
func New() (provider.Provider, error) {
logger := log.NoopLogger{}

provider := cluster.NewProvider(
opts := []cluster.ProviderOption{
cluster.ProviderWithLogger(logger),
//runtime.GetDefault(logger),
)
}

if o, err := cluster.DetectNodeProvider(); err == nil {
opts = append(opts, o)
}

return &kind{
provider: cluster.NewProvider(opts...),
}, nil
}

return provider.List()
func (k *kind) List(ctx context.Context) ([]string, error) {
return k.provider.List()
}

func (p *Provider) Create(ctx context.Context, name string) error {
func (k *kind) Create(ctx context.Context, name string) error {
dir, err := os.MkdirTemp("", "kubeconfig-")

if err != nil {
Expand All @@ -40,40 +45,20 @@ func (p *Provider) Create(ctx context.Context, name string) error {

defer os.RemoveAll(dir)

logger := log.NoopLogger{}

provider := cluster.NewProvider(
cluster.ProviderWithLogger(logger),
)

opts := []cluster.CreateOption{
cluster.CreateWithWaitForReady(time.Duration(0)),
cluster.CreateWithKubeconfigPath(kubeconfig),
}

return provider.Create(name, opts...)
return k.provider.Create(name, opts...)
}

func (p *Provider) Delete(ctx context.Context, name string) error {
logger := log.NoopLogger{}

provider := cluster.NewProvider(
cluster.ProviderWithLogger(logger),
//runtime.GetDefault(logger),
)

return provider.Delete(name, "")
func (k *kind) Delete(ctx context.Context, name string) error {
return k.provider.Delete(name, "")
}

func (p *Provider) Config(ctx context.Context, name string) ([]byte, error) {
logger := log.NoopLogger{}

provider := cluster.NewProvider(
cluster.ProviderWithLogger(logger),
//runtime.GetDefault(logger),
)

data, err := provider.KubeConfig(name, false)
func (k *kind) Config(ctx context.Context, name string) ([]byte, error) {
data, err := k.provider.KubeConfig(name, false)

if err != nil {
return nil, err
Expand Down

0 comments on commit 5c60725

Please sign in to comment.