https://github.com/weaveworks/clusters-config
Configuration for engineering's ephemeral clusters
https://github.com/weaveworks/clusters-config
aws kubernetes sandbox terraform
Last synced: 6 months ago
JSON representation
Configuration for engineering's ephemeral clusters
- Host: GitHub
- URL: https://github.com/weaveworks/clusters-config
- Owner: weaveworks
- Created: 2022-09-01T10:42:51.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-12T00:11:11.000Z (about 2 years ago)
- Last Synced: 2025-02-07T12:14:40.573Z (over 1 year ago)
- Topics: aws, kubernetes, sandbox, terraform
- Language: Shell
- Homepage:
- Size: 1.46 MB
- Stars: 2
- Watchers: 10
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# clusters-config
Configuration for engineering's ephemeral clusters
## Repo Layout:
- [terraform](./terraform/) contains terraform for provisioning resources in the Engineering Sandbox AWS Account.
- [eksctl-clusters](./eksctl-clusters/) contians scripts, templates, flux configuration, and clusters created by eksctl.
## Getting Started
### Required dependencies
- [AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
- [direnv](https://direnv.net/),
[configured for your shell](https://direnv.net/docs/hook.html)
- [eksctl](https://eksctl.io/introduction/#installation)
- [gsts](https://github.com/ruimarinho/gsts)
- [pre-commit](https://pre-commit.com/)
### Recommended dependencies
- An [EditorConfig](https://editorconfig.org/) compatible editor.
### Getting access to Engineering Sandbox AWS Account
- File an issue on [corp](https://github.com/weaveworks/corp) to request access to Engineering Sandbox AWS Account to assume `WeaveEksEditor` role **(include your email in the issue)**.
- Authenticate in your CLI with `WeaveEksEditor` role:
```bash
$ export GOOGLE_USERNAME=
$ source ./env.sh
✔ Login successful!
Environment configured, authenticated to AWS as arn:aws:iam::894516026745:role/WeaveEksEditor.
```
### How do we manage clusters?
- Each cluster/environment has its own branch.
- Clusters are provisioned by creating a new `cluster-` branch and destroyed by deleting the branch.
- Clusters branches and directories are created automatically after a user [request a cluster](./docs/cluster.md#requesting-a-cluster). All values are set and user shouldn't need to add anything (unless he wants to customize his environment). The user can review the files before pushing the new branch in order to provision his cluster
- The cluster directory `./eksctl-clusters/clusters/` contains:
- Eksctl cluster configurations.
- flux, gitops, other apps files.
### Slack notifications:
We send slack notifications to #clusters-config channel. We notify for:
1. Create a cluster
1. Delete a cluster
1. TTL is about to end.
### Requesting a new cluster
To request a new cluster, follow the [requesting a new cluster](./docs/cluster.md#requesting-a-cluster) doc
### Pre-Commit hooks
This repository uses [pre-commit hooks](https://pre-commit.com/) to run quick
checks against it. Please install before use.