https://github.com/glueops/codespaces
Contains the full codespaces/devcontainers setup at GlueOps. If you need to make a change to the version of a tool we are using across the team is the repo to make the change in. Supports devbox packages too
https://github.com/glueops/codespaces
allow-auto-merge aws container debian devcontainer docker glueops-platform hetzner packer qmeu
Last synced: 22 days ago
JSON representation
Contains the full codespaces/devcontainers setup at GlueOps. If you need to make a change to the version of a tool we are using across the team is the repo to make the change in. Supports devbox packages too
- Host: GitHub
- URL: https://github.com/glueops/codespaces
- Owner: GlueOps
- Created: 2022-08-26T05:32:13.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-05-16T11:09:45.000Z (about 1 month ago)
- Last Synced: 2026-05-16T13:23:40.896Z (about 1 month ago)
- Topics: allow-auto-merge, aws, container, debian, devcontainer, docker, glueops-platform, hetzner, packer, qmeu
- Language: Shell
- Homepage:
- Size: 665 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# codespaces
## Description:
This repo contains all the environmental tools/dependencies to deploy the entire glueops platform. Tools include but are not limited to: terraform, helm, kubectl, devbox/nix, etc. We primarily use this repository in all of our codespaces as well as github actions. Ref: https://github.com/GlueOps/glueops/blob/%F0%9F%9A%80%F0%9F%92%8E%F0%9F%99%8C%F0%9F%9A%80/.devcontainer/devcontainer.json#L5
## DevBox
Since we have devbox installed any packages/tools that aren't installed (e.g. python) can easily be fetched from https://www.nixhub.io/
Here is a quick getting started with devbox: https://jetify.com/docs/devbox/quickstart/#create-a-development-environment
```bash
devbox init
devbox add python@3.10
devbox shell
python --version
```
# Releasing:
- Please stick to semver standards when dropping a new tag.
- Once you publish a release a new image will be built and uploaded to GHCR.io: https://github.com/GlueOps/codespaces/pkgs/container/codespaces
- Please tag the release as a `pre-release` this will prevent it from being pulled by production users whie it's still building. Once the AWS/QMEU/etc. pipelines have finished, and after you have tested the `pre-release` go ahead and update the release to `latest release`. [Here is a quick video on promoting from pre-release to the latest release](https://github.com/user-attachments/assets/e94b4b34-9aa7-4440-a3d7-8c49cf32f2ea)
**Note:** Due to the connection between the packer workflows and the Docker build/publish workflow, it's not possible to cut a release from any branch other than `main`. Some limitations in GitHub prevent the actions checkout step in the packer workflows from accurately determining the parent commit SHA, which defaults to `main`. Therefore, if you're testing changes outside of the Dockerfile, this method may not provide accurate results. One potential solution is to combine all the workflows, but this would result in a runtime of an hour or more.
# QA / Testing:
To test a `pre-release` you will first to do the following:
1) Make sure a nonprod/stage provisioner API functioning is working and has a node for you to test with.
2) In the nonprod slack channel for the developer workspaces (e.g. `#testing-developer-workspaces`) run `!vm` and you should see the `pre-release` tag.
3) Select the `pre-release` tag and login to the VM as normal.
4) Once you change to the `vscode` user, run `export ENVIRONMENT=nonprod` and then run `dev` as usual
5) You should now see the `pre-release` tag you created earlier as part of the release process, select it and preform your tests.
# Local Dev / Running packer locally:
It's best to just reference the github workflows under `.github/workflows` the packer workflows for each respective cloud start with `packer-*`. For each respective cloud you will notice env variables are being passed into a github action step. To do this locally, you will need to create credentials for the respective cloud and then `export` the applicable environment variables before running the `packer build` command.
### Break Glass Setup
If you are having issues spinning up a VM using our automation, just create a VM/Server with a provider of your choice and run these commands:
```bash
# Optional, export GLUEOPS_CODESPACES_CONTAINER_TAG if you want to specify a specific version. Otherwise the latest release will be grabbed/pulled. Note: if the latest release was just published then it may not be available for download yet and the bootstrap may fail
# export GLUEOPS_CODESPACES_CONTAINER_TAG=v0.129.0 #update tag to latest version found here: https://github.com/GlueOps/codespaces/releases
curl -sL setup.glueops.dev | bash
sudo tailscale up --ssh
```
_Note:_ as of April 2025 we have been using Debian 12 as our base Operating System. It's possible Debian 13 or newer work but we haven't tested it yet.