Auto generation¶
Auto generation happens mostly with pre-commit hooks. You can find the pre-commit configuration here. These pre-commit hooks call different Python scripts to auto generate code for the documentation.
Generation scripts and their respective files¶
Documentation¶
Variables¶
cli_env_vars.env-- All CLI environment variables in adotenvfile.cli_env_vars.md-- All CLI environment variables in a table.config_env_vars.env-- Almost all pipeline config environment variables in adotenvfile. The script checks for each field inKpopsConfigwhether it has anenvattribute defined. The script is currently unable to visit the classes of fields liketopic_name_config, hence any environment variables defined there would remain unknown to it.config_env_vars.env-- Almost all pipeline config environment variables in a table.variable_substitution.yaml-- A copy of./tests/pipeline/resources/component-type-substitution/pipeline.yamlused as an example of substitution.
CLI commands¶
Generated by typer-cli from the code in main.py. It is called with Python's subprocess module.
Pipeline and defaults example definitions¶
Generates example pipeline.yaml and defaults.yaml for each individual component, stores them and also concatenates them into 1 big pipeline definition and 1 big pipeline defaults definition.
User input
headers/*\.yaml-- The top of each example. Includes a description comment,typeandname. The headers forpipeline.yamlreside in thepipeline-componentsdir and thedefaults.yamlheaders reside in thepipeline-defaultsdir. The names of the files must be equal to the respective componenttype.sections/*\.yaml-- Each YAML file contains a single section (component attribute) definition. The intention is to keep the minimal set of definitions there from which any component definition can be built. The names of the files must be equal to the respective componenttypeand the attribute name. The sections are used for bothdefaults.yamlandpipeline.yamlgeneration and reside in thepipeline-componentsdir.
Generated
pipeline-components/dependencies/*Cached information about KPOps componentspipeline_component_dependencies.yaml-- Specifies per component which files in thesectionsdir should be used for thepipeline.yamlgeneration.defaults_pipeline_component_dependencies.yaml-- Specifies per component which files in thesectionsdir should be used for thedefaults.yamlgeneration.kpops_structure.yaml-- Specifies the inheritance hierarchy of the components and what sections exist in each component.pipeline-components/*\.yaml-- All single-component pipeline definitions and one big (complete)pipeline.yamlthat contains all of them.pipeline-defaults/*\.yaml-- All single-component defaults definitions and one big (complete)defaults.yamlthat contains all of them.