Skip to content

Commit

Permalink
update snippet field name
Browse files Browse the repository at this point in the history
  • Loading branch information
LorcanMcVeigh authored and soneillf5 committed Mar 10, 2021
1 parent c85222b commit 5ab2e1e
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,14 @@ spec:
type: string
protocol:
type: string
server-snippets:
type: string
sessionParameters:
description: SessionParameters defines session parameters.
type: object
properties:
timeout:
type: string
snippets:
type: string
upstreamParameters:
description: UpstreamParameters defines parameters for an upstream.
type: object
Expand Down
4 changes: 2 additions & 2 deletions deployments/common/crds/k8s.nginx.org_transportservers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ spec:
type: string
protocol:
type: string
server-snippets:
type: string
sessionParameters:
description: SessionParameters defines session parameters.
type: object
properties:
timeout:
type: string
snippets:
type: string
upstreamParameters:
description: UpstreamParameters defines parameters for an upstream.
type: object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ spec:
type: string
protocol:
type: string
server-snippets:
type: string
sessionParameters:
description: SessionParameters defines session parameters.
type: object
properties:
timeout:
type: string
snippets:
type: string
upstreamParameters:
description: UpstreamParameters defines parameters for an upstream.
type: object
Expand Down
7 changes: 5 additions & 2 deletions internal/configs/configurator.go
Original file line number Diff line number Diff line change
Expand Up @@ -557,9 +557,12 @@ func (cnf *Configurator) AddOrUpdateTransportServer(transportServerEx *Transport
func (cnf *Configurator) addOrUpdateTransportServer(transportServerEx *TransportServerEx) error {
name := getFileNameForTransportServer(transportServerEx.TransportServer)

tsCfg, _ := generateTransportServerConfig(transportServerEx, transportServerEx.ListenerPort, cnf.isPlus, cnf.staticCfgParams.EnableSnippets)
tsCfg, err := generateTransportServerConfig(transportServerEx, transportServerEx.ListenerPort, cnf.isPlus, cnf.staticCfgParams.EnableSnippets)
if err != nil {
return fmt.Errorf("Error generating TransportServer config %v: %v", name, err)
}

content, err := cnf.templateExecutorV2.ExecuteTransportServerTemplate(&tsCfg)
content, err := cnf.templateExecutorV2.ExecuteTransportServerTemplate(tsCfg)
if err != nil {
return fmt.Errorf("Error generating TransportServer config %v: %v", name, err)
}
Expand Down
13 changes: 6 additions & 7 deletions internal/configs/transportserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ func (tsEx *TransportServerEx) String() string {
}

// generateTransportServerConfig generates a full configuration for a TransportServer.
func generateTransportServerConfig(transportServerEx *TransportServerEx, listenerPort int, isPlus bool, snippetsEnabled bool) (version2.TransportServerConfig, Warnings) {
warn := newWarnings()
func generateTransportServerConfig(transportServerEx *TransportServerEx, listenerPort int, isPlus bool, snippetsEnabled bool) (*version2.TransportServerConfig, error) {
upstreamNamer := newUpstreamNamerForTransportServer(transportServerEx.TransportServer)

upstreams := generateStreamUpstreams(transportServerEx, upstreamNamer, isPlus)
Expand Down Expand Up @@ -60,17 +59,17 @@ func generateTransportServerConfig(transportServerEx *TransportServerEx, listene
proxyTimeout = transportServerEx.TransportServer.Spec.SessionParameters.Timeout
}

serverSnippets := generateSnippets(snippetsEnabled, transportServerEx.TransportServer.Spec.Snippets, []string{})
if !snippetsEnabled && (transportServerEx.TransportServer.Spec.Snippets != "") {
warn.AddWarning(transportServerEx.TransportServer, "snippet specified but snippets feature is not enabled")
serverSnippets := generateSnippets(snippetsEnabled, transportServerEx.TransportServer.Spec.ServerSnippets, []string{})
if !snippetsEnabled && (transportServerEx.TransportServer.Spec.ServerSnippets != "") {
return nil, fmt.Errorf("snippet specified but snippets feature is not enabled")
}

statusZone := transportServerEx.TransportServer.Spec.Listener.Name
if transportServerEx.TransportServer.Spec.Listener.Name == conf_v1alpha1.TLSPassthroughListenerName {
statusZone = transportServerEx.TransportServer.Spec.Host
}

tsConfig := version2.TransportServerConfig{
tsConfig := &version2.TransportServerConfig{
Server: version2.StreamServer{
TLSPassthrough: transportServerEx.TransportServer.Spec.Listener.Name == conf_v1alpha1.TLSPassthroughListenerName,
UnixSocket: generateUnixSocket(transportServerEx),
Expand All @@ -93,7 +92,7 @@ func generateTransportServerConfig(transportServerEx *TransportServerEx, listene
Upstreams: upstreams,
}

return tsConfig, warn
return tsConfig, nil
}

func generateUnixSocket(transportServerEx *TransportServerEx) string {
Expand Down
53 changes: 9 additions & 44 deletions internal/configs/transportserver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func TestGenerateTransportServerConfigForTCPSnippets(t *testing.T) {
Action: &conf_v1alpha1.Action{
Pass: "tcp-app",
},
Snippets: "deny 192.168.1.1;\nallow 192.168.1.0/24;",
ServerSnippets: "deny 192.168.1.1;\nallow 192.168.1.0/24;",
},
},
Endpoints: map[string][]string{
Expand All @@ -95,7 +95,7 @@ func TestGenerateTransportServerConfigForTCPSnippets(t *testing.T) {

listenerPort := 2020

expected := version2.TransportServerConfig{
expected := &version2.TransportServerConfig{
Upstreams: []version2.StreamUpstream{
{
Name: "ts_default_tcp-server_tcp-app",
Expand Down Expand Up @@ -159,7 +159,7 @@ func TestGenerateTransportServerConfigForTCPSnippetsNotEnabled(t *testing.T) {
Action: &conf_v1alpha1.Action{
Pass: "tcp-app",
},
Snippets: "deny 192.168.1.1;\nallow 192.168.1.0/24;",
ServerSnippets: "deny 192.168.1.1;\nallow 192.168.1.0/24;",
},
},
Endpoints: map[string][]string{
Expand All @@ -171,44 +171,9 @@ func TestGenerateTransportServerConfigForTCPSnippetsNotEnabled(t *testing.T) {

listenerPort := 2020

expected := version2.TransportServerConfig{
Upstreams: []version2.StreamUpstream{
{
Name: "ts_default_tcp-server_tcp-app",
Servers: []version2.StreamUpstreamServer{
{
Address: "10.0.0.20:5001",
MaxFails: 1,
FailTimeout: "10s",
},
},
UpstreamLabels: version2.UpstreamLabels{
ResourceName: "tcp-server",
ResourceType: "transportserver",
ResourceNamespace: "default",
Service: "tcp-app-svc",
},
},
},
Server: version2.StreamServer{
Port: 2020,
UDP: false,
StatusZone: "tcp-listener",
ProxyPass: "ts_default_tcp-server_tcp-app",
Name: "tcp-server",
Namespace: "default",
ProxyConnectTimeout: "60s",
ProxyNextUpstream: false,
ProxyNextUpstreamTries: 0,
ProxyNextUpstreamTimeout: "0s",
ProxyTimeout: "10m",
Snippets: []string{},
},
}

result, _ := generateTransportServerConfig(&transportServerEx, listenerPort, true, false)
if diff := cmp.Diff(expected, result); diff != "" {
t.Errorf("generateTransportServerConfig() mismatch (-want +got):\n%s", diff)
_, err := generateTransportServerConfig(&transportServerEx, listenerPort, true, false)
if err == nil {
t.Errorf("generateTransportServerConfig() returned nil, expected an error when snippets used but not enabled")
}
}

Expand Down Expand Up @@ -254,7 +219,7 @@ func TestGenerateTransportServerConfigForTCP(t *testing.T) {

listenerPort := 2020

expected := version2.TransportServerConfig{
expected := &version2.TransportServerConfig{
Upstreams: []version2.StreamUpstream{
{
Name: "ts_default_tcp-server_tcp-app",
Expand Down Expand Up @@ -337,7 +302,7 @@ func TestGenerateTransportServerConfigForTLSPasstrhough(t *testing.T) {

listenerPort := 2020

expected := version2.TransportServerConfig{
expected := &version2.TransportServerConfig{
Upstreams: []version2.StreamUpstream{
{
Name: "ts_default_tcp-server_tcp-app",
Expand Down Expand Up @@ -426,7 +391,7 @@ func TestGenerateTransportServerConfigForUDP(t *testing.T) {

listenerPort := 2020

expected := version2.TransportServerConfig{
expected := &version2.TransportServerConfig{
Upstreams: []version2.StreamUpstream{
{
Name: "ts_default_udp-server_udp-app",
Expand Down
2 changes: 1 addition & 1 deletion pkg/apis/configuration/v1alpha1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ type TransportServer struct {
type TransportServerSpec struct {
IngressClass string `json:"ingressClassName"`
Listener TransportServerListener `json:"listener"`
Snippets string `json:"snippets"`
ServerSnippets string `json:"server-snippets"`
Host string `json:"host"`
Upstreams []Upstream `json:"upstreams"`
UpstreamParameters *UpstreamParameters `json:"upstreamParameters"`
Expand Down

0 comments on commit 5ab2e1e

Please sign in to comment.