Switcher GitOps
GitOps Domain Snapshot Orchestrator for Switcher API
About
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
Getting Started
Using Swither API Cloud
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
Self-hosted: Deploying to Kubernetes
Requirements
- 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.
Development: Deploying locally
Requirements
- 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.
Development: Running locally
Requirements
- Go [check version in go.mod]
- MongoDB +7.0
- Clone the repository
- Configure the environment variables in the
.env.test
file
make run
to start the application
Integrated tests
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]