-
Notifications
You must be signed in to change notification settings - Fork 24
Config follow-up: Conditions Add status tracking to Config resource #474
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
andreaskaris
wants to merge
4
commits into
bpfman:main
Choose a base branch
from
andreaskaris:conditions
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
frobware
pushed a commit
to frobware/bpfman-operator
that referenced
this pull request
Sep 10, 2025
…s/component-update-ocp-bpfman-operator-bundle chore(deps): update ocp-bpfman-operator-bundle to 7f70133
f8e8458 to
c3e3ac8
Compare
e3b5b5b to
26b91ff
Compare
26b91ff to
8034a9b
Compare
|
@andreaskaris, this pull request is now in conflict and requires a rebase. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #474 +/- ##
===========================
===========================
☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
8034a9b to
11e0663
Compare
de38190 to
9bec17c
Compare
78bf9af to
5e4fae6
Compare
fadc69b to
cbdeaa4
Compare
cbdeaa4 to
851872d
Compare
296bca9 to
8313855
Compare
88f9ec0 to
478b4d8
Compare
3611b17 to
8766496
Compare
4733e54 to
703ef1c
Compare
Implements status conditions and component status tracking for the Config custom resource to provide visibility into the reconciliation state of managed components (ConfigMap, DaemonSets, CSIDriver, SCC). - Add ConfigComponentStatuses type with status for each component - Implement Progressing and Available conditions following Kubernetes conventions - Add event recording for status changes - Update controller with status subresource RBAC permissions - Add test coverage for all status states - Integrate status checks into lifecycle tests The status system tracks individual component readiness and sets overall conditions to indicate when the Config is progressing or fully available. Signed-off-by: Andreas Karis <[email protected]>
Signed-off-by: Andreas Karis <[email protected]>
Add checkResourcesInDesiredState function to verify that the default health probe port (8175) is correctly applied to bpfman and metrics proxy DaemonSets when not explicitly set in the Config spec. This test ensures the default value handling introduced in the API standards compliance changes works correctly at runtime. Signed-off-by: Andreas Karis <[email protected]>
703ef1c to
178443d
Compare
Make the following changes to align with OpenShift API standards: - Update field documentation to use lowercase descriptions per OpenShift style guidelines - Add explicit field descriptions for metadata, spec, and status on Config type - Remove redundant +kubebuilder:validation:Required tags (implied by +required marker) - Add validation constraints (MinLength, MaxLength) to string fields - Change HealthProbePort type from int to int32 for consistency - Make HealthProbePort optional, with default value 8175 applied in controller instead of API layer - Add enum validation for AgentSpec.LogLevel - Use omitzero JSON tag for required Spec field - Add MaxItems validation for status Conditions array - Add documentation for ConfigComponentStatus constants Signed-off-by: Andreas Karis <[email protected]>
178443d to
49317e6
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements status conditions and component status tracking for the
Config custom resource to provide visibility into the reconciliation
state of managed components (ConfigMap, DaemonSets, CSIDriver, SCC).
conventions
The status system tracks individual component readiness and sets
overall conditions to indicate when the Config is progressing or
fully available.
Note: For conditions, I decided to follow advice from https://superorbital.io/blog/status-and-conditions/ and use positive-polarity conditions:
In turn, my interpretation of this is that Progressing: True; Available: True is the way to indicate Availability (as opposed to Progressing: False, Available: True). That's also how Deployments do it. A progressing state on the other hand is Progressing: True, Available: False
And the slightly counterintuitive (but that could be solved by removing PROGRESSING column from the short output):