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: