Upgrade BIG-IP Next for Kubernetes (Host) from 2.2.2 to 2.2.3 using F5 Lifecycle Operator¶
Introduction¶
The following instructions provides the step-by-step procedure to upgrade BNK (Host) from v2.2.2 to v2.2.3. Follow the steps in sequence to ensure a smooth, successful upgrade. Please review the Release notes to understand new features, fixes, and any potential impacts.
Note
You can upgrade using F5 Lifecycle Operator (FLO) only if the 2.2.2 was installed using FLO.
Prereqisites
Make sure the system is using BNK (Host) 2.2.2.
Upgrade to 2.2.3 using FLO¶
In a terminal window on your computer, make sure you’re in the release-manifest directory.
Upgrade the FLO to the 2.2.3 version.
$ helm upgrade f5-lifecycle-operator tar/<f5LifecycleOperatorVersion> \
--namespace default \
--values flo-values.yaml
example
$ helm upgrade f5-lifecycle-operator tar/f5-lifecycle-operator-v2.9.27-0.4.12.tgz \
--namespace default \
--values flo-values.yaml
output
Helm upgrade successful for f5-lifecycle-operator.
Release "f5-lifecycle-operator" has been upgraded. Happy Helming!
NAME: f5-lifecycle-operator
LAST DEPLOYED: Thu Feb 26 13:08:14 2026
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
Create the CNEInstance CR file (cneinstance-cr.yaml) for the 2.2.2 manifest version. For example,
apiVersion: k8s.f5.com/v1
kind: CNEInstance
metadata:
labels:
app.kubernetes.io/name: f5-lifecycle-operator
app.kubernetes.io/managed-by: kustomize
name: "f5-alpha-f5-cne-controller"
namespace: f5-alpha
spec:
product:
gatewayAPI: true
type: BNK
manifestVersion: 2.2.1-3.2226.0-0.0.511 # Use the manifest version of the new release to which you are upgrading.
wholeCluster: true
dpu:
enabled: true
telemetry:
loggingSubsystem:
enabled: true
metricSubsystem:
enabled: true
certificate:
clusterIssuer: arm-ca-cluster-issuer
deploymentSize: "Small"
registry:
uri: repo.f5.com
imagePullSecrets:
- name: far-pull-secret
imagePullPolicy: Always
networkAttachments:
- external-nad-sf
- internal-nad-sf
dynamicRouting:
enabled: true
# AFM
firewallACL:
enabled: true
pseudoCNI:
enabled: true
# Core dump files
coreCollection:
enabled: true
advanced:
envDiscovery:
enabled: true
stopOnFail: true
runAfterSuccess: true
cneController:
env:
- name: "TMM_DEFAULT_MTU"
value: "9000"
demoMode:
enabled: false
maintenanceMode:
enabled: false
tmm:
env:
- name: "TMM_CALICO_ROUTER"
value: "default"
- name: TMM_DEFAULT_MTU
value: "9000"
- name: "ZEBOS_STATE"
value: legacy
pseudoCNI:
env:
- name: "EXCLUDE_CIDR"
value: "10.19.1.80/16,bb10::19:1:80/96"
Note: While upgrading BNK (Host) from 2.2.2 to 2.2.3 using FLO, the DSSM upgrade hook pod gets stuck in a
container-creatingstate, preventing the DSSM pods from upgrading successfully. To mitigate this issue, before the upgrade:
Create a file named
dssm-upgrade-cm.yamlcontaining the configuration for theConfigMapin the lower version prior to performing the upgrade.apiVersion: v1 kind: ConfigMap metadata: name: f5-dssm-logs-config namespace: f5-alpha data: .minlevel.yaml: |
Apply the following
dssm-upgrade-cm.yamlcm.yaml in the same namespace where the DSSM pods are deployed.$ kubectl apply -f dssm-upgrade-cm.yaml -n <dssm pods installed name space>
Apply the CNEInstance CR file (cneinstance-cr.yaml), the custom resource for BNK (Host).
$ kubectl apply -f <cneInstanceFilename> - n namespace
example
$ kubectl apply -f <cneinstance-cr.yaml> - n f5-alpha
Validate the deployment.
$ kubectl get -f <cneInstanceFilename> - n namespace
example
$ kubectl get -f <cneinstance-cr.yaml> - n f5-alpha
Note
Verify if all the components are available in the CNE Instance CR status.