Skip to content

Commit dcc9d73

Browse files
committed
feat. add tls, basic-auth support
1 parent bb6f794 commit dcc9d73

31 files changed

+943
-264
lines changed

cmd/rqctl/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"errors"
66
"fmt"
77
"github.com/RealFax/RedQueen/internal/version"
8-
client2 "github.com/RealFax/RedQueen/pkg/client"
8+
"github.com/RealFax/RedQueen/pkg/client"
99
"net/netip"
1010
"os"
1111
"strings"
@@ -23,7 +23,7 @@ const (
2323
)
2424

2525
var (
26-
invoker *client2.Client
26+
invoker *client.Client
2727
)
2828

2929
func dialRQ() error {
@@ -47,8 +47,8 @@ func dialRQ() error {
4747
endpoints[i] = addr
4848
}
4949

50-
client2.SetMaxOpenConn(1)
51-
if invoker, err = client2.New(
50+
client.SetMaxOpenConn(1)
51+
if invoker, err = client.New(
5252
context.Background(),
5353
endpoints,
5454
grpc.WithTransportCredentials(insecure.NewCredentials()),

cmd/rqd/main.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,39 @@ package main
33
import (
44
"fmt"
55
"github.com/RealFax/RedQueen/internal/rqd"
6+
"github.com/RealFax/RedQueen/internal/rqd/config"
67
"github.com/RealFax/RedQueen/internal/version"
78
"os"
89
"os/signal"
910
"syscall"
10-
11-
"github.com/RealFax/RedQueen/config"
1211
)
1312

1413
func main() {
1514
fmt.Println("Version:", version.String())
1615

1716
cfg, err := config.New(os.Args...)
1817
if err != nil {
19-
fmt.Println("[-] parse config failed, ", err)
18+
fmt.Println("[-] Failed parse config, : ", err)
2019
return
2120
}
2221

2322
server, err := rqd.NewServer(cfg)
2423
if err != nil {
25-
fmt.Println("[-] init server failed, ", err)
24+
fmt.Println("[-] Failed to initialize server, ", err)
2625
return
2726
}
28-
defer server.Close()
27+
defer server.Shutdown() //
2928

3029
if err = server.ListenAndServe(); err != nil {
31-
fmt.Println("[-] listen client failed, ", err)
30+
fmt.Println("[-] Failed run server, ", err)
3231
return
3332
}
3433

3534
c := make(chan os.Signal, 1)
3635
signal.Notify(c, syscall.SIGTERM, syscall.SIGINT)
3736
select {
3837
case <-c:
39-
if err = server.Close(); err != nil {
40-
fmt.Println("[-] server close failed, ", err)
41-
}
38+
server.Shutdown()
4239
return
4340
}
4441
}

config.toml

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,15 @@ id = "node-1"
33
data-dir = "/tmp/red_queen"
44
listen-peer-addr = "127.0.0.1:5290"
55
listen-client-addr = "127.0.0.1:5230"
6+
listen-http-addr = "127.0.0.1:5231"
67
max-snapshots = 5
78
requests-merged = false
89

10+
[node.tls]
11+
auto = true
12+
cert-file = ""
13+
key-file = ""
14+
915
[store]
1016
# backend options
1117
# nuts
@@ -19,28 +25,21 @@ backend = "nuts"
1925
[cluster]
2026
[[cluster.bootstrap]]
2127
name = "node-1"
22-
peer-addr = "127.0.0.1:2539"
23-
24-
[[cluster.bootstrap]]
25-
name = "node-3"
26-
peer-addr = "127.0.0.1:3539"
27-
28-
[[cluster.bootstrap]]
29-
name = "node-1"
30-
peer-addr = "127.0.0.1:4539"
31-
32-
token = "red-queen-cluster"
28+
peer-addr = "127.0.0.1:5290"
3329

34-
[log]
35-
# logger options
36-
# zap, internal
37-
logger = ""
38-
debug = false
30+
# [[cluster.bootstrap]]
31+
# name = "node-3"
32+
# peer-addr = "127.0.0.1:4290"
33+
#
34+
# [[cluster.bootstrap]]
35+
# name = "node-1"
36+
# peer-addr = "127.0.0.1:3290"
3937

4038
[misc]
4139
pprof = false
4240
# metrics = "basic"
4341
# metrics-addr = "localhost:8090"
4442

45-
[auth]
46-
token = "RED_QUEEN_AUTH_TOKEN"
43+
[basic-auth]
44+
root = "toor"
45+
admin = "123456"

config.toml.exam

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,15 @@ id = "node-1"
33
data-dir = "/tmp/red_queen"
44
listen-peer-addr = "127.0.0.1:5290"
55
listen-client-addr = "0.0.0.0:5230"
6+
listen-http-addr = "0.0.0.0:5231"
67
max-snapshots = 5
78
requests-merged = false
89

10+
[node.tls]
11+
auto = false
12+
cert-file = ""
13+
key-file = ""
14+
915
[store]
1016
# backend options
1117
# nuts
@@ -19,17 +25,15 @@ backend = "nuts"
1925
[cluster]
2026
[[cluster.bootstrap]]
2127
name = "node-1"
22-
peer-addr = "127.0.0.1:2539"
28+
peer-addr = "127.0.0.1:5290"
2329

2430
[[cluster.bootstrap]]
2531
name = "node-3"
26-
peer-addr = "127.0.0.1:3539"
32+
peer-addr = "127.0.0.1:4290"
2733

2834
[[cluster.bootstrap]]
2935
name = "node-1"
30-
peer-addr = "127.0.0.1:4539"
31-
32-
token = "red-queen-cluster"
36+
peer-addr = "127.0.0.1:3290"
3337

3438
[log]
3539
# logger options
@@ -40,5 +44,6 @@ debug = false
4044
[misc]
4145
pprof = false
4246

43-
[auth]
44-
token = "RED_QUEEN_AUTH_TOKEN"
47+
[basic-auth]
48+
root = "toor"
49+
admin = "123456"

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ require (
77
github.com/RealFax/order-map v1.0.0
88
github.com/cespare/xxhash v1.1.0
99
github.com/google/uuid v1.6.0
10+
github.com/hashicorp/go-hclog v1.5.0
1011
github.com/hashicorp/raft v1.6.0
1112
github.com/hashicorp/raft-boltdb/v2 v2.3.0
1213
github.com/json-iterator/go v1.1.12
14+
github.com/julienschmidt/httprouter v1.3.0
1315
github.com/nutsdb/nutsdb v0.14.3
1416
github.com/pkg/errors v0.9.1
1517
github.com/urfave/cli/v2 v2.25.7
@@ -27,7 +29,6 @@ require (
2729
github.com/fatih/color v1.15.0 // indirect
2830
github.com/gofrs/flock v0.8.1 // indirect
2931
github.com/golang/protobuf v1.5.3 // indirect
30-
github.com/hashicorp/go-hclog v1.5.0 // indirect
3132
github.com/hashicorp/go-immutable-radix v1.0.0 // indirect
3233
github.com/hashicorp/go-msgpack/v2 v2.1.1 // indirect
3334
github.com/hashicorp/golang-lru v0.5.0 // indirect
@@ -44,6 +45,5 @@ require (
4445
golang.org/x/net v0.18.0 // indirect
4546
golang.org/x/sys v0.14.0 // indirect
4647
golang.org/x/text v0.14.0 // indirect
47-
google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect
4848
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect
4949
)

go.sum

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi
33
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
44
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
55
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
6-
github.com/RealFax/order-map v0.2.0 h1:/nvwx7T+q+pK9XKRuSc5+Meq3OC5JhpbxboEUVsa8ts=
7-
github.com/RealFax/order-map v0.2.0/go.mod h1:3HMq8xuFFVFvhxvh3siZIxfYR8fUexke/R9+Jl+5gmU=
8-
github.com/RealFax/order-map v0.6.0 h1:eqR3vUSCvklI0CQzfWiiyPaRX7VCYL1P4NouxWsK968=
9-
github.com/RealFax/order-map v0.6.0/go.mod h1:9uJpPwF3/Vbyoq6M0pI9fUpvYFYOjLlidBvyZR0XTkE=
106
github.com/RealFax/order-map v1.0.0 h1:J6kRc7DEg9DqkxZk1gj7bTQYg3HK+in6JBig8gOQev4=
117
github.com/RealFax/order-map v1.0.0/go.mod h1:9uJpPwF3/Vbyoq6M0pI9fUpvYFYOjLlidBvyZR0XTkE=
128
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -56,12 +52,9 @@ github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu
5652
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
5753
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
5854
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
59-
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
60-
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
6155
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
56+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
6257
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
63-
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
64-
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6558
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
6659
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6760
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
@@ -89,6 +82,8 @@ github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u
8982
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
9083
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
9184
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
85+
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
86+
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
9287
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
9388
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
9489
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -168,8 +163,6 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf
168163
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
169164
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
170165
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
171-
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
172-
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
173166
golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg=
174167
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
175168
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -187,30 +180,18 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
187180
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
188181
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
189182
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
190-
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
191-
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
192183
golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
193184
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
194185
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
195-
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
196-
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
197186
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
198187
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
199188
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
200-
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
201-
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
202-
google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ=
203-
google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY=
204189
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14=
205190
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA=
206-
google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc=
207-
google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
208191
google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0=
209192
google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs=
210193
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
211194
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
212-
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
213-
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
214195
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
215196
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
216197
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=

0 commit comments

Comments
 (0)