Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ require (
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260717092345-ab1ee7b97c67
github.com/openstack-k8s-operators/test-operator/api v0.0.0-00010101000000-000000000000
go.uber.org/zap v1.28.0
gopkg.in/yaml.v3 v3.0.1
k8s.io/api v0.33.13
k8s.io/apimachinery v0.33.13
k8s.io/client-go v0.33.13
Expand All @@ -24,6 +23,7 @@ require (
github.com/google/btree v1.1.3 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
)

Expand Down
71 changes: 0 additions & 71 deletions internal/controller/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
nad "github.com/openstack-k8s-operators/lib-common/modules/common/networkattachment"
"github.com/openstack-k8s-operators/lib-common/modules/common/pvc"
"github.com/openstack-k8s-operators/lib-common/modules/common/util"
"gopkg.in/yaml.v3"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
k8s_errors "k8s.io/apimachinery/pkg/api/errors"
Expand Down Expand Up @@ -781,76 +780,6 @@ func (r *Reconciler) VerifyNetworkAttachments(
return ctrl.Result{}, nil
}

// EnsureCloudsConfigMapExists ensures that frameworks like Tobiko and Horizon have password values
// present in clouds.yaml. This code ensures that we set a default value of
// 12345678 when password value is missing in the clouds.yaml
func EnsureCloudsConfigMapExists(
ctx context.Context,
instance client.Object,
helper *helper.Helper,
labels map[string]string,
openstackConfigMapName string,
) error {
const testOperatorCloudsConfigMapName = "test-operator-clouds-config"

cm, _, _ := configmap.GetConfigMap(
ctx,
helper,
instance,
testOperatorCloudsConfigMapName,
time.Second*10,
)
if cm.Name == testOperatorCloudsConfigMapName {
return nil
}

cm, _, _ = configmap.GetConfigMap(
ctx,
helper,
instance,
openstackConfigMapName,
time.Second*10,
)

result := make(map[string]interface{})

err := yaml.Unmarshal([]byte(cm.Data["clouds.yaml"]), &result)
if err != nil {
return err
}

clouds := result["clouds"].(map[string]interface{})
defaultValue := clouds["default"].(map[string]interface{})
auth := defaultValue["auth"].(map[string]interface{})

if _, ok := auth["password"].(string); !ok {
auth["password"] = "12345678"
}

yamlString, err := yaml.Marshal(result)
if err != nil {
return err
}

cms := []util.Template{
{
Name: testOperatorCloudsConfigMapName,
Namespace: instance.GetNamespace(),
Type: util.TemplateTypeNone,
Labels: labels,
CustomData: map[string]string{
"clouds.yaml": string(yamlString),
},
},
}
err = configmap.EnsureConfigMaps(ctx, helper, instance, cms, nil)
if err != nil {
return err
}

return nil
}

// Int64OrPlaceholder converts int64 to string, returns placeholder if 0
func Int64OrPlaceholder(value int64, placeholder string) string {
if value > 0 {
Expand Down
24 changes: 1 addition & 23 deletions internal/controller/horizontest_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
"github.com/go-logr/logr"
"github.com/openstack-k8s-operators/lib-common/modules/common/condition"
"github.com/openstack-k8s-operators/lib-common/modules/common/env"
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
testv1beta1 "github.com/openstack-k8s-operators/test-operator/api/v1beta1"
"github.com/openstack-k8s-operators/test-operator/internal/horizontest"
corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -57,13 +56,9 @@ func (r *HorizonTestReconciler) Reconcile(ctx context.Context, req ctrl.Request)
config := TestResourceConfig[*testv1beta1.HorizonTest]{
ServiceName: horizontest.ServiceName,
NeedsNetworkAttachments: false,
NeedsConfigMaps: true,
NeedsConfigMaps: false,
SupportsWorkflow: false,

GenerateServiceConfigMaps: func(ctx context.Context, helper *helper.Helper, labels map[string]string, instance *testv1beta1.HorizonTest, _ int) error {
return r.generateServiceConfigMaps(ctx, helper, labels, instance)
},

BuildPod: func(ctx context.Context, instance *testv1beta1.HorizonTest, labels, annotations map[string]string, workflowStepIndex int, pvcIndex int) (*corev1.Pod, error) {
return r.buildHorizonTestPod(ctx, instance, labels, annotations, workflowStepIndex, pvcIndex)
},
Expand All @@ -72,7 +67,6 @@ func (r *HorizonTestReconciler) Reconcile(ctx context.Context, req ctrl.Request)
return []*condition.Condition{
condition.UnknownCondition(condition.ReadyCondition, condition.InitReason, condition.ReadyInitMessage),
condition.UnknownCondition(condition.InputReadyCondition, condition.InitReason, condition.InputReadyInitMessage),
condition.UnknownCondition(condition.ServiceConfigReadyCondition, condition.InitReason, condition.ServiceConfigReadyInitMessage),
condition.UnknownCondition(condition.DeploymentReadyCondition, condition.InitReason, condition.DeploymentReadyInitMessage),
}
},
Expand Down Expand Up @@ -134,22 +128,6 @@ func (r *HorizonTestReconciler) SetupWithManager(mgr ctrl.Manager) error {
Complete(r)
}

func (r *HorizonTestReconciler) generateServiceConfigMaps(
ctx context.Context,
h *helper.Helper,
labels map[string]string,
instance *testv1beta1.HorizonTest,
) error {
err := EnsureCloudsConfigMapExists(
ctx,
instance,
h,
labels,
instance.Spec.OpenStackConfigMap,
)
return err
}

// PrepareHorizonTestEnvVars prepares environment variables for HorizonTest execution
func (r *HorizonTestReconciler) PrepareHorizonTestEnvVars(
instance *testv1beta1.HorizonTest,
Expand Down
11 changes: 0 additions & 11 deletions internal/controller/tobiko_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,17 +174,6 @@ func (r *TobikoReconciler) generateServiceConfigMaps(
instance *testv1beta1.Tobiko,
workflowStepIndex int,
) error {
err := EnsureCloudsConfigMapExists(
ctx,
instance,
h,
labels,
instance.Spec.OpenStackConfigMap,
)
if err != nil {
return err
}

templateSpecs := []struct {
infix string
key string
Expand Down
6 changes: 3 additions & 3 deletions internal/horizontest/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func GetVolumes(

volumes := []corev1.Volume{
util.CreateConfigMapVolume(horizonTestConfig, instance.Name+horizonTestConfig, util.ScriptsVolumeDefaultMode),
util.CreateOpenstackConfigMapVolume(util.TestOperatorCloudsConfigMapName),
util.CreateOpenstackConfigMapVolume(instance.Spec.OpenStackConfigMap),
util.CreateOpenstackConfigSecretVolume(instance.Spec.OpenStackConfigSecret),
util.CreateLogsPVCVolume(logsPVCName),
util.CreateWorkdirVolume(),
Expand Down Expand Up @@ -52,8 +52,8 @@ func GetVolumeMounts(
util.CreateVolumeMount(util.TestOperatorEphemeralVolumeNameWorkdir, "/var/lib/horizontest", false),
util.CreateVolumeMount(util.TestOperatorEphemeralVolumeNameTmp, "/tmp", false),
util.CreateVolumeMount(util.TestOperatorLogsVolumeName, "/var/lib/horizontest/external_files", false),
util.CreateTestOperatorCloudsConfigVolumeMount("/var/lib/horizontest/.config/openstack/clouds.yaml"),
util.CreateTestOperatorCloudsConfigVolumeMount("/etc/openstack/clouds.yaml"),
util.CreateOpenstackConfigVolumeMount(instance.Spec.OpenStackConfigMap, "/var/lib/horizontest/.config/openstack/clouds.yaml"),
util.CreateOpenstackConfigVolumeMount(instance.Spec.OpenStackConfigMap, "/etc/openstack/clouds.yaml"),
util.CreateOpenstackConfigSecretVolumeMount(instance.Spec.OpenStackConfigSecret, "/etc/openstack/secure.yaml"),
}

Expand Down
6 changes: 3 additions & 3 deletions internal/tobiko/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func GetVolumes(

volumes := []corev1.Volume{
util.CreateConfigMapVolume(tobikoConfig, GetConfigMapName(instance, ConfigMapInfixConfig, workflowStepIndex), util.ScriptsVolumeDefaultMode),
util.CreateOpenstackConfigMapVolume(util.TestOperatorCloudsConfigMapName),
util.CreateOpenstackConfigMapVolume(instance.Spec.OpenStackConfigMap),
util.CreateOpenstackConfigSecretVolume(instance.Spec.OpenStackConfigSecret),
util.CreateLogsPVCVolume(logsPVCName),
util.CreateWorkdirVolume(),
Expand Down Expand Up @@ -88,8 +88,8 @@ func GetVolumeMounts(
util.CreateVolumeMount(util.TestOperatorEphemeralVolumeNameWorkdir, "/var/lib/tobiko", false),
util.CreateVolumeMount(util.TestOperatorEphemeralVolumeNameTmp, "/tmp", false),
util.CreateVolumeMount(util.TestOperatorLogsVolumeName, "/var/lib/tobiko/external_files", false),
util.CreateTestOperatorCloudsConfigVolumeMount("/var/lib/tobiko/.config/openstack/clouds.yaml"),
util.CreateTestOperatorCloudsConfigVolumeMount("/etc/openstack/clouds.yaml"),
util.CreateOpenstackConfigVolumeMount(instance.Spec.OpenStackConfigMap, "/var/lib/tobiko/.config/openstack/clouds.yaml"),
util.CreateOpenstackConfigVolumeMount(instance.Spec.OpenStackConfigMap, "/etc/openstack/clouds.yaml"),
util.CreateOpenstackConfigSecretVolumeMount(instance.Spec.OpenStackConfigSecret, "/etc/openstack/secure.yaml"),
util.CreateVolumeMountWithSubPath(tobikoConfig, "/etc/tobiko/tobiko.conf", ConfigFileName, false),
}
Expand Down
5 changes: 0 additions & 5 deletions internal/util/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ import (
)

const (
// TestOperatorCloudsConfigMapName is the name of the ConfigMap which contains
// modified clouds.yaml obtained from openstack-config ConfigMap. The modified
// CM is needed by some test frameworks (e.g., HorizonTest and Tobiko)
TestOperatorCloudsConfigMapName = "test-operator-clouds-config"

// TestOperatorEphemeralVolumeNameWorkdir is the name of the ephemeral workdir volume
TestOperatorEphemeralVolumeNameWorkdir = "test-operator-ephemeral-workdir"

Expand Down
5 changes: 0 additions & 5 deletions internal/util/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,11 +273,6 @@ func CreateOpenstackConfigSecretVolumeMount(secretName string, mountPath string)
return CreateVolumeMountWithSubPath(secretName, mountPath, subPathSecureYAML, false)
}

// CreateTestOperatorCloudsConfigVolumeMount creates a test-operator-clouds-config volume mount
func CreateTestOperatorCloudsConfigVolumeMount(mountPath string) corev1.VolumeMount {
return CreateVolumeMountWithSubPath(TestOperatorCloudsConfigMapName, mountPath, subPathCloudsYAML, true)
}

// AppendExtraMountsVolumeMounts appends volume mounts from ExtraMounts spec
func AppendExtraMountsVolumeMounts(
volumeMounts []corev1.VolumeMount,
Expand Down
2 changes: 1 addition & 1 deletion test/functional/horizontest_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ var _ = Describe("HorizonTest controller", func() {
It("initializes the status fields", func() {
Eventually(func(g Gomega) {
horizonTest := GetHorizonTest(horizonTestName)
g.Expect(horizonTest.Status.Conditions).To(HaveLen(4))
g.Expect(horizonTest.Status.Conditions).To(HaveLen(3))
g.Expect(horizonTest.Status.Hash).To(BeEmpty())
}, timeout*2, interval).Should(Succeed())
})
Expand Down