Simple wrapper around skaffold for rendering skaffold.yaml
Project description
A simple skaffold wrapper with support for jinja2 templating.
Status
Requirements
Python 2.7 or Python 3.3+ or PyPy 2.4.0+
Setup
$ python -m pip install --user j2skaffold or (venv)$ python -m pip install j2skaffold
Usage
$ j2skaffold dev
will run skaffold dev after rendering the skaffold.jinja2 file from the current directory.
$ j2skaffold dev --keep-yaml
will do the same, keeping the rendered skaffold.yaml file. (Useful for debugging.)
The following special variables are available:
skaffold_command (dev, build, etc.)
current_profile (value of the -p argument)
The following special yaml key can be used:
_set_profile: [name] - sets the current profile using the -p argument. Should be always wrapped inside some {% if not current_profile %}, otherwise it will get passed through, and skaffold will fail with:
FATA[0000] creating runner: reading configuration: parsing skaffold config: parsing skaffold config: yaml: unmarshal errors: line 2: field _set_profile not found in type v1alpha3.SkaffoldConfig
Example skaffold.jinja2 demonstrating all the available features:
{% if skaffold_command == 'dev' and not current_profile %} _set_profile: dev {% endif %} apiVersion: skaffold/v1alpha3 kind: Config build: artifacts: - imageName: gcr.io/k8s-skaffold/skaffold-example-{{ current_profile }} deploy: kubectl: manifests: - k8s-* profiles: {% for profile in ['dev', 'production'] %} - name: {{ profile }} # ... use any jinja2 syntax {% endfor %}
ChangeLog
0.1.0 (2018-10-08)
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.