@@ -59,7 +59,10 @@ import (
59
59
"sigs.k8s.io/cluster-api-provider-openstack/test/e2e/shared"
60
60
)
61
61
62
- const specName = "e2e"
62
+ const (
63
+ specName = "e2e"
64
+ testSecurityGroupName = "testSecGroup"
65
+ )
63
66
64
67
// Additional images required for flatcar tests.
65
68
func flatcarImages (e2eCtx * shared.E2EContext ) []shared.DownloadImage {
@@ -510,7 +513,6 @@ var _ = Describe("e2e tests [PR-Blocking]", func() {
510
513
511
514
shared .Logf ("Creating MachineDeployment with custom port options" )
512
515
md3Name := clusterName + "-md-3"
513
- testSecurityGroupName := "testSecGroup"
514
516
// create required test security group
515
517
var securityGroupCleanup func (ctx context.Context )
516
518
securityGroupCleanup , err = shared .CreateOpenStackSecurityGroup (ctx , e2eCtx , testSecurityGroupName , "Test security group" )
@@ -679,6 +681,106 @@ var _ = Describe("e2e tests [PR-Blocking]", func() {
679
681
})
680
682
})
681
683
684
+ Describe ("Workload cluster providerID identityRef.Region field per OpenStackMachineTemplate override OpenStackCluster identityRef.Region field" , func () {
685
+ It ("should create machines with identityRef.Region field which override CLuster one" , func (ctx context.Context ) {
686
+ shared .Logf ("Creating a cluster" )
687
+ clusterName := fmt .Sprintf ("cluster-%s" , namespace .Name )
688
+ configCluster := defaultConfigCluster (clusterName , namespace .Name )
689
+ configCluster .ControlPlaneMachineCount = ptr .To (int64 (1 ))
690
+ configCluster .WorkerMachineCount = ptr .To (int64 (0 ))
691
+ configCluster .Flavor = shared .FlavorProviderIDWithRegionOverride
692
+ createCluster (ctx , configCluster , clusterResources )
693
+ md := clusterResources .MachineDeployments
694
+
695
+ workerMachines := framework .GetMachinesByMachineDeployments (ctx , framework.GetMachinesByMachineDeploymentsInput {
696
+ Lister : e2eCtx .Environment .BootstrapClusterProxy .GetClient (),
697
+ ClusterName : clusterName ,
698
+ Namespace : namespace .Name ,
699
+ MachineDeployment : * md [0 ],
700
+ })
701
+ controlPlaneMachines := framework .GetControlPlaneMachinesByCluster (ctx , framework.GetControlPlaneMachinesByClusterInput {
702
+ Lister : e2eCtx .Environment .BootstrapClusterProxy .GetClient (),
703
+ ClusterName : clusterName ,
704
+ Namespace : namespace .Name ,
705
+ })
706
+ Expect (workerMachines ).To (HaveLen (0 ))
707
+ Expect (controlPlaneMachines ).To (HaveLen (1 ))
708
+
709
+ shared .Logf ("Creating MachineDeployment with identityRef Region field defined" )
710
+ // create required test security group
711
+ var securityGroupCleanup func (ctx context.Context )
712
+ securityGroupCleanup , err = shared .CreateOpenStackSecurityGroup (ctx , e2eCtx , testSecurityGroupName , "Test security group" )
713
+ Expect (err ).To (BeNil ())
714
+ postClusterCleanup = append (postClusterCleanup , securityGroupCleanup )
715
+
716
+ _ , clientOpts , _ , err := shared .GetTenantProviderClient (e2eCtx )
717
+ Expect (err ).To (BeNil (), "Cannot create providerClient" )
718
+
719
+ controlPlaneMachine := controlPlaneMachines [0 ]
720
+
721
+ shared .Logf ("Fetching serverID control plane" )
722
+ allControlPlaneServers , err := shared .DumpOpenStackServers (e2eCtx , servers.ListOpts {Name : controlPlaneMachine .Name })
723
+ Expect (err ).To (BeNil ())
724
+ Expect (allControlPlaneServers ).To (HaveLen (1 ))
725
+ controlPlaneServerID := allControlPlaneServers [0 ].ID
726
+ Expect (err ).To (BeNil ())
727
+
728
+ Expect (* (controlPlaneMachine .Spec .ProviderID )).To (
729
+ Equal (fmt .Sprintf ("openstack://%s/%s" , clientOpts .RegionName , controlPlaneServerID )),
730
+ fmt .Sprintf ("ControlPlane machine should have providerID string `openstack://%s/uuid`" , clientOpts .RegionName ))
731
+ })
732
+ })
733
+
734
+ Describe ("Workload cluster providerID identityRef.Region field inherited from OpenStackCluster identityRef.Region field" , func () {
735
+ It ("should create machines without identityRef.Region field and inherit from Cluster object" , func (ctx context.Context ) {
736
+ shared .Logf ("Creating a cluster" )
737
+ clusterName := fmt .Sprintf ("cluster-%s" , namespace .Name )
738
+ configCluster := defaultConfigCluster (clusterName , namespace .Name )
739
+ configCluster .ControlPlaneMachineCount = ptr .To (int64 (1 ))
740
+ configCluster .WorkerMachineCount = ptr .To (int64 (0 ))
741
+ configCluster .Flavor = shared .FlavorProviderIDWithRegionDefault
742
+ createCluster (ctx , configCluster , clusterResources )
743
+ md := clusterResources .MachineDeployments
744
+
745
+ workerMachines := framework .GetMachinesByMachineDeployments (ctx , framework.GetMachinesByMachineDeploymentsInput {
746
+ Lister : e2eCtx .Environment .BootstrapClusterProxy .GetClient (),
747
+ ClusterName : clusterName ,
748
+ Namespace : namespace .Name ,
749
+ MachineDeployment : * md [0 ],
750
+ })
751
+ controlPlaneMachines := framework .GetControlPlaneMachinesByCluster (ctx , framework.GetControlPlaneMachinesByClusterInput {
752
+ Lister : e2eCtx .Environment .BootstrapClusterProxy .GetClient (),
753
+ ClusterName : clusterName ,
754
+ Namespace : namespace .Name ,
755
+ })
756
+ Expect (workerMachines ).To (HaveLen (0 ))
757
+ Expect (controlPlaneMachines ).To (HaveLen (1 ))
758
+
759
+ shared .Logf ("Creating MachineDeployment with identityRef Region field defined" )
760
+ // create required test security group
761
+ var securityGroupCleanup func (ctx context.Context )
762
+ securityGroupCleanup , err = shared .CreateOpenStackSecurityGroup (ctx , e2eCtx , testSecurityGroupName , "Test security group" )
763
+ Expect (err ).To (BeNil ())
764
+ postClusterCleanup = append (postClusterCleanup , securityGroupCleanup )
765
+
766
+ _ , clientOpts , _ , err := shared .GetTenantProviderClient (e2eCtx )
767
+ Expect (err ).To (BeNil (), "Cannot create providerClient" )
768
+
769
+ controlPlaneMachine := controlPlaneMachines [0 ]
770
+
771
+ shared .Logf ("Fetching serverID control plane" )
772
+ allControlPlaneServers , err := shared .DumpOpenStackServers (e2eCtx , servers.ListOpts {Name : controlPlaneMachine .Name })
773
+ Expect (err ).To (BeNil ())
774
+ Expect (allControlPlaneServers ).To (HaveLen (1 ))
775
+ controlPlaneServerID := allControlPlaneServers [0 ].ID
776
+ Expect (err ).To (BeNil ())
777
+
778
+ Expect (* (controlPlaneMachine .Spec .ProviderID )).To (
779
+ Equal (fmt .Sprintf ("openstack://%s/%s" , clientOpts .RegionName , controlPlaneServerID )),
780
+ fmt .Sprintf ("ControlPlane machine should have providerID string `openstack://%s/uuid`" , clientOpts .RegionName ))
781
+ })
782
+ })
783
+
682
784
Describe ("Workload cluster (multiple attached networks)" , func () {
683
785
var (
684
786
clusterName string
@@ -1035,9 +1137,7 @@ func getInstanceIDForMachine(machine *clusterv1.Machine) string {
1035
1137
providerID := machine .Spec .ProviderID
1036
1138
Expect (providerID ).NotTo (BeNil ())
1037
1139
1038
- providerIDSplit := strings .SplitN (* providerID , ":///" , 2 )
1039
- Expect (providerIDSplit [0 ]).To (Equal ("openstack" ))
1040
- return providerIDSplit [1 ]
1140
+ return shared .GetIDFromProviderID (* machine .Spec .ProviderID )
1041
1141
}
1042
1142
1043
1143
func isErrorEventExists (namespace , machineDeploymentName , eventReason , errorMsg string , eList * corev1.EventList ) bool {
0 commit comments