Skip to content

Commit 630b57d

Browse files
authored
Merge pull request #206 from mintel/use-tanka
Add k8s/tanka/test and k8s/tanka/gen-golden
2 parents 7a5ff53 + c79ab41 commit 630b57d

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,14 @@ export BUILD_HARNESS_EXTENSIONS_PATH ?= $(BUILD_HARNESS_PATH)/build-harness-exte
5757
k8s/kubeval/validate Validate manifests
5858
k8s/tanka/apply/% Apply rendered manifests of an app to the local cluster
5959
k8s/tanka/delete/% Removes rendered manifests of an app from the local cluster
60+
k8s/tanka/diff Diff Tanka files against expected golden
61+
k8s/tanka/diff-help Help regarding Tanka diff
6062
k8s/tanka/fmt Format Jsonnet files with tanka
6163
k8s/tanka/fmt-test Test formatting of Jsonnet files and exit with non-zero when changes would be made
64+
k8s/tanka/gen-golden Generate expected golden files from Tanka
6265
k8s/tanka/generate Generate manifests using tanka including support for kustomize
66+
k8s/tanka/rm-golden Remove golden files from Tanka tests
67+
k8s/tanka/test Run Tanka tests
6368
opa/clone-policy Git clone policies (requires OPA_POLICY_REPO argument)
6469
opa/conftest Validate manifests
6570
satoshi/check-asdf-dep Check dependencies (installer) for Satoshi

modules/k8s/Makefile.tanka

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ endif
99

1010
TK_APPLY_FLAGS ?= --apply-strategy=server --force
1111

12-
.PHONY: k8s/tanka/charts/vendor k8s/tanka/charts/patch k8s/tanka/fmt k8s/tanka/fmt-test k8s/tanka/generate k8s/tanka/generate/% k8s/tanka/apply/% k8s/tanka/delete/% k8s/tanka/update-chart/% k8s/tanka/new-app/%
12+
## Tanka test helpers
13+
TANKA_TEST_FILES=$(wildcard ./*/tests/test.jsonnet) $(wildcard ./tests/*.jsonnet)
14+
TANKA_GOLDEN_FILES=$(wildcard ./*/tests/test-golden.json) $(wildcard ./tests/*-golden.json)
15+
TANKA_PHONY_GOLDEN=$(patsubst %.jsonnet,%-golden.json,$(TANKA_TEST_FILES))
16+
TANKA_PHONY_DIFF=$(patsubst %.jsonnet,%.diff,$(TANKA_TEST_FILES))
17+
18+
.PHONY: k8s/tanka/charts/vendor k8s/tanka/charts/patch k8s/tanka/fmt k8s/tanka/fmt-test k8s/tanka/generate k8s/tanka/generate/% k8s/tanka/apply/% k8s/tanka/delete/% k8s/tanka/update-chart/% k8s/tanka/new-app/% k8s/tanka/test k8s/tanka/diff k8s/tanka/gen-golden k8s/tanka/rm-golden k8s/tanka/diff-help
1319

1420
## Vendor charts
1521
k8s/tanka/charts/vendor:
@@ -72,3 +78,28 @@ k8s/tanka/delete/%: satoshi/check-deps
7278
## Creates a new app in the existing repo
7379
k8s/tanka/add/%: satoshi/check-deps
7480
@@${BUILD_HARNESS_EXTENSIONS_PATH}/modules/k8s/tanka/new-app.sh $*
81+
82+
## Run Tanka tests
83+
k8s/tanka/test: jsonnet/install k8s/tanka/diff
84+
85+
## Diff Tanka files against expected golden
86+
k8s/tanka/diff: k8s/tanka/diff-help $(TANKA_PHONY_DIFF)
87+
88+
%.diff: %.jsonnet
89+
diff -u $(*)-golden.json <(tk eval $(<))
90+
91+
%-golden.json: %.jsonnet
92+
tk eval $(<) > $(@)
93+
94+
## Remove golden files from Tanka tests
95+
k8s/tanka/rm-golden:
96+
rm -f $(TANKA_GOLDEN_FILES)
97+
98+
## Generate expected golden files from Tanka
99+
k8s/tanka/gen-golden: k8s/tanka/rm-golden $(TANKA_PHONY_GOLDEN)
100+
101+
## Help regarding Tanka diff
102+
k8s/tanka/diff-help:
103+
@echo "NOTE: if the 'k8s/tanka/diff' target fails, review output and run:"
104+
@echo " $(MAKE) k8s/tanka/gen-golden k8s/tanka/diff"
105+
@echo

0 commit comments

Comments
 (0)