diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index acb0b1647..7b076fa89 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -392,6 +392,9 @@ API: - aws/rhel-8.6-nightly-x86_64 - aws/rhel-9.0-nightly-x86_64 INTERNAL_NETWORK: ["true"] + - IMAGE_TYPE: ["edge-commit"] + RUNNER: + - aws/fedora-35-x86_64 libvirt: stage: test diff --git a/internal/cloudapi/v2/v2.go b/internal/cloudapi/v2/v2.go index b09dd921f..83a4f3575 100644 --- a/internal/cloudapi/v2/v2.go +++ b/internal/cloudapi/v2/v2.go @@ -279,7 +279,7 @@ func (h *apiHandlers) PostCompose(ctx echo.Context) error { if err != nil { return HTTPError(ErrorUnsupportedArchitecture) } - imageType, err := arch.GetImageType(imageTypeFromApiImageType(ir.ImageType)) + imageType, err := arch.GetImageType(imageTypeFromApiImageType(ir.ImageType, arch)) if err != nil { return HTTPError(ErrorUnsupportedImageType) } @@ -715,7 +715,7 @@ func generateManifest(ctx context.Context, cancel context.CancelFunc, workers *w jobResult.Manifest = manifest } -func imageTypeFromApiImageType(it ImageTypes) string { +func imageTypeFromApiImageType(it ImageTypes, arch distro.Arch) string { switch it { case ImageTypesAws: return "ami" @@ -738,6 +738,13 @@ func imageTypeFromApiImageType(it ImageTypes) string { case ImageTypesImageInstaller: return "image-installer" case ImageTypesEdgeCommit: + // Fedora doesn't define "rhel-edge-commit", or "edge-commit" yet. + // Assume that if the distro contains "fedora-iot-commit", it's Fedora + // and translate ImageTypesEdgeCommit to fedora-iot-commit in this case. + // This should definitely be removed in the near future. + if _, err := arch.GetImageType("fedora-iot-commit"); err == nil { + return "fedora-iot-commit" + } return "rhel-edge-commit" case ImageTypesEdgeContainer: return "rhel-edge-container" diff --git a/test/cases/api.sh b/test/cases/api.sh index 73cbbe9f9..b6219bfed 100755 --- a/test/cases/api.sh +++ b/test/cases/api.sh @@ -458,48 +458,22 @@ else TEST_ID=$(uuidgen); fi -case "$ID-$VERSION_ID" in - "rhel-9.0") - DISTRO="rhel-90" - if [[ "$CLOUD_PROVIDER" == "$CLOUD_PROVIDER_AWS" ]]; then - SSH_USER="ec2-user" - else - SSH_USER="cloud-user" - fi - ;; - "rhel-8.6") - DISTRO="rhel-86" - if [[ "$CLOUD_PROVIDER" == "$CLOUD_PROVIDER_AWS" ]]; then - SSH_USER="ec2-user" - else - SSH_USER="cloud-user" - fi - ;; - "rhel-8.5") - DISTRO="rhel-85" - if [[ "$CLOUD_PROVIDER" == "$CLOUD_PROVIDER_AWS" ]]; then - SSH_USER="ec2-user" - else - SSH_USER="cloud-user" - fi - ;; - "centos-8") - DISTRO="centos-8" - if [[ "$CLOUD_PROVIDER" == "$CLOUD_PROVIDER_AWS" ]]; then - SSH_USER="ec2-user" - else - SSH_USER="cloud-user" - fi - ;; - "centos-9") - DISTRO="centos-9" - if [[ "$CLOUD_PROVIDER" == "$CLOUD_PROVIDER_AWS" ]]; then - SSH_USER="ec2-user" - else - SSH_USER="cloud-user" - fi - ;; -esac +if [[ "$ID" == "fedora" ]]; then + # fedora uses fedora for everything + SSH_USER="fedora" +elif [[ "$CLOUD_PROVIDER" == "$CLOUD_PROVIDER_AWS" ]]; then + # RHEL and centos use ec2-user for AWS + SSH_USER="ec2-user" +else + # RHEL and centos use cloud-user for other clouds + SSH_USER="cloud-user" +fi + +# This removes dot from VERSION_ID. +# ID == rhel && VERSION_ID == 8.6 => DISTRO == rhel-86 +# ID == centos && VERSION_ID == 8 => DISTRO == centos-8 +# ID == fedora && VERSION_ID == 35 => DISTRO == fedora-35 +DISTRO="$ID-${VERSION_ID//./}" # Only RHEL need subscription block. if [[ "$ID" == "rhel" ]]; then