Skip to content

Commit 43b2865

Browse files
committed
fix(ibmcloud): harden Power VS provisioning and address PR review
1 parent 107ab7f commit 43b2865

4 files changed

Lines changed: 33 additions & 14 deletions

File tree

cmd/mapt/cmd/params/params.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,11 @@ func GithubRunnerArgs() *github.GithubRunnerArgs {
321321
logging.Errorf("invalid --ghactions-runner-image-repo: %v", err)
322322
return nil
323323
}
324+
if imageRepo != ghActionsRunnerImageRepoDefault {
325+
logging.Infof("using custom runner image repo: %s", imageRepo)
326+
} else {
327+
logging.Debugf("using temporary fork %s; will switch to IBM upstream once RHEL script is merged", imageRepo)
328+
}
324329
}
325330
return &github.GithubRunnerArgs{
326331
Token: token,

pkg/provider/ibmcloud/action/ibm-power/cloud-config

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,33 @@ write_files:
1111
mkdir -p /home/containers/storage
1212
else
1313
DATA_DEV=""
14-
while true; do
14+
ATTEMPTS=0
15+
MAX_ATTEMPTS=90
16+
while [ $ATTEMPTS -lt $MAX_ATTEMPTS ]; do
1517
DATA_DEV=$(lsblk -rnpo NAME,TYPE | awk '$2=="mpath"{mpath[$1]=1} $2=="part"{p=$1; sub(/p?[0-9]+$/,"",p); has_part[p]=1} END{for(d in mpath) if(!has_part[d]&&d!~/control/) print d}' | head -1)
1618
[ -n "$DATA_DEV" ] && break
1719
udevadm trigger --subsystem-match=block 2>/dev/null || true
1820
udevadm settle 2>/dev/null || true
1921
multipathd reconfigure 2>/dev/null || true
22+
ATTEMPTS=$((ATTEMPTS + 1))
2023
sleep 10
2124
done
22-
udevadm settle 2>/dev/null || true
23-
sleep 10
24-
mkfs.xfs -f -K "$DATA_DEV"
25-
UUID=$(blkid -s UUID -o value "$DATA_DEV")
26-
mkdir -p /mnt/home-tmp
27-
cp -a /home/. /mnt/home-tmp/
28-
mount "$DATA_DEV" /home
29-
cp -a /mnt/home-tmp/. /home/
30-
rm -rf /mnt/home-tmp
31-
echo "UUID=$UUID /home xfs defaults 0 2" >> /etc/fstab
32-
mkdir -p /home/containers/storage
25+
if [ -z "$DATA_DEV" ]; then
26+
echo "WARNING: data volume not found after $((MAX_ATTEMPTS * 10))s, using root filesystem" >&2
27+
mkdir -p /home/containers/storage
28+
else
29+
udevadm settle 2>/dev/null || true
30+
sleep 10
31+
mkfs.xfs -f -K "$DATA_DEV"
32+
UUID=$(blkid -s UUID -o value "$DATA_DEV")
33+
mkdir -p /mnt/home-tmp
34+
cp -a /home/. /mnt/home-tmp/
35+
mount "$DATA_DEV" /home
36+
cp -a /mnt/home-tmp/. /home/
37+
rm -rf /mnt/home-tmp
38+
echo "UUID=$UUID /home xfs defaults 0 2" >> /etc/fstab
39+
mkdir -p /home/containers/storage
40+
fi
3341
fi
3442
if ! mountpoint -q /var/lib/containers/storage; then
3543
mount --bind /home/containers/storage /var/lib/containers/storage

pkg/provider/ibmcloud/action/ibm-power/ibm-power.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func New(ctx *mc.ContextArgs, args *PWArgs) error {
180180
if i < len(sysTypes.Types)-1 {
181181
logging.Infof("destroying partial stack before retry...")
182182
if dErr := destroyForRetry(mCtx); dErr != nil {
183-
logging.Warnf("failed to destroy partial stack: %v", dErr)
183+
return fmt.Errorf("failed to destroy partial stack before retry: %w", dErr)
184184
}
185185
}
186186
}

pkg/provider/ibmcloud/data/pisystemtypes.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
"github.com/redhat-developer/mapt/pkg/util/logging"
1515
)
1616

17-
var DefaultSystemTypePriority = []string{"s1022", "s1122", "e1080", "e1050", "e980", "s922"}
17+
var DefaultSystemTypePriority = []string{"e1080", "e1050", "s1122", "s1022", "e980", "s922"}
1818

1919
type SystemTypeRequirements struct {
2020
CloudInstanceId string
@@ -71,6 +71,12 @@ func filterAndPrioritize(preferred, procType string, general, dedicated []string
7171
}
7272
}
7373

74+
for _, t := range supported {
75+
if !slices.Contains(filtered, t) {
76+
filtered = append(filtered, t)
77+
}
78+
}
79+
7480
if len(filtered) == 0 {
7581
return nil, fmt.Errorf(
7682
"no system types from priority list %v are supported in zone (supported: %v)",

0 commit comments

Comments
 (0)