diff --git a/blog/2023-05-30-vs-helm/index.md b/blog/2023-05-30-vs-helm/index.md index ee0f68936..0965c9c63 100644 --- a/blog/2023-05-30-vs-helm/index.md +++ b/blog/2023-05-30-vs-helm/index.md @@ -328,13 +328,13 @@ spec = { template.metadata.labels = metadata.labels template.spec.containers = [ { - name = name + name = n image = container.image.name command = container.command command = container.args env = container.env resources = container.resources - } for name, container in option("containers") or {} + } for n, container in option("containers") or {} ] } EOF diff --git a/examples/gitops/Makefile b/examples/gitops/Makefile new file mode 100644 index 000000000..9ff2141ec --- /dev/null +++ b/examples/gitops/Makefile @@ -0,0 +1,2 @@ +test: + make -C config diff --git a/examples/gitops/config/Makefile b/examples/gitops/config/Makefile new file mode 100644 index 000000000..f191035bc --- /dev/null +++ b/examples/gitops/config/Makefile @@ -0,0 +1,3 @@ +test: + kcl run + kcl test diff --git a/examples/gitops/config/kubernetes_render.k b/examples/gitops/config/kubernetes_render.k index 7c6b5c319..badad45f5 100644 --- a/examples/gitops/config/kubernetes_render.k +++ b/examples/gitops/config/kubernetes_render.k @@ -16,7 +16,7 @@ kubernetesRender = lambda a: app.App { template.metadata.labels = a.labels template.spec.containers = [ { - name = name + name = n image = c.image command = c.command args = c.args @@ -24,7 +24,7 @@ kubernetesRender = lambda a: app.App { volumeMounts = c.volumes resources: c.resources ports = c.ports - } for name, c in a.containers + } for n, c in a.containers ] } } diff --git a/examples/gitops/config/kubernetes_render_test.k b/examples/gitops/config/kubernetes_render_test.k new file mode 100644 index 000000000..3e202fb75 --- /dev/null +++ b/examples/gitops/config/kubernetes_render_test.k @@ -0,0 +1,19 @@ +import manifests + +import app + +# Convert the `App` model into Kubernetes Deployment and Service Manifests +test_kubernetesRender = lambda { + a = app.App { + name = "app" + containers.ngnix = { + image = "ngnix" + ports = [{containerPort = 80}] + } + service.ports = [{ port = 80 }] + } + resources = kubernetesRender(a) + assert resources[0].kind == "Deployment" + assert resources[1].kind == "Service" + assert resources[0].spec.template.spec.containers[0]["name"] == "ngnix", "expected {}, got {}".format("", resources[0].spec.template.spec.containers[0]["name"]) +} diff --git a/examples/test.sh b/examples/test.sh index f4ecbec91..068fbb688 100755 --- a/examples/test.sh +++ b/examples/test.sh @@ -13,7 +13,7 @@ pwd=$( pwd ) -for path in "configuration" "validation" "abstraction" "definition" "mutation" "data-integration" "automation" "package-management" "kubernetes" "codelab"; do +for path in "configuration" "validation" "abstraction" "definition" "gitops" "mutation" "data-integration" "automation" "package-management" "kubernetes" "codelab"; do echo "\033[1mTesting $path ...\033[0m" if (cd $pwd/$path && make test); then echo "\033[32mTest SUCCESSED - $path\033[0m\n" diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2023-05-30-vs-helm/index.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2023-05-30-vs-helm/index.md index e19473bdb..31d90c91b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/2023-05-30-vs-helm/index.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2023-05-30-vs-helm/index.md @@ -324,13 +324,13 @@ spec = { template.metadata.labels = metadata.labels template.spec.containers = [ { - name = name + name = n image = container.image.name command = container.command command = container.args env = container.env resources = container.resources - } for name, container in option("containers") or {} + } for n, container in option("containers") or {} ] } EOF