diff --git a/.github/workflows/vhs.yaml b/.github/workflows/vhs.yaml new file mode 100644 index 000000000..1c597f7af --- /dev/null +++ b/.github/workflows/vhs.yaml @@ -0,0 +1,65 @@ +name: vhs +on: + pull_request: + paths: + - '*.tape' + +env: + TERM: "xterm-256color" + COLORTERM: "truecolor" + LANG: "en_US.UTF-8" + ENV_FILE: "/home/runner/gha.env" + +jobs: + vhs: + runs-on: ubuntu-latest + concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + + steps: + - uses: actions/checkout@v3 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + + - name: "Override Env for Geodesic Demo Purposes" + run: | + echo "PROMPT_STYLE=unicode" > ${ENV_FILE} + echo "BANNER_MARK=πŸš€" >> ${ENV_FILE} + echo "ASSUME_ROLE_INACTIVE_MARK= " >> ${ENV_FILE} + echo "PROMPT_HOST_MARK=(demo)" >> ${ENV_FILE} + + # Speed up builds for demo by pre-building docker image + - name: "make all" + run: make all + + - uses: charmbracelet/vhs-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + path: demo.tape + install-fonts: true + + - uses: stefanzweifel/git-auto-commit-action@v4 + id: auto-commit + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + commit_message: "chore: update demo gif" + commit_user_name: vhs-action πŸ“Ό + commit_user_email: actions@github.com + commit_author: vhs-action πŸ“Ό + file_pattern: '*.gif' + + - name: Add Image to Job Summary + if: steps.auto-commit.outputs.changes_detected == 'true' + run: | + echo "## Demo GIF" >> $GITHUB_STEP_SUMMARY + echo "![Demo GIF](https://github.com/${{ github.repository }}/blob/${{ steps.auto-commit.outputs.commit_hash }}/docs/demo.gif?raw=true)" >> $GITHUB_STEP_SUMMARY + + - name: No changes + if: steps.auto-commit.outputs.changes_detected == 'false' + run: | + echo "No changes to demo" >> $GITHUB_STEP_SUMMARY + diff --git a/Brewfile b/Brewfile new file mode 100644 index 000000000..e9fbb0e64 --- /dev/null +++ b/Brewfile @@ -0,0 +1,3 @@ +# Required for vhs demo tape +cask "font-fira-code-nerd-font" if OS.mac? + diff --git a/README.md b/README.md index 438e15bce..6317bb04d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# Geodesic [![Build Status](https://github.com/cloudposse/geodesic/workflows/docker/badge.svg)](https://github.com/cloudposse/geodesic/actions?query=workflow%3Adocker) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fcloudposse%2Fgeodesic.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fcloudposse%2Fgeodesic?ref=badge_shield) [![Latest Release](https://img.shields.io/github/release/cloudposse/geodesic.svg)](https://github.com/cloudposse/geodesic/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) [![Slack Archive](https://img.shields.io/badge/slack-archive-blue.svg)](https://archive.sweetops.com/geodesic) +# Geodesic - The Ultimate DevOps Toolbox Image + + [![Build Status](https://github.com/cloudposse/geodesic/workflows/docker/badge.svg)](https://github.com/cloudposse/geodesic/actions?query=workflow%3Adocker) [![Latest Release](https://img.shields.io/github/release/cloudposse/geodesic.svg)](https://github.com/cloudposse/geodesic/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) [![Slack Archive](https://img.shields.io/badge/slack-archive-blue.svg)](https://archive.sweetops.com/geodesic) [![README Header][readme_header_img]][readme_header_link] @@ -28,31 +30,20 @@ --> -![Geodesic](docs/geodesic-small.png) - -Geodesic is the fastest way to get up and running with a rock solid, production grade cloud platform built entirely from Open Source technologies. - -It’s a swiss army knife for creating and building consistent platforms to be shared across a team environment. - -It easily versions staging environments in a repeatable manner that can be followed by any team member. +Geodesic is a robust Linux toolbox container, crafted to optimize DevOps workflows. This container comes fully loaded with all essential dependencies for a complete DevOps toolchain. It's designed to bring consistency and boost efficiency across development environments. It achieves this without the need for installing additional software on your workstation. Think of Geodesic as a containerized parallel to Vagrant, offering similar functionality within a Docker container context. -It's a way of doing things that allows companies to collaborate on infrastructure (~snowflakes~) and radically reduce Total Cost of Ownership, along with a vibrant and active [slack community](https://slack.cloudposse.com). +## Key Features -It provides a fully customizable framework for defining and building cloud infrastructures backed by [AWS](https://aws.amazon.com/) and powered by [kubernetes](https://kubernetes.io/). It couples best-of-breed technologies with engineering best-practices to equip organizations with the tooling that enables clusters to be spun up in record time without compromising security. - -It's works natively with Mac OSX, Linux, and [Windows 10 (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10). +- **Unified Toolchain**: By packaging all necessary DevOps tools and dependencies, Geodesic eliminates the "works on my machine" problem, ensuring toolchain uniformity across different machines. +- **Consistent Environment**: Geodesic guarantees that every developer operates in a uniform OS environment with consistent tool versions, sidestepping discrepancies that often arise in diverse development setups. +- **Quick Start for New Developers**: It streamlines the onboarding process for new team members, allowing them to bypass lengthy workstation configurations and dive straight into productivity. +- **Cross-Platform Compatibility**: With native support for Mac OSX, Linux, and [Windows (via WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10), Geodesic extends its versatile toolchain to a wide range of operating systems, ensuring broad accessibility and functionality. +- **Version Control for Tools**: Geodesic facilitates easy versioning of tools for different environments, enabling repeatable setups and minimizing compatibility issues. +- **Reusable Base Image for Toolboxes**: Empower teams to create and maintain consistent toolbox images, ensuring a standardized development environment across the board. --- This project is part of our comprehensive ["SweetOps"](https://cpco.io/sweetops) approach towards DevOps. -[][share_email] -[][share_googleplus] -[][share_facebook] -[][share_reddit] -[][share_linkedin] -[][share_twitter] - - It's 100% Open Source and licensed under the [APACHE2](LICENSE). @@ -69,27 +60,27 @@ It's 100% Open Source and licensed under the [APACHE2](LICENSE). ## Screenshots -![Demo](https://sweetops.com/wp-content/uploads/2019/03/termtosvg_fmnxoium.svg) -*
[Example of running a shell](https://github.com/cloudposse/testing.cloudposse.co) based on the `cloudposse/geodesic` base docker image.* +![Demo](docs/demo.gif) +*
Example of running a shell based on the `cloudposse/geodesic` base docker image.* ## Introduction These days, the typical software application is distributed as a docker image and run as a container. Why should infrastructure be any different? Since everything we write is "Infrastructure as Code", we believe that it should be treated the same way. This is the "Geodesic Way". Use containers+envs instead of unconventional wrappers, complicated folder structures and symlink hacks. Geodesic is the container for all your infrastructure automation needs that enables you to truly achieve SweetOps. -Geodesic is composed of two parts: +Geodesic is best used in one of these two ways: - 1. It is an interactive command-line shell. The shell includes the *ultimate* mashup of cloud orchestration tools. - Those tools are then integrated to work in concert with each other using a consistent framework. - Installation of the shell is as easy as running a docker container. - 2. It is a distribution of essential services and reference architectures. The distribution includes a collection of [100+ Free Terraform Modules](https://github.com/cloudposse?q=terraform-) and their [invocations](https://github.com/cloudposse/terraform-aws-components), dozens of preconfigured [Helmfiles](https://github.com/cloudposse/helmfiles), [Helm charts](https://github.com/cloudposse/charts) for CI/CD, VPN, SSH Bastion, Automatic DNS, Automatic TLS, Automatic Monitoring, Account Management, Log Collection, Load Balancing/Routing, Image Serving, and much more. What makes these charts even more valuable is that they were designed from the ground up to work well with each other and integrate with external services for authentication (SSO/OAuth2, MFA). + 1. **Interactive Shell** It is optimized to work as an interactive command-line shell. The shell includes the *ultimate* mashup of cloud orchestration tools all distributed through our [packages](https://github.com/cloudposse/packages). Installation of the shell is as easy as running a docker container or using it as a base image for your own Docker toolbox. + 2. **Docker Base Image** You can create your own `Dockerfile` and use `cloudposse/geodesic` as the base image. This way you can rapidly bring up consistent toolboxes. An organization may chose to leverage all of these components, or just the parts that make their life easier. + We recommend starting by using `geodesic` as a Docker base image (e.g. `FROM cloudposse/geodesic:...` pinned to a release and base OS) in your projects. -**Note**: Starting with Geodesic 2.0, we distribute Geodesic as a multi-platform (`linux/amd64`, `linux/arm64`) Debian-based -Docker image and a single-platform (`linux/amd64`) Alpine-based image. We recommend using the Debian-based image, and the -`cloudposse/geodesic:latest` image now points to it. (Previously `cloudposse/geodesic:latest` was the Alpine image.) +> [!IMPORTANT] +> **Note**: Starting with Geodesic 2.0, we distribute Geodesic as a multi-platform (`linux/amd64`, `linux/arm64`) Debian-based Docker image and a single-platform (`linux/amd64`) Alpine-based image. +> We recommend using the Debian-based image, and the `cloudposse/geodesic:latest` image now points to it. (Previously `cloudposse/geodesic:latest` was the Alpine image.) + We have deprioritized support for Alpine and may drop it entirely at some point. Starting with Geodesic version 0.138.0, we distributed 2 versions of `linux/arm64` Geodesic Docker images, @@ -114,8 +105,6 @@ Want to learn more? [Check out our getting started with Geodesic guide!](https:/ - - ## Usage @@ -227,15 +216,6 @@ document, available from within the shell via `man customization`. - -## Share the Love - -Like this project? Please give it a β˜… on [our GitHub](https://github.com/cloudposse/geodesic)! (it helps us **a lot**) - -Are you using this project or any of our other projects? Consider [leaving a testimonial][testimonial]. =) - - - ## Related Projects Check out these related projects. @@ -244,81 +224,70 @@ Check out these related projects. - [Build Harness](https://github.com/cloudposse/dev) - Collection of Makefiles to facilitate building Golang projects, Dockerfiles, Helm charts, and more - [terraform-aws-components](https://github.com/cloudposse/terraform-aws-components) - Catalog of reusable Terraform components and blueprints for provisioning reference architectures -## Help +## ✨ Contributing -**Got a question?** We got answers. +This project is under active development, and we encourage contributions from our community. +Many thanks to our outstanding contributors: -File a GitHub [issue](https://github.com/cloudposse/geodesic/issues), send us an [email][email] or join our [Slack Community][slack]. + + + -[![README Commercial Support][readme_commercial_support_img]][readme_commercial_support_link] - -## DevOps Accelerator for Startups +### πŸ› Bug Reports & Feature Requests +Please use the [issue tracker](https://github.com/cloudposse/geodesic/issues) to report any bugs or file feature requests. -We are a [**DevOps Accelerator**][commercial_support]. We'll help you build your cloud infrastructure from the ground up so you can own it. Then we'll show you how to operate it and stick around for as long as you need us. +### πŸ’» Developing -[![Learn More](https://img.shields.io/badge/learn%20more-success.svg?style=for-the-badge)][commercial_support] +If you are interested in being a contributor and want to get involved in developing this project or [help out](https://cpco.io/help-out) with our other projects, we would love to hear from you! Shoot us an [email][email]. -Work directly with our team of DevOps experts via email, slack, and video conferencing. +In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow. -We deliver 10x the value for a fraction of the cost of a full-time engineer. Our track record is not even funny. If you want things done right and you need it done FAST, then we're your best bet. + 1. **Fork** the repo on GitHub + 2. **Clone** the project to your own machine + 3. **Commit** changes to your own branch + 4. **Push** your work back up to your fork + 5. Submit a **Pull Request** so that we can review your changes -- **Reference Architecture.** You'll get everything you need from the ground up built using 100% infrastructure as code. -- **Release Engineering.** You'll have end-to-end CI/CD with unlimited staging environments. -- **Site Reliability Engineering.** You'll have total visibility into your apps and microservices. -- **Security Baseline.** You'll have built-in governance with accountability and audit logs for all changes. -- **GitOps.** You'll be able to operate your infrastructure via Pull Requests. -- **Training.** You'll receive hands-on training so your team can operate what we build. -- **Questions.** You'll have a direct line of communication between our teams via a Shared Slack channel. -- **Troubleshooting.** You'll get help to triage when things aren't working. -- **Code Reviews.** You'll receive constructive feedback on Pull Requests. -- **Bug Fixes.** We'll rapidly work with you to fix any bugs in our projects. +**NOTE:** Be sure to merge the latest changes from "upstream" before making a pull request! -## Slack Community +### 🌎 Slack Community Join our [Open Source Community][slack] on Slack. It's **FREE** for everyone! Our "SweetOps" community is where you get to talk with others who share a similar vision for how to rollout and manage infrastructure. This is the best place to talk shop, ask questions, solicit feedback, and work together as a community to build totally *sweet* infrastructure. -## Discourse Forums - -Participate in our [Discourse Forums][discourse]. Here you'll find answers to commonly asked questions. Most questions will be related to the enormous number of projects we support on our GitHub. Come here to collaborate on answers, find solutions, and get ideas about the products and services we value. It only takes a minute to get started! Just sign in with SSO using your GitHub account. - -## Newsletter +### πŸ“° Newsletter Sign up for [our newsletter][newsletter] that covers everything on our technology radar. Receive updates on what we're up to on GitHub as well as awesome new projects we discover. -## Office Hours +### πŸ“† Office Hours [Join us every Wednesday via Zoom][office_hours] for our weekly "Lunch & Learn" sessions. It's **FREE** for everyone! -[![zoom](https://img.cloudposse.com/fit-in/200x200/https://cloudposse.com/wp-content/uploads/2019/08/Powered-by-Zoom.png")][office_hours] - -## Contributing - -### Bug Reports & Feature Requests - -Please use the [issue tracker](https://github.com/cloudposse/geodesic/issues) to report any bugs or file feature requests. - -### Developing - -If you are interested in being a contributor and want to get involved in developing this project or [help out](https://cpco.io/help-out) with our other projects, we would love to hear from you! Shoot us an [email][email]. - -In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow. - - 1. **Fork** the repo on GitHub - 2. **Clone** the project to your own machine - 3. **Commit** changes to your own branch - 4. **Push** your work back up to your fork - 5. Submit a **Pull Request** so that we can review your changes +## About -**NOTE:** Be sure to merge the latest changes from "upstream" before making a pull request! +This project is maintained and funded by [Cloud Posse, LLC][website]. + +We are a [**DevOps Accelerator**][commercial_support]. We'll help you build your cloud infrastructure from the ground up so you can own it. Then we'll show you how to operate it and stick around for as long as you need us. -## Copyright +[![Learn More](https://img.shields.io/badge/learn%20more-success.svg?style=for-the-badge)][commercial_support] -Copyright Β© 2017-2023 [Cloud Posse, LLC](https://cpco.io/copyright) +Work directly with our team of DevOps experts via email, slack, and video conferencing. +We deliver 10x the value for a fraction of the cost of a full-time engineer. Our track record is not even funny. If you want things done right and you need it done FAST, then we're your best bet. +- **Reference Architecture.** You'll get everything you need from the ground up built using 100% infrastructure as code. +- **Release Engineering.** You'll have end-to-end CI/CD with unlimited staging environments. +- **Site Reliability Engineering.** You'll have total visibility into your apps and microservices. +- **Security Baseline.** You'll have built-in governance with accountability and audit logs for all changes. +- **GitOps.** You'll be able to operate your infrastructure via Pull Requests. +- **Training.** You'll receive hands-on training so your team can operate what we build. +- **Questions.** You'll have a direct line of communication between our teams via a Shared Slack channel. +- **Troubleshooting.** You'll get help to triage when things aren't working. +- **Code Reviews.** You'll receive constructive feedback on Pull Requests. +- **Bug Fixes.** We'll rapidly work with you to fix any bugs in our projects. +[![README Commercial Support][readme_commercial_support_img]][readme_commercial_support_link] ## License [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) @@ -344,60 +313,11 @@ specific language governing permissions and limitations under the License. ``` - - - - - - - - ## Trademarks All other trademarks referenced herein are the property of their respective owners. - -## About - -This project is maintained and funded by [Cloud Posse, LLC][website]. Like it? Please let us know by [leaving a testimonial][testimonial]! - -[![Cloud Posse][logo]][website] - -We're a [DevOps Professional Services][hire] company based in Los Angeles, CA. We ❀️ [Open Source Software][we_love_open_source]. - -We offer [paid support][commercial_support] on all of our projects. - -Check out [our other projects][github], [follow us on twitter][twitter], [apply for a job][jobs], or [hire us][hire] to help with your cloud strategy and implementation. - - - -### Contributors - - -| [![Erik Osterman][osterman_avatar]][osterman_homepage]
[Erik Osterman][osterman_homepage] | [![Igor Rodionov][goruha_avatar]][goruha_homepage]
[Igor Rodionov][goruha_homepage] | [![Andriy Knysh][aknysh_avatar]][aknysh_homepage]
[Andriy Knysh][aknysh_homepage] | [![Sarkis Varozian][sarkis_avatar]][sarkis_homepage]
[Sarkis Varozian][sarkis_homepage] | [![Oscar Sullivan][osulli_avatar]][osulli_homepage]
[Oscar Sullivan][osulli_homepage] | -|---|---|---|---|---| - - - - [osterman_homepage]: https://github.com/osterman - [osterman_avatar]: http://s.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb?s=144 - - - [goruha_homepage]: https://github.com/goruha/ - [goruha_avatar]: http://s.gravatar.com/avatar/bc70834d32ed4517568a1feb0b9be7e2?s=144 - - - [aknysh_homepage]: https://github.com/aknysh/ - [aknysh_avatar]: https://avatars0.githubusercontent.com/u/7356997?v=4&u=ed9ce1c9151d552d985bdf5546772e14ef7ab617&s=144 - - - [sarkis_homepage]: https://github.com/sarkis - [sarkis_avatar]: https://avatars3.githubusercontent.com/u/42673?s=144&v=4 - - - [osulli_homepage]: https://github.com/osulli - [osulli_avatar]: https://github.com/osulli.png?size=150 - - +--- +Copyright Β© 2017-2023 [Cloud Posse, LLC](https://cpco.io/copyright) [![README Footer][readme_footer_img]][readme_footer_link] [![Beacon][beacon]][website] @@ -408,12 +328,9 @@ Check out [our other projects][github], [follow us on twitter][twitter], [apply [jobs]: https://cpco.io/jobs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=jobs [hire]: https://cpco.io/hire?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=hire [slack]: https://cpco.io/slack?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=slack - [linkedin]: https://cpco.io/linkedin?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=linkedin [twitter]: https://cpco.io/twitter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=twitter - [testimonial]: https://cpco.io/leave-testimonial?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=testimonial [office_hours]: https://cloudposse.com/office-hours?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=office_hours [newsletter]: https://cpco.io/newsletter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=newsletter - [discourse]: https://ask.sweetops.com/?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=discourse [email]: https://cpco.io/email?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=email [commercial_support]: https://cpco.io/commercial-support?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=commercial_support [we_love_open_source]: https://cpco.io/we-love-open-source?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=we_love_open_source @@ -424,11 +341,5 @@ Check out [our other projects][github], [follow us on twitter][twitter], [apply [readme_footer_link]: https://cloudposse.com/readme/footer/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=readme_footer_link [readme_commercial_support_img]: https://cloudposse.com/readme/commercial-support/img [readme_commercial_support_link]: https://cloudposse.com/readme/commercial-support/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/geodesic&utm_content=readme_commercial_support_link - [share_twitter]: https://twitter.com/intent/tweet/?text=Geodesic&url=https://github.com/cloudposse/geodesic - [share_linkedin]: https://www.linkedin.com/shareArticle?mini=true&title=Geodesic&url=https://github.com/cloudposse/geodesic - [share_reddit]: https://reddit.com/submit/?url=https://github.com/cloudposse/geodesic - [share_facebook]: https://facebook.com/sharer/sharer.php?u=https://github.com/cloudposse/geodesic - [share_googleplus]: https://plus.google.com/share?url=https://github.com/cloudposse/geodesic - [share_email]: mailto:?subject=Geodesic&body=https://github.com/cloudposse/geodesic [beacon]: https://ga-beacon.cloudposse.com/UA-76589703-4/cloudposse/geodesic?pixel&cs=github&cm=readme&an=geodesic diff --git a/README.yaml b/README.yaml index f897246b8..e02df1026 100644 --- a/README.yaml +++ b/README.yaml @@ -1,17 +1,12 @@ -name: Geodesic +name: Geodesic - The Ultimate DevOps Toolbox Image license: APACHE2 github_repo: cloudposse/geodesic -logo: "docs/geodesic-small.png" - # Badges to display badges: - name: "Build Status" image: "https://github.com/cloudposse/geodesic/workflows/docker/badge.svg" url: "https://github.com/cloudposse/geodesic/actions?query=workflow%3Adocker" - - name: "FOSSA Status" - image: "https://app.fossa.io/api/projects/git%2Bgithub.com%2Fcloudposse%2Fgeodesic.svg?type=shield" - url: "https://app.fossa.io/projects/git%2Bgithub.com%2Fcloudposse%2Fgeodesic?ref=badge_shield" - name: "Latest Release" image: "https://img.shields.io/github/release/cloudposse/geodesic.svg" url: "https://github.com/cloudposse/geodesic/releases/latest" @@ -25,8 +20,8 @@ badges: # Screenshots screenshots: - name: "Demo" - description: "
[Example of running a shell](https://github.com/cloudposse/testing.cloudposse.co) based on the `cloudposse/geodesic` base docker image." - url: "https://sweetops.com/wp-content/uploads/2019/03/termtosvg_fmnxoium.svg" + description: "
Example of running a shell based on the `cloudposse/geodesic` base docker image." + url: "docs/demo.gif" related: - name: "Packages" @@ -42,36 +37,35 @@ related: url: "https://github.com/cloudposse/terraform-aws-components" -description: |- - - Geodesic is the fastest way to get up and running with a rock solid, production grade cloud platform built entirely from Open Source technologies. - - It’s a swiss army knife for creating and building consistent platforms to be shared across a team environment. - It easily versions staging environments in a repeatable manner that can be followed by any team member. - - It's a way of doing things that allows companies to collaborate on infrastructure (~snowflakes~) and radically reduce Total Cost of Ownership, along with a vibrant and active [slack community](https://slack.cloudposse.com). +description: |- + Geodesic is a robust Linux toolbox container, crafted to optimize DevOps workflows. This container comes fully loaded with all essential dependencies for a complete DevOps toolchain. It's designed to bring consistency and boost efficiency across development environments. It achieves this without the need for installing additional software on your workstation. Think of Geodesic as a containerized parallel to Vagrant, offering similar functionality within a Docker container context. - It provides a fully customizable framework for defining and building cloud infrastructures backed by [AWS](https://aws.amazon.com/) and powered by [kubernetes](https://kubernetes.io/). It couples best-of-breed technologies with engineering best-practices to equip organizations with the tooling that enables clusters to be spun up in record time without compromising security. + ## Key Features - It's works natively with Mac OSX, Linux, and [Windows 10 (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10). + - **Unified Toolchain**: By packaging all necessary DevOps tools and dependencies, Geodesic eliminates the "works on my machine" problem, ensuring toolchain uniformity across different machines. + - **Consistent Environment**: Geodesic guarantees that every developer operates in a uniform OS environment with consistent tool versions, sidestepping discrepancies that often arise in diverse development setups. + - **Quick Start for New Developers**: It streamlines the onboarding process for new team members, allowing them to bypass lengthy workstation configurations and dive straight into productivity. + - **Cross-Platform Compatibility**: With native support for Mac OSX, Linux, and [Windows (via WSL)](https://docs.microsoft.com/en-us/windows/wsl/install-win10), Geodesic extends its versatile toolchain to a wide range of operating systems, ensuring broad accessibility and functionality. + - **Version Control for Tools**: Geodesic facilitates easy versioning of tools for different environments, enabling repeatable setups and minimizing compatibility issues. + - **Reusable Base Image for Toolboxes**: Empower teams to create and maintain consistent toolbox images, ensuring a standardized development environment across the board. introduction: |- These days, the typical software application is distributed as a docker image and run as a container. Why should infrastructure be any different? Since everything we write is "Infrastructure as Code", we believe that it should be treated the same way. This is the "Geodesic Way". Use containers+envs instead of unconventional wrappers, complicated folder structures and symlink hacks. Geodesic is the container for all your infrastructure automation needs that enables you to truly achieve SweetOps. - Geodesic is composed of two parts: + Geodesic is best used in one of these two ways: - 1. It is an interactive command-line shell. The shell includes the *ultimate* mashup of cloud orchestration tools. - Those tools are then integrated to work in concert with each other using a consistent framework. - Installation of the shell is as easy as running a docker container. - 2. It is a distribution of essential services and reference architectures. The distribution includes a collection of [100+ Free Terraform Modules](https://github.com/cloudposse?q=terraform-) and their [invocations](https://github.com/cloudposse/terraform-aws-components), dozens of preconfigured [Helmfiles](https://github.com/cloudposse/helmfiles), [Helm charts](https://github.com/cloudposse/charts) for CI/CD, VPN, SSH Bastion, Automatic DNS, Automatic TLS, Automatic Monitoring, Account Management, Log Collection, Load Balancing/Routing, Image Serving, and much more. What makes these charts even more valuable is that they were designed from the ground up to work well with each other and integrate with external services for authentication (SSO/OAuth2, MFA). + 1. **Interactive Shell** It is optimized to work as an interactive command-line shell. The shell includes the *ultimate* mashup of cloud orchestration tools all distributed through our [packages](https://github.com/cloudposse/packages). Installation of the shell is as easy as running a docker container or using it as a base image for your own Docker toolbox. + 2. **Docker Base Image** You can create your own `Dockerfile` and use `cloudposse/geodesic` as the base image. This way you can rapidly bring up consistent toolboxes. An organization may chose to leverage all of these components, or just the parts that make their life easier. + We recommend starting by using `geodesic` as a Docker base image (e.g. `FROM cloudposse/geodesic:...` pinned to a release and base OS) in your projects. + + > [!IMPORTANT] + > **Note**: Starting with Geodesic 2.0, we distribute Geodesic as a multi-platform (`linux/amd64`, `linux/arm64`) Debian-based Docker image and a single-platform (`linux/amd64`) Alpine-based image. + > We recommend using the Debian-based image, and the `cloudposse/geodesic:latest` image now points to it. (Previously `cloudposse/geodesic:latest` was the Alpine image.) - **Note**: Starting with Geodesic 2.0, we distribute Geodesic as a multi-platform (`linux/amd64`, `linux/arm64`) Debian-based - Docker image and a single-platform (`linux/amd64`) Alpine-based image. We recommend using the Debian-based image, and the - `cloudposse/geodesic:latest` image now points to it. (Previously `cloudposse/geodesic:latest` was the Alpine image.) We have deprioritized support for Alpine and may drop it entirely at some point. Starting with Geodesic version 0.138.0, we distributed 2 versions of `linux/arm64` Geodesic Docker images, diff --git a/demo.tape b/demo.tape new file mode 100644 index 000000000..ae924fa05 --- /dev/null +++ b/demo.tape @@ -0,0 +1,61 @@ +# Demo of Geodesic + +Output docs/demo.gif + +Set Theme "Monokai Vivid" + +#Set FontFamily "FiraCode Nerd Font" +Set FontFamily "Hack Nerd Font" +Set FontSize 14 + +Set TypingSpeed 40ms + +Set Framerate 30 + +Set WindowBar Colorful + +Set CursorBlink true + +Set BorderRadius 8 + +Set Margin 20 +Set MarginFill "#674EFF" + +Set Padding 12 + +Set Width 1200 +Set Height 600 + +Set PlaybackSpeed 1 + +Set Shell bash + +Type "# After having run `make all`, simply run `make run` (or `geodesic`) to enter the interactive shell" Enter +Sleep 500ms + +Type "geodesic" Enter + +Sleep 3s + +Type "# It ships with common commands like `terraform`" Enter +Sleep 500ms + +Type "terraform -help" Enter +Sleep 500ms + +Type "# ...and the `aws` CLI =)" Enter +Sleep 500ms + +Type "aws help" Enter + +Sleep 3s + +Type "q" +Sleep 1s + +Type "# That's all folks!" Enter +Sleep 2s + +Type "exit" Enter +Sleep 1s + diff --git a/docs/demo.gif b/docs/demo.gif new file mode 100644 index 000000000..d76941a73 Binary files /dev/null and b/docs/demo.gif differ