Skip to content

v3.0.0

Compare
Choose a tag to compare
@cloudpossebot cloudpossebot released this 04 Jun 03:48
· 7 commits to refs/heads/main since this release
cea5e23

🚀 Geodesic version 3 (#945)

Breaking Changes

Geodesic Version 3 is not about adding new features, it is about slimming down and removing support for outdated tools and workflows. Many have complained that the Geodesic Docker image is too big. Geodesic v3 is roughly half the size of the Geodesic v2.10.0. 🥳

As such, there are many breaking changes, but for most people, there should be little or no impact.

Major Changes

Alpine Discontinued

Geodesic was first released based on Alpine. With Version 2, we added a Debian-based version, and deprecated the Alpine version. Now, with Version 3, we are only publishing the Debian-based version.

Terraform replaced with OpenTofu

Previously, Geodesic shipped with the latest version of Terraform installed. Now Geodesic ships with OpenTofu installed instead. Using the Debian alternatives system, it is also installed as an alternative to Terraform, so it can be run as either tofu or terraform.

Unneeded Packages Removed

Recently we removed AWS CLI v1 and Google SDK from the base version of Geodesic. With Geodesic version 3, we are removing additional Debian packages that were not worth the space in the Docker image. For the most part, any of these tools can be added back using apt-get install in your Dockerfile if you want them.

Removed Packages
  • direnv
  • fuse3
  • goofys
  • groff (note that groff-base is installed instead, so the groff command itself remains)
  • musl-dev
  • pandoc
  • python3 (see note below)
  • terragrunt
  • variant
  • variant2
Note on Python3

The python3 Debian package installs a segregated Python in /usr/bin/python3 for use only by system packages. Significantly, this installation of Python uses dist-packages instead of site-packages to reference installed packages. Read more about this in Debian Python: Deviations from Upstream. We have not found it useful in Geodesic, so we no longer install it.

Geodesic continues to ship with a very recent version of Python installed for users in /usr/local/bin/python3 and using site-packages, sourced from the official Python source distribution.

Removed Support for Obsolete Workflows and Tools

Geodesic is the tool Cloud Posse uses to support its customers in their workflows. As Cloud Posse's reference architecture and standard workflows have changed, a lot of the custom scripts and other support for the old workflows is no longer in use and has not been maintained. In version 3, the support is fully removed. Here is a representative list of support that has been removed, though it may not be fully complete.

  • Many years ago, configurations were managed by a combination of Makefiles and direnv + envrc (and our similar tfenv tool). All of that support has been removed, including customizations and addons to make and Makefiles in general. We no longer use make from within Geodesic.
  • Around the same time, we built Kubernetes clusters using kops and had extensive support for that. That has all been removed in favor of using AWS EKS to manage Kubernetes, and other solutions (such as AWS ECS) for managing workloads without using Kubernetes.
  • As part of this ancient system, we had customized enhancements in support of helmfile. That support has been removed. We now use our own tool, Atmos to do all that helmfile could do and so much more.
  • We have also removed support for using make to generate your own Makefile to build your own version of Geodesic. That mechanism was too customized for kops and custom tooling we no longer support. We recommend instead that you use Makefile.custom file as a template and fill in the blanks manually.
  • Related scripts like build-kops-manifest, deps, kopsctl, and helmctl have been removed.
  • All custom support for Atlantis has been removed. You may be able to use Atlantis under Geodesic v3, but Cloud Posse stopped using Atlantis several years ago and so we are no longer providing official support for it.
  • Customized, built-in support for AWS authentication via Okta, aws-vault, and saml2aws has been dropped. We recommend managing authentication either via aws sso or Leapp, which provides support for integration with SAML IdP, AWS SSO, and other authentication mechanisms. (Note: Although Noovolari has announced the end of commercial support for Leapp Pro, Leapp started out as open source and we expect the open source version of Leapp to remain supported and one of the best cloud credential management tools available for the foreseeable future.)
  • Previously, we configured XDG_CONFIG_HOME (see the XDG Base Directory Specification for more details) to point to a directory in the Geodesic Docker image, so that we could store configuration supporting the above in that directory. With this initial release of Geodesic v3, we are starting to migrate XDG_* to the Docker host's file system. If you set XDG_CONFIG_HOME on your host, Geodesic will import that value for use from within Geodesic. (Moving Geodesic's own configuration to XDG_CONFIG_HOME is planned to come at a later date, most likely in Geodesic v4.) Geodesic no longer pre-populates anything in XDG_CONFIG_HOME.
  • Previously, Geodesic had support for mounting an AWS S3 bucket as a local file system. This was never terrifically robust, and was only used to support kops operations, so it has been entirely removed.

what

  • Drop Alpine version of Geodesic
  • Replace Terraform with OpenTofu
  • Remove obsolete and underutilized packages, tools, scripts, and related support

why

  • Alpine's incompatibilities with Linux are a continuing maintenance issue and not worth the relatively modest reduction in Docker image size given the volume of additional tools and support Geodesic adds.
  • Hashicorp has changed Terraform's License and it is no longer compatible with Cloud Posse's mission. OpenTofu is intended to be a drop-in replacement for Terraform and is in much better alignment with Cloud Posse's values.
  • Dramatically reduce the size of the Geodesic Docker image
  • Reduce the maintenance issues that result from having complex features that neither Cloud Posse nor its customers use anymore.