checkOverallStatus overwrote the Failed status with Running. A failed workflow
stayed Running and kept requeueing. It now stays Failed and the failure event
fires once. Also remove err shadowing in the visualization client.
Update k8s libraries to v0.37.1 and controller-runtime to v0.25.2.
Pin kube-openapi to the version that k8s v0.37.1 requires.
Add the new Apply method to the test status writer mock.
* Multiple fixes
- add goreleaser to the build / release process
- add kubectl plugin for job graphs visualization
- add installation scripts
- update dependencies
* Update the release & CRD content.
* Next set of improvements.
Code Quality
- Label constants: Added LabelWorkflowName, LabelGroupName, LabelJobName, LabelJobID in controllers/definitions.go
- Removed commented debug code: Cleaned up dead code from multiple files
- Removed unused dependencyTree field: Cleaned connPackage struct
- Fixed snake_case variables: Changed to camelCase (runGroup, groupDep, runJob, jobDep, k8sJob)
Kubernetes Best Practices
- Finalizers: Implemented handleDeletion() and deleteChildJobs() for proper cleanup
- Status enum validation: Added +kubebuilder:validation:Enum=pending;running;succeeded;failed;aborted
- ImagePullPolicy default: Created getImagePullPolicy() helper that defaults to IfNotPresent
- Resource limits support: Added Resources *corev1.ResourceRequirements to ManagedJobParameters
Observability
- Prometheus metrics: Created controllers/metrics.go with counters (jobs created/succeeded/failed), histogram (reconciliation duration), and gauge (active jobs)
- Structured logging: Added logger field to connPackage, used context-based logging throughout
Configuration
- Leader election ID: Made configurable via --leader-election-id flag
- Development mode: Made configurable via --dev-mode flag and LOG_LEVEL env var
Performance
- Dependency lookup optimization: Changed from O(n*m) to O(1) using lookup maps (jobDepMap, groupDepMap)
- Reconciliation backoff: Added RequeueAfter: 30*time.Second when workflow is running
Documentation & Testing
- Godoc documentation: Added comprehensive comments to API types and controller
- Unit tests: Added helpers_test.go with tests for all helper functions
- Integration tests: Added managedjob_controller_test.go with Ginkgo/Gomega tests
* Add the helm chart release.
* Add reasonable test coverage.