diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..40e23dcb1caca8b7543c8d3deb810ffb4efa6dfc
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,21 @@
+sudo: required
+dist: xenial
+language: go
+
+go:
+- "1.12.x"
+go_import_path: github.com/coreos/kube-prometheus
+
+cache:
+  directories:
+  - $GOCACHE
+  - $GOPATH/pkg/mod
+
+services:
+- docker
+
+jobs:
+  include:
+  - script: make --always-make generate-in-docker && git diff --exit-code
+  - script: make --always-make test-in-docker
+  - script: GO111MODULE=on ./tests/e2e/travis-e2e.sh
diff --git a/Makefile b/Makefile
index 28a787523aa2a7510b183089c9a5fad4a92e249d..86ebbcc84d0150a23707a8f361e4e78066de5e88 100644
--- a/Makefile
+++ b/Makefile
@@ -5,21 +5,21 @@ EMBEDMD_BINARY:=$(GOPATH)/bin/embedmd
 
 all: generate fmt test
 
-../../hack/jsonnet-docker-image: ../../scripts/jsonnet/Dockerfile
+hack/jsonnet-docker-image: scripts/jsonnet/Dockerfile
 # Create empty target file, for the sole purpose of recording when this target
 # was last executed via the last-modification timestamp on the file. See
 # https://www.gnu.org/software/make/manual/make.html#Empty-Targets
-	docker build -f - -t po-jsonnet . < ../../scripts/jsonnet/Dockerfile
+	docker build -f - -t po-jsonnet . < scripts/jsonnet/Dockerfile
 	touch $@
 
-generate-in-docker: ../../hack/jsonnet-docker-image
+generate-in-docker: hack/jsonnet-docker-image
 	@echo ">> Compiling assets and generating Kubernetes manifests"
 	docker run \
 	--rm \
 	-u=$(shell id -u $(USER)):$(shell id -g $(USER)) \
-	-v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ \
+	-v $$PWD:/go/src/github.com/coreos/kube-prometheus/ \
 	-v $(shell go env GOCACHE):/.cache/go-build \
-	--workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus \
+	--workdir /go/src/github.com/coreos/kube-prometheus \
 	po-jsonnet make generate
 
 generate: manifests **.md
@@ -46,14 +46,14 @@ test: $(JB_BINARY)
 test-e2e:
 	go test -timeout 55m -v ./tests/e2e -count=1
 
-test-in-docker: ../../hack/jsonnet-docker-image
+test-in-docker: hack/jsonnet-docker-image
 	@echo ">> Compiling assets and generating Kubernetes manifests"
 	docker run \
 	--rm \
 	-u=$(shell id -u $(USER)):$(shell id -g $(USER)) \
-	-v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ \
+	-v $$PWD:/go/src/github.com/coreos/kube-prometheus/ \
 	-v $(shell go env GOCACHE):/.cache/go-build \
-	--workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus \
+	--workdir /go/src/github.com/coreos/kube-prometheus \
 	po-jsonnet make test
 
 $(JB_BINARY):
diff --git a/README.md b/README.md
index 5b978f71193c64b8772bbd3d5e166cb4d0b4fb79..35ee50fae3651c13211f25b33e5c3e278f936182 100644
--- a/README.md
+++ b/README.md
@@ -171,7 +171,6 @@ local kp =
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
 { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
 { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
-
 ```
 
 And here's the [build.sh](build.sh) script (which uses `vendor/` to render all manifests in a json structure of `{filename: manifest-content}`):
diff --git a/docs/developing-prometheus-rules-and-grafana-dashboards.md b/docs/developing-prometheus-rules-and-grafana-dashboards.md
index 17838b829b44200af1d555523934eeba44260b05..671a898706d77b46f57be05788ee3b3c9167ec38 100644
--- a/docs/developing-prometheus-rules-and-grafana-dashboards.md
+++ b/docs/developing-prometheus-rules-and-grafana-dashboards.md
@@ -25,7 +25,6 @@ local kp =
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
 { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
 { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
-
 ```
 
 ## Prometheus rules
diff --git a/example.jsonnet b/example.jsonnet
index c446eac140558b7a2c1aaaef05e3c1a8f2467faa..fcd2bb01cf3250b2ac1d2b256814b4a189424abc 100644
--- a/example.jsonnet
+++ b/example.jsonnet
@@ -13,4 +13,3 @@ local kp =
 { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
 { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
 { ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
-
diff --git a/examples/kustomize.jsonnet b/examples/kustomize.jsonnet
index 1b6b903865e34044e0beeca678b236e6231670af..459adf104c38baa12a3ddb2b100003e7bb14e500 100644
--- a/examples/kustomize.jsonnet
+++ b/examples/kustomize.jsonnet
@@ -25,4 +25,3 @@ local kustomization = {
 manifests {
   '../kustomization': kustomization,
 }
-
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000000000000000000000000000000000000..b67b2a09b515e91d1d10353c9773a5f2a3c8a861
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,32 @@
+module github.com/coreos/kube-prometheus
+
+go 1.12
+
+require (
+	github.com/Jeffail/gabs v1.2.0
+	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/gogo/protobuf v1.1.1 // indirect
+	github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf // indirect
+	github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d // indirect
+	github.com/imdario/mergo v0.3.7 // indirect
+	github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be // indirect
+	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+	github.com/modern-go/reflect2 v1.0.1 // indirect
+	github.com/pkg/errors v0.8.1
+	github.com/pmezard/go-difflib v1.0.0 // indirect
+	github.com/spf13/pflag v1.0.3 // indirect
+	github.com/stretchr/testify v1.2.2 // indirect
+	golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a // indirect
+	golang.org/x/net v0.0.0-20190206173232-65e2d4e15006 // indirect
+	golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a // indirect
+	golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db // indirect
+	golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect
+	gopkg.in/inf.v0 v0.9.1 // indirect
+	gopkg.in/yaml.v2 v2.2.2 // indirect
+	k8s.io/api v0.0.0-20190313235455-40a48860b5ab // indirect
+	k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1
+	k8s.io/client-go v11.0.0+incompatible
+	k8s.io/klog v0.0.0-20190306015804-8e90cee79f82 // indirect
+	k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 // indirect
+	sigs.k8s.io/yaml v1.1.0 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000000000000000000000000000000000000..94564ff1233d0258fdf2e39709dba243d38d4542
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,67 @@
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/Jeffail/gabs v1.2.0 h1:uFhoIVTtsX7hV2RxNgWad8gMU+8OJdzFbOathJdhD3o=
+github.com/Jeffail/gabs v1.2.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck=
+github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
+github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k=
+github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
+github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI=
+github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be h1:AHimNtVIpiBjPUhEF5KNCkrUyqTSA5zWUl8sQ2bfGBE=
+github.com/json-iterator/go v0.0.0-20180701071628-ab8a2e0c74be/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
+github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a h1:Igim7XhdOpBnWPuYJ70XcNpq8q3BCACtVgNfoJxOV7g=
+golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190206173232-65e2d4e15006 h1:bfLnR+k0tq5Lqt6dflRLcZiz6UaXCMt3vhYJ1l4FQ80=
+golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA=
+golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e h1:nFYrTHrdrAOpShe27kaFHjsqYSEQ0KWqdWLu3xuZJts=
+golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db h1:6/JqlYfC1CCaLnGceQTI+sDGhC9UBSPAsBqI0Gun6kU=
+golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
+gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+k8s.io/api v0.0.0-20190313235455-40a48860b5ab h1:DG9A67baNpoeweOy2spF1OWHhnVY5KR7/Ek/+U1lVZc=
+k8s.io/api v0.0.0-20190313235455-40a48860b5ab/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=
+k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 h1:IS7K02iBkQXpCeieSiyJjGoLSdVOv2DbPaWHJ+ZtgKg=
+k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=
+k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
+k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
+k8s.io/klog v0.0.0-20190306015804-8e90cee79f82 h1:SHucoAy7lRb+w5oC/hbXyZg+zX+Wftn6hD4tGzHCVqA=
+k8s.io/klog v0.0.0-20190306015804-8e90cee79f82/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
+k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 h1:8r+l4bNWjRlsFYlQJnKJ2p7s1YQPj4XyXiJVqDHRx7c=
+k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
+sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
+sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
diff --git a/hack/jsonnet-docker-image b/hack/jsonnet-docker-image
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/jsonnetfile.json b/jsonnetfile.json
index 619586b23b2ed4030f66bb5101abfff465f8463f..38db14a31ef1ba85ac7f78307e1970bd1581c792 100644
--- a/jsonnetfile.json
+++ b/jsonnetfile.json
@@ -4,8 +4,8 @@
             "name": "kube-prometheus",
             "source": {
                 "git": {
-                    "remote": "../../",
-                    "subdir": "contrib/kube-prometheus/jsonnet/kube-prometheus"
+                    "remote": ".",
+                    "subdir": "jsonnet/kube-prometheus"
                 }
             },
             "version": "."
diff --git a/jsonnetfile.lock.json b/jsonnetfile.lock.json
index ed5c26cc2ad6713e717b804a93c27c1745af03bc..db0684ffff860b5171f5d0300d150785496443f3 100644
--- a/jsonnetfile.lock.json
+++ b/jsonnetfile.lock.json
@@ -4,11 +4,11 @@
             "name": "kube-prometheus",
             "source": {
                 "git": {
-                    "remote": "../../",
-                    "subdir": "contrib/kube-prometheus/jsonnet/kube-prometheus"
+                    "remote": ".",
+                    "subdir": "jsonnet/kube-prometheus"
                 }
             },
-            "version": "82817c8f9277c82ca164a6ef75bf476e56f24521"
+            "version": "62f823e34706811421f44af9894ad77d47bc2293"
         },
         {
             "name": "ksonnet",
diff --git a/scripts/jsonnet/Dockerfile b/scripts/jsonnet/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..d7bfb313fd7b01d6643749aebe6354ac4c7222f5
--- /dev/null
+++ b/scripts/jsonnet/Dockerfile
@@ -0,0 +1,19 @@
+FROM golang:1.11-stretch
+
+ENV JSONNET_VERSION 0.12.1
+
+RUN apt-get update -y && apt-get install -y g++ make git jq && \
+    rm -rf /var/lib/apt/lists/*
+RUN curl -Lso - https://github.com/google/jsonnet/archive/v${JSONNET_VERSION}.tar.gz | \
+    tar xfz - -C /tmp && \
+    cd /tmp/jsonnet-${JSONNET_VERSION} && \
+    make && mv jsonnet /usr/local/bin && \
+    rm -rf /tmp/jsonnet-${JSONNET_VERSION}
+RUN go get github.com/brancz/gojsontoyaml
+RUN go get github.com/campoy/embedmd
+RUN go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
+
+RUN mkdir -p /go/src/github.com/coreos/kube-prometheus
+WORKDIR /go/src/github.com/coreos/kube-prometheus
+
+RUN chmod -R 777 /go
diff --git a/tests/e2e/travis-e2e.sh b/tests/e2e/travis-e2e.sh
index d1149697928ac4323adccbad72f0d622eb495fff..1787d13f13759fe7abe2e5394d960536c2ef48d9 100755
--- a/tests/e2e/travis-e2e.sh
+++ b/tests/e2e/travis-e2e.sh
@@ -8,14 +8,21 @@ set -u
 # print each command before executing it
 set -x
 
-SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
+curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
+chmod +x kubectl
+curl -Lo kind https://github.com/kubernetes-sigs/kind/releases/download/0.2.1/kind-linux-amd64
+chmod +x kind
 
-"${SCRIPT_DIR}"/../../../../scripts/create-minikube.sh
+./kind create cluster
+export KUBECONFIG="$(./kind get kubeconfig-path)"
 
-(
-    cd "${SCRIPT_DIR}"/../.. || exit
-    kubectl apply -f manifests
-    KUBECONFIG=~/.kube/config make test-e2e
-)
+./kubectl apply -f manifests/0prometheus-operator-0alertmanagerCustomResourceDefinition.yaml
+./kubectl apply -f manifests/0prometheus-operator-0prometheusCustomResourceDefinition.yaml
+./kubectl apply -f manifests/0prometheus-operator-0prometheusruleCustomResourceDefinition.yaml
+./kubectl apply -f manifests/0prometheus-operator-0servicemonitorCustomResourceDefinition.yaml
 
-"${SCRIPT_DIR}"/../../../../scripts/delete-minikube.sh
+# Wait for CRDs to be successfully registered
+sleep 10
+
+./kubectl apply -f manifests
+make test-e2e