Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions api/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,27 @@ require (
github.com/go-playground/validator/v10 v10.30.3
github.com/onsi/ginkgo/v2 v2.33.1
github.com/onsi/gomega v1.44.0
github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20261030140832-95b4c28097c5
github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20261103064823-cf5985075158
github.com/openstack-k8s-operators/cinder-operator/api v0.6.1-0.20261031092834-094e8ee77803
github.com/openstack-k8s-operators/designate-operator/api v0.6.1-0.20261103051030-0d213638cfa9
github.com/openstack-k8s-operators/glance-operator/api v0.6.1-0.20261031090619-3ccc350295de
github.com/openstack-k8s-operators/heat-operator/api v0.6.1-0.20261103051031-64a0dd6cfcca
github.com/openstack-k8s-operators/horizon-operator/api v0.6.1-0.20261102212920-31de7c12c504
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20261103051031-0875a9a9b8b4
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20261103163710-492c1c9c64d0
github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20261103051031-99db2536c998
github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20261103051029-c318c07564fd
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20261102122626-a5970f05c6a9
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20261102122626-a5970f05c6a9
github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20261025134505-67df8bc90b49
github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20261103073547-af57ee6eba23
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20261102202215-9d29efc4f568
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20261027125220-9de18c2bbd38
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20261030115311-f3554466b10f
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20261103064823-0a6adb8acd26
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20261104131142-288686133abc
github.com/openstack-k8s-operators/octavia-operator/api v0.6.1-0.20261103051421-d54b6faebc92
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20261103051032-1e54bb7406ef
github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20261103051421-0b46dd0416bb
github.com/openstack-k8s-operators/swift-operator/api v0.6.1-0.20261031091010-4a3ff95ec130
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20261102160732-3ffc729f42d1
github.com/openstack-k8s-operators/watcher-operator/api v0.6.1-0.20261028090456-101cd26d02d4
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20261103174944-bbdc63341f5d
github.com/openstack-k8s-operators/watcher-operator/api v0.6.1-0.20261103083711-2421be4b8e95
github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.77.1-rhobs1 // indirect
github.com/rhobs/observability-operator v1.0.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
Expand Down
28 changes: 14 additions & 14 deletions api/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ github.com/onsi/gomega v1.44.0 h1:eAiGl3Pw5jz5GQdDff0BcxYpAX1JxW8xD7mFUuwNfZQ=
github.com/onsi/gomega v1.44.0/go.mod h1:e/C2HwaZ1DhvjzXXuFhcR7hY7Sh9pl7MmoWKEjzwcdA=
github.com/openshift/api v0.0.0-20260710141509-36dec0bfafe4 h1:YVY7Mb0AdJBbNgC/Zz9R/ZwhixOmZNA8P+6ZPaDW/0M=
github.com/openshift/api v0.0.0-20260710141509-36dec0bfafe4/go.mod h1:SPLf21TYPipzCO67BURkCfK6dcIIxx0oNRVWaOyRcXM=
github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20261030140832-95b4c28097c5 h1:UB7cWL0VnTyJ3Mcx+Jfrvx4KFFiPrLm0UD/2PcMjK7A=
github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20261030140832-95b4c28097c5/go.mod h1:fT9ey8XWk3fJqnhBRwL7E5TMV1Us1JMZ7uPq690V73A=
github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20261103064823-cf5985075158 h1:s58CLGUhGF4hWqD4IQ4GzWerANh+Y2DvWLhbCmiV4DE=
github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20261103064823-cf5985075158/go.mod h1:gi9XyLgxRDZpv/DJ9d/dc7e9t8Ka404tWu3GOWInMww=
github.com/openstack-k8s-operators/cinder-operator/api v0.6.1-0.20261031092834-094e8ee77803 h1:xNwxXXhmzHlxrJI0LQ/L71ahiRWqfzVY8w6BXb9K+aQ=
github.com/openstack-k8s-operators/cinder-operator/api v0.6.1-0.20261031092834-094e8ee77803/go.mod h1:fJr6tIrenzSZcl3w3mtzkng7Z7wfnuMqQadPbA3L17U=
github.com/openstack-k8s-operators/designate-operator/api v0.6.1-0.20261103051030-0d213638cfa9 h1:GcIghnOhHtw/ebxhbg+nwWKNw9cJvxElgTAREdcpq9g=
Expand All @@ -146,8 +146,8 @@ github.com/openstack-k8s-operators/heat-operator/api v0.6.1-0.20261103051031-64a
github.com/openstack-k8s-operators/heat-operator/api v0.6.1-0.20261103051031-64a0dd6cfcca/go.mod h1:3qoJd0bWzLqfbBq0I+CIGTC5swXFkDJjEY/MH0c1JoA=
github.com/openstack-k8s-operators/horizon-operator/api v0.6.1-0.20261102212920-31de7c12c504 h1:bB7hzuE5Qpsj0TZNCxnH+1dABhGeb6QgzqFl9nCC6vU=
github.com/openstack-k8s-operators/horizon-operator/api v0.6.1-0.20261102212920-31de7c12c504/go.mod h1:HZFKd0PkXCnbozGE9o6Uweyp1yOJRyrLETPUR9HvVtY=
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20261103051031-0875a9a9b8b4 h1:cbQEwJdqwSsBlm2hyQ/2qjLIpwU4GBXjo6NzLWc9GV0=
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20261103051031-0875a9a9b8b4/go.mod h1:s8UKU0sWYxpNCUQd3pPic1JO0t3iM6bn3UFpfd1ucks=
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20261103163710-492c1c9c64d0 h1:RATOev36Xt03FvEB4O5H0w5Ctz6rXaCHnEe5UWDJySQ=
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20261103163710-492c1c9c64d0/go.mod h1:s8UKU0sWYxpNCUQd3pPic1JO0t3iM6bn3UFpfd1ucks=
github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20261103051031-99db2536c998 h1:lAdY1onKS82zaTCrJfGH5vEb0hNRPlGZwh6F7dZEe0A=
github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20261103051031-99db2536c998/go.mod h1:IV0upSS2m7pQ730O/dM2Ei7WYhj+eMmIQM+vrBAmRkI=
github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20261103051029-c318c07564fd h1:xQxGa+g3ZB0klIbp2hMBe15h7K70A1thxVjwKyQ+5Z0=
Expand All @@ -158,14 +158,14 @@ github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.2026102
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20261029132259-9d025389145b/go.mod h1:Jd4fWlkX+mMlAyY4I8TM1NAc2EJVUbJNmtKLIuXvBq0=
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20261102122626-a5970f05c6a9 h1:3DCuYuRl01+PA7sFb1Yur55BUvF405uC17HOprN1OFM=
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20261102122626-a5970f05c6a9/go.mod h1:a7cwXeo63Ce+d/BoQnfK5Qnwxi6B18F7zZlRvSd4XXA=
github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20261025134505-67df8bc90b49 h1:sPgoYHCcEOO3fGEwILjLtvPVNqMF1t75RDRApjP+1Ho=
github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20261025134505-67df8bc90b49/go.mod h1:cCxRfCjEWdp/sRHrMveWefnW87DX+CiNJWGAyzwNj+w=
github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20261103073547-af57ee6eba23 h1:wqhAqFSHcmjfiucsZXFzQj6Lx1pvARbunzAnKAAFMnQ=
github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20261103073547-af57ee6eba23/go.mod h1:Y8cHNZRuxjuvZziCg2x/F7naaCPL8rnwfuHLny+gseg=
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20261102202215-9d29efc4f568 h1:aAukvH4MtH+KjzwPzyH1uITHImsUX6AYD989JlX02wE=
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20261102202215-9d29efc4f568/go.mod h1:fkIUH6fDogJFWCsO9LpA2/qRX/2QyGgBCYdxRPBt2Po=
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20261027125220-9de18c2bbd38 h1:jDXvKlAokJqTSO+2pxnCQqvGFuyh075KY2cYwWKyGY8=
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20261027125220-9de18c2bbd38/go.mod h1:aAFZtgV/O6FcMihiM65m4e4YAigmHAx6g3c5dc/qc2E=
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20261030115311-f3554466b10f h1:laA9RWM7ANmTjQ1P0jwz6fT4MDI24Vl7RRO6QHcNlyA=
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20261030115311-f3554466b10f/go.mod h1:EMNpXmD7Z8w+7hYeUVBw8eo6FBKdLo2dir1ifAX8U7w=
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20261103064823-0a6adb8acd26 h1:a+HHSkeRjS9t1bNAP3U5++tIjccxIWKn9alsbVvCROk=
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20261103064823-0a6adb8acd26/go.mod h1:Oo7hgWgqqbiTCA/xQJcYq1a18x9bgRi1kuXMVUUOFzA=
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20261104131142-288686133abc h1:b4z4k+xnXnCgddTs/kS7LGHOOdoyVEQm8svKCGriegg=
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20261104131142-288686133abc/go.mod h1:EMNpXmD7Z8w+7hYeUVBw8eo6FBKdLo2dir1ifAX8U7w=
github.com/openstack-k8s-operators/octavia-operator/api v0.6.1-0.20261103051421-d54b6faebc92 h1:yPlaUdhkTeGs0zze6isA530PquRV8KwzcMvr2bnk4aQ=
github.com/openstack-k8s-operators/octavia-operator/api v0.6.1-0.20261103051421-d54b6faebc92/go.mod h1:EdCBPxnsDG4nRkU1Eu5kwNjDFNO24Yf0iLm2uxyKZbU=
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20261103051032-1e54bb7406ef h1:73mVHWa1iTeWUQ+tS03Jbl3wPXQO2jYIR09rdo0MqII=
Expand All @@ -174,10 +174,10 @@ github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20261103051421-0b46
github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20261103051421-0b46dd0416bb/go.mod h1:L7Z4pGiDlz31hr6henF2iESTborrQrJbpXNH7dtcS9k=
github.com/openstack-k8s-operators/swift-operator/api v0.6.1-0.20261031091010-4a3ff95ec130 h1:pZmF9W3kcGHNGOcrj9Fs01mM0IqIkGLjiAjjBNsXCwE=
github.com/openstack-k8s-operators/swift-operator/api v0.6.1-0.20261031091010-4a3ff95ec130/go.mod h1:YTkrKz6EdshbBwGdo5SVgr3uEPhFNhsLNxBvJp/owAw=
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20261102160732-3ffc729f42d1 h1:w7Cy9TT9rGKJ60rNigXufPQ24ISS5l9Ew5Ev/o6MEjA=
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20261102160732-3ffc729f42d1/go.mod h1:1aJLdzLztWllK9CescBh7t6Z+V4u0rdeTJezC/blyTU=
github.com/openstack-k8s-operators/watcher-operator/api v0.6.1-0.20261028090456-101cd26d02d4 h1:DoF8ghmk/2rfY1GPLLb90OjFlRoA/z8FAlOSX0vsJmM=
github.com/openstack-k8s-operators/watcher-operator/api v0.6.1-0.20261028090456-101cd26d02d4/go.mod h1:gONxiZauI8J1wfwUfaC2dx6+RshIO8/prcN+ym+EeRk=
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20261103174944-bbdc63341f5d h1:H2pdi4Pi79PvWqU6isPX68Syvw9BCjureSS/nevdas4=
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20261103174944-bbdc63341f5d/go.mod h1:PfvN+eoz2Dzj2iRbW9ckyjEvHEnoO0TII8D/37YUAgE=
github.com/openstack-k8s-operators/watcher-operator/api v0.6.1-0.20261103083711-2421be4b8e95 h1:PJp2bXL3hbWWgj5GA+MX38SjpAAcCLGSRw9Cpub+AzE=
github.com/openstack-k8s-operators/watcher-operator/api v0.6.1-0.20261103083711-2421be4b8e95/go.mod h1:9PR8VXwCAO4Yg/pzTeMsQto1DLZyxP5vz6Hc4pZic08=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
Expand Down
175 changes: 175 additions & 0 deletions bindata/crds/remediation.openstack.org_podremediators.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
creationTimestamp: null
name: podremediators.remediation.openstack.org
spec:
group: remediation.openstack.org
names:
kind: PodRemediator
listKind: PodRemediatorList
plural: podremediators
singular: podremediator
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Status
jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Status
type: string
- description: Message
jsonPath: .status.conditions[?(@.type=='Ready')].message
name: Message
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: |-
PodRemediator is the Schema for the podremediators API.
When present, the controller watches worker nodes and PVCs in spec.namespaces
(or only the CR's namespace when the field is empty). When NHC/SNR mark a node
for remediation, it deletes eligible PVCs so workloads can respawn.
NHC and SNR must be installed and configured; otherwise the controller sets ReadyCondition False.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: PodRemediatorSpec defines the desired state of PodRemediator
properties:
consentPollInterval:
description: |-
ConsentPollInterval controls how often the controller re-checks PVCs waiting
for SNR fencing confirmation or app-operator safe-to-delete consent.
Lower values reduce recovery latency; higher values reduce
API load. Overrides the PODREMEDIATOR_CONSENT_POLL_INTERVAL env var.
Format: Go duration string, e.g. "2m", "90s". Default: "2m".
type: string
x-kubernetes-validations:
- message: must be a valid duration of at least 1s
rule: duration(self) >= duration('1s')
disabled:
default: false
description: |-
Disabled stops annotation and deletion and clears pending remediation consent.
Default false: applying the CR enables PVC remediation when NHC/SNR are present; set disabled to true to turn it off.
type: boolean
namespaces:
description: |-
Namespaces lists the namespaces where this PodRemediator scans eligible
PVCs and may remediate those PVCs and their associated Pods. If empty, it
uses the namespace containing this CR. Node health and SNR fencing events
remain cluster-wide; this setting only scopes PVC processing.
The effective namespace scope is immutable after CR creation. Delete and
recreate the CR to change its scope; deletion cleanup clears pending
handshakes in the configured namespaces.
items:
minLength: 1
type: string
type: array
x-kubernetes-list-type: set
periodicPollInterval:
description: |-
PeriodicPollInterval is the safety-net requeue interval when the controller
is idle (no unhealthy nodes, disabled, or NHC/SNR missing). Guarantees the
controller re-evaluates node health after a pod restart when nodes are already
NotReady and no node-transition event fires. Overrides the
PODREMEDIATOR_PERIODIC_POLL_INTERVAL env var.
Format: Go duration string, e.g. "5m", "2m". Default: "5m".
type: string
x-kubernetes-validations:
- message: must be a valid duration of at least 1s
rule: duration(self) >= duration('1s')
remediationPaused:
default: false
description: |-
RemediationPaused keeps detecting and tagging stuck PVCs but prevents new PVC and Pod deletion transactions.
Pending requests and consent are retained and revalidated when remediation resumes.
Deletions already in progress or past the durable commit boundary continue to completion.
type: boolean
type: object
status:
description: PodRemediatorStatus defines the observed state of PodRemediator
properties:
conditions:
description: Conditions
items:
description: Condition defines an observation of a API resource
operational state.
properties:
lastTransitionTime:
description: |-
Last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition
in CamelCase.
type: string
severity:
description: |-
Severity provides a classification of Reason code, so the current situation is immediately
understandable and could act accordingly.
It is meant for situations where Status=False and it should be indicated if it is just
informational, warning (next reconciliation might fix it) or an error (e.g. DB create issue
and no actions to automatically resolve the issue can/should be done).
For conditions where Status=Unknown or Status=True the Severity should be SeverityNone.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of condition in CamelCase.
type: string
required:
- lastTransitionTime
- status
- type
type: object
type: array
observedGeneration:
description: ObservedGeneration is the most recent generation successfully
reconciled by the controller.
format: int64
type: integer
type: object
type: object
x-kubernetes-validations:
- message: namespace scope cannot be changed after creation; delete and recreate
the PodRemediator
rule: (has(self.spec) && has(self.spec.namespaces) && size(self.spec.namespaces)
> 0) == (has(oldSelf.spec) && has(oldSelf.spec.namespaces) && size(oldSelf.spec.namespaces)
> 0) && (!(has(self.spec) && has(self.spec.namespaces) && size(self.spec.namespaces)
> 0) || self.spec.namespaces == oldSelf.spec.namespaces)
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: null
storedVersions: null
4 changes: 4 additions & 0 deletions bindata/crds/telemetry.openstack.org_cloudkittyapis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ spec:
databaseHostname:
description: DatabaseHostname - CloudKitty Database Hostname
type: string
memcachedInstance:
default: memcached
description: Memcached instance name.
type: string
networkAttachments:
description: NetworkAttachments is a list of NetworkAttachment resource
names to expose the services to the given network
Expand Down
Loading
Loading