Skip to content

Commit

Permalink
Merge pull request #2237 from radtriste/release_fixes
Browse files Browse the repository at this point in the history
OCM-9466 | ci: Fix ids:59551,74661,64620 + HCP upgrade profiles/autos…
  • Loading branch information
openshift-merge-bot[bot] authored Jul 10, 2024
2 parents 0c9ed0d + 56c3ba6 commit ed16832
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 63 deletions.
20 changes: 11 additions & 9 deletions tests/e2e/test_rosacli_oidc_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,17 +212,19 @@ var _ = Describe("Register ummanaged oidc config testing",

})
AfterEach(func() {
By("Delete oidc config")
output, err := ocmResourceService.DeleteOIDCConfig(
"--oidc-config-id", oidcConfigID,
"--mode", "auto",
"-y",
)
Expect(err).To(BeNil())
Expect(output.String()).To(ContainSubstring("Successfully deleted the OIDC provider"))
if oidcConfigID != "" {
By("Delete oidc config")
output, err := ocmResourceService.DeleteOIDCConfig(
"--oidc-config-id", oidcConfigID,
"--mode", "auto",
"-y",
)
Expect(err).To(BeNil())
Expect(output.String()).To(ContainSubstring("Successfully deleted the OIDC provider"))
}

By("Cleanup created account-roles")
_, err = ocmResourceService.DeleteAccountRole("--mode", "auto",
_, err := ocmResourceService.DeleteAccountRole("--mode", "auto",
"--prefix", accountRolePrefix,
"-y")
Expect(err).To(BeNil())
Expand Down
61 changes: 31 additions & 30 deletions tests/e2e/test_rosacli_operator_roles.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package e2e

import (
"bytes"
"context"
"fmt"
"strings"
Expand Down Expand Up @@ -413,7 +414,7 @@ var _ = Describe("create operator-roles forcely testing",
})

It("to create operator-roles which were created with cluster forcely - [id:74661]",
labels.Critical, labels.Runtime.OCMResources, labels.Runtime.Destructive, func() {
labels.Critical, labels.Runtime.Destructive, func() {
By("Check cluster type")
isSTS, err := clusterService.IsSTSCluster(clusterID)
Expect(err).To(BeNil())
Expand Down Expand Up @@ -516,29 +517,23 @@ var _ = Describe("create IAM roles forcely testing",
rosaClient *rosacli.Client
ocmResourceService rosacli.OCMResourceService
awsClient *aws_client.AWSClient
err error
accountRolePrefix string
operatorRolePrefix string
managedOIDCConfigID string
installerRoleArn string
)
BeforeEach(func() {
var err error

By("Init the client")
rosaClient = rosacli.NewClient()
ocmResourceService = rosaClient.OCMResource

awsClient, err = aws_client.CreateAWSClient("", "")
Expect(err).To(BeNil())

By("Create account-role")
output, err := ocmResourceService.CreateAccountRole("--mode", "auto",
"--prefix", accountRolePrefix,
"-y",
)
Expect(err).To(BeNil())
Expect(output.String()).To(ContainSubstring("Created role"))

By("Create oidconfig for testing")
var output bytes.Buffer
output, err = ocmResourceService.CreateOIDCConfig("--mode", "auto", "-y")
Expect(err).To(BeNil())
Expect(output.String()).To(ContainSubstring("Created OIDC provider with ARN"))
Expand All @@ -547,21 +542,6 @@ var _ = Describe("create IAM roles forcely testing",

managedOIDCConfigID, err = ocmResourceService.GetOIDCIdFromList(oidcPrivodeIDFromOutputMessage)
Expect(err).To(BeNil())

By("Create prior-to-cluster operator roles for testing")
installerRole, err := awsClient.GetRole(fmt.Sprintf("%s-Installer-Role", accountRolePrefix))
Expect(err).To(BeNil())
installerRoleArn = *installerRole.Arn

output, err = ocmResourceService.CreateOperatorRoles(
"--oidc-config-id", managedOIDCConfigID,
"--installer-role-arn", installerRoleArn,
"--mode", "auto",
"--prefix", operatorRolePrefix,
"-y",
)
Expect(err).ToNot(HaveOccurred())
Expect(output.String()).Should(ContainSubstring("Created role"))
})
AfterEach(func() {
By("Delete the testing account-roles")
Expand Down Expand Up @@ -593,10 +573,8 @@ var _ = Describe("create IAM roles forcely testing",
})
It("to create account-roles and prior-to-cluster operator-roles forcely - [id:59551]",
labels.Critical, labels.Runtime.OCMResources, func() {
var (
accountRolePrefix = "ar59551"
operatorRolePrefix = "op59551"
)
accountRolePrefix = "ar59551"
operatorRolePrefix = "op59551"
accountRoleNamePermissionMap := map[string]string{
fmt.Sprintf("%s-Installer-Role", accountRolePrefix): "AssumeRole",
fmt.Sprintf("%s-Support-Role", accountRolePrefix): "DescribeInstances",
Expand All @@ -616,6 +594,29 @@ var _ = Describe("create IAM roles forcely testing",
accountRolePolicyMap := map[string]string{}
operatorRolePolicyMap := map[string]string{}

By("Create account-role")
output, err := ocmResourceService.CreateAccountRole("--mode", "auto",
"--prefix", accountRolePrefix,
"-y",
)
Expect(err).To(BeNil())
Expect(output.String()).To(ContainSubstring("Created role"))

By("Create prior-to-cluster operator roles for testing")
installerRole, err := awsClient.GetRole(fmt.Sprintf("%s-Installer-Role", accountRolePrefix))
Expect(err).To(BeNil())
installerRoleArn = *installerRole.Arn

output, err = ocmResourceService.CreateOperatorRoles(
"--oidc-config-id", managedOIDCConfigID,
"--installer-role-arn", installerRoleArn,
"--mode", "auto",
"--prefix", operatorRolePrefix,
"-y",
)
Expect(err).ToNot(HaveOccurred())
Expect(output.String()).Should(ContainSubstring("Created role"))

By("Get test policies")
for k := range accountRoleNamePermissionMap {
attachedPolicy, err := awsClient.ListAttachedRolePolicies(k)
Expand Down Expand Up @@ -659,7 +660,7 @@ var _ = Describe("create IAM roles forcely testing",
Expect(err).To(BeNil())

By("Create account-role forcely")
output, err := ocmResourceService.CreateAccountRole("--mode", "auto",
output, err = ocmResourceService.CreateAccountRole("--mode", "auto",
"--prefix", accountRolePrefix,
"-y",
"--force-policy-creation",
Expand Down
63 changes: 41 additions & 22 deletions tests/utils/exec/rosacli/version_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -362,35 +362,47 @@ func (vl *OpenShiftVersionTableList) FindYStreamUpgradeVersions(
// A case need to test nodepool upgrade, a lower and upgradable version is needed which is no higher than 4.15.19
func (vl *OpenShiftVersionTableList) FindZStreamUpgradableVersion(throttleVersion string, step int) (
vs *OpenShiftVersionTableOutput, err error) {
log.Logger.Debugf("FindZStreamUpgradableVersion with throttle = %v and step %v", throttleVersion, step)

if step <= 0 {
log.Logger.Errorf("optionsub must be equal or greater than 1")
return
}
vl, _ = vl.Sort(true)
versionScopes := vl.OpenShiftVersions
if throttleVersion != "" {
vl, err := vl.FilterVersionsLowerThan(throttleVersion)
if err != nil {
return nil, err
}
vl, _ = vl.Sort(true)
versionScopes = vl.OpenShiftVersions
throttleSemVer, err := semver.NewVersion(throttleVersion)
if err != nil {
return nil, err
}
for _, version := range versionScopes {

// Filter lower versions
vl, err = vl.FilterVersionsLowerThan(throttleVersion)
if err != nil {
return nil, err
}
vl, _ = vl.Sort(true)

for _, version := range vl.OpenShiftVersions {
log.Logger.Debugf("Analyze version = %v", version.Version)
semVersion, err := semver.NewVersion(version.Version)
if err != nil {
return nil, err
}
if semVersion.Minor() != throttleSemVer.Minor() ||
semVersion.Patch() > throttleSemVer.Patch()+int64(step) {
log.Logger.Debugf("Version %v is ignored", version.Version)
continue
}
log.Logger.Debugf("Available upgrades are: %v", version.AvailableUpgrades)
for _, availableUpgradeVersion := range common.ParseCommaSeparatedStrings(version.AvailableUpgrades) {
semAV, err := semver.NewVersion(availableUpgradeVersion)
if err != nil {
return nil, err
}
if semAV.Patch()-semVersion.Patch() == int64(step) {
if throttleSemVer.Equal(semAV) {
vs = version
return vs, nil
}
}
log.Logger.Debugf("No upgrade found")
}
return
}
Expand All @@ -405,31 +417,38 @@ func (vl *OpenShiftVersionTableList) FindZStreamUpgradableVersion(throttleVersio
// a lower and upgradable version is needed which is no higher than 4.15.19
func (vl *OpenShiftVersionTableList) FindYStreamUpgradableVersion(throttleVersion string) (
vs *OpenShiftVersionTableOutput, err error) {
vl, _ = vl.Sort(true)
versionScopes := vl.OpenShiftVersions
if throttleVersion != "" {
vl, err := vl.FilterVersionsLowerThan(throttleVersion)
if err != nil {
return nil, err
}
vl, _ = vl.Sort(true)
versionScopes = vl.OpenShiftVersions
log.Logger.Debugf("FindYStreamUpgradableVersion with throttle = %v", throttleVersion)
throttleSemVer, err := semver.NewVersion(throttleVersion)
if err != nil {
return nil, err
}
for _, version := range versionScopes {
vl, err = vl.FilterVersionsLowerThan(throttleVersion)
if err != nil {
return nil, err
}
vl, _ = vl.Sort(true)
for _, version := range vl.OpenShiftVersions {
log.Logger.Debugf("Analyze version = %v", version.Version)
semVersion, err := semver.NewVersion(version.Version)
if err != nil {
return nil, err
}
if semVersion.Minor()+1 != throttleSemVer.Minor() {
log.Logger.Debugf("Version %v is ignored", version.Version)
continue
}
log.Logger.Debugf("Available upgrades are: %v", version.AvailableUpgrades)
for _, availableUpgradeVersion := range common.ParseCommaSeparatedStrings(version.AvailableUpgrades) {
semAV, err := semver.NewVersion(availableUpgradeVersion)
if err != nil {
return nil, err
}
if semAV.Minor() != semVersion.Minor() {
if throttleSemVer.Equal(semAV) {
vs = version
return vs, nil
}
}
log.Logger.Debugf("No upgrade found")
}
return
}
7 changes: 5 additions & 2 deletions tests/utils/profilehandler/data_preparation.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ func RecordUserDataInfo(filePath string, key string, value string) error {
func PrepareVersion(client *rosacli.Client, versionRequirement string, channelGroup string, hcp bool) (
*rosacli.OpenShiftVersionTableOutput, error) {
log.Logger.Infof("Got version requirement %s going to prepare accordingly", versionRequirement)
log.Logger.Infof("Channel group = %s", channelGroup)
versionList, err := client.Version.ListAndReflectVersions(channelGroup, hcp)
if err != nil {
return nil, err
Expand Down Expand Up @@ -65,10 +66,12 @@ func PrepareVersion(client *rosacli.Client, versionRequirement string, channelGr
log.Logger.Infof("Going to prepare version for %s stream %v versions lower", stream, versionStep)
switch stream {
case "y":
version, err := versionList.FindYStreamUpgradableVersion("")
var version *rosacli.OpenShiftVersionTableOutput
version, err = versionList.FindYStreamUpgradableVersion(latestVersion.Version)
return version, err
case "z":
version, err := versionList.FindZStreamUpgradableVersion("", versionStep)
var version *rosacli.OpenShiftVersionTableOutput
version, err := versionList.FindZStreamUpgradableVersion(latestVersion.Version, versionStep)
return version, err
default:
return nil, fmt.Errorf("not supported stream configuration %s", stream)
Expand Down
4 changes: 4 additions & 0 deletions tests/utils/profilehandler/profile_handler.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package profilehandler

import (
"errors"
"fmt"
"strings"
"time"
Expand Down Expand Up @@ -351,6 +352,9 @@ func GenerateClusterCreateFlags(profile *Profile, client *rosacli.Client) ([]str
)
}
if profile.ClusterConfig.AutoscalerEnabled {
if !profile.ClusterConfig.Autoscale {
return nil, errors.New("Autoscaler is enabled without having enabled the autoscale field") // nolint
}
autoscaler := &ClusterConfigure.Autoscaler{
AutoscalerBalanceSimilarNodeGroups: true,
AutoscalerSkipNodesWithLocalStorage: true,
Expand Down

0 comments on commit ed16832

Please sign in to comment.