Sha256: aeb795e356cc7b7d346cc845888100e6685148273f425b6da8aebc31f0ce3301

Contents?: true

Size: 1.77 KB

Versions: 16

Compression:

Stored size: 1.77 KB

Contents

---
title: Advanced Variables
nav_text: Advanced
categories: variables
---

Basic variables layering should provides enough flexibility and is generally recommended. This page  covers more advanced variables layering.

## Advanced Layering Example

Here's a more complex structure to demonstrate advanced layering.

    .kubes/variables
    ├── base
    │   └── deployment.rb
    ├── base.rb
    ├── dev.rb
    ├── prod.rb
    └── web
        ├── deployment
        │   ├── dev.rb
        │   └── prod.rb
        └── deployment.rb

## Concrete Example

Let's look at a concrete web/deployment.yaml.

Here are the files that get layered when `KUBES_ENV=dev`:

    .kubes/variables/base.rb
    .kubes/variables/dev.rb
    .kubes/variables/base/deployment.rb
    .kubes/variables/web/deployment.rb
    .kubes/variables/web/deployment/dev.rb

And when `KUBES_ENV=prod`:

    .kubes/variables/base.rb
    .kubes/variables/prod.rb
    .kubes/variables/base/deployment.rb
    .kubes/variables/web/deployment.rb
    .kubes/variables/web/deployment/prod.rb

With advanced layering you can target a specific role and kind. So variables are only scoped to the resources you want.

## Full Layering Table

Here's a table showing the the full layering.

Folder/Pattern    | Example
------------------|--------------------------------------------
base.rb           | base.rb
ENV.rb            | dev.rb
base/all.rb       | base/all.rb
base/all/ENV.rb   | base/all/dev.rb
base/KIND.rb      | base/deployment.rb
base/KIND/base.rb | base/deployment/base.rb
base/KIND/ENV.rb  | base/deployment/dev.rb
ROLE/KIND.rb      | web/deployment.rb
ROLE/KIND/base.rb | web/deployment/base.rb
ROLE/KIND/ENV.rb  | web/deployment/dev.rb

{% include variables/generator.md %}

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
kubes-0.7.10 docs/_docs/variables/advanced.md
kubes-0.7.9 docs/_docs/variables/advanced.md
kubes-0.7.8 docs/_docs/variables/advanced.md
kubes-0.7.7 docs/_docs/variables/advanced.md
kubes-0.7.6 docs/_docs/variables/advanced.md
kubes-0.7.5 docs/_docs/variables/advanced.md
kubes-0.7.4 docs/_docs/variables/advanced.md
kubes-0.7.3 docs/_docs/variables/advanced.md
kubes-0.7.2 docs/_docs/variables/advanced.md
kubes-0.7.1 docs/_docs/variables/advanced.md
kubes-0.7.0 docs/_docs/variables/advanced.md
kubes-0.6.8 docs/_docs/variables/advanced.md
kubes-0.6.7 docs/_docs/variables/advanced.md
kubes-0.6.6 docs/_docs/variables/advanced.md
kubes-0.6.5 docs/_docs/variables/advanced.md
kubes-0.6.4 docs/_docs/variables/advanced.md