kubes 0.7.10 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/docs/Gemfile +1 -0
- data/docs/_config.yml +6 -0
- data/docs/_docs/config/app-overrides.md +7 -0
- data/docs/_docs/config/boot.md +46 -0
- data/docs/_docs/config/env.md +29 -2
- data/docs/_docs/config/reference.md +2 -2
- data/docs/_docs/config/skip.md +22 -0
- data/docs/_docs/helpers/aws/secret_data.md +55 -0
- data/docs/_docs/helpers/builtin/config-map-files.md +63 -0
- data/docs/_docs/helpers/builtin.md +16 -0
- data/docs/_docs/helpers/google/secret_data.md +55 -0
- data/docs/_docs/helpers.md +3 -12
- data/docs/{_includes/intro/install.md → _docs/install/dependencies.md} +4 -5
- data/docs/_docs/install/gem/custom-version.md +70 -0
- data/docs/_docs/install/gem.md +6 -0
- data/docs/_docs/install/standalone/centos.md +70 -0
- data/docs/_docs/install/standalone/details/permissions.md +44 -0
- data/docs/_docs/install/standalone/details/uninstall.md +16 -0
- data/docs/_docs/install/standalone/details.md +20 -0
- data/docs/_docs/install/standalone/macosx.md +45 -0
- data/docs/_docs/install/standalone/ubuntu.md +48 -0
- data/docs/_docs/install/standalone.md +43 -0
- data/docs/_docs/install.md +8 -0
- data/docs/_docs/learn/dsl/install.md +1 -1
- data/docs/_docs/learn/yaml/install.md +1 -1
- data/docs/_docs/patterns/central-deployer.md +38 -0
- data/docs/_docs/variables/advanced.md +32 -1
- data/docs/_docs/variables/basic.md +1 -0
- data/docs/_docs/vs/custom.md +2 -0
- data/docs/_docs/vs/helm.md +2 -0
- data/docs/_docs/vs/kustomize.md +2 -0
- data/docs/_docs/vs.md +2 -0
- data/docs/_docs/yaml/erb-comment.md +89 -0
- data/docs/_includes/config/app-overrides-cheatsheet.md +44 -0
- data/docs/_includes/content.html +1 -1
- data/docs/_includes/install/gem.md +7 -0
- data/docs/_includes/install/wrapper.md +9 -0
- data/docs/_includes/layering/layers.md +3 -0
- data/docs/_includes/sidebar.html +38 -4
- data/docs/_includes/videos/learn/vs.md +4 -0
- data/docs/_includes/videos/learn.md +12 -0
- data/docs/_includes/videos/youtube.md +1 -0
- data/docs/_layouts/default.html +1 -0
- data/docs/_sass/theme.scss +11 -0
- data/docs/js/scripts.js +7 -0
- data/kubes.gemspec +2 -2
- data/lib/kubes/booter.rb +26 -0
- data/lib/kubes/cli/init.rb +0 -1
- data/lib/kubes/command.rb +1 -1
- data/lib/kubes/compiler/layering.rb +9 -0
- data/lib/kubes/compiler/shared/helpers/config_map_helper.rb +35 -0
- data/lib/kubes/compiler/shared/helpers/docker_helper.rb +23 -0
- data/lib/kubes/compiler/shared/helpers/extra_helper.rb +12 -0
- data/lib/kubes/compiler/shared/helpers/secret_helper.rb +29 -0
- data/lib/kubes/compiler/shared/helpers.rb +4 -37
- data/lib/kubes/compiler/shared/runtime_helpers.rb +7 -0
- data/lib/kubes/compiler/strategy/erb/comment.rb +46 -0
- data/lib/kubes/compiler/strategy/erb.rb +4 -0
- data/lib/kubes/compiler/strategy/result.rb +13 -1
- data/lib/kubes/compiler.rb +2 -0
- data/lib/kubes/config.rb +6 -2
- data/lib/kubes/core.rb +4 -0
- data/lib/kubes/kubectl/ordering.rb +9 -6
- data/lib/kubes/version.rb +1 -1
- data/lib/kubes.rb +2 -0
- metadata +40 -10
- data/docs/_docs/intro/install.md +0 -6
| @@ -0,0 +1,45 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            title: "Install: Mac OSX"
         | 
| 3 | 
            +
            nav_text: MacOSX
         | 
| 4 | 
            +
            category: standalone
         | 
| 5 | 
            +
            order: 1
         | 
| 6 | 
            +
            ---
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            This page shows you how to install kubes on Mac OSX.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            Here's a "Mac OSX Homebrew Install" Video:
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ## Homebrew
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            You can install kubes via homebrew.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            Install
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                brew tap boltops-tools/software
         | 
| 19 | 
            +
                brew install kubes
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            Upgrade
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                brew update
         | 
| 24 | 
            +
                brew install kubes
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            Uninstall
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                brew uninstall kubes
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            Cleanup
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                rm -rf /opt/kubes
         | 
| 33 | 
            +
                grep -l /opt/kubes /usr/local/bin/* | xargs rm -f
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            {% include install/wrapper.md %}
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            ## DMG
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            You can also download the dmg and install with the Mac OSX GUI installer.
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            Download link: [kubes DMG](https://tap.boltops.com/packages/kubes/kubes-latest.dmg)
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            You can check [kubes-latest.dmg.metadata.json](https://tap.boltops.com/packages/kubes/kubes-latest.dmg.metadata.json) to verify the package checksum. Here's the checksum command.
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                shasum -a 256 kubes-latest.dmg
         | 
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            title: "Install: Ubuntu/Debian"
         | 
| 3 | 
            +
            nav_text: Ubuntu
         | 
| 4 | 
            +
            category: standalone
         | 
| 5 | 
            +
            order: 3
         | 
| 6 | 
            +
            ---
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            This page shows you how to install kubes on Ubuntu and Debian based linux systems that use the apt package manager.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            ## Ubuntu/Debian: apt-get install
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            Configure repo
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                sudo su
         | 
| 15 | 
            +
                echo "deb https://apt.boltops.com stable main" > /etc/apt/sources.list.d/boltops.list
         | 
| 16 | 
            +
                curl -s https://apt.boltops.com/boltops-key.public | apt-key add -
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            Install
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                apt-get update
         | 
| 21 | 
            +
                apt-get install -y kubes
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            Upgrade
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                apt-get install -y kubes
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            Remove
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                apt-get remove -y kubes
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            {% include install/wrapper.md %}
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            ## Deb Install
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            You can also download the deb package and install it directly. Here are the commands:
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            Install
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                wget https://apt.boltops.com/packages/kubes/kubes-latest.deb
         | 
| 40 | 
            +
                dpkg -i kubes-latest.deb
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            You can check [kubes-latest.deb.metadata.json](https://apt.boltops.com/packages/kubes/kubes-latest.deb.metadata.json) to verify the package checksum. Here's the checksum command.
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                sha256sum kubes-latest.deb
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            Uninstall
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                dpkg -r kubes-latest.deb
         | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            title: Standalone Package Installation
         | 
| 3 | 
            +
            ---
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            You can install Kubes as a standalone package.  The nice thing about this approach is that it is easy. You don't have to have Ruby installed. You don’t have to worry about compatible Ruby versions, gems, or conflicting system packages.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Kubes provides the pre-built binaries. Other tools such as [vagrant](https://www.vagrantup.com/), written in ruby, and the [aws cli](https://aws.amazon.com/cli/), written in python, also work the same way.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Important: If you're using rvm or rbenv and already have Ruby installed, you should [install kubes as a gem]({% link _docs/install/gem.md %}). Otherwise, different gem dependencies from the two installations can be used and cause all kinds of trouble.
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            Below are quickstart instructions for different OSes.
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ## Mac OSX
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                brew tap boltops-tools/software
         | 
| 16 | 
            +
                brew install kubes
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            More info on [Mac OSX Install]({% link _docs/install/standalone/macosx.md %})
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            ## CentOS/RedHat/Fedora
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                sudo su
         | 
| 23 | 
            +
                curl -so /etc/yum.repos.d/boltops.repo https://yum.boltops.com/boltops.repo
         | 
| 24 | 
            +
                rpm --import https://yum.boltops.com/boltops-key.public
         | 
| 25 | 
            +
                yum install -y kubes
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            More info on [CentOS Install]({% link _docs/install/standalone/centos.md %})
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ## Ubuntu/Debian
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                sudo su
         | 
| 32 | 
            +
                echo "deb https://apt.boltops.com stable main" > /etc/apt/sources.list.d/boltops.list
         | 
| 33 | 
            +
                curl -s https://apt.boltops.com/boltops-key.public | apt-key add -
         | 
| 34 | 
            +
                apt-get update
         | 
| 35 | 
            +
                apt-get install -y kubes
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            More info on [Ubuntu Install]({% link _docs/install/standalone/ubuntu.md %})
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            {% include install/wrapper.md %}
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            ## How It Works
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            The standalone installer packages are built within a few minutes of the kubes gem release. Here are also details on how the standalone installer works: [Standalone Details]({% link _docs/install/standalone/details.md %}).
         | 
| @@ -0,0 +1,8 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            title: Installation
         | 
| 3 | 
            +
            ---
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Here are the ways to install Kubes.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            1. [Gem]({% link _docs/install/gem.md %}): This is a great way if you already have Ruby on your system.
         | 
| 8 | 
            +
            2. [Standalone Installer]({% link _docs/install/standalone.md %}): This is a great way if you don't yet have Ruby installed, and want a quick and easy way to install Kubes. There are installers for [Mac OSX]({% link _docs/install/standalone/macosx.md %}), [CentOS]({% link _docs/install/standalone/centos.md %}), [Ubuntu]({% link _docs/install/standalone/ubuntu.md %}), etc.
         | 
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            title: Central Deployer Pattern
         | 
| 3 | 
            +
            nav_text: Central Deployer
         | 
| 4 | 
            +
            categories: patterns
         | 
| 5 | 
            +
            ---
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Kubes can be use as either an app-centric or ops-centric tool.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            * **app-centric**: Each app repo has it's own `.kubes` settings files. This is useful if your applications are very differently setup.
         | 
| 10 | 
            +
            * **ops-centric**: Each app repo has pretty much the same `.kubes` settings files. This is useful if your applications are very similarly set up.
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ## Setup
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            With an ops-centric approach, you use the same `.kubes` settings files for the app repos you want to use. For example:
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                https://github.com/org/app1
         | 
| 17 | 
            +
                https://github.com/org/app2
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            You then also have a
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                https://github.com/org/.kubes
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            You can simply copy the `.kubes` folder into the app repo folder or even add the `repo/.kubes` as a submodule.
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            You'll end up with something like this:
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                app1/.kubes
         | 
| 28 | 
            +
                app2/.kubes
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            Then to deploy different app level settings.
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            {% include config/app-overrides-cheatsheet.md %}
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            Also check out: [App Overrides Docs]({% link _docs/config/app-overrides.md %}).
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            The central deployer approach is removes duplication of the kubes config files between projects. Leveraging app-level overrides gives provides a great degree of control.
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            If the settings start to diverge too much, then it probably makes sense to use separate .kubes files in that app specific repo.
         | 
| @@ -2,6 +2,7 @@ | |
| 2 2 | 
             
            title: Advanced Variables
         | 
| 3 3 | 
             
            nav_text: Advanced
         | 
| 4 4 | 
             
            categories: variables
         | 
| 5 | 
            +
            order: 2
         | 
| 5 6 | 
             
            ---
         | 
| 6 7 |  | 
| 7 8 | 
             
            Basic variables layering should provides enough flexibility and is generally recommended. This page  covers more advanced variables layering.
         | 
| @@ -44,12 +45,26 @@ And when `KUBES_ENV=prod`: | |
| 44 45 |  | 
| 45 46 | 
             
            With advanced layering you can target a specific role and kind. So variables are only scoped to the resources you want.
         | 
| 46 47 |  | 
| 48 | 
            +
            ## App-Level Overrides
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            If KUBES_APP is set, then app level layer overrides will also be processed. Example:
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                KUBES_APP=app1 kubes deploy
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            Here's an example with some of the additional files that get layered:
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                .kubes/variables/app1.rb
         | 
| 57 | 
            +
                .kubes/variables/app1/base.rb
         | 
| 58 | 
            +
                .kubes/variables/app1/dev.rb
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            This is useful if you're using kubes as part of a central deployer pattern. For the full list of layers refer to the table below:
         | 
| 61 | 
            +
             | 
| 47 62 | 
             
            ## Full Layering Table
         | 
| 48 63 |  | 
| 49 64 | 
             
            Here's a table showing the the full layering.
         | 
| 50 65 |  | 
| 51 66 | 
             
            Folder/Pattern    | Example
         | 
| 52 | 
            -
             | 
| 67 | 
            +
            ------------------|----------------------------
         | 
| 53 68 | 
             
            base.rb           | base.rb
         | 
| 54 69 | 
             
            ENV.rb            | dev.rb
         | 
| 55 70 | 
             
            base/all.rb       | base/all.rb
         | 
| @@ -61,4 +76,20 @@ ROLE/KIND.rb      | web/deployment.rb | |
| 61 76 | 
             
            ROLE/KIND/base.rb | web/deployment/base.rb
         | 
| 62 77 | 
             
            ROLE/KIND/ENV.rb  | web/deployment/dev.rb
         | 
| 63 78 |  | 
| 79 | 
            +
            If KUBES_APP is set then these additional layers are also processed:
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            Folder/Pattern    | Example
         | 
| 82 | 
            +
            ------------------|----------------------------
         | 
| 83 | 
            +
            APP.rb           | app1.rb
         | 
| 84 | 
            +
            APP/base.rb           | app1/base.rb
         | 
| 85 | 
            +
            APP/ENV.rb            | app1/dev.rb
         | 
| 86 | 
            +
            APP/base/all.rb       | app1/base/all.rb
         | 
| 87 | 
            +
            APP/base/all/ENV.rb   | app1/base/all/dev.rb
         | 
| 88 | 
            +
            APP/base/KIND.rb      | app1/base/deployment.rb
         | 
| 89 | 
            +
            APP/base/KIND/base.rb | app1/base/deployment/base.rb
         | 
| 90 | 
            +
            APP/base/KIND/ENV.rb  | app1/base/deployment/dev.rb
         | 
| 91 | 
            +
            APP/ROLE/KIND.rb      | app1/web/deployment.rb
         | 
| 92 | 
            +
            APP/ROLE/KIND/base.rb | app1/web/deployment/base.rb
         | 
| 93 | 
            +
            APP/ROLE/KIND/ENV.rb  | app1/web/deployment/dev.rb
         | 
| 94 | 
            +
             | 
| 64 95 | 
             
            {% include variables/generator.md %}
         | 
    
        data/docs/_docs/vs/custom.md
    CHANGED
    
    | @@ -4,6 +4,8 @@ nav_text: Custom Solutions | |
| 4 4 | 
             
            categories: vs
         | 
| 5 5 | 
             
            ---
         | 
| 6 6 |  | 
| 7 | 
            +
            {% include videos/learn/vs.md %}
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
            Kubernetes provides a great platform to run and manage Docker containers. The `kubectl` command is usually how you interact with a Kubernetes cluster.  It does its job well and is quite a powerful tool.
         | 
| 8 10 |  | 
| 9 11 | 
             
            {% include vs/article.md %}
         | 
    
        data/docs/_docs/vs/helm.md
    CHANGED
    
    | @@ -4,6 +4,8 @@ nav_text: Helm | |
| 4 4 | 
             
            categories: vs
         | 
| 5 5 | 
             
            ---
         | 
| 6 6 |  | 
| 7 | 
            +
            {% include videos/learn/vs.md %}
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
            Kubes and Helm are quite different.  Helm is a package manager tool. In contrast, Kubernetes is focused on deploying your application. While you can use package manager tools like Helm to deploy your application, application-focused deploy tools are better for the job. For example, apt-get and yum are also package manager tools. But few companies use `apt-get install` or `yum install` to deploy their application code. Instead, people usually use application-specific tools to deploy their web app.
         | 
| 8 10 |  | 
| 9 11 | 
             
            {% include vs/article.md %}
         | 
    
        data/docs/_docs/vs/kustomize.md
    CHANGED
    
    | @@ -4,6 +4,8 @@ nav_text: Kustomize | |
| 4 4 | 
             
            categories: vs
         | 
| 5 5 | 
             
            ---
         | 
| 6 6 |  | 
| 7 | 
            +
            {% include videos/learn/vs.md %}
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
            Though both Kubes and Kustomize build YAML files, they are quite different beasts. Kustomize is more like a `kubectl` feature that decorates YAML. Kubes is more like a tool. Kubes also builds YAML, but it also provides additional features.
         | 
| 8 10 |  | 
| 9 11 | 
             
            Kustomize lets you customize your Kubernetes YAML files with additional `kustomization.yaml` files. The kustomization.yaml files contain configs that tell `kubectl` how to decorate existing Kubernetes YAML files in a template-free way.
         | 
    
        data/docs/_docs/vs.md
    CHANGED
    
    
| @@ -0,0 +1,89 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            title: ERB Comment Syntax PreProcessor
         | 
| 3 | 
            +
            ---
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Kubes allows you build kubernetes resources by compiling down `.kubes/resources` files with ERB.  This is a powerful ability, but it can get in the way of IDE kubernetes autocompletion tools.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ## Pre-Processing Before ERB
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            To work with IDE kubernetes autocompletion tools, kubes supports a lighter ERB comment-based syntax. It looks like this:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            .kubes/resources/web/service.yaml
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ```yaml
         | 
| 14 | 
            +
            apiVersion: v1
         | 
| 15 | 
            +
            kind: Service
         | 
| 16 | 
            +
            metadata:
         | 
| 17 | 
            +
              name: web
         | 
| 18 | 
            +
              labels:
         | 
| 19 | 
            +
                name: web
         | 
| 20 | 
            +
            #ERB if @role_label
         | 
| 21 | 
            +
                role: #ERB= @role_label
         | 
| 22 | 
            +
            #ERB end
         | 
| 23 | 
            +
            spec:
         | 
| 24 | 
            +
              ports:
         | 
| 25 | 
            +
              - port: 80
         | 
| 26 | 
            +
                protocol: TCP
         | 
| 27 | 
            +
                targetPort: <%= dockerfile_port %>
         | 
| 28 | 
            +
              selector:
         | 
| 29 | 
            +
                role: web
         | 
| 30 | 
            +
              type: ClusterIP
         | 
| 31 | 
            +
            ```
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            This allows IDE kubernetes autocompletion plugins and tools to work because the `.kubes/resources/web/service.yaml` source code itself is perfectly valid YAML.
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            The `#ERB` comments are essentially replaced by `<% ... %>` tags before ERB processing happens. Example:
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            .kubes/resources/web/service.yaml.erb
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            ```yaml
         | 
| 40 | 
            +
            apiVersion: v1
         | 
| 41 | 
            +
            kind: Service
         | 
| 42 | 
            +
            metadata:
         | 
| 43 | 
            +
              name: web
         | 
| 44 | 
            +
              labels:
         | 
| 45 | 
            +
                name: web
         | 
| 46 | 
            +
            <% if @role_label %>
         | 
| 47 | 
            +
                role: <%= @role_label %>
         | 
| 48 | 
            +
            <% end %>
         | 
| 49 | 
            +
            spec:
         | 
| 50 | 
            +
              ports:
         | 
| 51 | 
            +
              - port: 80
         | 
| 52 | 
            +
                protocol: TCP
         | 
| 53 | 
            +
                targetPort: <%= dockerfile_port %>
         | 
| 54 | 
            +
              selector:
         | 
| 55 | 
            +
                role: web
         | 
| 56 | 
            +
              type: ClusterIP
         | 
| 57 | 
            +
            ```
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            If you need to keep around the generated `.erb` file for debugging, use the `KUBES_KEEP_ERB` env var. Example:
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                $ KUBES_KEEP_ERB=1 kubes compile
         | 
| 62 | 
            +
                .kubes/resources/web/service.yaml.erb  # kept around
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            ## Multiple Line ERB Comment Syntax
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            The ERB Comment syntax works because kubes simply replaces each line with actual ERB. For multiple line ERB syntax:
         | 
| 67 | 
            +
             | 
| 68 | 
            +
            .kubes/resources/web/service.yaml
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            ```yaml
         | 
| 71 | 
            +
            #ERB if Kubes.env == "dev"
         | 
| 72 | 
            +
            #ERB   env_label = "development"
         | 
| 73 | 
            +
            #ERB end
         | 
| 74 | 
            +
            apiVersion: v1
         | 
| 75 | 
            +
            kind: Service
         | 
| 76 | 
            +
            metadata:
         | 
| 77 | 
            +
              name: web
         | 
| 78 | 
            +
              labels:
         | 
| 79 | 
            +
                name: web
         | 
| 80 | 
            +
                env: #ERB= env_label
         | 
| 81 | 
            +
            spec:
         | 
| 82 | 
            +
              ports:
         | 
| 83 | 
            +
              - port: 80
         | 
| 84 | 
            +
                protocol: TCP
         | 
| 85 | 
            +
                targetPort: <%= dockerfile_port %>
         | 
| 86 | 
            +
              selector:
         | 
| 87 | 
            +
                role: web
         | 
| 88 | 
            +
              type: ClusterIP
         | 
| 89 | 
            +
            ```
         | 
| @@ -0,0 +1,44 @@ | |
| 1 | 
            +
            ## App-Level Specific Settings
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            You can override all the different settings at the app-level when KUBES_APP is set.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            For app1:
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                cd app1
         | 
| 8 | 
            +
                KUBES_APP=app1 kubes deploy
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            And for app2:
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                cd app2
         | 
| 13 | 
            +
                KUBES_APP=app2 kubes deploy
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ## Config Env
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Override `config/app.rb` with app-level settings like so:
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                .kubes/config/env/app1/base.rb
         | 
| 20 | 
            +
                .kubes/config/env/app1/dev.rb
         | 
| 21 | 
            +
                .kubes/config/env/app1/prod.rb
         | 
| 22 | 
            +
                .kubes/config/env/app2/base.rb
         | 
| 23 | 
            +
                .kubes/config/env/app2/dev.rb
         | 
| 24 | 
            +
                .kubes/config/env/app2/prod.rb
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            ## Variables
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            Override `.kubes/variables/base.rb`, `.kubes/variables/dev.rb` etc like so:
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                .kubes/variables/app1/base.rb
         | 
| 31 | 
            +
                .kubes/variables/app1/dev.rb
         | 
| 32 | 
            +
                .kubes/variables/app1/prod.rb
         | 
| 33 | 
            +
                .kubes/variables/app2/base.rb
         | 
| 34 | 
            +
                .kubes/variables/app2/dev.rb
         | 
| 35 | 
            +
                .kubes/variables/app2/prod.rb
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            ## Resources
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            Override resources like so:
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                .kubes/resources/shared/config_map/app1.yaml
         | 
| 42 | 
            +
                .kubes/resources/shared/config_map/app2.yaml
         | 
| 43 | 
            +
                .kubes/resources/shared/secret/app1.yaml
         | 
| 44 | 
            +
                .kubes/resources/shared/secret/app2.yaml
         | 
    
        data/docs/_includes/content.html
    CHANGED
    
    
| @@ -0,0 +1,9 @@ | |
| 1 | 
            +
            ## Generated Wrapper
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            The standalone installer creates a wrapper script in `/usr/local/bin`.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                /usr/local/bin/kubes
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Most users have `/usr/local/bin` configured in their PATH. So this wrapper should work immediately.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Important: If you have a wrapper in `/usr/local/bin` already, the installer will overwrite it.
         | 
| @@ -46,6 +46,9 @@ pre | ROLE/all.{{ include.ext }}        | web/all.{{ include.ext }} | |
| 46 46 | 
             
            main | ROLE/KIND.{{ include.ext }}      | web/deployment.{{ include.ext }}
         | 
| 47 47 | 
             
            post | ROLE/KIND/base.{{ include.ext }} | web/deployment/base.{{ include.ext }}
         | 
| 48 48 | 
             
            post | ROLE/KIND/ENV.{{ include.ext }}  | web/deployment/dev.{{ include.ext }}
         | 
| 49 | 
            +
            post | ROLE/KIND/APP.{{ include.ext }} | web/deployment/app1.{{ include.ext }}
         | 
| 50 | 
            +
            post | ROLE/KIND/APP/base.{{ include.ext }} | web/deployment/app1/base.{{ include.ext }}
         | 
| 51 | 
            +
            post | ROLE/KIND/APP/ENV.{{ include.ext }}  | web/deployment/app1/dev.{{ include.ext }}
         | 
| 49 52 |  | 
| 50 53 | 
             
            ## Real-World Uses
         | 
| 51 54 |  | 
    
        data/docs/_includes/sidebar.html
    CHANGED
    
    | @@ -49,10 +49,36 @@ | |
| 49 49 | 
             
                          <li><a href="{% link _docs/intro/ordering/custom.md %}">Custom Order</a></li>
         | 
| 50 50 | 
             
                        </ul>
         | 
| 51 51 | 
             
                      </li>
         | 
| 52 | 
            -
                      <li><a href="{% link _docs/intro/install.md %}">Install</a></li>
         | 
| 53 52 | 
             
                      <li><a href="{% link _docs/intro/docker-image.md %}">Docker Image</a></li>
         | 
| 54 53 | 
             
                    </ul>
         | 
| 55 54 | 
             
                  </li>
         | 
| 55 | 
            +
                  <li><a href="{% link _docs/install.md %}">Install</a>
         | 
| 56 | 
            +
                    <ul>
         | 
| 57 | 
            +
                      <li><a href="{% link _docs/install/gem.md %}">Gem</a>
         | 
| 58 | 
            +
                        <ul>
         | 
| 59 | 
            +
                          <li><a href="{% link _docs/install/gem/custom-version.md %}">Custom Version</a></li>
         | 
| 60 | 
            +
                        </ul>
         | 
| 61 | 
            +
                      </li>
         | 
| 62 | 
            +
                      <li><a href="{% link _docs/install/standalone.md %}">Standalone</a>
         | 
| 63 | 
            +
                        <ul>
         | 
| 64 | 
            +
                          {% assign docs = site.docs | where: "categories","standalone" | sort:"order" %}
         | 
| 65 | 
            +
                          {% for doc in docs -%}
         | 
| 66 | 
            +
                          {% if doc.nav_text == "Details" %}
         | 
| 67 | 
            +
                          <li><a href="{{ doc.url }}">{{ doc.nav_text }}</a>
         | 
| 68 | 
            +
                            <ul>
         | 
| 69 | 
            +
                              <li><a href="{% link _docs/install/standalone/details/permissions.md %}">Permissions</a></li>
         | 
| 70 | 
            +
                              <li><a href="{% link _docs/install/standalone/details/uninstall.md %}">Uninstall</a></li>
         | 
| 71 | 
            +
                            </ul>
         | 
| 72 | 
            +
                          </li>
         | 
| 73 | 
            +
                          {% else %}
         | 
| 74 | 
            +
                          <li><a href="{{ doc.url }}">{{ doc.nav_text }}</a></li>
         | 
| 75 | 
            +
                          {% endif %}
         | 
| 76 | 
            +
                          {% endfor %}
         | 
| 77 | 
            +
                        </ul>
         | 
| 78 | 
            +
                      </li>
         | 
| 79 | 
            +
                      <li><a href="{% link _docs/install/dependencies.md %}">Dependencies</a>
         | 
| 80 | 
            +
                    </ul>
         | 
| 81 | 
            +
                  </li>
         | 
| 56 82 | 
             
                  <li><a href="{% link _docs/resources.md %}">Resources</a>
         | 
| 57 83 | 
             
                    <ul>
         | 
| 58 84 | 
             
                      <li><a href="{% link _docs/resources/role.md %}">Role</a></li>
         | 
| @@ -78,10 +104,12 @@ | |
| 78 104 | 
             
                        {% endfor %}
         | 
| 79 105 | 
             
                        </ul>
         | 
| 80 106 | 
             
                      </li>
         | 
| 107 | 
            +
                      <li><a href="{% link _docs/config/boot.md %}">Boot Hooks</a></li>
         | 
| 81 108 | 
             
                      <li><a href="{% link _docs/config/docker.md %}">Docker</a></li>
         | 
| 82 109 | 
             
                      <li><a href="{% link _docs/config/env.md %}">Env</a></li>
         | 
| 83 110 | 
             
                      <li><a href="{% link _docs/config/builder.md %}">Builder</a></li>
         | 
| 84 111 | 
             
                      <li><a href="{% link _docs/config/skip.md %}">Skip Option</a></li>
         | 
| 112 | 
            +
                      <li><a href="{% link _docs/config/app-overrides.md %}">App Overrides</a></li>
         | 
| 85 113 | 
             
                      <li><a href="{% link _docs/config/reference.md %}">Reference</a></li>
         | 
| 86 114 | 
             
                    </ul>
         | 
| 87 115 | 
             
                  </li>
         | 
| @@ -90,6 +118,7 @@ | |
| 90 118 | 
             
                    <ul>
         | 
| 91 119 | 
             
                      <li><a href="{% link _docs/yaml/multiple-resources.md %}">Multiple Resources</a></li>
         | 
| 92 120 | 
             
                      <li><a href="{% link _docs/yaml/multiple-files.md %}">Multiple Files</a></li>
         | 
| 121 | 
            +
                      <li><a href="{% link _docs/yaml/erb-comment.md %}">ERB Comment Syntax</a></li>
         | 
| 93 122 | 
             
                    </ul>
         | 
| 94 123 | 
             
                  </li>
         | 
| 95 124 | 
             
                  <li><a href="{% link _docs/layering.md %}">Layering</a>
         | 
| @@ -116,7 +145,7 @@ | |
| 116 145 | 
             
                  </li>
         | 
| 117 146 | 
             
                  <li><a href="{% link _docs/variables.md %}">Variables</a>
         | 
| 118 147 | 
             
                    <ul>
         | 
| 119 | 
            -
                      {% assign docs = site.docs | where: "categories","variables" %}
         | 
| 148 | 
            +
                      {% assign docs = site.docs | where: "categories","variables" | sort:"order" %}
         | 
| 120 149 | 
             
                      {% for doc in docs -%}
         | 
| 121 150 | 
             
                        <li><a href="{{ doc.url }}">{{ doc.nav_text }}</a></li>
         | 
| 122 151 | 
             
                      {% endfor %}
         | 
| @@ -124,7 +153,11 @@ | |
| 124 153 | 
             
                  </li>
         | 
| 125 154 | 
             
                  <li><a href="{% link _docs/helpers.md %}">Helpers</a>
         | 
| 126 155 | 
             
                    <ul>
         | 
| 127 | 
            -
                      <li><a href="{% link _docs/helpers/ | 
| 156 | 
            +
                      <li><a href="{% link _docs/helpers/builtin.md %}">Built-In</a>
         | 
| 157 | 
            +
                        <ul>
         | 
| 158 | 
            +
                          <li><a href="{% link _docs/helpers/builtin/config-map-files.md %}">Config Map Files</a>
         | 
| 159 | 
            +
                        </ul>
         | 
| 160 | 
            +
                      </li>
         | 
| 128 161 | 
             
                      <li><a href="{% link _docs/helpers/aws.md %}">AWS</a>
         | 
| 129 162 | 
             
                        <ul>
         | 
| 130 163 | 
             
                          {% assign docs = site.docs | where: "categories","helpers-aws" %}
         | 
| @@ -163,6 +196,7 @@ | |
| 163 196 | 
             
                          {% endfor %}
         | 
| 164 197 | 
             
                        </ul>
         | 
| 165 198 | 
             
                      </li>
         | 
| 199 | 
            +
                      <li><a href="{% link _docs/helpers/custom.md %}">Custom</a></li>
         | 
| 166 200 | 
             
                    </ul>
         | 
| 167 201 | 
             
                  </li>
         | 
| 168 202 | 
             
                  <li><a href="{% link _docs/patterns.md %}">Patterns</a>
         | 
| @@ -210,7 +244,7 @@ | |
| 210 244 | 
             
                <h2>sidebar options:</h2>
         | 
| 211 245 | 
             
                <ul class="list-unstyled">
         | 
| 212 246 | 
             
                  <li><a href="#" id="expand-all">expand all</a></li>
         | 
| 213 | 
            -
                  <li><a href="{{ site.gh_url }}/blob/master/docs/ | 
| 247 | 
            +
                  <li><a href="{{ site.gh_url }}/blob/master/docs/" id="edit-page" target="_blank">edit page</a></li>
         | 
| 214 248 | 
             
                </ul>
         | 
| 215 249 | 
             
              </div>
         | 
| 216 250 | 
             
            </div>
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            <div class="learn">
         | 
| 2 | 
            +
              <a href="https://learn.boltops.com/courses/{{ include.url }}">
         | 
| 3 | 
            +
                {% if include.img %}
         | 
| 4 | 
            +
                <img src="{{ include.img }}" />
         | 
| 5 | 
            +
                {% else %}
         | 
| 6 | 
            +
                <img src="https://learn.boltops.com/courses/{{ include.url }}/thumbnail.png" />
         | 
| 7 | 
            +
                {% endif %}
         | 
| 8 | 
            +
              </a>
         | 
| 9 | 
            +
              {% unless include.premium == false %}
         | 
| 10 | 
            +
              <div class="note">Note: Premium video content requires a subscription.</div>
         | 
| 11 | 
            +
              {% endunless %}
         | 
| 12 | 
            +
            </div>
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <div class="video-box"><div class="video-container"><iframe src="https://www.youtube.com/embed/{{ include.video_id }}" frameborder="0" allowfullscreen=""></iframe></div></div>
         | 
    
        data/docs/_layouts/default.html
    CHANGED
    
    
    
        data/docs/_sass/theme.scss
    CHANGED
    
    
    
        data/docs/js/scripts.js
    ADDED
    
    
    
        data/kubes.gemspec
    CHANGED
    
    | @@ -30,8 +30,8 @@ Gem::Specification.new do |spec| | |
| 30 30 | 
             
              spec.add_dependency "zeitwerk"
         | 
| 31 31 |  | 
| 32 32 | 
             
              # core helper libs
         | 
| 33 | 
            -
              spec.add_dependency "kubes_aws", " | 
| 34 | 
            -
              spec.add_dependency "kubes_google", " | 
| 33 | 
            +
              spec.add_dependency "kubes_aws", ">= 0.3.1"
         | 
| 34 | 
            +
              spec.add_dependency "kubes_google", ">= 0.3.8"
         | 
| 35 35 |  | 
| 36 36 | 
             
              spec.add_development_dependency "bundler"
         | 
| 37 37 | 
             
              spec.add_development_dependency "byebug"
         |