Upgrade BIG-IP Next for Kubernetes (BNK) from 2.3.x to 2.4.0 using F5 Lifecycle Operator¶
This document describes how to upgrade the F5 Lifecycle Operator (FLO) and upgrade the CNE Instance.
Upgrade the F5 Lifecycle Operator (FLO)¶
Create or update the FLO values file.
Example:
flo-values_2.4.0.yamlglobal: imagePullSecrets: - name: far-secret certmgr: clusterIssuer: arm-ca-cluster-issuer image: repository: repo.f5.com/images pullPolicy: IfNotPresent f5-spk-crds-common: versionValidator: image: repository: repo.f5.com/images f5-spk-crds-service-proxy: versionValidator: image: repository: repo.f5.com/images f5-ipam-operator: image: repository: repo.f5.com/images pullPolicy: IfNotPresent namespace: "default" nameOverride: "f5-ipam-operator" fullnameOverride: "f5-ipam-operator" sharedComponentNamespace: "f5-utils"
Execute the
Helmupgrade using the values file.$ helm upgrade f5-lifecycle-operator \ tar/f5-lifecycle-operator-v2.30.0-0.5.2.tgz \ # Need to change FLO to the correct version -f arm/tmp/flo-values_2.4.0.yaml
Verify the Upgrade.
$ helm list
Apply the CNE Instance¶
Create the CNE Instance custom resource after the FLO upgrade completes.
Example:
cnegatewayclass-cr-2.4.0.yamlapiVersion: 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.4.0 wholeCluster: true telemetry: loggingSubsystem: enabled: true metricSubsystem: enabled: true certificate: clusterIssuer: arm-ca-cluster-issuer deploymentSize: "Small" registry: uri: repo.f5.com imagePullSecrets: - name: far-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 dpu: enabled: true storageClassName: nfs advanced: envDiscovery: enabled: true stopOnFail: true runAfterSuccess: false disablecheckgenerics: true disablecheckannotations: true disablecheckvfs: true disablecheckhugepages: true disablechecksfconfig: true disablecheckserverconfig: true disablechecktaints: true disablechecklabels: 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"
Apply the resource:
$ kubectl apply -f arm/tmp/cnegatewayclass-cr-2.4.0.yaml -n f5-alpha
Verify CNE Pods¶
Verify Pods in
f5-utils$ kubectl get pods -n f5-utils
Verify Pods in
f5-alpha$ kubectl get pods -n f5-alpha