diff --git a/{{ cookiecutter.slug }}/class/defaults.yml b/{{ cookiecutter.slug }}/class/defaults.yml index 82ac98a..3faed2d 100644 --- a/{{ cookiecutter.slug }}/class/defaults.yml +++ b/{{ cookiecutter.slug }}/class/defaults.yml @@ -3,3 +3,6 @@ parameters: =_metadata: multi_tenant: true namespace: syn-{{ cookiecutter.slug }} + createNamespace: false + namespaceLabels: {} + namespaceAnnotations: {} diff --git a/{{ cookiecutter.slug }}/component/main.jsonnet b/{{ cookiecutter.slug }}/component/main.jsonnet index 6e6f704..d1cf697 100644 --- a/{{ cookiecutter.slug }}/component/main.jsonnet +++ b/{{ cookiecutter.slug }}/component/main.jsonnet @@ -4,7 +4,23 @@ local kube = import 'lib/kube.libjsonnet'; local inv = kap.inventory(); // The hiera parameters for the component local params = inv.parameters.{{ cookiecutter.parameter_key }}; +local instance = inv.parameters._instance; // Define outputs below { + [if params.createNamespace then '00_namespace']: kube.Namespace(params.namespace) + { + metadata+: { + labels+: + { + component: '{{ cookiecutter.slug }}', + instance: instance, + } + + params.namespaceLabels, + annotations+: + { + 'syn.tools/source': '{{ cookiecutter.github_url }}', + } + + params.namespaceAnnotations, + }, + }, } diff --git a/{{ cookiecutter.slug }}/docs/modules/ROOT/pages/references/parameters.adoc b/{{ cookiecutter.slug }}/docs/modules/ROOT/pages/references/parameters.adoc index 98c2187..a641305 100644 --- a/{{ cookiecutter.slug }}/docs/modules/ROOT/pages/references/parameters.adoc +++ b/{{ cookiecutter.slug }}/docs/modules/ROOT/pages/references/parameters.adoc @@ -10,10 +10,38 @@ default:: `syn-{{ cookiecutter.slug }}` The namespace in which to deploy this component. +== `createNamespace` + +[horizontal] +type:: boolean +default:: `true` + +Whether to create the namespace. + +== `namespaceLabels` + +[horizontal] +type:: dict +default:: `{}` + +Labels to add to the namespace. + +== `namespaceAnnotations` + +[horizontal] +type:: dict +default:: `{}` + +Annotations to add to the namespace. == Example [source,yaml] ---- namespace: example-namespace +createNamespace: true +namespaceLabels: + example.com/label: value +namespaceAnnotations: + example.com/annotation: value ----