Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ builds:
binary: kubectl-kuttl
main: cmd/kubectl-kuttl/main.go
ldflags:
- -s -w -X github.com/kudobuilder/kuttl/pkg/version.gitVersion={{ .Version }} -X github.com/kudobuilder/kuttl/pkg/version.gitCommit={{ .ShortCommit }} -X github.com/kudobuilder/kuttl/pkg/version.buildDate={{ .Date }}
- -s -w -X github.com/kudobuilder/kuttl/internal/version.gitVersion={{ .Version }} -X github.com/kudobuilder/kuttl/internal/version.gitCommit={{ .ShortCommit }} -X github.com/kudobuilder/kuttl/internal/version.buildDate={{ .Date }}
goos:
- linux
- darwin
Expand Down
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
SHELL=/bin/bash -o pipefail

CLI := kubectl-kuttl
GIT_VERSION_PATH := github.com/kudobuilder/kuttl/pkg/version.gitVersion
GIT_VERSION_PATH := github.com/kudobuilder/kuttl/internal/version.gitVersion
GIT_VERSION := $(shell git describe --abbrev=0 --tags | cut -b 2-)
GIT_COMMIT_PATH := github.com/kudobuilder/kuttl/pkg/version.gitCommit
GIT_COMMIT_PATH := github.com/kudobuilder/kuttl/internal/version.gitCommit
GIT_COMMIT := $(shell git rev-parse HEAD | cut -b -8)
SOURCE_DATE_EPOCH := $(shell git show -s --format=format:%ct HEAD)
BUILD_DATE_PATH := github.com/kudobuilder/kuttl/pkg/version.buildDate
BUILD_DATE_PATH := github.com/kudobuilder/kuttl/internal/version.buildDate
DATE_FMT := "%Y-%m-%dT%H:%M:%SZ"
BUILD_DATE := $(shell date -u -d "@$SOURCE_DATE_EPOCH" "+${DATE_FMT}" 2>/dev/null || date -u -r "${SOURCE_DATE_EPOCH}" "+${DATE_FMT}" 2>/dev/null || date -u "+${DATE_FMT}")
LDFLAGS := -X ${GIT_VERSION_PATH}=${GIT_VERSION} -X ${GIT_COMMIT_PATH}=${GIT_COMMIT} -X ${BUILD_DATE_PATH}=${BUILD_DATE}
Expand Down Expand Up @@ -131,9 +131,9 @@ all: lint test integration-test e2e-test ## Runs lint, unit, integration and e2
test: ## Runs unit tests
ifdef _INTELLIJ_FORCE_SET_GOFLAGS
# Run tests from a Goland terminal. Goland already set '-mod=readonly'
go test ./pkg/... -v -coverprofile cover.out
go test ./pkg/... ./internal/... -v -coverprofile cover.out
else
go test ./pkg/... -v -mod=readonly -coverprofile cover.out
go test ./pkg/... ./internal/... -v -mod=readonly -coverprofile cover.out
endif

.PHONY: integration-test
Expand Down
2 changes: 1 addition & 1 deletion cmd/kubectl-kuttl/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ package main
import (
"os"

"github.com/kudobuilder/kuttl/pkg/kuttlctl/cmd"
"github.com/kudobuilder/kuttl/internal/kuttlctl/cmd"
)

func main() {
Expand Down
10 changes: 2 additions & 8 deletions docs/api-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,10 @@ The test harness type is defined in an `apis` package similar to a Kubernetes ty

The `test` package contains the `test.Harness` implementation (given the configuration of the test harness configuration type previously mentioned). The `test.Harness` provides the "run" of the test run and needs a Go `t *testing.T`.

The `testutils` package contains utilities for docker, kubernetes, loggers and testing.

```go
import (
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/test"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)
```

Expand All @@ -37,16 +34,13 @@ options := harness.TestSuite{}
The Go `t *testing.T` and `harness.TestSuite` are provided to `test.Harness` which provides the implementation for testing.

```go
Run: func(cmd *cobra.Command, args []string) {
testutils.RunTests("kudo", testToRun, options.Parallel, func(t *testing.T) {
func TestWithKuttl(t *testing.T) {
harness := test.Harness{
TestSuite: options,
T: t,
}

harness.Run()
})
},
}

```

Expand Down
6 changes: 3 additions & 3 deletions docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,19 +137,19 @@ parallel: 4
The default can be run as follows:

```bash
kubectl kuttl test pkg/test/test_data/
kubectl kuttl test internal/harness/test_data/
```

When running with no defined [test environment](testing/test-environments.md), the default is a preconfigured cluster defined in `$KUBECONFIG`.

To run with the mocked control plane run:

```bash
kubectl kuttl test --start-control-plane pkg/test/test_data/
kubectl kuttl test --start-control-plane internal/harness/test_data/
```

In order to run with the full kind cluster stack, run:

```bash
kubectl kuttl test --start-kind pkg/test/test_data/
kubectl kuttl test --start-kind internal/harness/test_data/
```
4 changes: 2 additions & 2 deletions hack/run-integration-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ then
go get github.com/jstemmer/go-junit-report
go install github.com/jstemmer/go-junit-report
go mod tidy
go test -tags integration ./pkg/... -v -mod=readonly -coverprofile cover-integration.out 2>&1 |tee /dev/fd/2 |go-junit-report -set-exit-code > reports/integration_report.xml
go test -tags integration ./pkg/... ./internal/... -v -mod=readonly -coverprofile cover-integration.out 2>&1 |tee /dev/fd/2 |go-junit-report -set-exit-code > reports/integration_report.xml
else
echo "Running integration tests without junit output"
go test -tags integration ./pkg/... -v -mod=readonly -coverprofile cover-integration.out
go test -tags integration ./pkg/... ./internal/... -v -mod=readonly -coverprofile cover-integration.out
fi
4 changes: 2 additions & 2 deletions pkg/test/assert/assert.go → internal/assert/assert.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
"k8s.io/client-go/discovery"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/test/step"
"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/step"
)

// Assert checks all provided assert files against a namespace. Upon assert failure, it prints the failures and returns an error
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion pkg/file/files.go → internal/file/files.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/internal/kubernetes"
)

// from a list of paths, returns an array of runtime objects
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
14 changes: 7 additions & 7 deletions pkg/test/harness/harness.go → internal/harness/harness.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ import (
"sigs.k8s.io/controller-runtime/pkg/envtest"
kindConfig "sigs.k8s.io/kind/pkg/apis/config/v1alpha4"

"github.com/kudobuilder/kuttl/internal/file"
"github.com/kudobuilder/kuttl/internal/http"
"github.com/kudobuilder/kuttl/internal/kind"
"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/report"
"github.com/kudobuilder/kuttl/internal/testcase"
testutils "github.com/kudobuilder/kuttl/internal/utils"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/file"
"github.com/kudobuilder/kuttl/pkg/http"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/report"
"github.com/kudobuilder/kuttl/pkg/test/kind"
"github.com/kudobuilder/kuttl/pkg/test/testcase"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)

// Harness loads and runs tests based on the configuration provided.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (

"github.com/stretchr/testify/assert"

"github.com/kudobuilder/kuttl/internal/kubernetes"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
)

func TestHarnessRunIntegration(t *testing.T) {
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion pkg/http/client.go → internal/http/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

"github.com/dustin/go-humanize"

"github.com/kudobuilder/kuttl/pkg/version"
"github.com/kudobuilder/kuttl/internal/version"
)

// Client is client used to simplified http requests for tarballs
Expand Down
2 changes: 1 addition & 1 deletion pkg/http/http.go → internal/http/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/internal/kubernetes"
)

// IsURL returns true if string is an URL
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion pkg/test/kind/kind.go → internal/kind/kind.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"sigs.k8s.io/kind/pkg/cluster/nodes"
"sigs.k8s.io/kind/pkg/cluster/nodeutils"

testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
testutils "github.com/kudobuilder/kuttl/internal/utils"
)

// Kind provides a thin abstraction layer for a KIND cluster.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
"sigs.k8s.io/kind/pkg/apis/config/v1alpha4"
"sigs.k8s.io/kind/pkg/cluster/nodes"

testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
testutils "github.com/kudobuilder/kuttl/internal/utils"
)

const (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"github.com/spf13/pflag"
"sigs.k8s.io/kind/pkg/log"

testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
testutils "github.com/kudobuilder/kuttl/internal/utils"
)

type level int32
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"

"github.com/kudobuilder/kuttl/pkg/kubernetes/fake"
"github.com/kudobuilder/kuttl/internal/kubernetes/fake"
)

func TestGETAPIResource(t *testing.T) {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (

"github.com/spf13/cobra"

"github.com/kudobuilder/kuttl/pkg/test/assert"
"github.com/kudobuilder/kuttl/internal/assert"
)

var (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (

"github.com/spf13/cobra"

"github.com/kudobuilder/kuttl/pkg/test/assert"
"github.com/kudobuilder/kuttl/internal/assert"
)

var (
Expand Down
4 changes: 2 additions & 2 deletions pkg/kuttlctl/cmd/root.go → internal/kuttlctl/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package cmd
import (
"github.com/spf13/cobra"

"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/version"
"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/version"
)

// NewKuttlCmd creates a new root command for kuttlctl
Expand Down
File renamed without changes.
12 changes: 6 additions & 6 deletions pkg/kuttlctl/cmd/test.go → internal/kuttlctl/cmd/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ import (
"github.com/spf13/pflag"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"

"github.com/kudobuilder/kuttl/internal/harness"
"github.com/kudobuilder/kuttl/internal/kind"
"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/report"
testutils "github.com/kudobuilder/kuttl/internal/utils"
harnessApi "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/report"
"github.com/kudobuilder/kuttl/pkg/test/harness"
"github.com/kudobuilder/kuttl/pkg/test/kind"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)

var (
Expand Down Expand Up @@ -270,7 +270,7 @@ For more detailed documentation, visit: https://kuttl.dev`,
testCmd.Flags().StringVarP(&namespace, "namespace", "n", "", "Namespace to use for tests. Provided namespaces must exist prior to running tests.")
testCmd.Flags().StringSliceVar(&suppress, "suppress-log", []string{}, "Suppress logging for these kinds of logs (events).")
testCmd.Flags().Var(&runLabels, "test-run-labels", "Labels to use for this test run.")
// This cannot be a global flag because pkg/test/utils.RunTests calls flag.Parse which barfs on unknown top-level flags.
// This cannot be a global flag because internal/utils.RunTests calls flag.Parse which barfs on unknown top-level flags.
// Putting it here at least does not advertise it on a level where using it is impossible.
kind.SetFlags(testCmd.Flags())

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (

"github.com/spf13/cobra"

"github.com/kudobuilder/kuttl/pkg/version"
"github.com/kudobuilder/kuttl/internal/version"
)

var (
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import (
"k8s.io/client-go/discovery"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/pkg/kubernetes"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
"github.com/kudobuilder/kuttl/internal/kubernetes"
testutils "github.com/kudobuilder/kuttl/internal/utils"
)

func buildTestStep(t *testing.T, testenv kubernetes.TestEnvironment) *Step {
Expand Down
12 changes: 6 additions & 6 deletions pkg/test/step/step.go → internal/step/step.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ import (
"k8s.io/client-go/discovery"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/internal/env"
"github.com/kudobuilder/kuttl/internal/expressions"
kfile "github.com/kudobuilder/kuttl/internal/file"
"github.com/kudobuilder/kuttl/internal/http"
"github.com/kudobuilder/kuttl/internal/kubernetes"
testutils "github.com/kudobuilder/kuttl/internal/utils"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/env"
"github.com/kudobuilder/kuttl/pkg/expressions"
kfile "github.com/kudobuilder/kuttl/pkg/file"
"github.com/kudobuilder/kuttl/pkg/http"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)

// fileNameRegex contains two capturing groups to determine whether a file has special
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import (
"k8s.io/client-go/discovery"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/internal/kubernetes"
testutils "github.com/kudobuilder/kuttl/internal/utils"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)

var testenv kubernetes.TestEnvironment
Expand Down
6 changes: 3 additions & 3 deletions pkg/test/step/step_test.go → internal/step/step_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"

"github.com/kudobuilder/kuttl/internal/kubernetes"
k8sfake "github.com/kudobuilder/kuttl/internal/kubernetes/fake"
testutils "github.com/kudobuilder/kuttl/internal/utils"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
k8sfake "github.com/kudobuilder/kuttl/pkg/kubernetes/fake"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)

const (
Expand Down
12 changes: 6 additions & 6 deletions pkg/test/testcase/case.go → internal/testcase/case.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ import (
"k8s.io/client-go/discovery"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/report"
"github.com/kudobuilder/kuttl/internal/step"
testutils "github.com/kudobuilder/kuttl/internal/utils"
eventutils "github.com/kudobuilder/kuttl/internal/utils/events"
"github.com/kudobuilder/kuttl/internal/utils/files"
"github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/report"
"github.com/kudobuilder/kuttl/pkg/test/step"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
eventutils "github.com/kudobuilder/kuttl/pkg/test/utils/events"
"github.com/kudobuilder/kuttl/pkg/test/utils/files"
)

type getClientFuncType func(forceNew bool) (client.Client, error)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import (
"k8s.io/client-go/discovery"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/report"
"github.com/kudobuilder/kuttl/pkg/test/step"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/report"
"github.com/kudobuilder/kuttl/internal/step"
testutils "github.com/kudobuilder/kuttl/internal/utils"
)

// Create two test environments, ensure that the second environment is used when
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import (
"k8s.io/apimachinery/pkg/labels"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kudobuilder/kuttl/internal/kubernetes"
"github.com/kudobuilder/kuttl/internal/step"
testutils "github.com/kudobuilder/kuttl/internal/utils"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/kubernetes"
"github.com/kudobuilder/kuttl/pkg/test/step"
testutils "github.com/kudobuilder/kuttl/pkg/test/utils"
)

// Verify the test state as loaded from disk.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import (
"github.com/spf13/pflag"
_ "k8s.io/client-go/plugin/pkg/client/auth" // package needed for auth providers like GCP

"github.com/kudobuilder/kuttl/internal/env"
harness "github.com/kudobuilder/kuttl/pkg/apis/testharness/v1beta1"
"github.com/kudobuilder/kuttl/pkg/env"
)

// GetArgs parses a command line string into its arguments and appends a namespace if it is not already set.
Expand Down
File renamed without changes.
File renamed without changes.
Loading
Loading