Skip to content

Commit b2e62e5

Browse files
committed
Inherit top-level nodeSelector in galera template
1 parent ee55f58 commit b2e62e5

6 files changed

Lines changed: 106 additions & 6 deletions

File tree

apis/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ require (
1919
github.com/openstack-k8s-operators/lib-common/modules/common v0.5.1-0.20241114091812-6dc9fd0961dc
2020
github.com/openstack-k8s-operators/lib-common/modules/storage v0.5.1-0.20241114091812-6dc9fd0961dc
2121
github.com/openstack-k8s-operators/manila-operator/api v0.5.1-0.20241117150431-21b7f58d9ddf
22-
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241106141725-340c4d78fef0
22+
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241120160542-4b457715f74e
2323
github.com/openstack-k8s-operators/neutron-operator/api v0.5.1-0.20241114104932-eae3f8cd032b
2424
github.com/openstack-k8s-operators/nova-operator/api v0.5.1-0.20241119125634-42b7b8417b48
2525
github.com/openstack-k8s-operators/octavia-operator/api v0.5.1-0.20241115111947-2336829c2d73

apis/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ github.com/openstack-k8s-operators/lib-common/modules/storage v0.5.1-0.202411140
120120
github.com/openstack-k8s-operators/lib-common/modules/storage v0.5.1-0.20241114091812-6dc9fd0961dc/go.mod h1:tfgBeLRqmlH/NQkLPe7396rj+t0whv2wPuMb8Ttvh8w=
121121
github.com/openstack-k8s-operators/manila-operator/api v0.5.1-0.20241117150431-21b7f58d9ddf h1:UsAefjZBqFl0dYMg/efe75ECm8cAwc/2FCEBPYjQfIY=
122122
github.com/openstack-k8s-operators/manila-operator/api v0.5.1-0.20241117150431-21b7f58d9ddf/go.mod h1:0/qgnjufYIqe439/3aUU/cwnjDwdUlNR3jnRubLTD5o=
123-
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241106141725-340c4d78fef0 h1:XrJID4tPlR1JCO7A7MPONGfVRmhgf6ktglmE1v7UlHM=
124-
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241106141725-340c4d78fef0/go.mod h1:348EPtAdpE2LxHAH4bHdCMNP7HyX6DevwEsF9DQ0S2k=
123+
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241120160542-4b457715f74e h1:id6qqUWUMo0h7LoIhjQlMIjy4iihoBCi7Pe/jWjKHcY=
124+
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241120160542-4b457715f74e/go.mod h1:348EPtAdpE2LxHAH4bHdCMNP7HyX6DevwEsF9DQ0S2k=
125125
github.com/openstack-k8s-operators/neutron-operator/api v0.5.1-0.20241114104932-eae3f8cd032b h1:JMMPYDierS4YZdG9O/50kLihPQqmDz7p72btLy7Ibew=
126126
github.com/openstack-k8s-operators/neutron-operator/api v0.5.1-0.20241114104932-eae3f8cd032b/go.mod h1:Kfuu3g4PSFpEowdWhbnTgSlDpsBGswQf/WU/kKQKK7s=
127127
github.com/openstack-k8s-operators/nova-operator/api v0.5.1-0.20241119125634-42b7b8417b48 h1:eCvn/lCMqWTvlN74nFr7nG2EvZdvJPdSR9Ts2eTaM6c=

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ require (
2828
github.com/openstack-k8s-operators/lib-common/modules/storage v0.5.1-0.20241114091812-6dc9fd0961dc
2929
github.com/openstack-k8s-operators/lib-common/modules/test v0.5.1-0.20241114091812-6dc9fd0961dc
3030
github.com/openstack-k8s-operators/manila-operator/api v0.5.1-0.20241117150431-21b7f58d9ddf
31-
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241106141725-340c4d78fef0
31+
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241120160542-4b457715f74e
3232
github.com/openstack-k8s-operators/neutron-operator/api v0.5.1-0.20241114104932-eae3f8cd032b
3333
github.com/openstack-k8s-operators/nova-operator/api v0.5.1-0.20241119125634-42b7b8417b48
3434
github.com/openstack-k8s-operators/octavia-operator/api v0.5.1-0.20241115111947-2336829c2d73

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ github.com/openstack-k8s-operators/lib-common/modules/test v0.5.1-0.202411140918
132132
github.com/openstack-k8s-operators/lib-common/modules/test v0.5.1-0.20241114091812-6dc9fd0961dc/go.mod h1:LV0jo5etIsGyINpmB37i4oWR8zU6ApIuh7fsqGGA41o=
133133
github.com/openstack-k8s-operators/manila-operator/api v0.5.1-0.20241117150431-21b7f58d9ddf h1:UsAefjZBqFl0dYMg/efe75ECm8cAwc/2FCEBPYjQfIY=
134134
github.com/openstack-k8s-operators/manila-operator/api v0.5.1-0.20241117150431-21b7f58d9ddf/go.mod h1:0/qgnjufYIqe439/3aUU/cwnjDwdUlNR3jnRubLTD5o=
135-
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241106141725-340c4d78fef0 h1:XrJID4tPlR1JCO7A7MPONGfVRmhgf6ktglmE1v7UlHM=
136-
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241106141725-340c4d78fef0/go.mod h1:348EPtAdpE2LxHAH4bHdCMNP7HyX6DevwEsF9DQ0S2k=
135+
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241120160542-4b457715f74e h1:id6qqUWUMo0h7LoIhjQlMIjy4iihoBCi7Pe/jWjKHcY=
136+
github.com/openstack-k8s-operators/mariadb-operator/api v0.5.1-0.20241120160542-4b457715f74e/go.mod h1:348EPtAdpE2LxHAH4bHdCMNP7HyX6DevwEsF9DQ0S2k=
137137
github.com/openstack-k8s-operators/neutron-operator/api v0.5.1-0.20241114104932-eae3f8cd032b h1:JMMPYDierS4YZdG9O/50kLihPQqmDz7p72btLy7Ibew=
138138
github.com/openstack-k8s-operators/neutron-operator/api v0.5.1-0.20241114104932-eae3f8cd032b/go.mod h1:Kfuu3g4PSFpEowdWhbnTgSlDpsBGswQf/WU/kKQKK7s=
139139
github.com/openstack-k8s-operators/nova-operator/api v0.5.1-0.20241119125634-42b7b8417b48 h1:eCvn/lCMqWTvlN74nFr7nG2EvZdvJPdSR9Ts2eTaM6c=

pkg/openstack/galera.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ func reconcileGalera(
168168
return galeraReady, nil
169169
}
170170

171+
if spec.NodeSelector == nil {
172+
spec.NodeSelector = &instance.Spec.NodeSelector
173+
}
174+
171175
Log.Info("Reconciling Galera", "Galera.Namespace", instance.Namespace, "Galera.Name", name)
172176
op, err := controllerutil.CreateOrPatch(ctx, helper.GetClient(), galera, func() error {
173177
spec.DeepCopyInto(&galera.Spec.GaleraSpecCore)

tests/functional/ctlplane/openstackoperator_controller_test.go

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1804,6 +1804,102 @@ var _ = Describe("OpenStackOperator controller", func() {
18041804
})
18051805
})
18061806

1807+
When("An OpenStackControlplane instance is created with nodeSelector", func() {
1808+
BeforeEach(func() {
1809+
spec := GetDefaultOpenStackControlPlaneSpec()
1810+
spec["tls"] = GetTLSPublicSpec()
1811+
nodeSelector := map[string]string{
1812+
"foo": "bar",
1813+
}
1814+
spec["nodeSelector"] = nodeSelector
1815+
DeferCleanup(
1816+
th.DeleteInstance,
1817+
CreateOpenStackControlPlane(names.OpenStackControlplaneName, spec),
1818+
)
1819+
})
1820+
1821+
It("should set the galera nodeSelector", func() {
1822+
Eventually(func(g Gomega) {
1823+
db := mariadb.GetGalera(names.DBName)
1824+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo": "bar"}))
1825+
}, timeout, interval).Should(Succeed())
1826+
Eventually(func(g Gomega) {
1827+
db := mariadb.GetGalera(names.DBCell1Name)
1828+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo": "bar"}))
1829+
}, timeout, interval).Should(Succeed())
1830+
})
1831+
1832+
It("should update the galera nodeSelector", func() {
1833+
Eventually(func(g Gomega) {
1834+
db := mariadb.GetGalera(names.DBName)
1835+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo": "bar"}))
1836+
}, timeout, interval).Should(Succeed())
1837+
Eventually(func(g Gomega) {
1838+
db := mariadb.GetGalera(names.DBCell1Name)
1839+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo": "bar"}))
1840+
}, timeout, interval).Should(Succeed())
1841+
1842+
Eventually(func(g Gomega) {
1843+
OSCtlplane := GetOpenStackControlPlane(names.OpenStackControlplaneName)
1844+
newNodeSelector := map[string]string{
1845+
"foo2": "bar2",
1846+
}
1847+
OSCtlplane.Spec.NodeSelector = newNodeSelector
1848+
g.Expect(k8sClient.Update(ctx, OSCtlplane)).Should(Succeed())
1849+
}, timeout, interval).Should(Succeed())
1850+
1851+
Eventually(func(g Gomega) {
1852+
db := mariadb.GetGalera(names.DBName)
1853+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo2": "bar2"}))
1854+
}, timeout, interval).Should(Succeed())
1855+
Eventually(func(g Gomega) {
1856+
db := mariadb.GetGalera(names.DBCell1Name)
1857+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo2": "bar2"}))
1858+
}, timeout, interval).Should(Succeed())
1859+
})
1860+
1861+
It("should allow the galera nodeSelector to be overridden", func() {
1862+
Eventually(func(g Gomega) {
1863+
db := mariadb.GetGalera(names.DBName)
1864+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo": "bar"}))
1865+
}, timeout, interval).Should(Succeed())
1866+
Eventually(func(g Gomega) {
1867+
db := mariadb.GetGalera(names.DBCell1Name)
1868+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo": "bar"}))
1869+
}, timeout, interval).Should(Succeed())
1870+
1871+
Eventually(func(g Gomega) {
1872+
OSCtlplane := GetOpenStackControlPlane(names.OpenStackControlplaneName)
1873+
1874+
newNodeSelector := map[string]string{
1875+
"foo2": "bar2",
1876+
}
1877+
galeraTemplates := *(OSCtlplane.Spec.Galera.Templates)
1878+
dbTemplate := galeraTemplates[names.DBName.Name]
1879+
dbTemplate.NodeSelector = &newNodeSelector
1880+
galeraTemplates[names.DBName.Name] = dbTemplate
1881+
1882+
emptyNodeSelector := map[string]string{}
1883+
cell1Template := galeraTemplates[names.DBCell1Name.Name]
1884+
cell1Template.NodeSelector = &emptyNodeSelector
1885+
galeraTemplates[names.DBCell1Name.Name] = cell1Template
1886+
1887+
OSCtlplane.Spec.Galera.Templates = &galeraTemplates
1888+
1889+
g.Expect(k8sClient.Update(ctx, OSCtlplane)).Should(Succeed())
1890+
}, timeout, interval).Should(Succeed())
1891+
1892+
Eventually(func(g Gomega) {
1893+
db := mariadb.GetGalera(names.DBName)
1894+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{"foo2": "bar2"}))
1895+
}, timeout, interval).Should(Succeed())
1896+
Eventually(func(g Gomega) {
1897+
db := mariadb.GetGalera(names.DBCell1Name)
1898+
g.Expect(*db.Spec.NodeSelector).To(Equal(map[string]string{}))
1899+
}, timeout, interval).Should(Succeed())
1900+
})
1901+
})
1902+
18071903
})
18081904

18091905
var _ = Describe("OpenStackOperator Webhook", func() {

0 commit comments

Comments
 (0)