Skip to content

Commit c6f80e8

Browse files
Kyrremannx10an14-navReasonable-Solutions
authored
Opensearch supporting new style aivenator secrets (#606)
* Reapply "opensearch gets its own secret (#600)" This reverts commit 0960c5d. * bump deps Co-authored-by: x10an14-nav <[email protected]> Co-authored-by: Kyrre Havik <[email protected]> --------- Co-authored-by: x10an14-nav <[email protected]> Co-authored-by: carl hedgren <[email protected]> Co-authored-by: Carl Hedgren <[email protected]>
1 parent dd89c97 commit c6f80e8

File tree

6 files changed

+48
-30
lines changed

6 files changed

+48
-30
lines changed

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require (
1414
github.com/imdario/mergo v0.3.16
1515
github.com/magiconair/properties v1.8.9
1616
github.com/mitchellh/hashstructure v1.1.0
17-
github.com/nais/liberator v0.0.0-20250319104751-ae803ff00b4f
17+
github.com/nais/liberator v0.0.0-20250408101050-2ffa1b42f7f2
1818
github.com/novln/docker-parser v1.0.0
1919
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.74.0
2020
github.com/prometheus/client_golang v1.22.0
@@ -24,9 +24,9 @@ require (
2424
github.com/stretchr/testify v1.10.0
2525
google.golang.org/protobuf v1.36.6
2626
gopkg.in/yaml.v2 v2.4.0
27-
k8s.io/api v0.32.1
28-
k8s.io/apimachinery v0.32.1
29-
k8s.io/client-go v0.32.1
27+
k8s.io/api v0.32.2
28+
k8s.io/apimachinery v0.32.2
29+
k8s.io/client-go v0.32.2
3030
k8s.io/utils v0.0.0-20241210054802-24370beab758
3131
sigs.k8s.io/controller-runtime v0.20.1
3232
)
@@ -94,7 +94,7 @@ require (
9494
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
9595
gopkg.in/inf.v0 v0.9.1 // indirect
9696
gopkg.in/yaml.v3 v3.0.1 // indirect
97-
k8s.io/apiextensions-apiserver v0.32.1 // indirect
97+
k8s.io/apiextensions-apiserver v0.32.2 // indirect
9898
k8s.io/klog/v2 v2.130.1 // indirect
9999
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect
100100
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect

go.sum

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
117117
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
118118
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
119119
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
120-
github.com/nais/liberator v0.0.0-20250319104751-ae803ff00b4f h1:sQkwvc4OPh/vT2Bf6iarIZCxAhh1NZNxcQpeM7WhdMI=
121-
github.com/nais/liberator v0.0.0-20250319104751-ae803ff00b4f/go.mod h1:F3YcGoCG6HAyX5R2tgGH79/R0LBAU2xtRgRaveSXKiA=
120+
github.com/nais/liberator v0.0.0-20250408101050-2ffa1b42f7f2 h1:D0sz4dQXye5DdmW1PAMVn9f27eb+ZIoe/+vz9o+uKRo=
121+
github.com/nais/liberator v0.0.0-20250408101050-2ffa1b42f7f2/go.mod h1:UJvCuiANXCb54BuAIKoHY4EczdVhqxi0JIoj4393lC4=
122122
github.com/novln/docker-parser v1.0.0 h1:PjEBd9QnKixcWczNGyEdfUrP6GR0YUilAqG7Wksg3uc=
123123
github.com/novln/docker-parser v1.0.0/go.mod h1:oCeM32fsoUwkwByB5wVjsrsVQySzPWkl3JdlTn1txpE=
124124
github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM=
@@ -268,14 +268,14 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
268268
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
269269
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
270270
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
271-
k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc=
272-
k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k=
273-
k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw=
274-
k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto=
275-
k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs=
276-
k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
277-
k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU=
278-
k8s.io/client-go v0.32.1/go.mod h1:aTTKZY7MdxUaJ/KiUs8D+GssR9zJZi77ZqtzcGXIiDg=
271+
k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw=
272+
k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y=
273+
k8s.io/apiextensions-apiserver v0.32.2 h1:2YMk285jWMk2188V2AERy5yDwBYrjgWYggscghPCvV4=
274+
k8s.io/apiextensions-apiserver v0.32.2/go.mod h1:GPwf8sph7YlJT3H6aKUWtd0E+oyShk/YHWQHf/OOgCA=
275+
k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ=
276+
k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
277+
k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA=
278+
k8s.io/client-go v0.32.2/go.mod h1:fpZ4oJXclZ3r2nDOv+Ux3XcJutfrwjKTCHz2H3sww94=
279279
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
280280
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
281281
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg=

pkg/resourcecreator/aiven/aiven.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ type Config interface {
3939
GetAivenGeneration() int
4040
}
4141

42+
// TODO: Remove once all aiven secrets are per service
4243
func generateSharedAivenSecretName(name string, generation int) (string, error) {
4344
prefixedName := fmt.Sprintf("aiven-%s", name)
4445
year, week := time.Now().ISOWeek()
@@ -48,6 +49,15 @@ func generateSharedAivenSecretName(name string, generation int) (string, error)
4849
return namegen.SuffixedShortName(prefixedName, suffix, maxLen)
4950
}
5051

52+
func generateAivenSecretName(name, service, generation string) (string, error) {
53+
prefixedName := fmt.Sprintf("aiven-%s-%s", service, name)
54+
year, week := time.Now().ISOWeek()
55+
suffix := fmt.Sprintf("%d-%d-%s", year, week, generation)
56+
maxLen := validation.DNS1035LabelMaxLength
57+
58+
return namegen.SuffixedShortName(prefixedName, suffix, maxLen)
59+
}
60+
5161
func Create(source Source, ast *resource.Ast, config Config) error {
5262
secretName, err := generateSharedAivenSecretName(source.GetName(), config.GetAivenGeneration())
5363
if err != nil {

pkg/resourcecreator/aiven/opensearch.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,16 @@ func OpenSearch(ast *resource.Ast, openSearch *nais_io_v1.OpenSearch, aivenApp *
1818
return false, fmt.Errorf("OpenSearch enabled, but no instance specified")
1919
}
2020

21-
addOpenSearchEnvVariables(ast, aivenApp.Spec.SecretName)
21+
secretName, err := generateAivenSecretName(aivenApp.Name, "opensearch", aivenApp.ObjectMeta.Labels["aiven.nais.io/secret-generation"])
22+
if err != nil {
23+
return false, err
24+
}
25+
26+
addOpenSearchEnvVariables(ast, secretName)
2227
aivenApp.Spec.OpenSearch = &aiven_nais_io_v1.OpenSearchSpec{
23-
Instance: fmt.Sprintf("opensearch-%s-%s", aivenApp.GetNamespace(), openSearch.Instance),
24-
Access: openSearch.Access,
28+
Instance: fmt.Sprintf("opensearch-%s-%s", aivenApp.GetNamespace(), openSearch.Instance),
29+
Access: openSearch.Access,
30+
SecretName: secretName,
2531
}
2632
ast.Labels["aiven"] = "enabled"
2733

pkg/resourcecreator/testdata/naisjob/cronjob_open_search.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ tests:
2525
name: "secret name is generated"
2626
resource:
2727
spec:
28-
secretName: ^aiven-mynaisjob-.{8}-\d{4}-\d\d?-0$
28+
openSearch:
29+
secretName: ^aiven-opensearch-mynaisjob-.{8}-\d{4}-\d\d?-0$
2930
- name: "instance and access is propagated"
3031
type: subset
3132
resource:
@@ -56,26 +57,26 @@ tests:
5657
valueFrom:
5758
secretKeyRef:
5859
key: OPEN_SEARCH_USERNAME
59-
name: ^aiven-mynaisjob-.{8}-\d{4}-\d\d?-0$
60+
name: ^aiven-opensearch-mynaisjob-.{8}-\d{4}-\d\d?-0$
6061
- name: OPEN_SEARCH_PASSWORD
6162
valueFrom:
6263
secretKeyRef:
6364
key: OPEN_SEARCH_PASSWORD
64-
name: ^aiven-mynaisjob-.{8}-\d{4}-\d\d?-0$
65+
name: ^aiven-opensearch-mynaisjob-.{8}-\d{4}-\d\d?-0$
6566
- name: OPEN_SEARCH_URI
6667
valueFrom:
6768
secretKeyRef:
6869
key: OPEN_SEARCH_URI
69-
name: ^aiven-mynaisjob-.{8}-\d{4}-\d\d?-0$
70+
name: ^aiven-opensearch-mynaisjob-.{8}-\d{4}-\d\d?-0$
7071
- name: OPEN_SEARCH_HOST
7172
valueFrom:
7273
secretKeyRef:
7374
key: OPEN_SEARCH_HOST
74-
name: ^aiven-mynaisjob-.{8}-\d{4}-\d\d?-0$
75+
name: ^aiven-opensearch-mynaisjob-.{8}-\d{4}-\d\d?-0$
7576
optional: true
7677
- name: OPEN_SEARCH_PORT
7778
valueFrom:
7879
secretKeyRef:
7980
key: OPEN_SEARCH_PORT
80-
name: ^aiven-mynaisjob-.{8}-\d{4}-\d\d?-0$
81+
name: ^aiven-opensearch-mynaisjob-.{8}-\d{4}-\d\d?-0$
8182
optional: true

pkg/resourcecreator/testdata/open_search.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ tests:
2424
name: "secret name is generated"
2525
resource:
2626
spec:
27-
secretName: ^aiven-myapplication-.{8}-\d{4}-\d\d?-0$
27+
openSearch:
28+
secretName: ^aiven-opensearch-myapplication-.{8}-\d{4}-\d\d?-0$
2829
- name: "instance and access is propagated"
2930
type: subset
3031
resource:
@@ -53,26 +54,26 @@ tests:
5354
valueFrom:
5455
secretKeyRef:
5556
key: OPEN_SEARCH_USERNAME
56-
name: ^aiven-myapplication-.{8}-\d{4}-\d\d?-0$
57+
name: ^aiven-opensearch-myapplication-.{8}-\d{4}-\d\d?-0$
5758
- name: OPEN_SEARCH_PASSWORD
5859
valueFrom:
5960
secretKeyRef:
6061
key: OPEN_SEARCH_PASSWORD
61-
name: ^aiven-myapplication-.{8}-\d{4}-\d\d?-0$
62+
name: ^aiven-opensearch-myapplication-.{8}-\d{4}-\d\d?-0$
6263
- name: OPEN_SEARCH_URI
6364
valueFrom:
6465
secretKeyRef:
6566
key: OPEN_SEARCH_URI
66-
name: ^aiven-myapplication-.{8}-\d{4}-\d\d?-0$
67+
name: ^aiven-opensearch-myapplication-.{8}-\d{4}-\d\d?-0$
6768
- name: OPEN_SEARCH_HOST
6869
valueFrom:
6970
secretKeyRef:
7071
key: OPEN_SEARCH_HOST
71-
name: ^aiven-myapplication-.{8}-\d{4}-\d\d?-0$
72+
name: ^aiven-opensearch-myapplication-.{8}-\d{4}-\d\d?-0$
7273
optional: true
7374
- name: OPEN_SEARCH_PORT
7475
valueFrom:
7576
secretKeyRef:
7677
key: OPEN_SEARCH_PORT
77-
name: ^aiven-myapplication-.{8}-\d{4}-\d\d?-0$
78+
name: ^aiven-opensearch-myapplication-.{8}-\d{4}-\d\d?-0$
7879
optional: true

0 commit comments

Comments
 (0)