From f96fd7843e4515ff0235ad0d6bec6741190f26e6 Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Wed, 17 Dec 2025 21:56:12 +0000 Subject: [PATCH] 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. --- .github/workflows/ci.yaml | 1 + .github/workflows/release.yaml | 2 +- .goreleaser.yaml | 7 ------- semver.yaml | 7 +------ 4 files changed, 3 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 29c65ff..25fddf0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,6 +12,7 @@ on: permissions: contents: read pull-requests: write + security-events: write jobs: pr-checks: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d7396ce..8e603f4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -51,7 +51,7 @@ jobs: repository: lukaszraczylo/helm-charts ref: gh-pages path: helm-charts - token: ${{ secrets.HELM_CHARTS_TOKEN }} + token: ${{ secrets.HOMEBREW_TAP_TOKEN }} - name: Update and package Helm chart run: | diff --git a/.goreleaser.yaml b/.goreleaser.yaml index e0495bb..0f1561c 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -74,15 +74,10 @@ archives: - goos: windows formats: - zip - hooks: - after: - - helm package charts/jobs-manager-operator -d dist/ checksum: name_template: 'checksums.txt' algorithm: sha256 - extra_files: - - glob: dist/jobs-manager-*.tgz changelog: sort: asc @@ -101,8 +96,6 @@ release: draft: false prerelease: auto name_template: "v{{.Version}}" - extra_files: - - glob: dist/jobs-manager-*.tgz header: | ## Jobs Manager Operator v{{.Version}} diff --git a/semver.yaml b/semver.yaml index 36e9c02..814eb82 100644 --- a/semver.yaml +++ b/semver.yaml @@ -1,11 +1,6 @@ version: 1 -force: - major: 0 - minor: 0 - patch: 0 wording: - patch: minor: - release-minor major: - - release-major \ No newline at end of file + - release-major