conjure bundle
Generate multiple files from a bundle of templates.
The conjure bundle command generates multiple related files from a bundle, allowing you to deploy complete solutions with consistent configuration.
conjure bundle <bundle-name> -o <output-directory> [flags]
The name of the bundle to use, as defined in the bundle's conjure.json metadata.
Examples:
conjure bundle web-app -o ./output
conjure bundle kubernetes-deployment -o ./k8s
conjure bundle microservices -o ./manifests
Conjure searches all bundle directories and matches by the bundle_name field in conjure.json.
Directory where generated files will be written.
conjure bundle web-app -o ./k8s
Must be specified. The command will fail without it.
Directory creation:
- Output directory is created if it doesn't exist
- Subdirectories are preserved from template output paths
Specify which version of the bundle to use.
conjure bundle web-app --version 1.2.0 -o ./output
Default: Uses the highest semantic version available when not specified.
Examples:
# Use latest version (default)
conjure bundle web-app -o ./output
# Use specific version
conjure bundle web-app --version 2.0.0 -o ./output
Set variables using key=value format.
Shared variables (apply to all templates):
conjure bundle web-app -o ./output \
--var app_name=my-api \
--var namespace=production \
--var port=8080
Template-specific variables:
conjure bundle web-app -o ./output \
--var app_name=my-api \
--var deployment.yaml.tmpl:replicas=5 \
--var service.yaml.tmpl:service_type=LoadBalancer
Can be specified multiple times:
conjure bundle web-app -o ./output \
-v app_name=my-api \
-v namespace=prod \
-v deployment.yaml.tmpl:replicas=5 \
-v service.yaml.tmpl:service_type=LoadBalancer
Provide variables from a YAML file.
conjure bundle web-app -o ./output -f production.yaml
Values file format:
# Shared variables (apply to all templates)
app_name: my-api
namespace: production
port: 8080
# Template-specific overrides
template_overrides:
deployment.yaml.tmpl:
replicas: 5
cpu_limit: 1000m
service.yaml.tmpl:
service_type: LoadBalancer
service_port: 443
Bundles support overriding variables for specific templates.
Use the format template.tmpl:key=value:
conjure bundle web-app -o ./output \
--var app_name=my-api \
--var deployment.yaml.tmpl:replicas=10 \
--var deployment.yaml.tmpl:cpu_limit=2000m \
--var service.yaml.tmpl:service_type=LoadBalancer
Use the template_overrides section:
# Shared variables
app_name: my-api
namespace: production
# Template-specific overrides
template_overrides:
deployment.yaml.tmpl:
replicas: 10
cpu_limit: 2000m
memory_limit: 4Gi
service.yaml.tmpl:
service_type: LoadBalancer
service_port: 443
ingress.yaml.tmpl:
enable_tls: true
tls_secret_name: my-tls-secret
When the same variable is defined in multiple places:
- CLI template overrides (
--var template.tmpl:key=value) - Values file template overrides (
template_overrides:) - CLI shared variables (
--var key=value) - Values file shared variables
- Bundle defaults