Skip to content

Commit 4a3b0f6

Browse files
authored
Merge pull request #100 from nats-io/fixes
Fix Accounts not fetching user credential secrets
2 parents bd0338c + 60c3090 commit 4a3b0f6

File tree

5 files changed

+50
-18
lines changed

5 files changed

+50
-18
lines changed

cmd/jetstream-controller/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import (
3737
var (
3838
BuildTime = "build-time-not-set"
3939
GitInfo = "gitinfo-not-set"
40-
Version = "0.8.0"
40+
Version = "0.9.0"
4141
)
4242

4343
func main() {

controllers/jetstream/controller.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2020-2021 The NATS Authors
1+
// Copyright 2020-2022 The NATS Authors
22
// Licensed under the Apache License, Version 2.0 (the "License");
33
// you may not use this file except in compliance with the License.
44
// You may obtain a copy of the License at

controllers/jetstream/stream.go

+30-3
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,13 @@ func (c *Controller) processStreamObject(str *apis.Stream, jsmc jsmClient) (err
6666
remoteClientKey string
6767
remoteRootCA string
6868
accServers []string
69+
acc *apis.Account
70+
accUserCreds string
6971
)
7072
if spec.Account != "" && c.opts.CRDConnect {
7173
// Lookup the account.
72-
acc, err := c.accLister.Accounts(ns).Get(spec.Account)
74+
var err error
75+
acc, err = c.accLister.Accounts(ns).Get(spec.Account)
7376
if err != nil {
7477
return err
7578
}
@@ -84,7 +87,7 @@ func (c *Controller) processStreamObject(str *apis.Stream, jsmc jsmClient) (err
8487
return err
8588
}
8689

87-
// Write this to the cacheDir
90+
// Write this to the cacheDir.
8891
accDir := filepath.Join(c.cacheDir, ns, spec.Account)
8992
if err := os.MkdirAll(accDir, 0755); err != nil {
9093
return err
@@ -100,6 +103,28 @@ func (c *Controller) processStreamObject(str *apis.Stream, jsmc jsmClient) (err
100103
}
101104
}
102105
}
106+
// Lookup the UserCredentials.
107+
if acc.Spec.Creds != nil {
108+
secretName := acc.Spec.Creds.Secret.Name
109+
secret, err := c.ki.Secrets(ns).Get(c.ctx, secretName, k8smeta.GetOptions{})
110+
if err != nil {
111+
return err
112+
}
113+
114+
// Write the user credentials to the cache dir.
115+
accDir := filepath.Join(c.cacheDir, ns, spec.Account)
116+
if err := os.MkdirAll(accDir, 0755); err != nil {
117+
return err
118+
}
119+
for k, v := range secret.Data {
120+
if k == acc.Spec.Creds.File {
121+
accUserCreds = filepath.Join(c.cacheDir, ns, spec.Account, k)
122+
if err := os.WriteFile(filepath.Join(accDir, k), v, 0644); err != nil {
123+
return err
124+
}
125+
}
126+
}
127+
}
103128
}
104129

105130
defer func() {
@@ -141,7 +166,9 @@ func (c *Controller) processStreamObject(str *apis.Stream, jsmc jsmClient) (err
141166
if remoteRootCA != "" {
142167
opts = append(opts, nats.RootCAs(remoteRootCA))
143168
}
144-
169+
if accUserCreds != "" {
170+
opts = append(opts, nats.UserCredentials(accUserCreds))
171+
}
145172
if len(spec.TLS.RootCAs) > 0 {
146173
opts = append(opts, nats.RootCAs(spec.TLS.RootCAs...))
147174
}

go.mod

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.17
55
require (
66
github.com/fsnotify/fsnotify v1.5.4
77
github.com/nats-io/jsm.go v0.0.35
8-
github.com/nats-io/nats.go v1.20.0
8+
github.com/nats-io/nats.go v1.22.2-0.20230105182654-ba8a129c9502
99
github.com/sirupsen/logrus v1.8.1
1010
github.com/stretchr/testify v1.7.1
1111
k8s.io/api v0.24.0
@@ -51,13 +51,13 @@ require (
5151
github.com/pkg/errors v0.9.1 // indirect
5252
github.com/pmezard/go-difflib v1.0.0 // indirect
5353
github.com/spf13/pflag v1.0.5 // indirect
54-
golang.org/x/crypto v0.1.0 // indirect
54+
golang.org/x/crypto v0.5.0 // indirect
5555
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
56-
golang.org/x/net v0.1.0 // indirect
56+
golang.org/x/net v0.5.0 // indirect
5757
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
58-
golang.org/x/sys v0.1.0 // indirect
59-
golang.org/x/term v0.1.0 // indirect
60-
golang.org/x/text v0.4.0 // indirect
58+
golang.org/x/sys v0.4.0 // indirect
59+
golang.org/x/term v0.4.0 // indirect
60+
golang.org/x/text v0.6.0 // indirect
6161
golang.org/x/time v0.1.0 // indirect
6262
golang.org/x/tools v0.1.12 // indirect
6363
google.golang.org/appengine v1.6.7 // indirect

go.sum

+12-7
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,8 @@ github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgv
294294
github.com/nats-io/nats-server/v2 v2.9.6 h1:RTtK+rv/4CcliOuqGsy58g7MuWkBaWmF5TUNwuUo9Uw=
295295
github.com/nats-io/nats-server/v2 v2.9.6/go.mod h1:AB6hAnGZDlYfqb7CTAm66ZKMZy9DpfierY1/PbpvI2g=
296296
github.com/nats-io/nats.go v1.19.0/go.mod h1:tLqubohF7t4z3du1QDPYJIQQyhb4wl6DhjxEajSI7UA=
297-
github.com/nats-io/nats.go v1.20.0 h1:T8JJnQfVSdh1CzGiwAOv5hEobYCBho/0EupGznYw0oM=
298-
github.com/nats-io/nats.go v1.20.0/go.mod h1:tLqubohF7t4z3du1QDPYJIQQyhb4wl6DhjxEajSI7UA=
297+
github.com/nats-io/nats.go v1.22.2-0.20230105182654-ba8a129c9502 h1:ltZd6TOJRvcAowdiLLChnRp5fmML1ajP7ea0d6OKtDk=
298+
github.com/nats-io/nats.go v1.22.2-0.20230105182654-ba8a129c9502/go.mod h1:ki/Scsa23edbh8IRZbCuNXR9TDcbvfaSijKtaqQgw+Q=
299299
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
300300
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
301301
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
@@ -368,8 +368,9 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
368368
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
369369
golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
370370
golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
371-
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
372371
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
372+
golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE=
373+
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
373374
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
374375
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
375376
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -454,8 +455,9 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su
454455
golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
455456
golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
456457
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
457-
golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0=
458458
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
459+
golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw=
460+
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
459461
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
460462
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
461463
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -553,12 +555,14 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBc
553555
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
554556
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
555557
golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
556-
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
557558
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
559+
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
560+
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
558561
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
559562
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
560-
golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw=
561563
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
564+
golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg=
565+
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
562566
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
563567
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
564568
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -568,8 +572,9 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
568572
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
569573
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
570574
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
571-
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
572575
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
576+
golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
577+
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
573578
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
574579
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
575580
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=

0 commit comments

Comments
 (0)