Skip to content

Commit 3372b56

Browse files
add k8s provider usage to example (#7)
* add kubernetes provider to resource example * rename old rc target to set-local * regenerate tfdoc example
1 parent 5ac00fd commit 3372b56

File tree

7 files changed

+150
-9
lines changed

7 files changed

+150
-9
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ bin
1616
# Dependency directories (remove the comment below to include it)
1717
# vendor/
1818

19+
# Ignore example artifacts
1920
terraform.tfsta*
21+
.terraform.lock.hcl
22+
2023
crash.log
2124
.terraform
2225
test_output

Makefile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ init:
33
go mod tidy
44

55
.PHONY: configure
6-
configure: build set-rc
6+
configure: build set-local
77
go generate ./...
88

99
.PHONY: clean
@@ -24,7 +24,7 @@ acceptance:
2424
TF_ACC=true go test ./minikube -run "TestClusterCreation" -v -p 1 --timeout 10m
2525

2626
.PHONY: test-stack
27-
test-stack: set-rc
27+
test-stack: set-local
2828
terraform -chdir=examples/resource/minikube_cluster init || true
2929
terraform -chdir=examples/resource/minikube_cluster apply --auto-approve
3030
terraform -chdir=tests destroy --auto-approve
@@ -33,10 +33,12 @@ test-stack: set-rc
3333
build:
3434
go build -o bin/terraform-provider-minikube
3535

36-
.PHONY: set-rc
37-
set-rc: build
38-
touch ~/.terraformrc
39-
echo "provider_installation { dev_overrides { \"hashicorp/minikube\" = \"$$(pwd)/bin\" } direct {}}" > ~/.terraformrc
36+
.PHONY: set-local
37+
set-local: build
38+
mkdir -p $$HOME/.terraform.d/plugins/registry.terraform.io/scott-the-programmer/minikube/99.99.99/linux_amd64
39+
mkdir -p $$HOME/.terraform.d/plugins/registry.terraform.io/scott-the-programmer/minikube/99.99.99/darwin_amd64
40+
cp bin/terraform-provider-minikube $$HOME/.terraform.d/plugins/registry.terraform.io/scott-the-programmer/minikube/99.99.99/linux_amd64/terraform-provider-minikube
41+
cp bin/terraform-provider-minikube $$HOME/.terraform.d/plugins/registry.terraform.io/scott-the-programmer/minikube/99.99.99/darwin_amd64/terraform-provider-minikube
4042

4143
SED_FLAGS := -i
4244
UNAME_S := $(shell uname -s)

contributing.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ make acceptance
4747
## Test stack
4848

4949
```console
50-
make set-rc
50+
make set-local
5151
make test-stack
5252
```
5353

5454
or
5555

5656
```console
57-
make set-rc
57+
make set-local
5858
make build
5959
terraform -chdir=examples/resources/minikube_cluster apply
6060
```
@@ -68,7 +68,7 @@ To debug your terraform provider, run the `Debug Terraform Provider` vscode task
6868

6969
```console
7070
export TF_REATTACH_PROVIDERS='*output from vscode debug session'
71-
make set-rc
71+
make set-local
7272
make test-stack
7373
```
7474

docs/resources/cluster.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,61 @@ resource "minikube_cluster" "hyperkit" {
3636
"ingress"
3737
]
3838
}
39+
40+
provider "kubernetes" {
41+
host = minikube_cluster.docker.host
42+
43+
client_certificate = minikube_cluster.docker.client_certificate
44+
client_key = minikube_cluster.docker.client_key
45+
cluster_ca_certificate = minikube_cluster.docker.cluster_ca_certificate
46+
}
47+
48+
49+
resource "kubernetes_deployment" "deployment" {
50+
metadata {
51+
name = "nginx-example"
52+
labels = {
53+
App = "NginxExample"
54+
}
55+
}
56+
57+
spec {
58+
replicas = 2
59+
selector {
60+
match_labels = {
61+
App = "NginxExample"
62+
}
63+
}
64+
template {
65+
metadata {
66+
labels = {
67+
App = "NginxExample"
68+
}
69+
}
70+
spec {
71+
container {
72+
image = "nginx:1.7.8"
73+
name = "example"
74+
75+
port {
76+
container_port = 80
77+
}
78+
79+
resources {
80+
limits = {
81+
cpu = "0.5"
82+
memory = "512Mi"
83+
}
84+
requests = {
85+
cpu = "250m"
86+
memory = "50Mi"
87+
}
88+
}
89+
}
90+
}
91+
}
92+
}
93+
}
3994
```
4095

4196
<!-- schema generated by tfplugindocs -->
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
output "docker_host" {
2+
value = minikube_cluster.docker.host
3+
}
4+
5+
output "docker_key" {
6+
sensitive = true
7+
value = minikube_cluster.docker.client_key
8+
}
9+
10+
output "docker_certificate" {
11+
sensitive = true
12+
value = minikube_cluster.docker.client_certificate
13+
}
14+
15+
output "docker_ca" {
16+
sensitive = true
17+
value = minikube_cluster.docker.cluster_ca_certificate
18+
}

examples/resources/minikube_cluster/resource.tf

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,58 @@ resource "minikube_cluster" "hyperkit" {
2121
"ingress"
2222
]
2323
}
24+
25+
provider "kubernetes" {
26+
host = minikube_cluster.docker.host
27+
28+
client_certificate = minikube_cluster.docker.client_certificate
29+
client_key = minikube_cluster.docker.client_key
30+
cluster_ca_certificate = minikube_cluster.docker.cluster_ca_certificate
31+
}
32+
33+
34+
resource "kubernetes_deployment" "deployment" {
35+
metadata {
36+
name = "nginx-example"
37+
labels = {
38+
App = "NginxExample"
39+
}
40+
}
41+
42+
spec {
43+
replicas = 2
44+
selector {
45+
match_labels = {
46+
App = "NginxExample"
47+
}
48+
}
49+
template {
50+
metadata {
51+
labels = {
52+
App = "NginxExample"
53+
}
54+
}
55+
spec {
56+
container {
57+
image = "nginx:1.7.8"
58+
name = "example"
59+
60+
port {
61+
container_port = 80
62+
}
63+
64+
resources {
65+
limits = {
66+
cpu = "0.5"
67+
memory = "512Mi"
68+
}
69+
requests = {
70+
cpu = "250m"
71+
memory = "50Mi"
72+
}
73+
}
74+
}
75+
}
76+
}
77+
}
78+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
terraform {
2+
required_providers {
3+
minikube = {
4+
source = "scott-the-programmer/minikube"
5+
version = "99.99.99"
6+
}
7+
}
8+
}

0 commit comments

Comments
 (0)