Infrastructure configuration and setup via GitLab, Ansible, Flux, and Pulumi
With the many various requirements over the year, I have been fine-tuning, evolving my own setup to deploy environments and applications. This repository contains my frequently used abstractions and configurations alongside of a few tools and framework extensions that aims to aid efficient workflows.
The idea here is to provide modular packages that can deploy a whole environment stack for a particular application or environment. Separate each use-case into their scope and allow customisation through an exposed configuration. Essentially, creating a deployment ecosystem like how vite creates a compiler ecosystem.
Pulumi enables these setups to be packaged up and shared through NPM, PyPi, and eventually Crates. It also allows greater flexibility as the deployments can be manipulated based on common programming structures while keeping it stable with deep and accurate testing support.
- pnpm for managing the workspaces within the project
- ansible for server configurations
- flux as gitops automation for all environments
- docker for building custom images
- pulumi for deployment automation
- dagger for automation runner
- /ansible: ansible playbooks for bootstrapping servers
- /environments: environment configurations for shared resources
- /images: unofficial docker images to help cloud environments
- /packages: deployment packages to orchestrate environments
Currently, there are four layers of automation within the project:
- Flux CD: synchronise the baseline setup to all clusters
- Pulumi: deployment modules and cluster configurations to be executed
- GitLab CI: automation tool for the whole code lifecycle
Name | Docker | GitHub | Quay | Issues |
---|---|---|---|---|
adaliszk/duplicity |
- | - | - | - |
adaliszk/pocketbase |
- | - | - |
Name | NPM | Issues |
---|---|---|
@adaliszk/pulumi |
||
@adaliszk/opsx |
While I'm always open to Pull-Requests, this project is mainly to store examples, and showcase them. Feel free to open a discussion if you have any questions or requests.