Skip to content

Commit

Permalink
WIP. Refactor the code to abstract the engine to be used
Browse files Browse the repository at this point in the history
Signed-off-by: cmoulliard <[email protected]>
  • Loading branch information
cmoulliard committed Jan 7, 2025
1 parent 10fdf1c commit 4a3e7e9
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 16 deletions.
18 changes: 18 additions & 0 deletions tests/e2e/container/container.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package container

import (
"os"
"os/exec"
)

type Engine interface {
IdpCmd() *exec.Cmd
}

func ContainerClient() string {
if os.Getenv("CONTAINER_ENGINE") == "podman" {
return "podman"
} else {
return "docker"
}
}
19 changes: 3 additions & 16 deletions tests/e2e/docker/docker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package docker
import (
"context"
"fmt"
container_engine "github.com/cnoe-io/idpbuilder/tests/e2e/container"
"log/slog"
"os"
"os/exec"
Expand All @@ -23,21 +24,6 @@ var (
cmd *exec.Cmd
)

func configureContainerClientEngine() {
if os.Getenv("CONTAINER_ENGINE") == "podman" {
containerClientEngine = "podman"
} else {
containerClientEngine = "docker"
}
}

func enableKindExperimentalProvider(cmd exec.Cmd) *exec.Cmd {
if os.Getenv("CONTAINER_ENGINE") == "podman" {
cmd.Env = append(os.Environ(), "KIND_EXPERIMENTAL_PROVIDER=podman")
}
return &cmd
}

func CleanUpDocker(t *testing.T) {
t.Log("cleaning up docker env")

Expand Down Expand Up @@ -65,7 +51,8 @@ func Test_CreateDocker(t *testing.T) {
slogger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelDebug}))
ctrl.SetLogger(logr.FromSlogHandler(slogger.Handler()))

configureContainerClientEngine()
t.Log("creating IDP cluster using docker engine")
containerClientEngine = container_engine.ContainerClient()
testCreate(t)
testCreatePath(t)
testCreatePort(t)
Expand Down
27 changes: 27 additions & 0 deletions tests/e2e/podman/podman_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//go:build e2e

package podman

import (
"github.com/cnoe-io/idpbuilder/tests/e2e"
"github.com/cnoe-io/idpbuilder/tests/e2e/container"
"github.com/cnoe-io/idpbuilder/tests/e2e/shared"
"os"
"os/exec"
"testing"
)

type PodmanEngine struct {
container.Engine
}

func (p *PodmanEngine) IdpCmd() *exec.Cmd {
cmd := exec.Command(e2e.IdpbuilderBinaryLocation)
cmd.Env = append(os.Environ(), "KIND_EXPERIMENTAL_PROVIDER=podman")
return cmd
}

func Test_CreateCluster(t *testing.T) {
p := &PodmanEngine{}
shared.TestCreateCluster(t, container.ContainerClient(), p.IdpCmd())
}
2 changes: 2 additions & 0 deletions tests/e2e/podman/test-dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
FROM scratch
COPY test-dockerfile .
42 changes: 42 additions & 0 deletions tests/e2e/shared/shared.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//go:build e2e

package shared

import (
"context"
"fmt"
"github.com/cnoe-io/idpbuilder/tests/e2e"
"github.com/stretchr/testify/assert"
"os/exec"
"testing"
"time"
)

type ContainerEngine string

func cleanUp(t *testing.T) {
t.Log("cleaning up")
}

// test idpbuilder create
func TestCreateCluster(t *testing.T, engine string, cmd *exec.Cmd) {
ctx, cancel := context.WithTimeout(context.Background(), 8*time.Minute)
defer cancel()
defer cleanUp(t)

t.Log("running idpbuilder create")
cmd.Args = append(cmd.Args, "create")
b, err := cmd.CombinedOutput()
assert.NoError(t, err, b)

kubeClient, err := e2e.GetKubeClient()
assert.NoError(t, err, fmt.Sprintf("error while getting client: %s", err))

e2e.TestArgoCDApps(ctx, t, kubeClient, e2e.CorePackages)

argoBaseUrl := fmt.Sprintf("https://argocd.%s:%s", e2e.DefaultBaseDomain, e2e.DefaultPort)
giteaBaseUrl := fmt.Sprintf("https://gitea.%s:%s", e2e.DefaultBaseDomain, e2e.DefaultPort)
e2e.TestCoreEndpoints(ctx, t, argoBaseUrl, giteaBaseUrl)

e2e.TestGiteaRegistry(ctx, t, engine, fmt.Sprintf("gitea.%s", e2e.DefaultBaseDomain), e2e.DefaultPort)
}

0 comments on commit 4a3e7e9

Please sign in to comment.