Kubernetes items

Support for Kubernetes is experimental at this time. Backwards-incompatible changes may happen at any time.

See also: Guide to Kubernetes

Manage resources in Kubernetes clusters.

k8s_namespaces = {
     "my-app": {
        'manifest': {
            'apiVersion': "v1",
     "my-previous-app": {'delete': True},

k8s_deployments = {
    "my-app/my-deployment": {
        'manifest': {

Note that the names of all items in a namespace must be prefixed with the name of their namespace and a forward slash /. Resource items will automatically depend on their namespace if you defined it.

Resource types

Resource typeBundle attribute
Cluster Rolek8s_clusterroles
Cluster Role Bindingk8s_clusterrolebindings
Config Mapk8s_configmaps
Cron Jobk8s_cronjobs
Custom Resource Definitionk8s_crd
Daemon Setk8s_daemonsets
Network Policyk8s_networkpolicies
Persistent Volume Claimk8s_pvc
Role Bindingk8s_rolebindings
Service Accountk8s_serviceaccounts

You can define Custom Resources like this:

k8s_crd = {
    "custom-thing": {
        'manifest': {
            'apiVersion': "apiextensions.k8s.io/v1beta1",
            'spec': {
                'names': {
                    'kind': "CustomThing",

k8s_raw = {
    "foo/CustomThing/baz": {
        'manifest': {
            'apiVersion': "example.com/v1",

The special k8s_raw items can also be used to create resources that BundleWrap does not support natively:

k8s_raw = {
    "foo/HorizontalPodAutoscaler/baz": {
        'manifest': {
            'apiVersion': "autoscaling/v2beta1",

Resources outside any namespace can be created with k8s_raw by omitting the namespace in the item name (so that the name starts with /).

Attribute reference

See also: The list of generic builtin item attributes


Only used with Mako and Jinja2 manifests (see manifest_processing below). The values of this dictionary will be available from within the template as variables named after the respective keys.


Set this to True to have the resource removed.


The resource definition (as defined in the Kubernetes API) formatted as a Python dictionary (will be converted to JSON and passed to kubectl apply). Mutually exclusive with manifest_file.


Filename of the resource definition relative to the manifests subdirectory of your bundle. Filenames must end in .yaml, .yml, or .json to indicate file format. Mutually exclusive with manifest.


Set this to jinja2 or mako if you want to use a template engine to process your manifest_file. Defaults to None.