Overview
This guide covers upgrading CronJob Guardian to newer versions, including operator upgrades, database migrations, and handling breaking changes.Version Compatibility
CronJob Guardian follows Semantic Versioning:- Major versions (1.0.0 → 2.0.0): Breaking changes, may require manual intervention
- Minor versions (0.1.0 → 0.2.0): New features, backward compatible
- Patch versions (0.1.0 → 0.1.1): Bug fixes, backward compatible
Kubernetes Version Support
Minimum Kubernetes version: 1.25+ Tested on:- Kubernetes 1.25, 1.26, 1.27, 1.28, 1.29
- OpenShift 4.12+
Upgrade Methods
Helm Upgrade (Recommended)
Helm handles upgrade orchestration automatically.Check Current Version
Upgrade to Latest Version
--reuse-values- Keep existing configuration--reset-values- Reset to chart defaults (use with caution)--version X.Y.Z- Upgrade to specific version
Upgrade to Specific Version
Review Changes Before Upgrade
Manual Upgrade (kubectl)
For deployments not using Helm:Upgrade Process
Pre-Upgrade Checklist
Before upgrading, complete these steps:-
Review release notes
-
Backup database
-
Backup Custom Resources
-
Check resource health
-
Review breaking changes
- Check release notes for breaking changes
- Review migration steps if any
- Plan maintenance window if needed
Performing the Upgrade
Standard Upgrade (No Breaking Changes)
Upgrade with Configuration Changes
Post-Upgrade Verification
Database Migrations
CronJob Guardian uses GORM auto-migration. Database schema is automatically updated on operator startup.Migration Process
Automatic migration:- Operator starts up
- Connects to database
- GORM analyzes current schema
- Creates/modifies tables and columns as needed
- Existing data is preserved
Manual Migration (Emergency)
If auto-migration fails:--dry-run-migration flag is planned for future release.
CRD Upgrades
Custom Resource Definitions are versioned separately from the operator.Checking CRD Versions
Updating CRDs
Helm automatically updates CRDs (if configured):API Version Migration
When a new CRD version is introduced (e.g.,v1alpha1 → v1beta1):
- Both versions are supported during transition period
- Conversion webhook handles automatic conversion
- Update resources to new version:
Rollback
If upgrade fails, rollback to previous version.Helm Rollback
Manual Rollback
Database Rollback
If database migration fails:Breaking Changes by Version
v0.1.0 (Initial Release)
No breaking changes (initial release).v0.1.1 (Current)
No breaking changes from v0.1.0. Changes:- Bug fixes for UI chart styling
- Changelog generation improvements
- No configuration changes required
Future Versions
Breaking changes will be documented here as they occur.High Availability Upgrades
When running multiple replicas with leader election:Rolling Update Strategy
Helm uses RollingUpdate by default:- New pod is created with updated version
- New pod becomes ready
- Old pod is terminated
- Repeat for remaining pods
Blue-Green Upgrade
For maximum safety:Troubleshooting Upgrades
Upgrade Stuck or Failing
Check pod status:-
Image pull errors
-
CRD conflicts
-
Database migration failures
-
Resource limits
Rollback Not Working
CRD Validation Errors
Best Practices
Planning
- Read release notes - Always review before upgrading
- Test in staging - Upgrade non-production first
- Schedule maintenance - Plan for breaking changes
- Backup everything - Database, CRs, configuration
- Document changes - Track what was changed
Execution
- Upgrade during low-traffic - Minimize impact
- Monitor during upgrade - Watch logs and metrics
- Verify thoroughly - Test all features post-upgrade
- Keep rollback ready - Know how to rollback quickly
- Update documentation - Document new configuration
Automation
GitOps with ArgoCD:Version History
v0.1.1 (2026-01-02)
Changes:- Bug fixes for UI chart icon wrapper styles
- Improved changelog generation for chart versions
- Documentation updates
v0.1.0 (2026-01-02)
Initial release:- CronJob monitoring with dead-man’s switch
- SLA tracking with duration percentiles
- Alert channels (Slack, PagerDuty, Email, Webhook)
- Web UI with dashboard
- Prometheus metrics
- SQLite, PostgreSQL, MySQL support