-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
- If you are interested in working on this issue or have submitted a pull request, please leave a comment.
- I'd be willing to implement this feature (contributing guide)
Describe the user story
It would be nice to legitimize Atlantis for production by putting together a list of necessary items to create a 1.0 release.
This was also mentioned in the Atlantis slack community on Aug 9 2021 by @nishkrishnan
Atlantis was initially intended to be interfaced solely through PR actions due to a number of reasons such as:
- Getting persistence for free with Github PRs.
- Getting an audit trail for free with PR search/history
- The benefits of markdown templating in comments
- Ease of project bootstrapping
However, as Atlantis is more widely adopted by the community we want to provide some direction for the project and hopefully expand the capabilities of the platform. Atlantis 1.0 is the goal we are setting for ourselves to move towards an API driven platform that’s integrated with version control but NOT entirely dependent on it. This provides the building blocks for things like integrating with other services (ie. deploy pipelines), enables usage of a standard release process (ie. post-merge to default branch) and ultimately allows us to build a richer experience since we’re not limited by VCS provider functionality (ie. real-time feedback and better formatting).
This is a large endeavor and we don’t expect to release 1.0 until we are confidant that the platform is stable. As for how we intend to do this, we plan on tackling this incrementally through a couple projects in the short-term that will bring us closer to this vision:
- Real-time feedback/streaming of terraform outputs
- Supporting multiple entrypoints into the system (events and api)
- Decoupling VCS specific logic from the core components of the platform
What can the community do to help?Keep this vision in mind when contributing features/bug fixes as we want to make sure we are moving forwards not backwards. In addition to that stay tuned for more technical specifics on the next steps.
Describe the solution you'd like
Come up with a list of items that need to be complete for a 1.0 release
- Real-time feedback/streaming of terraform outputs
- This may already be completed since websockets for workflows were implemented
- feat: streaming terraform logs in real-time #1937
- Supporting multiple entrypoints into the system (events and api)
- This may already be completed since /plan and /apply routes were implemented
- Add the /plan and /apply endpoints #997
- Cloud agnostic
- proven to work on aws, gce
- aws - https://github.com/terraform-aws-modules/terraform-aws-atlantis
- gce - https://registry.terraform.io/modules/bschaatsbergen/atlantis/gce/latest
- k8s deployment via helm chart - https://github.com/runatlantis/helm-charts
- Add debian docker image flavor
- Deprecation of old flags
- CodeQL issues
Future release
- Decoupling VCS specific logic from the core components of the platform
- This could be completed using go modules and a separate repo per vcs
- Split VCS using a plugin based architecture #2991
Describe the drawbacks of your solution
None that I can think of
Describe alternatives you've considered
None