Skip Option
You can tell Kubes to skip resources to deploy. This can useful if you want to still resources with Kubes and have it compile .kubes/output
files, but wish to deploy them outside of Kubes manually.
Example
Here’s an example with a Job.
.kubes/resources/cleanup/job.yaml:
apiVersion: batch/v1
kind: Job
metadata:
name: cleanup
spec:
template:
spec:
containers:
- name: cleanup
image: <%= docker_image %>
command: ["bin/cleanup.sh"]
restartPolicy: Never
To skip the cleanup job, use the config.skip
option:
Kubes.configure do |config|
config.skip = ["cleanup/job"]
end
Now when you deploy, the cleanup/job
resource will not be deployed:
kubes deploy # deploys everything except cleanup/job
Deploy Outside of Kubes
Then to deploy outside of kubes.
$ kubes compile # not necessary if already ran: kubes deploy
Compiled .kubes/resources files to .kubes/output
$ kubectl apply -f .kubes/output/cleanup/job.yaml
job.batch/cleanup created
$ kubectl delete -f .kubes/output/cleanup/job.yaml
job.batch "cleanup" deleted
$
Env Var KUBES_SKIP
You can also us ethe KUBES_SKIP
env var. It takes list of strings separated by a space. It adds onto the config.skip
option. Example:
KUBES_SKIP="cleanup/job" kubes delete
This can be useful for one-off use cases.
Skip With kubes skip metdata
You can also skip a resource from being written by using kubes.skip = true
. This is useful if you want to conditionally not create a resource with a variable. Example:
.kubes/resources/config_map.yaml
<% if @skip %>
kubes:
skip: true
<% end %>
metadata:
namespace: demo-dev
labels:
app: demo-dev
name: demo-dev-configmap-495c18844b
apiVersion: v1
kind: ConfigMap
If the variable is set to @skip = true
, then the config_map.yaml will not get created.