GitOps Domain Snapshot Orchestrator for Switcher API
Switcher GitOps is used to orchestrate Domain Snapshots for Switcher API. It allows managing feature flags and configurations lifecycle.
- Manages Switchers with GitOps workflow (repository as a source of truth)
- Repository synchronization allows integrated tools such as Switcher API Management and Switcher Slack App to work in sync
- Flexible settings allow you to define the best workflow for your organization
- Orchestrates accounts per Domain environments allowing seamless integration with any branching strategy
Switcher GitOps is available as a cloud-hosted service. You can sign up for a free account at Switcher API Cloud.
- Create and Configure a new Domain
- Select the Domain and click on the Menu toolbar
- Under Integrations, select Switcher GitOps
- Follow the instructions to set up the repository
- Kubernetes cluster
- Helm 3
- Switcher API & Switcher Management
- Git Token (read/write access) for the repository
Find detailed instructions on how to deploy Switcher GitOps to Kubernetes here.
- Docker & docker-compose
- Switcher API & Switcher Management
- Git Token (read/write access) for the repository
-
Configure Switcher API to allow Switcher GitOps to access the API
Set SWITCHER_GITOPS_JWT_SECRET for Switcher API and SWITCHER_API_JWT_SECRET for Switcher GitOps. -
Start Switcher API and Switcher Management
-
Start Switcher GitOps
docker-compose -d up
You might need to remove mongodb setting from docker-compose.yml if launching the full Switcher API stack from step 2.
- Go [check version in go.mod]
- MongoDB +7.0
- Clone the repository
- Configure the environment variables in the
.env.test
file make run-test
to start the application
Set up PAT (Personal Access Token) for Switcher GitOps to access the repository. You can either create a fine-grained token with only the necessary permissions such as Content (Read and Write) and Metadata (Read) or use a personal token with full access.
Once you have the token, you can set it up in the .env.test
environment file by including the following:
GIT_USER=[YOUR_GIT_USER]
GIT_TOKEN=[YOUR_GIT_TOKEN]
GIT_TOKEN_READ_ONLY=[YOUR_GIT_TOKEN_READ_ONLY]
GIT_REPO_URL=[YOUR_GIT_REPO_URL]
GIT_BRANCH=[YOUR_GIT_BRANCH]
GIT_PATH=[YOUR_GIT_PATH]