The GitHub integration enables GitOps workflows, allowing you to store stack configurations in Git and maintain a full audit trail of infrastructure changes.
Overview
Connecting GitHub to Ankra enables:- Configuration Storage: Store Helm values and manifests in your repository
- Version Control: Track all infrastructure changes with Git history
- GitOps Workflows: Sync changes between Ankra and your repository
- Audit Trail: Full history of who changed what and when
- Collaboration: Use pull requests and code review for infrastructure changes
Connecting GitHub
1
Navigate to Cluster Settings
Go to your cluster and click Settings → Repository tab.
2
Connect GitHub
Click Connect GitHub. You’ll be redirected to GitHub to authorize the Ankra GitHub App.
3
Authorize Access
Review the permissions requested:
- Read access to metadata
- Read and write access to repository contents
4
Select Repository
Choose an existing repository or create a new one. Ankra will create a
cluster/ folder in this repository to store your configuration.5
Configure Sync
Choose your sync settings:
- Branch: Which branch to sync with (default:
main) - Auto-sync: Whether to automatically sync changes
Repository Structure
When connected, Ankra creates the following structure in your repository:Files Explained
| Path | Description |
|---|---|
stacks/{name}/values/ | Helm values files for each add-on |
stacks/{name}/manifests/ | Raw Kubernetes manifests |
settings.yaml | Cluster-level configuration |
Sync Behavior
Ankra → GitHub
When you make changes in Ankra:- Changes are saved to the platform
- Configuration is exported to the connected repository
- A commit is created with the changes
- You can see the commit in GitHub history
GitHub → Ankra
When you make changes in GitHub:- Push changes to the configured branch
- Ankra detects the changes
- Configuration is imported and validated
- Changes are applied to your cluster
Using GitOps
Making Changes via Git
1
Clone the Repository
2
Edit Configuration
Modify values files or manifests:
3
Commit and Push
4
Sync in Ankra
Navigate to your cluster’s GitOps page and click Sync to pull the changes, or wait for auto-sync if enabled.
Pull Request Workflow
For production environments, use pull requests:- Create a feature branch
- Make configuration changes
- Open a pull request
- Review changes with your team
- Merge to trigger sync
Viewing Git History
In Ankra
Navigate to your cluster’s GitOps page to see:- Last sync timestamp
- Recent commits affecting this cluster
- Sync status and any errors
In GitHub
View the full commit history in your repository to see:- All configuration changes over time
- Who made each change
- Commit messages explaining changes
Managing Access
Repository Permissions
The Ankra GitHub App requests:| Permission | Purpose |
|---|---|
| Contents (read/write) | Read and write configuration files |
| Metadata (read) | Access repository information |
Revoking Access
To disconnect GitHub:- Go to cluster Settings → Repository
- Click Disconnect
- Go to GitHub Settings → Applications → Authorized OAuth Apps
- Find Ankra and click Revoke
Troubleshooting
Sync Failures
If sync fails, check:- Repository Access: Ensure the Ankra app still has access to the repository
- Branch Exists: Verify the configured branch exists
- Valid YAML: Ensure all configuration files are valid YAML
- Conflicts: Resolve any merge conflicts in the repository
Permission Errors
If you see permission errors:- Go to GitHub Settings → Applications → Installed GitHub Apps
- Find Ankra and click Configure
- Ensure the repository is in the “Selected repositories” list
Out of Sync
If Ankra and GitHub are out of sync:- Navigate to the cluster’s GitOps page
- Click Force Sync to re-sync from the repository
- Review any conflicts and resolve them
Best Practices
CI/CD Integration
Integrate with CI/CD pipelines:GitHub Actions Example
Deployment Pipeline
Still have questions? Join our Slack community and we’ll help out.