-
Notifications
You must be signed in to change notification settings - Fork 0
feat: Complete GitOps migration with multi-env support #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add test environment configuration: - kustomization.yaml with all platform resources - destination.yaml for tst-cluster - bootstrap.yaml for ArgoCD root app 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add staging environment configuration: - kustomization.yaml with all platform resources - destination.yaml for stg-cluster - bootstrap.yaml for ArgoCD root app 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Activate production environment configuration: - Replace commented kustomization.yaml with working config - Update destination.yaml for prd-cluster - Update bootstrap.yaml with full ArgoCD Application spec - Tenant chat-api commented out (enable when ready for production) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add tenant infrastructure: - namespace.yaml for chat-api namespace with labels - resource-quota.yaml with CPU/memory/storage limits - base/kustomization.yaml to bundle tenant resources Fix chat app structure: - Remove secrets from base/kustomization.yaml - Create overlays/dev/kustomization.yaml with base + secrets 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add placeholder structure for future Dify deployment: - base/kustomization.yaml (commented out) - base/application.yaml template (commented out) - README.md with TODO tasks and links 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add release.yaml: - Semantic-release workflow for automated versioning - Triggers on push to main (excluding markdown and validate.yaml) - Uses .releaserc.json configuration Update validate.yaml: - Add tst, stg, prd environments to matrix - All 4 environments now validated on PRs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Update tenants-project.yaml: - Add destinations for tst-cluster, stg-cluster, prd-cluster - Add namespaceResourceWhitelist for common K8s resources - Keep existing in-cluster destination for dev 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Fix kustomize validation error by moving ingress YAML files from overlays/ to base/ directory. Kustomize doesn't allow referencing files outside the base directory. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add data-team tenant structure: - namespace.yaml with team labels - resource-quota.yaml (8/16 CPU, 16/32Gi memory, 100Gi storage) - base/kustomization.yaml 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add ml-team tenant structure: - namespace.yaml with team labels - resource-quota.yaml (16/32 CPU, 32/64Gi memory, 200Gi storage) - base/kustomization.yaml Higher resource limits for ML workloads (GPU training, inference). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Fix dev bootstrap.yaml: - Change repoURL from app-release.git to app-poly-gitops-k8s.git - Update path from platform/core/cluster-bootstrap to clusters/dev - Add labels, finalizers, project, syncPolicy - Use destination.name: in-cluster instead of server URL Now consistent with tst/stg/prd bootstrap configurations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Add Helm values for chat-api across all environments: dev (2 replicas, 1Gi): - host: chat-dev.syncjob.ru tst (1 replica, 512Mi): - host: chat-tst.syncjob.ru stg (2 replicas, 1Gi): - host: chat-stg.syncjob.ru prd (3 replicas, 2Gi): - host: chat.syncjob.ru Create kustomization.yaml for tst/stg/prd overlays. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Replace simple list generator with matrix generator for multi-env support.
Matrix generates 4 Applications automatically:
- product-team-chat-dev → in-cluster
- product-team-chat-tst → tst-cluster
- product-team-chat-stg → stg-cluster
- product-team-chat-prd → prd-cluster
Features:
- Multi-source: Helm chart + GitOps values
- Dynamic path: tenants/{{team}}/apps/{{app}}/overlays/{{env}}
- Environment-specific values from overlays
- Labels for filtering (team, app, env)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
- Split tenant-apps into tenant-apps-dev (with Image Updater) and tenant-apps (tst/stg/prd) - Enable goTemplate for proper variable interpolation - Image Updater writes to tenants/.../overlays/dev/values.yaml - Remove legacy base/application.yaml (now managed by ApplicationSet) - Remove legacy clusters/dev/chat-values.yaml 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Skip ArgoCD, cert-manager, and sealed-secrets CRDs that don't have built-in schemas in kubeconform. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Changes
Clusters
clusters/tst/,clusters/stg/- new environmentsclusters/prd/- activatedclusters/dev/bootstrap.yaml- fixed repository URLTenants
tenants/product-team/- namespace.yaml, resource-quota.yaml, chat app overlaystenants/data-team/,tenants/ml-team/- new teamsGitOps
platform/gitops/appsets/tenant-apps.yaml- split into dev (with Image Updater) and non-devCI/CD
.github/workflows/validate.yaml- matrix for dev/tst/stg/prd.github/workflows/release.yaml- semantic-release workflow.releaserc.json- semantic-release configTest plan
🤖 Generated with Claude Code