Skip to content

Latest commit

 

History

History
54 lines (47 loc) · 2.43 KB

files.md

File metadata and controls

54 lines (47 loc) · 2.43 KB

This project uses the following folder structure:

The root folder contains a central modules folder hosting general utility modules and the main terraform module to maintain a terraform cluster (instance). This main cluster module then uses platform specific modules for the IaaS setup, the VM creation and the LBaaS handling.

This central module is called by platform specific root projects located below the variants folder, here: openstack, azure and aws. These folders contain the top level terraform projects for the dedicated variant and variant specific module implementations used by the central platform agnostic terraform modules. The platform specific modules are typically linked to a platform specific module pool found in platforms/<platform>. If there are multiple variants for a dedicated IaaS platform there might be multiple folders below the variants folder refering to shared platform modules stored below the same platforms folder (not yet used).

The folder basetemplates contains the bootstrap files originally rendered by bootkube used as basis for the actual versions of the bootkube assets stored in this project. These files are used to check for updates in new bootkube versions. They are not used by the terraform project. The corresponding template files used by this project can be found in modules/seed/templates/bootkube. The module seed handles the generation of the complete bootkube assets using settings and certificates generated in the cluster module.

The folder modules contains generic terraform modules used by the main terraform module or utility modules to be used by the generic and platform specific parts. The generic modules do not contain platform specific parts. Platform specific resources are factored out to dedicated platform specific modules.

The folder doc contains some markup files for the documentation via github.

The folder bin contains some useful utility scripts (bash) used to work with the cluster and cluster nodes as well as for the migration of terraform state for new versions of the terraform project.

Every new version of this project comes with a migration script migration.mig that is used by the command migrate to adapt old terraform state files before they can be used with the actual version. For this purpose the state structure used by this project is versioned. The update is done version by version until the actual version is reached.