Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pinax-network/k8s-ioh-demo
https://github.com/pinax-network/k8s-ioh-demo
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/pinax-network/k8s-ioh-demo
- Owner: pinax-network
- Created: 2024-10-15T14:46:04.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-15T18:43:29.000Z (3 months ago)
- Last Synced: 2024-10-17T21:09:31.414Z (3 months ago)
- Language: Shell
- Size: 83 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# k8s-ioh-demo
This repository demonstrates how to use FluxCD to deploy launchpad-charts.
## Features
- **FluxCD**: Automate cluster updates and bootstrap
- **Cilium CNI**: Advanced networking and security
- **Kind/Tilt**: Automated dev environment setup with a web UI## Requirements
This project uses Nix Flakes to manage and install the necessary dependencies for
setting up and managing the cluster mesh. The `flake.nix` file contains all the
required configurations and package dependencies, making the environment setup
reproducible and straightforward.Installing Nix with flakes support is beyond the scope of this repo, however I recommend
using the full featured `nix-installer` at .Alternatively, you can manually install every separate dependencies mentioned
in the `flake.nix` file, but we can't guarantee it working since package versions
will most likely not match the one used in the Nix environment.## Getting Started
### 1. Clone the repository
```bash
git clone https://github.com/pinax-network/k8s-ioh-demo.git
cd k8s-ioh-demo
```### 2. Enter the Nix development environment
```bash
nix develop
```### 3. Setup the environment variables for bootstrap
Since this demo uses fluxCD to bootstrap the management cluster, you will
need to configure some environment variables before bootstrapping.To bootstrap Flux, the person running the command must have cluster admin
rights for the target Kubernetes cluster. It is also required that the
person running the command to be the owner of the GitHub repository, or
to have admin rights of a GitHub organization.If you don't have the required access permission to this repo, you will have to
change the [flux bootstrap script](scripts/flux-bootstrap.sh) to use your
own GitHub Repo instead.For accessing the GitHub API, the bootstrap command requires a GitHub personal
access token (PAT) with administration permissions.The GitHub PAT can be exported as an environment variable:
```bash
export GITHUB_TOKEN=
```Alternatively, you can use `sops` to encrypt a GitHub PAT token
in this repo and point the [flux bootstrap script](scripts/flux-bootstrap.sh)
to it. If the `GITHUB_TOKEN` variable is not set, the bootstrap script
will try to decrypt the secret using sops automatically.### 4. Bootstrap the cluster
This repository contains a [Tiltfile](https://tilt.dev/) that is used for local
development. To build a local k8s cluster with kind run:```bash
make setup
```To bring up a tilt development environment run `tilt up` or:
```bash
make up
```