Commit Graph
55 Commits
Author SHA1 Message Date
lukaszraczyloandGitHub d146ece447 Update go.mod and go.sum (#56) v0.1.21 2026-10-02 04:25:37 +01:00
lukaszraczylo 15e71cffce fix(ci): require Go 1.26 instead of 1.27
The go directive moved to 1.27.0 during the dependency update. No dependency needs more than Go 1.26, and the CI runner has Go 1.25. Set the go directive, workflows and Dockerfile to 1.26.
v0.1.20
2026-10-02 04:03:22 +01:00
lukaszraczylo 1b2c2b1a3d fix(controller): detect existing job with AlreadyExists
The job creation check matched the substring 'exists' in the error text.
It now uses apierrors.IsAlreadyExists, so unrelated errors no longer match.
2026-10-02 04:01:01 +01:00
lukaszraczylo bdfc781044 fix(controller): report Failed when a group fails
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.
2026-10-02 03:59:44 +01:00
lukaszraczylo 5ebe8d8c72 ci: use Go 1.25 in workflows and Dockerfile
The module requires Go 1.25. The workflows and the Dockerfile used older versions.
2026-10-02 03:58:20 +01:00
lukaszraczylo f3f3301368 chore(deps): update Go modules to latest
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.
2026-10-02 03:58:15 +01:00
lukaszraczyloandGitHub 49f068edcd Update go.mod and go.sum (#46) v0.1.15 2026-01-15 03:30:56 +00:00
lukaszraczyloandGitHub 5b40e991c5 Update go.mod and go.sum (#45) v0.1.14 2026-01-13 03:30:53 +00:00
lukaszraczyloandGitHub 7516fa9d4f Update go.mod and go.sum (#42) v0.1.13 2026-01-10 03:30:46 +00:00
lukaszraczyloandGitHub 19a193ebe0 Update go.mod and go.sum (#41) v0.1.12 2026-01-09 03:31:35 +00:00
lukaszraczyloandGitHub 9c768d1ae1 Update go.mod and go.sum (#40) v0.1.11 2026-01-07 03:31:47 +00:00
lukaszraczyloandGitHub 04816a7524 Update go.mod and go.sum (#39) v0.1.10 2026-01-06 03:30:14 +00:00
lukaszraczylo f2db3238c0 fix: change invalid 'improved' changelog kind to 'changed'
Artifact Hub only accepts these changelog kinds:
- added, changed, deprecated, removed, fixed, security

Changed 'improved' to 'changed' for performance optimization entry.

Resolves: "error preparing package: error enriching package from
annotations: invalid change: invalid kind: improved"
v0.1.9
2026-01-04 14:36:07 +00:00
lukaszraczyloandGitHub 711ff6f309 Update go.mod and go.sum (#38) v0.1.8 2025-12-27 03:29:34 +00:00
lukaszraczyloandGitHub f015636a9e Update go.mod and go.sum (#37) v0.1.7 2025-12-24 03:31:23 +00:00
lukaszraczyloandGitHub baf0b32047 Update go.mod and go.sum (#36) v0.1.6 2025-12-23 03:31:38 +00:00
lukaszraczyloandGitHub 9a3b7e0cbf Update go.mod and go.sum (#35) v0.1.5 2025-12-22 14:35:26 +00:00
lukaszraczylo 7dd53d8530 fixup! Add rather comprehensive examples and plugin screenshot. v0.1.4 2025-12-22 14:32:27 +00:00
lukaszraczylo 5d066c1349 Add rather comprehensive examples and plugin screenshot. v0.1.3 2025-12-17 23:34:44 +00:00
lukaszraczylo 794e2d487a Remove dependency on kube-rbac-proxy. v0.1.2 2025-12-17 23:06:21 +00:00
lukaszraczylo fee9f74aad release-minor trigger. v0.1.1 2025-12-17 22:35:25 +00:00
lukaszraczylo 005df83478 Update release. 2025-12-17 22:33:24 +00:00
lukaszraczylo 836be577eb Update README.md 2025-12-17 22:33:24 +00:00
lukaszraczylo f96fd7843e new year update (#30)
* 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.

* fixup! Add reasonable test coverage.

* fixup! fixup! Add reasonable test coverage.

* fixup! fixup! fixup! Add reasonable test coverage.
2025-12-17 22:33:23 +00:00
lukaszraczylo 2b36071647 Multiple fixes (#29)
* 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.
2025-12-17 22:33:23 +00:00
lukaszraczylo b6ce5b7c98 Fix CVEs. 2025-12-17 22:33:23 +00:00
lukaszraczylo ba6e43acfe Update TOC. 2025-12-17 22:33:23 +00:00
lukaszraczylo 6f9644bdfa Fix chart 2025-12-17 22:33:22 +00:00
lukaszraczylo c604c16aa0 Add missing ImagePullPolicy to the newly created jobs. 2025-12-17 22:33:22 +00:00
lukaszraczylo 925f8a1592 Create dependabot.yml 2025-12-17 22:33:22 +00:00
lukaszraczylo 7f82327e1b Update golang to 1.21 2025-12-17 22:33:22 +00:00
lukaszraczylo 97f4007a6a Update dependencies. 2025-12-17 22:33:21 +00:00
lukaszraczylo 79c124816e Hotifx: Missing event generation permissions. 2025-12-17 22:33:21 +00:00
lukaszraczylo cb4a008e48 Add events generation rbac policy. 2025-12-17 22:33:21 +00:00
lukaszraczylo 10648997ad Fix issue with the annotations and labels. 2025-12-17 22:33:21 +00:00
lukaszraczylo bded5b0250 Add annotations support. 2025-12-17 22:33:20 +00:00
lukaszraczylo 7500a71056 Update README with examples of parameters. 2025-12-17 22:33:20 +00:00
lukaszraczylo 0a062b6ad7 Fix bug where parameters were not propagated. 2025-12-17 22:33:20 +00:00
lukaszraczylo 8799456499 Add codeowners. 2025-12-17 22:33:20 +00:00
lukaszraczylo d3c5cc6ccd Bugfix - chicken or egg situation. 2025-12-17 22:33:19 +00:00
lukaszraczylo 8bdccb4b8d Update chart information. 2025-12-17 22:33:19 +00:00
lukaszraczylo 554019b1cc Remove duplicated attempts to re-run job and add minor improvements. 2025-12-17 22:33:19 +00:00
lukaszraczylo 41421ea889 Add codeql 2025-12-17 22:33:19 +00:00
lukaszraczylo 7e4ea52abc Build docker image only on the master branch. 2025-12-17 22:33:19 +00:00
lukaszraczylo 76f25e0746 Update dependencies. 2025-12-17 22:33:18 +00:00
lukaszraczylo a20157681e Update CRD accordingly. 2025-12-17 22:33:18 +00:00
lukaszraczylo e037788677 Completely rebuild the tree generation logic. 2025-12-17 22:33:18 +00:00
lukaszraczylo e39c93e9ea Update operator build. 2025-12-17 22:33:18 +00:00
lukaszraczylo 785a6adbd4 Add RBAC access to events. 2025-12-17 22:33:17 +00:00
lukaszraczylo 35b9efc0e1 Update documentation on configmMapGenerators and kustomization. 2025-12-17 22:33:17 +00:00