Skip to content

Commit 6a2c70f

Browse files
Make connection secret namespaced resource (#866)
1 parent e95a22b commit 6a2c70f

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

pkg/api/v1/atlasproject_types.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ type AtlasProjectSpec struct {
4848
// ConnectionSecret is the name of the Kubernetes Secret which contains the information about the way to connect to
4949
// Atlas (organization ID, API keys). The default Operator connection configuration will be used if not provided.
5050
// +optional
51-
ConnectionSecret *common.ResourceRef `json:"connectionSecretRef,omitempty"`
51+
ConnectionSecret *common.ResourceRefNamespaced `json:"connectionSecretRef,omitempty"`
5252

5353
// ProjectIPAccessList allows to enable the IP Access List for the Project. See more information at
5454
// https://docs.atlas.mongodb.com/reference/api/ip-access-list/add-entries-to-access-list/
@@ -142,7 +142,12 @@ func (p AtlasProject) ID() string {
142142

143143
func (p *AtlasProject) ConnectionSecretObjectKey() *client.ObjectKey {
144144
if p.Spec.ConnectionSecret != nil {
145-
key := kube.ObjectKey(p.Namespace, p.Spec.ConnectionSecret.Name)
145+
var key client.ObjectKey
146+
if p.Spec.ConnectionSecret.Namespace != "" {
147+
key = kube.ObjectKey(p.Spec.ConnectionSecret.Namespace, p.Spec.ConnectionSecret.Name)
148+
} else {
149+
key = kube.ObjectKey(p.Namespace, p.Spec.ConnectionSecret.Name)
150+
}
146151
return &key
147152
}
148153
return nil
@@ -203,7 +208,14 @@ func (p *AtlasProject) WithAtlasName(name string) *AtlasProject {
203208

204209
func (p *AtlasProject) WithConnectionSecret(name string) *AtlasProject {
205210
if name != "" {
206-
p.Spec.ConnectionSecret = &common.ResourceRef{Name: name}
211+
p.Spec.ConnectionSecret = &common.ResourceRefNamespaced{Name: name, Namespace: p.Namespace}
212+
}
213+
return p
214+
}
215+
216+
func (p *AtlasProject) WithConnectionSecretNamespaced(name, namespace string) *AtlasProject {
217+
if name != "" {
218+
p.Spec.ConnectionSecret = &common.ResourceRefNamespaced{Name: name, Namespace: namespace}
207219
}
208220
return p
209221
}

pkg/api/v1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/e2e/model/project.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ func (p *AProject) ProjectName(name string) *AProject {
4949
}
5050

5151
func (p *AProject) WithSecretRef(name string) *AProject {
52-
p.Spec.ConnectionSecret = &common.ResourceRef{Name: name}
52+
p.Spec.ConnectionSecret = &common.ResourceRefNamespaced{Name: name, Namespace: p.ObjectMeta.Namespace}
53+
return p
54+
}
55+
56+
func (p *AProject) WithSecretRefNamespaced(name, namespace string) *AProject {
57+
p.Spec.ConnectionSecret = &common.ResourceRefNamespaced{Name: name, Namespace: namespace}
5358
return p
5459
}
5560

test/e2e/multinamespace_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func deployMultiNSResources(testData *model.TestDataProvider) {
9292
testData.Project.Namespace = testData.Resources.Namespace
9393
}
9494
if !testData.Resources.AtlasKeyAccessType.GlobalLevelKey {
95-
testData.Project.Spec.ConnectionSecret = &common.ResourceRef{Name: testData.Prefix}
95+
testData.Project.Spec.ConnectionSecret = &common.ResourceRefNamespaced{Name: testData.Prefix, Namespace: testData.Project.Namespace}
9696
}
9797
By(fmt.Sprintf("Deploy Project %s", testData.Project.GetName()), func() {
9898
err := testData.K8SClient.Create(testData.Context, testData.Project)

0 commit comments

Comments
 (0)