Skip to content

Commit 95e2565

Browse files
authored
l4: fix h2, master node cidr, add detailed termination log (beclab#2799)
* fix: h2, master node cidr, add detailed termination log * update l4 image tag to v0.3.15
1 parent ec8caa4 commit 95e2565

7 files changed

Lines changed: 38 additions & 6 deletions

File tree

cli/pkg/upgrade/base.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ func (u upgraderBase) UpgradeSystemComponents() []task.Interface {
142142
},
143143
&task.LocalTask{
144144
Name: "UpgradeL4BFLProxy",
145-
Action: &upgradeL4BFLProxy{Tag: "v0.3.14"},
145+
Action: &upgradeL4BFLProxy{Tag: "v0.3.15"},
146146
Retry: 6,
147147
Delay: 15 * time.Second,
148148
},

framework/bfl/.olares/config/launcher/templates/bfl_deploy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ spec:
304304
- name: BACKUP_SERVER
305305
value: backup-server.os-framework:8082
306306
- name: L4_PROXY_IMAGE_VERSION
307-
value: v0.3.14
307+
value: v0.3.15
308308
- name: L4_PROXY_SERVICE_ACCOUNT
309309
value: os-network-internal
310310
- name: L4_PROXY_NAMESPACE

framework/l4-bfl-proxy/.olares/Olares.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ target: prebuilt
33
output:
44
containers:
55
-
6-
name: beclab/l4-bfl-proxy:v0.3.14
6+
name: beclab/l4-bfl-proxy:v0.3.15
77
# must have blank new line

framework/l4-bfl-proxy/internal/message/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type UserInfo struct {
2828
SSL *SSLConfig
2929
Apps []*AppInfo
3030
FileserverNodes []*FileserverNodeInfo
31+
MasterNodeCIDR string
3132
}
3233

3334
type AppInfo struct {

framework/l4-bfl-proxy/internal/provider/provider.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package provider
33
import (
44
"context"
55
"encoding/json"
6+
"errors"
67
"fmt"
78
"sort"
89
"strconv"
@@ -495,6 +496,10 @@ func (p *Provider) listUsers(ctx context.Context, rawAppsMap map[string][]*appv1
495496
if err != nil {
496497
return nil, err
497498
}
499+
masterNodeCIDR, err := p.getMasterNodeCIDR(ctx)
500+
if err != nil {
501+
return nil, err
502+
}
498503

499504
info := &message.UserInfo{
500505
Name: user.Name,
@@ -514,6 +519,7 @@ func (p *Provider) listUsers(ctx context.Context, rawAppsMap map[string][]*appv1
514519
SSL: sslConfig,
515520
CustomDomainCerts: allCerts[user.Name],
516521
FileserverNodes: fileserverNodes,
522+
MasterNodeCIDR: masterNodeCIDR,
517523
}
518524
result = append(result, info)
519525
}
@@ -674,6 +680,28 @@ func (p *Provider) getUsers(ctx context.Context) ([]iamv1alpha2.User, error) {
674680
return users, nil
675681
}
676682

683+
func (p *Provider) getMasterNodeCIDR(ctx context.Context) (string, error) {
684+
var nodeList corev1.NodeList
685+
if err := p.cache.List(ctx, &nodeList, client.HasLabels{"node-role.kubernetes.io/control-plane"}); err != nil {
686+
klog.Errorf("provider: list node failed: %v", err)
687+
return "", err
688+
}
689+
if len(nodeList.Items) == 0 {
690+
return "", errors.New("no master node found")
691+
}
692+
node := nodeList.Items[0]
693+
if len(node.Annotations) == 0 {
694+
klog.Warningf("provider: node %s with empty annotations", node.Name)
695+
return "", nil
696+
}
697+
cidr, ok := node.Annotations["projectcalico.org/IPv4Address"]
698+
if !ok {
699+
klog.Warningf("provider: node %s has no projectcalico.org/IPv4Address annotation", node.Name)
700+
return "", nil
701+
}
702+
return cidr, nil
703+
}
704+
677705
func getAnnotation(user *iamv1alpha2.User, key string) string {
678706
if v, ok := user.Annotations[key]; ok && v != "" {
679707
return v

framework/l4-bfl-proxy/internal/translator/translator.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,10 @@ func (t *Translator) applyDenyAllRestrictions(user *message.UserInfo, vhosts []*
298298
if user.LocalDomainIP != "" {
299299
restrictCIDRs = append(restrictCIDRs, user.LocalDomainIP+"/32")
300300
}
301-
restrictCIDRs = append(restrictCIDRs, user.AllowCIDRs...)
301+
if user.MasterNodeCIDR != "" {
302+
restrictCIDRs = append(restrictCIDRs, user.MasterNodeCIDR)
303+
}
304+
//restrictCIDRs = append(restrictCIDRs, user.AllowCIDRs...)
302305

303306
for _, vh := range vhosts {
304307
isAllowed := false

framework/l4-bfl-proxy/internal/xds/translator/translator.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ func buildMultiUserHTTPSListener(port uint32, proxyProtocol bool, httpListeners
526526
Name: httpIR.TLSCert.Name,
527527
SdsConfig: adsSource,
528528
}},
529-
AlpnProtocols: []string{"http/1.1"},
529+
AlpnProtocols: []string{"h2", "http/1.1"},
530530
},
531531
}
532532
transportSocket = &corev3.TransportSocket{
@@ -1340,7 +1340,7 @@ func buildHTTPAccessLog() *accesslogv3.AccessLog {
13401340
Format: &corev3.SubstitutionFormatString_TextFormatSource{
13411341
TextFormatSource: &corev3.DataSource{
13421342
Specifier: &corev3.DataSource_InlineString{
1343-
InlineString: "[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% -> %UPSTREAM_HOST% %REQ(:AUTHORITY)% %REQ(:PATH)% %RESPONSE_CODE% duration=%DURATION%ms rx=%BYTES_RECEIVED% tx=%BYTES_SENT% flags=%RESPONSE_FLAGS% route=%ROUTE_NAME% cluster=%UPSTREAM_CLUSTER% details=%RESPONSE_CODE_DETAILS% ufail=%UPSTREAM_TRANSPORT_FAILURE_REASON%\n",
1343+
InlineString: "[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% -> %UPSTREAM_HOST% %REQ(:AUTHORITY)% %REQ(:PATH)% %RESPONSE_CODE% duration=%DURATION%ms rx=%BYTES_RECEIVED% tx=%BYTES_SENT% flags=%RESPONSE_FLAGS% route=%ROUTE_NAME% cluster=%UPSTREAM_CLUSTER% details=%RESPONSE_CODE_DETAILS% ufail=%UPSTREAM_TRANSPORT_FAILURE_REASON% upstream_connection_id=%UPSTREAM_CONNECTION_ID% connection_termination_details=%CONNECTION_TERMINATION_DETAILS%\n",
13441344
},
13451345
},
13461346
},

0 commit comments

Comments
 (0)