{"id":24233188,"url":"https://github.com/memes/f5-bigip-ha-replace-edition","last_synced_at":"2025-06-16T14:09:54.390Z","repository":{"id":144194774,"uuid":"617039962","full_name":"memes/f5-bigip-ha-replace-edition","owner":"memes","description":"Examples and instructions for changing the deployed BIG-IP edition (PAYG vs. BYOL, Good/Better/Best, Throughput) while maintaining service to origins","archived":false,"fork":false,"pushed_at":"2025-03-12T21:20:48.000Z","size":41702,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-12T22:26:15.373Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-21T15:26:50.000Z","updated_at":"2025-03-12T21:20:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"ddcb0d22-46f4-4745-a33e-289bcd7be0f9","html_url":"https://github.com/memes/f5-bigip-ha-replace-edition","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"memes/repo-template","purl":"pkg:github/memes/f5-bigip-ha-replace-edition","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Ff5-bigip-ha-replace-edition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Ff5-bigip-ha-replace-edition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Ff5-bigip-ha-replace-edition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Ff5-bigip-ha-replace-edition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memes","download_url":"https://codeload.github.com/memes/f5-bigip-ha-replace-edition/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memes%2Ff5-bigip-ha-replace-edition/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260174193,"owners_count":22969876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-14T16:00:37.937Z","updated_at":"2025-06-16T14:09:54.325Z","avatar_url":"https://github.com/memes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Replace F5 BIG-IP edition in an HA pair\n\n![GitHub release](https://img.shields.io/github/v/release/memes/f5-bigip-ha-replace-edition?sort=semver)\n![Maintenance](https://img.shields.io/maintenance/yes/2024)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\nThis repo is a guide to changing the BIG-IP edition of a production HA pair in\nGoogle Cloud with minimal disruption to traffic and preserving your infrastructure-as-code\nstate so it matches actual infrastructure resources for each stage of the process.\nFor example, you can upgrade from Good to Best+ edition, or transition VEs from\nPAYG to perpetual licenses (BYOL), or vice-versa.\n\nWhile the examples are specific to GCP the general technique should be equally\napplicable to other private and public cloud deployments.\n\n\u003e NOTE: These techniques cannot be used to **change** the BIG-IP version of the\n\u003e deployment - *ConfigSync* continues to manage cluster state and thus requires\n\u003e that the base BIG-IP versions are identical for all devices in the group.\n\n## Scenarios in this repo\n\n|Upstream F5 Solution|Upstream version|Linked scenario(s)|Notes|\n|-----------------|----------------|-------|-----|\n|[GDM v1 via-API, 3nic, PAYG]|v4.3.0|[Throughput change(25Mbps -\u003e 1Gbps)](GDMv1/supported/failover/same-net/via-api/3nic/existing-stack/payg/)||\n\n## Approach taken\n\nAll the scenarios follow the basic steps:\n\n### Step 0: Starting point\n\n![Initial group](images/via-api/Initial%20group.png)\n\n* *BIG-IP VE 1* and *BIG-IP VE 2* are an existing HA pair deployed using one of\n   F5's supported or community repositories\n* The cluster is in a known-good state\n\n### Step 1: Expand the cluster\n\nThe first step is to add new VEs running target edition\n\n\u003e NOTE: This step is specific to your starting point; in order to preserve\n\u003e IaC state and avoid future issues follow the directions in **step-1-expand**\n\u003e folder for your scenario.\n\n* [GDM v1 via API, 3nic, PAYG](GDMv1/supported/failover/same-net/via-api/3nic/existing-stack/payg/)\n\n![Expand](images/via-api/Expanded%20group.png)\n\n* Two new BIG-IP VEs are added to GCP; *BIG-IP VE 3* and *BIG-IP VE 4*\n* *BIG-IP VE 3* and *BIG-IP VE 4* are functionally standalone\n* All four VEs should be running the same set of extensions (e.g. DO, AS3,\n   CFE - if applicable, etc.) and the same release versions of the extensions\n\n### Step 2: Extend BIG-IP HA configuration to new VEs\n\nGood news! These steps are common to all the examples and could serve as a\nstarting point if your specific scenario is not in this repo. A detailed\nwalkthrough can be found in [Modifying HA].\n\na. Extend *device trust* to include the new VEs\n\n   ![Expand](images/via-api/Added%20to%20device%20trust%20group.png)\n\nb. **Force Offline** the new VEs\n\n   ![Forced offline](images/via-api/Forced%20offline.png)\n\nc. Extend the *failover group* to the new VEs\n\n   ![Expand](images/via-api/Added%20to%20failover%20group.png)\n\nd. Release Offline and force failover to a new VE\n\n   ![Expand](images/via-api/Force%20to%20standby.png)\n\ne. Reduce failover group to exclude the original VEs\n\n   ![Expand](images/via-api/Reduce%20failover%20group.png)\n\nf. Reduce device trust to exclude the original VEs\n\n   ![Expand](images/via-api/Reduce%20device%20trust.png)\n\n### Step 3: Remove the original VEs from deployment\n\n\u003e NOTE: This step is specific to your starting point; in order to preserve\n\u003e IaC state and avoid future issues follow the directions in **step-3-reduce**\n\u003e folder for your scenario.\n\n* [GDM v1 via API, 3nic, PAYG](GDMv1/supported/failover/same-net/via-api/3nic/existing-stack/payg/)\n\n![Expand](images/via-api/Final%20group.png)\n\n[GDM v1 via-API, 3nic, PAYG]: https://github.com/F5Networks/f5-google-gdm-templates/tree/v4.3.0/supported/failover/same-net/via-api/3nic/existing-stack/payg\n[Modifying HA]: Modifying_HA.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemes%2Ff5-bigip-ha-replace-edition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemes%2Ff5-bigip-ha-replace-edition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemes%2Ff5-bigip-ha-replace-edition/lists"}