Bug ID 1256841: AWS Metadata crawling fails due to incorrect cloud provider name set by cloud-init script

Last Modified: Dec 13, 2023

Affected Product(s):
BIG-IP TMOS(all modules)

Known Affected Versions:
16.1.2.2, 16.1.3, 16.1.3.1, 16.1.3.2, 16.1.3.3, 16.1.3.4, 16.1.3.5

Fixed In:
17.1.1, 16.1.4, 15.1.10

Opened: Mar 01, 2023

Severity: 2-Critical

Symptoms

On the customer’s BIG-IP instances, the cloud-init script fails to render the cloud provider’s name correctly. And so, cloud_name=unknown is set.

Impact

Whenever the cloud provider is not set to AWS, the DataSourceEc2.py cloud-init script, which is supposed to set up minimal network config with an ephemeral interface including fetching DHCP lease info, fails to do what it is supposed to and as a result metadata service is unreachable

Conditions

Deploy BIG-IP VE on AWS in autoscaling group (1-NIC deployments) using Terraform.

Workaround

The Identify_aws function is responsible to set the cloud name as AWS. The existing function fails when the network is not up. The customer had faced a similar issue. I have modified the function to check for UUID and serial. As these are available during boot-up itself, we are not dependent on network status.

Fix Information

Cloud-init now renders the cloud provider name (AWS) successfully. It does not depend on the network status anymore. Thus, AWS metadata crawling goes through smoothly.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips