| |
@@ -5,13 +5,13 @@
|
| |
|
| |
# in staging we need to allow api.stage and in prod api.
|
| |
{% if env == 'staging' %}
|
| |
- RESOLVEQUERY=`resolvectl --cache=no --legend=no query api.stage.openshift.com 2> /dev/null`
|
| |
+ RESOLVEQUERY=`resolvectl -4 --cache=no --legend=no query api.stage.openshift.com 2> /dev/null`
|
| |
{% else %}
|
| |
- RESOLVEQUERY=`resolvectl --cache=no --legend=no query api.openshift.com 2> /dev/null`
|
| |
+ RESOLVEQUERY=`resolvectl -4 --cache=no --legend=no query api.openshift.com 2> /dev/null`
|
| |
{% endif %}
|
| |
test $? -eq 0 || exit $?
|
| |
|
| |
- NEWIPS=`echo $RESOLVEQUERY | grep link | awk '{print $2 " " $6}' | sort -n`
|
| |
+ NEWIPS=`echo "$RESOLVEQUERY" | grep link | sed -E 's/.* ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/g' | sort -n`
|
| |
|
| |
/usr/sbin/ipset flush osbuildapi
|
| |
for j in $NEWIPS
|
| |
@@ -22,10 +22,10 @@
|
| |
{% if env == 'staging' %}
|
| |
# in stg we need to add identity.api because we are using api.stage above.
|
| |
# in prod this is already the same as api.openshift.com, so skip it.
|
| |
- RESOLVEQUERY=`resolvectl --cache=no --legend=no query identity.api.openshift.com 2> /dev/null`
|
| |
+ RESOLVEQUERY=`resolvectl -4 --cache=no --legend=no query identity.api.openshift.com 2> /dev/null`
|
| |
test $? -eq 0 || exit $?
|
| |
|
| |
- NEWIDENTITYIPS=`echo $RESOLVEQUERY | grep link | awk '{print $2 " " $6}' | sort -n`
|
| |
+ NEWIDENTITYIPS=`echo "$RESOLVEQUERY" | grep link | sed -E 's/.* ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/g' | sort -n`
|
| |
|
| |
for j in $NEWIDENTITYIPS
|
| |
do
|
| |
The awk helper responsible for extracting IP addresses from the resolvectl
call could handle only 2 of them.
It turns out that api.openshift.com now has 4 A records, therefore this method
became flakey: It added only 2 addresses to the IP set, so if the osbuild
plugin used one of the 2 ignored addresses, the call failed.
This commit solves it by introducing a different method of parsing the
resolvectl output:
We now use an ugly but working sed command that erases everything from the
line except for the IPv4 address. Therefore, I had to quote the echo before
the new sed command so it can get a proper multiline input. Also, I limited
resolvectl to just use IPv4 because the new script cannot handle IPv6
properly. This doesn't cause any harm because api.openshift.com isn't
actually accessible by IPv6. Sigh...