Skip to main content
Kubernetes manifest components allow you to deploy raw Kubernetes resources using YAML manifests.

Configuring a Kubernetes Manifest component

To configure a Kubernetes manifest component, specify a namespace and the manifest files to deploy.
components/kubernetes_manifest.toml

Multiple Resources in a Single Manifest

Kubernetes manifest components support multiple resources separated by the standard YAML document separator ---:
components/deployment.yaml

Using Nuon Context Variables

Kubernetes manifest components support Nuon’s templating system, allowing you to access variables and outputs from other components:
components/configmap.yaml

Common Use Cases

Deploying with Custom Images

components/app-deployment.yaml

Creating Ingress Resources

components/ingress.yaml

Using AWS Load Balancer Controller

components/nlb-service.yaml

Kustomize

In addition to inline manifests, Kubernetes manifest components can be sourced from a Kustomize overlay in a Git repo. Use this when you want to assemble your manifests from a base + overlays, layer in patches, or share manifests across multiple components.

Pointing a component at a Kustomize overlay

A Kustomize-backed component references the repo holding the overlay (either public_repo for a public GitHub repo, or connected_repo for a Nuon-connected private repo) and a kustomize.path relative to the source root.
components/kustomize-demo.toml
The directory at directory must contain a standard kustomization.yaml. Nuon runs kustomize build on it during deploy.
gke-simple/src/components/kustomize-demo/kustomization.yaml

State interpolation in Kustomize trees

Kustomize-backed components support the same {{.nuon.*}} template variables as inline manifests. Placeholders are rendered on the runner, against the live install state, after kustomize build produces the final manifest. This means you can reference install IDs, app metadata, install stack outputs, and other component outputs directly from any YAML file inside your Kustomize overlay.
gke-simple/src/components/kustomize-demo/configmap.yaml
After a deploy, the rendered ConfigMap on the cluster will have the placeholders replaced with the install’s actual values — for example, install_id: inl..., project_id: nuon-gcp-support.
Kustomize-backed manifests are interpolated on the runner, not in the planner. This keeps the Temporal workflow payload small even for large Kustomize trees. Inline manifests, by contrast, are still rendered in the planner.

Nuon Managed Sandbox Components

The aws-eks-sandbox managed Sandbox ships with standard components that your Kubernetes manifests can leverage: The Sandboxes are open source and can be customized, if these components do not work for your application.

Best Practices

Namespace Management

Always specify namespaces explicitly in your manifests. If not provided, it defaults to the namespace specified in the config. If both the component configuration and manifest are missing namespace specifications, the component deployment will fail:
components/namespace.yaml

Kubernetes manifest components are processed in the order they appear in your repository. If you have dependencies between resources, ensure they are ordered appropriately or use proper Kubernetes resource dependencies.