Backport patch to expose instance availability-zone-id
https://github.com/coreos/afterburn/pull/748
This commit is contained in:
parent
4098e19748
commit
4b76b61d7b
@ -0,0 +1,72 @@
|
|||||||
|
From ba87d66582f4a3a5b25dcd1f810c477ad27feb87 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Abhinav Dahiya <adahiya@lyft.com>
|
||||||
|
Date: Mon, 9 May 2022 09:42:56 -0700
|
||||||
|
Subject: [PATCH] providers/aws: expose instance availability-zone-id as
|
||||||
|
AWS_AVAILABILITY_ZONE_ID
|
||||||
|
|
||||||
|
ec2 instance metadata exposes the physical id for availability zone. Physical zone ids are useful
|
||||||
|
because they are same across AWS accounts and helpful when trying to decide if instances are actually
|
||||||
|
in the same zone when reconciling that between instances in different accounts.
|
||||||
|
|
||||||
|
See doc:
|
||||||
|
> https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html
|
||||||
|
|
||||||
|
```
|
||||||
|
placement/availability-zone-id The static Availability Zone ID in which the instance is launched. The Availability Zone ID is consistent across accounts. However, it might be different from the Availability Zone, which can vary by account. 2020-08-24
|
||||||
|
```
|
||||||
|
|
||||||
|
This is available in api versions starting 2020-08-24, and afterbun already uses 2021-01-03 [1].
|
||||||
|
|
||||||
|
[1]: https://github.com/coreos/afterburn/blob/640ce9790c4f2d56aa75d1e3ad63f8011bec4255/src/providers/aws/mod.rs#L83
|
||||||
|
---
|
||||||
|
src/providers/aws/mock_tests.rs | 3 +++
|
||||||
|
src/providers/aws/mod.rs | 5 +++++
|
||||||
|
2 files changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/providers/aws/mock_tests.rs b/src/providers/aws/mock_tests.rs
|
||||||
|
index fc8d3c0..97bcfc5 100644
|
||||||
|
--- a/src/providers/aws/mock_tests.rs
|
||||||
|
+++ b/src/providers/aws/mock_tests.rs
|
||||||
|
@@ -48,6 +48,7 @@ fn aws_get_maps() -> (
|
||||||
|
let ipv4_public = "test-ipv4-public";
|
||||||
|
let ipv6 = "test-ipv6";
|
||||||
|
let availability_zone = "test-availability-zone";
|
||||||
|
+ let availability_zone_id = "test-availability-zone-id";
|
||||||
|
let hostname = "test-hostname";
|
||||||
|
let public_hostname = "test-public-hostname";
|
||||||
|
let instance_id_doc = r#"{"region": "test-region"}"#;
|
||||||
|
@@ -61,6 +62,7 @@ fn aws_get_maps() -> (
|
||||||
|
"/meta-data/public-ipv4" => ipv4_public,
|
||||||
|
"/meta-data/ipv6" => ipv6,
|
||||||
|
"/meta-data/placement/availability-zone" => availability_zone,
|
||||||
|
+ "/meta-data/placement/availability-zone-id" => availability_zone_id,
|
||||||
|
"/meta-data/hostname" => hostname,
|
||||||
|
"/meta-data/public-hostname" => public_hostname,
|
||||||
|
"/dynamic/instance-identity/document" => instance_id_doc,
|
||||||
|
@@ -72,6 +74,7 @@ fn aws_get_maps() -> (
|
||||||
|
"AWS_IPV4_PUBLIC".to_string() => ipv4_public.to_string(),
|
||||||
|
"AWS_IPV6".to_string() => ipv6.to_string(),
|
||||||
|
"AWS_AVAILABILITY_ZONE".to_string() => availability_zone.to_string(),
|
||||||
|
+ "AWS_AVAILABILITY_ZONE_ID".to_string() => availability_zone_id.to_string(),
|
||||||
|
"AWS_HOSTNAME".to_string() => hostname.to_string(),
|
||||||
|
"AWS_PUBLIC_HOSTNAME".to_string() => public_hostname.to_string(),
|
||||||
|
"AWS_REGION".to_string() => region.to_string(),
|
||||||
|
diff --git a/src/providers/aws/mod.rs b/src/providers/aws/mod.rs
|
||||||
|
index 3ced742..60e78be 100644
|
||||||
|
--- a/src/providers/aws/mod.rs
|
||||||
|
+++ b/src/providers/aws/mod.rs
|
||||||
|
@@ -169,6 +169,11 @@ impl MetadataProvider for AwsProvider {
|
||||||
|
"AWS_AVAILABILITY_ZONE",
|
||||||
|
"meta-data/placement/availability-zone",
|
||||||
|
)?;
|
||||||
|
+ add_value(
|
||||||
|
+ &mut out,
|
||||||
|
+ "AWS_AVAILABILITY_ZONE_ID",
|
||||||
|
+ "meta-data/placement/availability-zone-id",
|
||||||
|
+ )?;
|
||||||
|
add_value(&mut out, "AWS_HOSTNAME", "meta-data/hostname")?;
|
||||||
|
add_value(&mut out, "AWS_PUBLIC_HOSTNAME", "meta-data/public-hostname")?;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Name: rust-%{crate}
|
Name: rust-%{crate}
|
||||||
Version: 5.3.0
|
Version: 5.3.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Simple cloud provider agent
|
Summary: Simple cloud provider agent
|
||||||
|
|
||||||
# Upstream license specification: Apache-2.0
|
# Upstream license specification: Apache-2.0
|
||||||
@ -17,6 +17,8 @@ URL: https://crates.io/crates/afterburn
|
|||||||
Source0: %{crates_source}
|
Source0: %{crates_source}
|
||||||
# not used on Fedora
|
# not used on Fedora
|
||||||
Source1: https://github.com/coreos/%{crate}/releases/download/v%{version}/%{crate}-%{version}-vendor.tar.gz
|
Source1: https://github.com/coreos/%{crate}/releases/download/v%{version}/%{crate}-%{version}-vendor.tar.gz
|
||||||
|
# https://github.com/coreos/afterburn/pull/748
|
||||||
|
Patch0: 0001-providers-aws-expose-instance-availability-zone-id-a.patch
|
||||||
|
|
||||||
ExclusiveArch: %{rust_arches}
|
ExclusiveArch: %{rust_arches}
|
||||||
%if 0%{?rhel} && !0%{?eln}
|
%if 0%{?rhel} && !0%{?eln}
|
||||||
@ -143,6 +145,10 @@ cp -a dracut/* %{buildroot}%{dracutmodulesdir}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 13 2022 Sohan Kunkerkar <skunkerk@redhat.com> - 5.3.0-2
|
||||||
|
- Backport patch to expose instance availability-zone-id
|
||||||
|
https://github.com/coreos/afterburn/pull/748
|
||||||
|
|
||||||
* Fri Apr 29 2022 Sohan Kunkerkar <skunkerk@redhat.com> - 5.3.0-1
|
* Fri Apr 29 2022 Sohan Kunkerkar <skunkerk@redhat.com> - 5.3.0-1
|
||||||
- Update to 5.3.0
|
- Update to 5.3.0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user