Skip to content

Commit 5c436d3

Browse files
authored
Fix to push http servers config from KNE and remove OC config and request-response config (#656)
* Fix to push http servers config from KNE and remove OC config and request-response config * removed another line * removing test of legacy config * fixed testdata files as per new configuration * added cert to the node juniper-ncptx * added config to enable 300 connections * added 3 separate servers for ports 9339, 9340 and 9559 * updated separate servers for ports 9339/9340/9559 * fixed formatting errors * modified server list to limit one for the port 9339 * updated testdata and default port number
1 parent 4e368b5 commit 5c436d3

File tree

9 files changed

+406
-119
lines changed

9 files changed

+406
-119
lines changed

cloudbuild/vendors/topology.textproto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ nodes: {
1515
config: {
1616
image: "us-west1-docker.pkg.dev/gep-kne/juniper/ncptx:ga"
1717
file: "juniper.cfg"
18+
cert: {
19+
self_signed: {
20+
cert_name: "grpc-server-cert"
21+
key_name: "N/A"
22+
key_size: 4096
23+
}
24+
}
1825
}
1926
interfaces: {
2027
key: "eth5"

topo/node/juniper/juniper.go

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var (
4141
// Time between polls - config mode
4242
configModeRetrySleep = 30 * time.Second
4343
// Default gRPC port
44-
defaultGrpcPort = uint32(32767)
44+
defaultGrpcPort = uint32(9339)
4545

4646
defaultNCPTXConstraints = node.Constraints{
4747
CPU: "4000m", // 4000 milliCPUs
@@ -74,15 +74,15 @@ var (
7474
},
7575
9339: {
7676
Names: []string{"gnmi", "gnoi", "gnsi"},
77-
Inside: 32767,
77+
Inside: 9339,
7878
},
7979
9340: {
8080
Names: []string{"gribi"},
81-
Inside: 32767,
81+
Inside: 9340,
8282
},
8383
9559: {
8484
Names: []string{"p4rt"},
85-
Inside: 32767,
85+
Inside: 9559,
8686
},
8787
},
8888
Constraints: map[string]string{
@@ -195,28 +195,29 @@ func (n *Node) GRPCConfig() []string {
195195
}
196196
}
197197
log.Infof("gNMI Port %d", port)
198-
portConfig := fmt.Sprintf("set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config port %d", port)
199-
conf := []string{
200-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config services GNMI",
201-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config enable true",
202-
portConfig,
203-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config transport-security true",
204-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config certificate-id grpc-server-cert",
205-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config listen-addresses 0.0.0.0",
198+
return []string{
199+
"set system services http servers server grpc-server-9339",
200+
fmt.Sprintf("set system services http servers server grpc-server-9339 port %d", port),
201+
"set system services http servers server grpc-server-9339 grpc gnmi",
202+
"set system services http servers server grpc-server-9339 grpc gnoi",
203+
"set system services http servers server grpc-server-9339 grpc gnsi",
204+
"set system services http servers server grpc-server-9339 tls local-certificate grpc-server-cert",
205+
"set system services http servers server grpc-server-9339 listen-address 0.0.0.0",
206+
"set system services http servers server grpc-server-9339 grpc all-grpc max-connections 300",
207+
"set system services http servers server grpc-server-9340",
208+
"set system services http servers server grpc-server-9340 port 9340",
209+
"set system services http servers server grpc-server-9340 grpc gribi",
210+
"set system services http servers server grpc-server-9340 tls local-certificate grpc-server-cert",
211+
"set system services http servers server grpc-server-9340 listen-address 0.0.0.0",
212+
"set system services http servers server grpc-server-9340 grpc all-grpc max-connections 300",
213+
"set system services http servers server grpc-server-9559",
214+
"set system services http servers server grpc-server-9559 port 9559",
215+
"set system services http servers server grpc-server-9559 grpc p4",
216+
"set system services http servers server grpc-server-9559 tls local-certificate grpc-server-cert",
217+
"set system services http servers server grpc-server-9559 listen-address 0.0.0.0",
218+
"set system services http servers server grpc-server-9559 grpc all-grpc max-connections 300",
206219
"commit",
207220
}
208-
// In newer Juniper releases such as D47, hot reloading and PKI support is enabled by default. On these systems, the legacy
209-
// syntax below is mutually exclusive with the new gRPC service config. Attempting to configure both will cause the config
210-
// commit to fail. Therefore, if configuring gRPC services via CLI on a release from D47 onwards, a KNE Node label of
211-
// `legacy_grpc_server_config`` should be set to `disabled.`
212-
if n.GetProto().GetLabels()["legacy_grpc_server_config"] != "disabled" {
213-
legacyConf := []string{
214-
"set system services extension-service request-response grpc ssl hot-reloading",
215-
"set system services extension-service request-response grpc ssl use-pki",
216-
}
217-
conf = append(legacyConf, conf...)
218-
}
219-
return conf
220221
}
221222

222223
// Waits and retries until CLI config mode is up and config is applied

topo/node/juniper/juniper_test.go

Lines changed: 32 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -236,35 +236,6 @@ func TestGRPCConfig(t *testing.T) {
236236
ni *node.Impl
237237
want []string
238238
}{
239-
{
240-
desc: "legacy grpc server config",
241-
ni: &node.Impl{
242-
KubeClient: fake.NewSimpleClientset(),
243-
Namespace: "test",
244-
Proto: &tpb.Node{
245-
Name: "pod1",
246-
Vendor: tpb.Vendor_JUNIPER,
247-
Config: &tpb.Config{
248-
ConfigFile: "foo",
249-
ConfigPath: "/",
250-
ConfigData: &tpb.Config_Data{
251-
Data: []byte("config file data"),
252-
},
253-
},
254-
},
255-
},
256-
want: []string{
257-
"set system services extension-service request-response grpc ssl hot-reloading",
258-
"set system services extension-service request-response grpc ssl use-pki",
259-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config services GNMI",
260-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config enable true",
261-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config port 32767",
262-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config transport-security true",
263-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config certificate-id grpc-server-cert",
264-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config listen-addresses 0.0.0.0",
265-
"commit",
266-
},
267-
},
268239
{
269240
desc: "new grpc server config",
270241
ni: &node.Impl{
@@ -286,12 +257,26 @@ func TestGRPCConfig(t *testing.T) {
286257
},
287258
},
288259
want: []string{
289-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config services GNMI",
290-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config enable true",
291-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config port 32767",
292-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config transport-security true",
293-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config certificate-id grpc-server-cert",
294-
"set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config listen-addresses 0.0.0.0",
260+
"set system services http servers server grpc-server-9339",
261+
"set system services http servers server grpc-server-9339 port 9339",
262+
"set system services http servers server grpc-server-9339 grpc gnmi",
263+
"set system services http servers server grpc-server-9339 grpc gnoi",
264+
"set system services http servers server grpc-server-9339 grpc gnsi",
265+
"set system services http servers server grpc-server-9339 tls local-certificate grpc-server-cert",
266+
"set system services http servers server grpc-server-9339 listen-address 0.0.0.0",
267+
"set system services http servers server grpc-server-9339 grpc all-grpc max-connections 300",
268+
"set system services http servers server grpc-server-9340",
269+
"set system services http servers server grpc-server-9340 port 9340",
270+
"set system services http servers server grpc-server-9340 grpc gribi",
271+
"set system services http servers server grpc-server-9340 tls local-certificate grpc-server-cert",
272+
"set system services http servers server grpc-server-9340 listen-address 0.0.0.0",
273+
"set system services http servers server grpc-server-9340 grpc all-grpc max-connections 300",
274+
"set system services http servers server grpc-server-9559",
275+
"set system services http servers server grpc-server-9559 port 9559",
276+
"set system services http servers server grpc-server-9559 grpc p4",
277+
"set system services http servers server grpc-server-9559 tls local-certificate grpc-server-cert",
278+
"set system services http servers server grpc-server-9559 listen-address 0.0.0.0",
279+
"set system services http servers server grpc-server-9559 grpc all-grpc max-connections 300",
295280
"commit",
296281
},
297282
},
@@ -547,15 +532,15 @@ func TestNew(t *testing.T) {
547532
},
548533
9339: {
549534
Names: []string{"gnmi", "gnoi", "gnsi"},
550-
Inside: 32767,
535+
Inside: 9339,
551536
},
552537
9340: {
553538
Names: []string{"gribi"},
554-
Inside: 32767,
539+
Inside: 9340,
555540
},
556541
9559: {
557542
Names: []string{"p4rt"},
558-
Inside: 32767,
543+
Inside: 9559,
559544
},
560545
},
561546
Labels: map[string]string{
@@ -625,15 +610,15 @@ func TestNew(t *testing.T) {
625610
},
626611
9339: {
627612
Names: []string{"gnmi", "gnoi", "gnsi"},
628-
Inside: 32767,
613+
Inside: 9339,
629614
},
630615
9340: {
631616
Names: []string{"gribi"},
632-
Inside: 32767,
617+
Inside: 9340,
633618
},
634619
9559: {
635620
Names: []string{"p4rt"},
636-
Inside: 32767,
621+
Inside: 9559,
637622
},
638623
},
639624
Labels: map[string]string{
@@ -703,15 +688,15 @@ func TestNew(t *testing.T) {
703688
},
704689
9339: {
705690
Names: []string{"gnmi", "gnoi", "gnsi"},
706-
Inside: 32767,
691+
Inside: 9339,
707692
},
708693
9340: {
709694
Names: []string{"gribi"},
710-
Inside: 32767,
695+
Inside: 9340,
711696
},
712697
9559: {
713698
Names: []string{"p4rt"},
714-
Inside: 32767,
699+
Inside: 9559,
715700
},
716701
},
717702
Labels: map[string]string{
@@ -770,15 +755,15 @@ func TestNew(t *testing.T) {
770755
},
771756
9339: {
772757
Names: []string{"gnmi", "gnoi", "gnsi"},
773-
Inside: 32767,
758+
Inside: 9339,
774759
},
775760
9340: {
776761
Names: []string{"gribi"},
777-
Inside: 32767,
762+
Inside: 9340,
778763
},
779764
9559: {
780765
Names: []string{"p4rt"},
781-
Inside: 32767,
766+
Inside: 9559,
782767
},
783768
},
784769
Labels: map[string]string{

topo/node/juniper/testdata/config_reset_failure

Lines changed: 56 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,35 +37,83 @@ Entering configuration mode
3737

3838
[edit]
3939
root@cptx2#
40-
root@cptx2# set system services extension-service request-response grpc ssl hot-reloading
40+
root@cptx2# set system services http servers server grpc-server-9339
4141

4242
[edit]
4343
root@cptx2#
44-
root@cptx2# set system services extension-service request-response grpc ssl use-pki
44+
root@cptx2# set system services http servers server grpc-server-9339 port 9339
4545

4646
[edit]
4747
root@cptx2#
48-
root@cptx2# set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config services GNMI
48+
root@cptx2# set system services http servers server grpc-server-9339 grpc gnmi
4949

5050
[edit]
5151
root@cptx2#
52-
root@cptx2# set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config enable true
52+
root@cptx2# set system services http servers server grpc-server-9339 grpc gnoi
5353

5454
[edit]
5555
root@cptx2#
56-
root@cptx2# set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config port 32767
56+
root@cptx2# set system services http servers server grpc-server-9339 grpc gnsi
5757

5858
[edit]
5959
root@cptx2#
60-
root@cptx2# set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config transport-security true
60+
root@cptx2# set system services http servers server grpc-server-9339 tls local-certificate grpc-server-cert
6161

6262
[edit]
6363
root@cptx2#
64-
root@cptx2# set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config certificate-id grpc-server-cert
64+
root@cptx2# set system services http servers server grpc-server-9339 listen-address 0.0.0.0
6565

6666
[edit]
6767
root@cptx2#
68-
root@cptx2# set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config listen-addresses 0.0.0.0
68+
root@cptx2# set system services http servers server grpc-server-9339 grpc all-grpc max-connections 300
69+
70+
[edit]
71+
root@cptx2#
72+
root@cptx2# set system services http servers server grpc-server-9340
73+
74+
[edit]
75+
root@cptx2#
76+
root@cptx2# set system services http servers server grpc-server-9340 port 9340
77+
78+
[edit]
79+
root@cptx2#
80+
root@cptx2# set system services http servers server grpc-server-9340 grpc gribi
81+
82+
[edit]
83+
root@cptx2#
84+
root@cptx2# set system services http servers server grpc-server-9340 tls local-certificate grpc-server-cert
85+
86+
[edit]
87+
root@cptx2#
88+
root@cptx2# set system services http servers server grpc-server-9340 listen-address 0.0.0.0
89+
90+
[edit]
91+
root@cptx2#
92+
root@cptx2# set system services http servers server grpc-server-9340 grpc all-grpc max-connections 300
93+
94+
[edit]
95+
root@cptx2#
96+
root@cptx2# set system services http servers server grpc-server-9559
97+
98+
[edit]
99+
root@cptx2#
100+
root@cptx2# set system services http servers server grpc-server-9559 port 9559
101+
102+
[edit]
103+
root@cptx2#
104+
root@cptx2# set system services http servers server grpc-server-9559 grpc p4
105+
106+
[edit]
107+
root@cptx2#
108+
root@cptx2# set system services http servers server grpc-server-9559 tls local-certificate grpc-server-cert
109+
110+
[edit]
111+
root@cptx2#
112+
root@cptx2# set system services http servers server grpc-server-9559 listen-address 0.0.0.0
113+
114+
[edit]
115+
root@cptx2#
116+
root@cptx2# set system services http servers server grpc-server-9559 grpc all-grpc max-connections 300
69117

70118
[edit]
71119
root@cptx2#

0 commit comments

Comments
 (0)