Skip to content

adaliszk/infrastructure

Repository files navigation

Infrastructure configuration and setup via GitLab, Ansible, Flux, and Pulumi

Infrastructure

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.

Prerequisites

  • 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

Structure

  • /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

GitOps

Currently, there are four layers of automation within the project:

  1. Flux CD: synchronise the baseline setup to all clusters
  2. Pulumi: deployment modules and cluster configurations to be executed
  3. GitLab CI: automation tool for the whole code lifecycle

Images and Charts

Name Docker GitHub Quay Issues
adaliszk/duplicity - - - -
adaliszk/pocketbase Pulls - - -

Packages

Name NPM Issues
@adaliszk/pulumi NPM Issues for ESLint
@adaliszk/opsx NPM Issues for ESLint

Contributions

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.

About

Templates and Helper packages for Pulumi-based Infrastructure, with the help of GitLab, Ansible, and Flux.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published