Off The Shelf Application | Kustomize

# Off The Shelf Application

Workflow for off the shelf applications

In this workflow, all files are owned by the user and maintained in a repository under their control, but they are based on an off-the-shelf configuration that is periodically consulted for updates.

#### 1) find and fork an OTS config

#### 2) clone it as your base

The base directory is maintained in a repo whose upstream is an OTS configuration, in this case some user’s `ldap` repo:

>     mkdir ~/ldap
>     git clone https://github.com/$USER/ldap ~/ldap/base
>     cd ~/ldap/base
>     git remote add upstream git@github.com:$USER/ldap

#### 3) create overlays

As in the bespoke case above, create and populate an overlays directory.

The overlays are siblings to each other and to the base they depend on.

>     mkdir -p ~/ldap/overlays/staging
>     mkdir -p ~/ldap/overlays/production

The user can maintain the `overlays` directory in a distinct repository.

#### 4) bring up variants

>     kustomize build ~/ldap/overlays/staging | kubectl apply -f -
>     kustomize build ~/ldap/overlays/production | kubectl apply -f -

You can also use kubectl-v1.14.0 to apply your variants.

>     kubectl apply -k ~/ldap/overlays/staging
>     kubectl apply -k ~/ldap/overlays/production

#### 5) (optionally) capture changes from upstream

The user can periodically rebase their base to capture changes made in the upstream repository.

>     cd ~/ldap/base
>     git fetch upstream
>     git rebase upstream/master

Last modified July 16, 2020: Docs: Auto-fix markdownlint issues (f9ee578a)