Skip to content

Conversation

@Jaakkonen
Copy link

The Atlas Operator didn't work with TiDB due to it using Atlas EE which does something with MySQL vector extensions and fails to do anything with TiDB. I tried to change Atlas Operator to use Atlas CE but encountered some issues. This PR fixes those and depends on changes to atlasexec from ariga/atlas#3640 to communicate CE vs EE Atlas CLI differences (mainly lack of atlas whoami)

  • Treat Atlas CE edition like non-logged in Atlas EE edition. Update couple places with that.
  • Allow Dockerfile to build the operator with the Atlas CE CLI.
  • Make CI jobs build both enterprise and community variants of the images.
  • Adds AllowDirty option to enable working with TiDB which creates some tables itself and thus is automatically always considered Dirty by Atlas unless schema tries to replicate these tables but then we're encoding DB implementation details to schema which I don't like -> Add this option.

Add AllowDirty field to allow applying migrations to databases with
schemas not managed by Atlas (e.g., system schemas in TiDB/MySQL).
Handle atlasexec.ErrRequireEnterprise to support Atlas Community Edition.
Remove requiresCloudLogin() helpers and isCommunityErr() detection.
Simplify WhoAmI error handling to use wrapped Atlas CLI errors directly.

Community Edition is now treated as Enterprise Edition without cloud
login, with proper error messages from Atlas CLI including installation
instructions.
Use single Dockerfile with ATLAS_IMAGE build arg to support both
editions. Remove redundant Dockerfile.community and update workflows
to use unified build with appropriate build args.
@a8m
Copy link
Member

a8m commented Jan 5, 2026

Thanks for the PR. Please, see my comment here: ariga/atlas#3640 (review)

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.

2 participants