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
32 changes: 0 additions & 32 deletions .github/workflows/test-e2e.yml

This file was deleted.

20 changes: 14 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ jobs:

build:
runs-on: ubuntu-latest
env:
K8S_VERSION: "1.28.0" # Updated to an available version

steps:
- uses: actions/checkout@v6
Expand All @@ -27,11 +29,15 @@ jobs:

- name: Setup KUBEBUILDER_ASSETS
run: |
export K8S_VERSION=1.20.2
curl -sSLo envtest-bins.tar.gz "https://go.kubebuilder.io/test-tools/${K8S_VERSION}/$(go env GOOS)/$(go env GOARCH)"
sudo mkdir /usr/local/kubebuilder
sudo tar -C /usr/local/kubebuilder --strip-components=1 -zvxf envtest-bins.tar.gz
sudo cp /usr/local/kubebuilder/bin/* /usr/local/bin
GOPATH_BIN="$(go env GOPATH)/bin"
export PATH="$PATH:$GOPATH_BIN"

echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
go install sigs.k8s.io/controller-runtime/tools/setup-envtest@release-0.19

ENVTEST_PATH=$($GOPATH_BIN/setup-envtest use $K8S_VERSION -p path)
echo "Resolved KUBEBUILDER_ASSETS path: '$ENVTEST_PATH'"
echo "KUBEBUILDER_ASSETS=$ENVTEST_PATH" >> $GITHUB_ENV

- name: Make controller-gen
run: make controller-gen
Expand All @@ -40,4 +46,6 @@ jobs:
run: go mod vendor

- name: Basic Operator's Tests
run: KUBEBUILDER_ASSETS=/usr/local/bin go test -timeout 60m ./... -coverprofile cover.out
run: |
echo "Using KUBEBUILDER_ASSETS: $KUBEBUILDER_ASSETS"
go test -timeout 60m $(go list ./... | grep -v /e2e) -coverprofile cover.out
3 changes: 3 additions & 0 deletions internal/controller/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ var _ = BeforeSuite(func() {
testEnv = &envtest.Environment{
CRDDirectoryPaths: []string{filepath.Join("..", "..", "config", "crd", "bases")},
ErrorIfCRDPathMissing: true,

// Priority: 1. Use KUBEBUILDER_ASSETS from env, 2. Fallback to getFirstFoundEnvTestBinaryDir()
BinaryAssetsDirectory: os.Getenv("KUBEBUILDER_ASSETS"),
}

// Retrieve the first found binary directory to allow running tests from IDEs
Expand Down
66 changes: 40 additions & 26 deletions internal/controller/webserver_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,43 +24,57 @@ import (

// "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/reconcile"

corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

webserversorgv1alpha1 "github.com/web-servers/jws-operator/api/v1alpha1"
)

var c client.Client

var _ = Describe("WebServer Controller", func() {
Context("When reconciling a resource", func() {
const resourceName = "test-resource"
var ctx context.Context
var typeNamespacedName types.NamespacedName
var webserver *webserversorgv1alpha1.WebServer

BeforeEach(func() {
ctx = context.Background()

ctx := context.Background()

typeNamespacedName := types.NamespacedName{
Name: resourceName,
Namespace: "mm-test", // TODO(user):Modify as needed
}
webserver := &webserversorgv1alpha1.WebServer{
TypeMeta: metav1.TypeMeta{
Kind: "WebServer",
APIVersion: "web.servers.org/v1alpha1",
},
ObjectMeta: metav1.ObjectMeta{
Name: "xyz",
Namespace: "mm-test",
},
Spec: webserversorgv1alpha1.WebServerSpec{
Replicas: 3,
ApplicationName: "abc",
WebImage: &webserversorgv1alpha1.WebImageSpec{
ApplicationImage: "quay.io/web-servers/tomcat10:latest",
ns := &corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
Name: "mm-test",
},
},
}
}

err := k8sClient.Create(ctx, ns)
if err != nil && !apierrors.IsAlreadyExists(err) {
Expect(err).NotTo(HaveOccurred())
}
typeNamespacedName = types.NamespacedName{
Name: resourceName,
Namespace: "mm-test", // TODO(user):Modify as needed
}
webserver = &webserversorgv1alpha1.WebServer{
TypeMeta: metav1.TypeMeta{
Kind: "WebServer",
APIVersion: "web.servers.org/v1alpha1",
},
ObjectMeta: metav1.ObjectMeta{
Name: resourceName,
Namespace: "mm-test",
},
Spec: webserversorgv1alpha1.WebServerSpec{
Replicas: 3,
ApplicationName: "abc",
WebImage: &webserversorgv1alpha1.WebImageSpec{
ApplicationImage: "quay.io/web-servers/tomcat10:latest",
},
},
}
})

It("should successfully reconcile the resource", func() {
By("Reconciling the created resource")
Expand All @@ -69,7 +83,7 @@ var _ = Describe("WebServer Controller", func() {
Scheme: k8sClient.Scheme(),
}

err := c.Create(ctx, webserver)
err := k8sClient.Create(ctx, webserver)

Expect(err).NotTo(HaveOccurred())

Expand Down
Loading