Commit Graph

104 Commits

Author SHA1 Message Date
25546df4f3 FEAT(app): add prod yaml to kustomization
- Add production ArgoCD Application to kustomization
- Enable prod deployment management
2025-12-30 01:35:28 +09:00
f9a585cfe5 FIX(deploy): base deployment image url to ghcr.io
- Change github.com/Mayne0213/jovies to ghcr.io/mayne0213/jovies
- Ensures kustomize image replacement works correctly
2025-12-30 01:30:19 +09:00
a04ab84435 CHORE(ci): update ArgoCD URLs to GitHub
- Update repository URLs from Gitea to GitHub
- Change source control references
2025-12-30 01:08:45 +09:00
0101b58bd0 CHORE(app): switch dev ingress to Traefik
- Change ingress controller from HAProxy to Traefik
- Update ingress annotations
2025-12-30 00:37:49 +09:00
2edb888008 REFACTOR(auth): use CR_PAT for ghcr.io
- Use CR_PAT instead of GITHUB_TOKEN for registry login
- Fix authentication for private container registry
2025-12-30 00:04:17 +09:00
67fa839f46 REFACTOR(ci): migrate repoURL from Gitea to GitHub
- Update repository URL to GitHub
- Change source control provider
2025-12-29 20:38:23 +09:00
52712a4d32 PERF(app): optimize kubectl installation
- Check if kubectl already exists first
- Use specific version instead of querying stable.txt
- Show download progress
- Skip installation if already present

This should significantly reduce setup time if kubectl
is already included in the runner image
2025-12-28 18:04:14 +09:00
7d2320b38a FIX(build): init container: create build directory
- Add mkdir -p /workspace/build before copying files
- Add set -e for early error detection
- Add debug output for better visibility
- This fixes 'No such file or directory' error
2025-12-28 18:03:00 +09:00
aec80456ef PERF(config): improve kubeconfig decoding
- Remove all whitespace before decoding
- Try both -d and --decode options
- Fallback to using value as-is (if Gitea already decoded)
- Verify YAML validity before using
- Better error handling and diagnostics
2025-12-28 17:56:32 +09:00
9455c521cf FEAT(config): add debugging for kubeconfig secret
- Check if secret is set and show helpful error
- Handle both single-line and multi-line base64
- Show secret length and preview for debugging
- Provide direct link to secrets settings
2025-12-28 17:53:27 +09:00
2a42104912 CHORE(app): use kaniko as separate job
Architecture (Option 3 - Recommended):
Runner Pod (DinD maintained)
 └─ kubectl create job
     └─ Kaniko Pod (isolated)

Benefits:
- Resource isolation
- Parallel builds possible
- Build failures don't affect runner
- Pod-level isolation
- Proper security boundaries

Changes:
- Restore kubectl and kubeconfig setup
- Use kubeconfig from Gitea Secret
- Create Kaniko Job in separate namespace
- Wait for Job completion
- Proper cleanup after build

Infrastructure (already deployed via ArgoCD):
- kaniko-builds namespace
- RBAC for gitea runner ServiceAccount
- Proper permission boundaries
2025-12-28 17:43:22 +09:00
619eabf4c4 CHORE(docker): run kaniko directly
Remove Kubernetes complexity:
- Remove kubectl installation and setup
- Remove kubeconfig generation
- Remove Kubernetes Job creation
- Use docker run to execute Kaniko directly

Benefits:
- Much simpler workflow
- No Kubernetes API access needed
- No RBAC complexity in workflow
- Faster execution (no Job overhead)
- Kaniko still builds without Docker daemon

Note: Kaniko infrastructure (namespace, RBAC) kept via
ArgoCD for potential future use or manual kubectl access
2025-12-28 17:40:59 +09:00
7b0f520e54 FIX(k8s): in-cluster kubeconfig access
- Set KUBECONFIG env at job level for all steps
- Generate kubeconfig from ServiceAccount token
- Use tokenFile reference for automatic token renewal
- Set proper cluster CA and server URL
- Test connection after setup

This ensures kubectl works correctly inside K8s Pod runner
2025-12-28 17:38:14 +09:00
37a7dbd561 CHORE(deploy): use argocd for kaniko
Infrastructure as Code:
- Add Kaniko namespace and RBAC manifests
- Create ArgoCD Application for Kaniko infrastructure
- Kustomize configuration for Kaniko resources

Workflow improvements:
- Remove kubeconfig dependency
- Use in-cluster ServiceAccount (runner runs in K8s)
- Remove all sudo commands
- Simplify Kubernetes access

GitOps workflow:
1. Push manifests to Git
2. ArgoCD auto-syncs infrastructure
3. Gitea runner uses ServiceAccount permissions
4. Kaniko builds run in kaniko-builds namespace

Benefits:
- True GitOps approach
- No secrets management needed
- Declarative infrastructure
- ArgoCD handles reconciliation
- Audit trail in Git
2025-12-28 17:36:10 +09:00
363f71d4a6 REFACTOR(config): use gitea kubeconfig
- Remove local kubeconfig detection logic
- Use KUBECONFIG secret from Gitea
- Decode base64-encoded kubeconfig
- Simplify setup and improve security
2025-12-28 17:08:24 +09:00
bf62077841 FIX(config): kubeconfig setup with fallback logic
- Add checks for kubeconfig file existence
- Try multiple methods to locate kubeconfig
- Add debugging output for troubleshooting
- Test kubectl connection with fallback to sudo
2025-12-28 17:06:43 +09:00
38cf2fb891 REFACTOR(app): extract kaniko manifest
- Create deploy/kaniko/job.yaml as template
- Use sed for template variable substitution
- Remove inline YAML heredoc from workflow
- Simplify workflow logic with template-based approach
- Add resource limits for Kaniko container
- Improve logging and error handling

Benefits:
- Better code organization and readability
- Easier to maintain and test
- Reusable manifest template
- Version controlled configuration
2025-12-28 17:05:14 +09:00
6bf3bff394 FEAT(config): add kubectl and kubeconfig
- Install kubectl if not available
- Setup kubeconfig from K3s
- Verify cluster access
2025-12-28 17:01:27 +09:00
9316f068a4 REFACTOR(docker): use kaniko on k8s
- Remove Docker dependency completely
- Execute Kaniko as Kubernetes Job in kaniko-builds namespace
- Use init container to clone source code from Git
- Share build context via EmptyDir volume
- Manage registry credentials as Kubernetes Secret
- Add job completion wait and cleanup logic

Benefits:
- No Docker daemon required (true Kaniko usage)
- Cloud-native build process
- Better isolation and security
- Automatic cleanup with ttlSecondsAfterFinished
2025-12-28 16:59:57 +09:00
826ed70e79 FIX(docker): use kaniko executor binary
- Download Kaniko executor binary directly
- Remove docker run dependency
- Use absolute paths instead of container volume mounts
- Fixes Docker daemon connection error
2025-12-28 16:54:14 +09:00
67baabcf29 PERF(app): optimize CPU from metrics
- jovies prod: 15m → 5m (actual: 1-2m)
2025-12-26 11:46:56 +09:00
ac66732ffc FEAT(app): add per-application ingress management
- Added ingress.yaml for production and development environments
- Updated kustomization files to include ingress resources
- Migrated from centralized ingress management to per-app architecture
2025-12-25 20:26:42 +09:00
8ff104fa09 FIX(app): fix image path mayne0213 to bluemayne
- Change image path to match Gitea repository name
- Fix container registry reference
2025-12-20 14:02:23 +09:00
7b6f2465c4 REFACTOR(app): switch to gitea registry
- Migrate container registry to Gitea
- Update image references
2025-12-20 14:02:23 +09:00
e34b91e285 CHORE(build): switch to kaniko builds
- Replace Docker build with Kaniko
- Enable secure rootless container builds
2025-12-20 14:02:23 +09:00
ba2ef73bfb CHORE(merge): merge develop to main
- Switch to Gitea container registry
- Merge registry migration changes
2025-12-20 13:04:36 +09:00
673921be5c REFACTOR(auth): use gitearegistry secret
- Change to gitearegistry secret for authentication
- Update registry credentials
2025-12-20 13:04:10 +09:00
c411a6499b REFACTOR(auth): use gitea secret
- Use Gitea-provided secret for registry authentication
- Simplify credential management
2025-12-20 12:45:02 +09:00
2101818450 REFACTOR(auth): use GITEA_PACKAGE_TOKEN
- Change to GITEA_PACKAGE_TOKEN for authentication
- Update registry login method
2025-12-20 12:42:20 +09:00
1db60d59ea FIX(ci): fix gitea registry login
- Use github.token for Gitea registry authentication
- Fix CI authentication
2025-12-20 12:38:57 +09:00
ce5894d2be CHORE(app): switch to Gitea container registry
- Migrate from ghcr.io to Gitea registry
- Update image references
2025-12-20 12:29:16 +09:00
d0b2fae860 CHORE(app): refresh hooks
- Trigger CI/CD pipeline
- Refresh deployment hooks
2025-12-18 17:34:42 +09:00
8ef073bb17 CHORE(app): refresh hooks
- Trigger CI/CD pipeline
- Refresh deployment hooks
2025-12-18 17:34:41 +09:00
5847b3ff2f FEAT(deploy): add prod argocd app
- Add ArgoCD Application for production environment
- Enable prod deployment management
2025-12-17 20:28:07 +09:00
4d858047cf CHORE(deploy): update argocd path
- Move ArgoCD application to deploy/argocd
- Update path references
2025-12-17 18:37:58 +09:00
f4c8858cb6 CHORE(merge): merge main branch changes
- Update application path to deploy/argocd
- Sync with main branch
2025-12-17 18:34:19 +09:00
d59294995d CHORE(deploy): update argocd path
- Move ArgoCD application to deploy/argocd
- Update path references
2025-12-17 18:33:10 +09:00
fafc265895 REFACTOR(deploy): move argocd manifests
- Reorganize ArgoCD application structure
- Move manifests to deploy/argocd folder
2025-12-17 18:27:23 +09:00
2e2d21bfeb REFACTOR(deploy): move argocd manifests
- Reorganize ArgoCD application structure
- Move manifests to deploy/argocd folder
2025-12-17 18:26:23 +09:00
c877661fd2 REFACTOR(deploy): remove argocd yaml
- Remove ArgoCD application from kustomization
- Prevent duplicate resource management
2025-12-17 18:17:05 +09:00
5eca3ecc95 REFACTOR(deploy): remove argocd yaml
- Remove ArgoCD application from kustomization
- Prevent duplicate resource management
2025-12-17 18:14:38 +09:00
41f67ad236 FEAT(app): add self-managing application resources
- Add ArgoCD Application manifest
- Enable GitOps self-management
2025-12-17 18:02:02 +09:00
3396abc352 FEAT(app): add self-managing application resources
- Add ArgoCD Application manifest
- Enable GitOps self-management
2025-12-17 18:02:02 +09:00
442c6e4e81 CHORE(merge): merge self-managing resources
- Merge ArgoCD self-management from main
- Sync with main branch
2025-12-17 18:01:49 +09:00
7af520bc03 CHORE(app): eliminate GitHub references
- Remove GitHub-specific configurations
- Clean up unused references
2025-12-13 11:52:29 +09:00
31ecd1dda4 CHORE(merge): merge branch main into develop
- Sync develop with main branch
- Resolve merge conflicts
2025-12-12 00:48:47 +09:00
5aafac4f7f FEAT(ci): add Gitea Actions workflow with ghcr.io
- Add CI/CD workflow for Gitea Actions
- Configure ghcr.io registry push
2025-12-12 00:17:49 +09:00
35f250eaa1 CHORE(docker): use standard docker build
- Use standard docker build for DinD compatibility
- Simplify build process
2025-12-11 23:05:47 +09:00
6480925d47 FIX(ci): fix Gitea Actions context variables
- Use github.* instead of gitea.* context
- Fix workflow variable references
2025-12-11 22:59:58 +09:00
19a44dccec CHORE(merge): merge branch develop
- Sync main with develop branch
- Apply development changes
2025-12-11 20:05:11 +09:00