Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve development environment + minor fixes #53

Merged
merged 12 commits into from
Oct 24, 2024
Merged

Conversation

bojidar-bg
Copy link
Contributor

@bojidar-bg bojidar-bg commented Oct 14, 2024

The main highlight of this PR is switching to tilt instead of using a bunch of custom scripts. In addition, it includes a variety of QoL fixes.

Todo before merging:

  • Remove old scripts, and generally cleanup the tests/e2e/common folder.
  • Split deploy/Tiltfile into multiple files for readability.
  • Document new processes in markdown, especially things around Constellation.
  • Get signature checking working again. (Sigstore was not checking signatures in latest tests) -> later

Major changes:

  • We now use kind with ctlptl now, instead of minikube. In local testing, this should be much more reliable and also faster. For context, minikube offers a lot of different options, like using podman or kvm or containerd, etc., but not all of them work well with each other or with docker running on the same host—which necessitated a whole lot of useless debugging over the last month.
  • We now use tilt instead of hand-rolling deployment shell scripts. Tilt is slightly slower on the first start and might need manual intervention, as sometimes it doesn't wait for everything to be ready before deploying the next step. However, after that, it has faster redeploys than our shell scripts, and comes with a nice UI showing the current cluster state at a glance.

Some minor fixes/improvements made along the way that should help with both developing Apocryph and developing on top of Apocryph:

  • Made image builds work with local go build; then also moved that go build process into a container so that it uses the same glibc version for the binaries. This is much faster than full buildkit Docker builds, and coupled with Tilt's live update features, allows for iterating on the tpodserver much faster.
  • Added options for quickly setting resource requirements in KiB, MiB, or GiB—which makes pod manifests simpler to write and understand.
  • Allowed pods that don't use HTTP scaling configured to still have a few replicas running (e.g. for pods that expose TCP ports directly (part of the work for Spike: Database for autonomous applications using ScyllaDB #44)).
  • Fixed deploying pods without uploading images, as that was recently broken by other changes.
  • Fixed deleting pods, as that was recently broken by other changes.
  • Got manifest/deployment management a tiny bit closer to what it should be. There's still some work to be done there, but it will have to wait for now.
  • Fixed deploying pods to providers running in another timezone. (Untested)

@bojidar-bg bojidar-bg merged commit 4bbf371 into master Oct 24, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant