Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adaliszk/infrastructure
Templates and Helper packages for Pulumi-based Infrastructure, with the help of GitLab, Ansible, and Flux.
https://github.com/adaliszk/infrastructure
ansible docker flux infrastructure kubernetes pulumi
Last synced: about 1 month ago
JSON representation
Templates and Helper packages for Pulumi-based Infrastructure, with the help of GitLab, Ansible, and Flux.
- Host: GitHub
- URL: https://github.com/adaliszk/infrastructure
- Owner: adaliszk
- License: bsd-3-clause
- Created: 2021-11-20T23:30:54.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-29T12:36:37.000Z (8 months ago)
- Last Synced: 2024-10-03T15:33:54.151Z (about 2 months ago)
- Topics: ansible, docker, flux, infrastructure, kubernetes, pulumi
- Language: TypeScript
- Homepage:
- Size: 12.7 MB
- Stars: 4
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
_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](https://github.com/pulumi/pulumi/issues/11882). 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**](https://pnpm.io) for managing the workspaces within the project
- [**ansible**](https://docs.ansible.com/ansible) for server configurations
- [**flux**](https://fluxcd.io/flux/installation) as gitops automation for all environments
- [**docker**](https://docs.docker.com/get-docker) for building custom images
- [**pulumi**](https://www.pulumi.com/docs/get-started/install) for deployment automation
- [**dagger**](https://dagger.io) 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`](images/pocketbase) | [![Pulls](https://img.shields.io/docker/pulls/adaliszk/pocketbase?label=Pulls)](https://hub.docker.com/r/adaliszk/pocketbase) | - | - | - |# Packages
| Name | NPM | Issues |
| :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`@adaliszk/pulumi`](packages/pulumi) | [![NPM](https://img.shields.io/npm/v/@adaliszk/pulumi.svg?logo=npm&label=&style=flat-square)](https://www.npmjs.com/package/@adaliszk/pulumi) | [![Issues for ESLint](https://img.shields.io/github/issues-search?logo=github&label=&style=flat-square&query=repo%3Aadaliszk%2Finfrastructure%20label%3Apulumi)](https://github.com/adaliszk/infrastructure/labels/pulumi) |
| [`@adaliszk/opsx`](packages/opsx) | [![NPM](https://img.shields.io/npm/v/@adaliszk/opsx.svg?logo=npm&label=&style=flat-square)](https://www.npmjs.com/package/@adaliszk/opsx) | [![Issues for ESLint](https://img.shields.io/github/issues-search?logo=github&label=&style=flat-square&query=repo%3Aadaliszk%2Finfrastructure%20label%3Aopsx)](https://github.com/adaliszk/infrastructure/labels/opsx) |# 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](https://github.com/adaliszk/infrastructure/discussions) if you have
any questions or requests.