cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediationTemplate
> metadata:
> name: far-oost-template
> namespace: openshift-workload-availability
> spec:
> template:
> spec:
> agent: fence_ipmilan
> remediationStrategy: OutOfServiceTaint
> sharedSecretName: fence-agents-credentials
> sharedparameters:
> "--ip": "127.0.0.1"
> "--ipport": "623"
> "--action": "reboot"
> "--username": "admin"
> "--password": "password"
> nodeparameters:
> "--ip":
> worker-0-2: "127.0.0.1"
> EOF
fenceagentsremediationtemplate.fence-agents-remediation.medik8s.io/far-oost-template created
[kni@ocp-edge04 ~]$ cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediation
> metadata:
> name: worker-0-2
> namespace: openshift-workload-availability
> spec:
> agent: fence_ipmilan
> remediationStrategy: OutOfServiceTaint
> sharedSecretName: fence-agents-credentials
> EOF
Error from server (Forbidden): error when creating "STDIN": admission webhook "vfenceagentsremediation.kb.io" denied the request: invalid spec: mandatory parameters are missing
[kni@ocp-edge04 ~]$ cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediation
> metadata:
> name: worker-0-2
> namespace: openshift-workload-availability
> spec:
> agent: fence_ipmilan
> remediationStrategy: OutOfServiceTaint
> sharedSecretName: fence-agents-credentials
> sharedparameters:
> "--ip": "127.0.0.1"
> "--ipport": "623"
> "--action": "reboot"
> EOF
Error from server (Forbidden): error when creating "STDIN": admission webhook "vfenceagentsremediation.kb.io" denied the request: invalid spec: mandatory parameters are missing
[kni@ocp-edge04 ~]$ cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediation
> metadata:
> name: worker-0-2
> namespace: openshift-workload-availability
> spec:
> agent: fence_ipmilan
> remediationStrategy: OutOfServiceTaint
> sharedSecretName: fence-agents-credentials
> sharedparameters:
> "--ip": "127.0.0.1"
> "--ipport": "623"
> "--action": "reboot"
> "--username": "admin"
> "--password": "password"
> nodeparameters:
> "--ip":
> worker-0-2: "127.0.0.1"
> EOF
fenceagentsremediation.fence-agents-remediation.medik8s.io/worker-0-2 created
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o yaml | grep timeAdded
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o yaml | grep timeAdded
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o yaml
apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
kind: FenceAgentsRemediation
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"fence-agents-remediation.medik8s.io/v1alpha1","kind":"FenceAgentsRemediation","metadata":{"annotations":{},"name":"worker-0-2","namespace":"openshift-workload-availability"},"spec":{"agent":"fence_ipmilan","nodeparameters":{"--ip":{"worker-0-2":"127.0.0.1"}},"remediationStrategy":"OutOfServiceTaint","sharedSecretName":"fence-agents-credentials","sharedparameters":{"--action":"reboot","--ip":"127.0.0.1","--ipport":"623","--password":"password","--username":"admin"}}}
creationTimestamp: "2026-02-18T20:52:55Z"
finalizers:
- fence-agents-remediation.medik8s.io/far-finalizer
generation: 2
name: worker-0-2
namespace: openshift-workload-availability
resourceVersion: "294986"
uid: 311c160c-aaf6-419d-a9c0-74d42d9c8d4a
spec:
agent: fence_ipmilan
nodeparameters:
--ip:
worker-0-2: 127.0.0.1
remediationStrategy: OutOfServiceTaint
retrycount: 5
retryinterval: 5s
sharedSecretName: fence-agents-credentials
sharedparameters:
--action: reboot
--ip: 127.0.0.1
--ipport: "623"
--password: password
--username: admin
timeout: 1m0s
status:
conditions:
- lastTransitionTime: "2026-02-18T20:54:06Z"
message: Fence agent command has failed
reason: FenceAgentFailed
status: "False"
type: Processing
- lastTransitionTime: "2026-02-18T20:54:06Z"
message: Fence agent command has failed
reason: FenceAgentFailed
status: "False"
type: FenceAgentActionSucceeded
- lastTransitionTime: "2026-02-18T20:54:06Z"
message: Fence agent command has failed
reason: FenceAgentFailed
status: "False"
type: Succeeded
lastUpdateTime: "2026-02-18T20:54:06Z"
[kni@ocp-edge04 ~]$ oc get node worker-0-2 -o jsonpath='{.spec.taints}' | grep out-of-service
[kni@ocp-edge04 ~]$ oc delete far worker-0-2 -n openshift-workload-availability
fenceagentsremediation.fence-agents-remediation.medik8s.io "worker-0-2" deleted from openshift-workload-availability namespace
[kni@ocp-edge04 ~]$ cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediation
> metadata:
> name: worker-0-2
> namespace: openshift-workload-availability
> spec:
> agent: fence_blank
> remediationStrategy: OutOfServiceTaint
> sharedparameters:
> "--action": "reboot"
> EOF
Error from server (Forbidden): error when creating "STDIN": admission webhook "vfenceagentsremediation.kb.io" denied the request: [unsupported fence agent: fence_blank, invalid spec: mandatory parameters are missing]
[kni@ocp-edge04 ~]$ cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediation
> metadata:
> name: worker-0-2
> namespace: openshift-workload-availability
> spec:
> agent: fence_ipmilan
> remediationStrategy: OutOfServiceTaint
> sharedSecretName: fence-agents-credentials
> sharedparameters:
> "--ip": "127.0.0.1"
> "--ipport": "623"
> "--action": "reboot"
> "--username": "admin"
> "--password": "password"
> nodeparameters:
> "--ip":
> worker-0-2: "127.0.0.1"
> EOF
fenceagentsremediation.fence-agents-remediation.medik8s.io/worker-0-2 created
[kni@ocp-edge04 ~]$ oc adm node-taints node worker-0-2 node.kubernetes.io/out-of-service=true:NoExecute
error: unknown command "node-taints node worker-0-2 node.kubernetes.io/out-of-service=true:NoExecute"
See 'oc adm -h' for help and examples
[kni@ocp-edge04 ~]$ oc adm taint node worker-0-2 node.kubernetes.io/out-of-service=true:NoExecute
node/worker-0-2 tainted
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o jsonpath='{.status.timeAdded}'
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o jsonpath='{.status.timeAdded}'
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o jsonpath='{.status.timeAdded}'
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o yaml
apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
kind: FenceAgentsRemediation
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"fence-agents-remediation.medik8s.io/v1alpha1","kind":"FenceAgentsRemediation","metadata":{"annotations":{},"name":"worker-0-2","namespace":"openshift-workload-availability"},"spec":{"agent":"fence_ipmilan","nodeparameters":{"--ip":{"worker-0-2":"127.0.0.1"}},"remediationStrategy":"OutOfServiceTaint","sharedSecretName":"fence-agents-credentials","sharedparameters":{"--action":"reboot","--ip":"127.0.0.1","--ipport":"623","--password":"password","--username":"admin"}}}
creationTimestamp: "2026-02-18T20:57:31Z"
finalizers:
- fence-agents-remediation.medik8s.io/far-finalizer
generation: 2
name: worker-0-2
namespace: openshift-workload-availability
resourceVersion: "296735"
uid: 07248966-0106-44c7-907d-a97aea7329c1
spec:
agent: fence_ipmilan
nodeparameters:
--ip:
worker-0-2: 127.0.0.1
remediationStrategy: OutOfServiceTaint
retrycount: 5
retryinterval: 5s
sharedSecretName: fence-agents-credentials
sharedparameters:
--action: reboot
--ip: 127.0.0.1
--ipport: "623"
--password: password
--username: admin
timeout: 1m0s
status:
conditions:
- lastTransitionTime: "2026-02-18T20:58:42Z"
message: Fence agent command has failed
reason: FenceAgentFailed
status: "False"
type: Processing
- lastTransitionTime: "2026-02-18T20:58:42Z"
message: Fence agent command has failed
reason: FenceAgentFailed
status: "False"
type: FenceAgentActionSucceeded
- lastTransitionTime: "2026-02-18T20:58:42Z"
message: Fence agent command has failed
reason: FenceAgentFailed
status: "False"
type: Succeeded
lastUpdateTime: "2026-02-18T20:58:42Z"
[kni@ocp-edge04 ~]$ oc get far worker-0-2 -n openshift-workload-availability -o jsonpath='{.status.timeAdded}'
[kni@ocp-edge04 ~]$ oc delete far worker-0-2 -n openshift-workload-availability
fenceagentsremediation.fence-agents-remediation.medik8s.io "worker-0-2" deleted from openshift-workload-availability namespace
[kni@ocp-edge04 ~]$ cat <<EOF | oc apply -f -
> apiVersion: fence-agents-remediation.medik8s.io/v1alpha1
> kind: FenceAgentsRemediation
> metadata:
> name: worker-0-2
> namespace: openshift-workload-availability
> spec:
> agent: fence_kdump
> remediationStrategy: OutOfServiceTaint
> retrycount: 5
> retryinterval: 5s
> EOF
Error from server (Forbidden): error when creating "STDIN": admission webhook "vfenceagentsremediation.kb.io" denied the request: [unsupported fence agent: fence_kdump, invalid spec: mandatory parameters are missing]
[kni@ocp-edge04 ~]$ oc get crd fenceagentsremediations.fence-agents-remediation.medik8s.io -o yaml | grep -i "timeAdded"
[kni@ocp-edge04 ~]$ oc get csv -n openshift-workload-availability -o jsonpath='{.items[*].spec.version}'
0.7.0 0.11.0[kni@ocp-edge04 ~]$ oc describe crd fenceagentsremediations.fence-agents-remediation.medik8s.io | grep -A 10 "status"
Known .status.conditions.type are: "Processing", "FenceAgentActionSucceeded", and "Succeeded".
Items:
Description: Condition contains details for one aspect of the current state of this API Resource.
Properties:
Last Transition Time:
Description: lastTransitionTime is the 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: message is a human readable message indicating details about the transition.
This may be an empty string.
Max Length: 32768
Type: string
Observed Generation:
Description: observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
Format: int64
Minimum: 0
Type: integer
Reason:
Description: reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
--
Description: status of the condition, one of True, False, Unknown.
Enum:
True
False
Unknown
Type: string
Type:
Description: type of condition in CamelCase or in foo.example.com/CamelCase.
Max Length: 316
Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
Type: string
--
status
type
Type: object
Type: array
X - Kubernetes - List - Map - Keys:
type
X - Kubernetes - List - Type: map
Last Update Time:
Description: LastUpdateTime is the last time the status was updated.
Format: date-time
Type: string
Type: object
Type: object
Served: true
Storage: true
Subresources:
Status:
Status:
Accepted Names: