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.
Following are the steps involved:
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
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.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
(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