configuration
This module provides functions for configuration management tasks includingtemplating, validation, and deployment of configuration artifacts. It integrates
with dependencies, git, and templating modules to enable automated configuration
workflows within Dagger pipelines.
Installation
dagger install github.com/stuttgart-things/blueprints/configuration@v1.29.0Entrypoint
Return Type
Configuration Example
dagger -m github.com/stuttgart-things/blueprints/configuration@bdd29b1e5645c62cb9b152e877cc729b8af949f7 call \
func (m *MyModule) Example() *dagger.Configuration {
return dag.
Configuration()
}@function
def example() -> dagger.Configuration:
return (
dag.configuration()
)@func()
example(): Configuration {
return dag
.configuration()
}Types
Configuration 🔗
vsphereVm() 🔗
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory ! | - | No description provided |
| configParameters | String | - | No description provided |
| variablesFile | String | - | No description provided |
| templatePaths | String | "https://raw.githubusercontent.com/stuttgart-things/vsphere-vm/refs/heads/main/templates/vm.tf.tmpl,https://raw.githubusercontent.com/stuttgart-things/vsphere-vm/refs/heads/main/templates/README.md.tmpl" | No description provided |
| repository | String | - | Repository in format "owner/repo" |
| branchName | String | - | Name of the new branch to create |
| baseBranch | String | "main" | Base ref/branch to create from (e.g., "main", "develop") |
| token | Secret | - | GitHub token for authentication |
| createBranch | Boolean | "false" | No description provided |
| commitConfig | Boolean | "false" | No description provided |
| createPullRequest | Boolean | "false" | No description provided |
| commitMessage | String | "" | No description provided |
| destinationFolder | String | "" | No description provided |
| destinationBasePath | String | "./" | No description provided |
| authorName | String | "" | No description provided |
| authorEmail | String | "" | No description provided |
| pullRequestTitle | String | "" | No description provided |
| pullRequestBody | String | "" | No description provided |
Example
dagger -m github.com/stuttgart-things/blueprints/configuration@bdd29b1e5645c62cb9b152e877cc729b8af949f7 call \
vsphere-vm --src DIR_PATHfunc (m *MyModule) Example(src *dagger.Directory) *dagger.Directory {
return dag.
Configuration().
VsphereVm(src)
}@function
def example(src: dagger.Directory) -> dagger.Directory:
return (
dag.configuration()
.vsphere_vm(src)
)@func()
example(src: Directory): Directory {
return dag
.configuration()
.vsphereVm(src)
}createAnsibleRequirementFiles() 🔗
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory | - | No description provided |
| templatePaths | String | "requirements.yaml.tmpl" | No description provided |
| dataFile | String | "data.yaml" | Path to YAML or JSON file containing template data (supports HTTPS URLs) |
| strictMode | Boolean | false | No description provided |
Example
dagger -m github.com/stuttgart-things/blueprints/configuration@bdd29b1e5645c62cb9b152e877cc729b8af949f7 call \
create-ansible-requirement-filesfunc (m *MyModule) Example() *dagger.Directory {
return dag.
Configuration().
CreateAnsibleRequirementFiles()
}@function
def example() -> dagger.Directory:
return (
dag.configuration()
.create_ansible_requirement_files()
)@func()
example(): Directory {
return dag
.configuration()
.createAnsibleRequirementFiles()
}renderMetadata() 🔗
RenderMetadata renders a README template with variables from multiple YAML files Multiple variables files are merged before rendering (comma-separated) Example usage:
dagger call render-readme \
--src ./tests/configuration \
--template-path README.md.tmpl \
--data-files vm-ansible.yaml,additional-vars.yaml
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| src | Directory | - | Source directory containing template and variables files |
| configParameters | String | - | Configuration parameters as key=value pairs (comma-separated) |
| templatePath | String | "README.md.tmpl" | Path to template file |
| dataFiles | String | "data.yaml" | Path(s) to YAML or JSON file(s) containing template data Multiple files can be comma-separated and will be merged in order |
| strictMode | Boolean | false | No description provided |
Example
dagger -m github.com/stuttgart-things/blueprints/configuration@bdd29b1e5645c62cb9b152e877cc729b8af949f7 call \
render-metadatafunc (m *MyModule) Example() *dagger.Directory {
return dag.
Configuration().
RenderMetadata()
}@function
def example() -> dagger.Directory:
return (
dag.configuration()
.render_metadata()
)@func()
example(): Directory {
return dag
.configuration()
.renderMetadata()
}analyzeConfigString() 🔗
AnalyzeConfigString parses a key=value configuration string and validates mandatory keys Dagger-compatible wrapper that returns JSON string representation of the map
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| configString | String ! | - | No description provided |
| mandatoryKeys | String ! | - | Comma-separated list of mandatory keys (e.g., "name,template,disk") |
Example
dagger -m github.com/stuttgart-things/blueprints/configuration@bdd29b1e5645c62cb9b152e877cc729b8af949f7 call \
analyze-config-string --config-string string --mandatory-keys stringfunc (m *MyModule) Example(ctx context.Context, configString string, mandatoryKeys string) string {
return dag.
Configuration().
AnalyzeConfigString(ctx, configString, mandatoryKeys)
}@function
async def example(config_string: str, mandatory_keys: str) -> str:
return await (
dag.configuration()
.analyze_config_string(config_string, mandatory_keys)
)@func()
async example(configString: string, mandatoryKeys: string): Promise<string> {
return dag
.configuration()
.analyzeConfigString(configString, mandatoryKeys)
}getVmSize() 🔗
GetVmSize returns a formatted string for VM configuration based on t-shirt size.
This is a Dagger function that can be called via dagger call get-vm-size.
Example:
dagger call get-vm-size --config-file=vm_tshirt_sizes.yaml --size=small
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| configFile | File ! | - | YAML file containing VM t-shirt sizes |
| size | String ! | - | T-shirt size: small, medium, large, or xlarge |
Example
dagger -m github.com/stuttgart-things/blueprints/configuration@bdd29b1e5645c62cb9b152e877cc729b8af949f7 call \
get-vm-size --config-file file:path --size stringfunc (m *MyModule) Example(ctx context.Context, configFile *dagger.File, size string) string {
return dag.
Configuration().
GetVmSize(ctx, configFile, size)
}@function
async def example(config_file: dagger.File, size: str) -> str:
return await (
dag.configuration()
.get_vm_size(config_file, size)
)@func()
async example(configFile: File, size: string): Promise<string> {
return dag
.configuration()
.getVmSize(configFile, size)
}