Skip to content

Commit b78d7fa

Browse files
committed
Add missing params to buildah-oci-ta.yaml.
1 parent 1d8e172 commit b78d7fa

File tree

4 files changed

+105
-64
lines changed

4 files changed

+105
-64
lines changed

deploy/tasks/buildah-oci-ta.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,18 @@ spec:
143143
description: The byte buffer size to use for the domain proxy.
144144
type: string
145145
default: 32768
146+
- name: DOMAIN_SOCKET
147+
description: The domain socket to use for the domain proxy.
148+
type: string
149+
default: /tmp/domain-socket.sock
150+
- name: CONNECTION_TIMEOUT
151+
description: The connection timeout in milliseconds to use for the domain proxy.
152+
type: string
153+
default: 10000
154+
- name: IDLE_TIMEOUT
155+
description: The idle timeout in milliseconds to use for the domain proxy.
156+
type: string
157+
default: 120000
146158
- name: PROXY_TARGET_WHITELIST
147159
description: Comma separated whitelist of target hosts for the domain proxy.
148160
type: string
@@ -250,6 +262,12 @@ spec:
250262
value: $(params.DOMAIN_PROXY)
251263
- name: BYTE_BUFFER_SIZE
252264
value: $(params.BYTE_BUFFER_SIZE)
265+
- name: DOMAIN_SOCKET
266+
value: $(params.DOMAIN_SOCKET)
267+
- name: CONNECTION_TIMEOUT
268+
value: $(params.CONNECTION_TIMEOUT)
269+
- name: IDLE_TIMEOUT
270+
value: $(params.IDLE_TIMEOUT)
253271
- name: PROXY_TARGET_WHITELIST
254272
value: $(params.PROXY_TARGET_WHITELIST)
255273
- name: INTERNAL_PROXY_HOST

pkg/domainproxy/client/client.go

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,21 @@ var logger = NewLogger("Domain Proxy Client")
1919
var common = NewCommon(logger)
2020

2121
type DomainProxyClient struct {
22-
domainSocket string
22+
sharedParams SharedParams
2323
serverHttpPort int
24-
byteBufferSize int
25-
connectionTimeout time.Duration
26-
idleTimeout time.Duration
2724
httpConnectionCounter atomic.Uint64
2825
listener net.Listener
2926
shutdownChan chan struct{}
3027
}
3128

32-
func newDomainProxyClient(domainSocket string, serverHttpPort, byteBufferSize int, connectionTimeout, idleTimeout time.Duration) *DomainProxyClient {
29+
func NewDomainProxyClient() *DomainProxyClient {
3330
return &DomainProxyClient{
34-
domainSocket: domainSocket,
35-
serverHttpPort: serverHttpPort,
36-
byteBufferSize: byteBufferSize,
37-
connectionTimeout: connectionTimeout,
38-
idleTimeout: idleTimeout,
39-
shutdownChan: make(chan struct{}),
31+
sharedParams: common.NewSharedParams(),
32+
serverHttpPort: getServerHttpPort(),
33+
shutdownChan: make(chan struct{}),
4034
}
4135
}
4236

43-
func NewDomainProxyClient() *DomainProxyClient {
44-
return newDomainProxyClient(common.GetDomainSocket(),
45-
GetServerHttpPort(),
46-
common.GetByteBufferSize(),
47-
common.GetConnectionTimeout(),
48-
common.GetIdleTimeout(),
49-
)
50-
}
51-
5237
func (dpc *DomainProxyClient) Start() {
5338
logger.Println("Starting domain proxy client...")
5439
var err error
@@ -79,7 +64,8 @@ func (dpc *DomainProxyClient) handleConnectionRequest(serverConnection net.Conn)
7964
connectionNo := dpc.httpConnectionCounter.Add(1)
8065
logger.Printf("Handling %s Connection %d", HttpToDomainSocket, connectionNo)
8166
startTime := time.Now()
82-
domainConnection, err := net.DialTimeout("unix", dpc.domainSocket, dpc.connectionTimeout)
67+
sharedParams := dpc.sharedParams
68+
domainConnection, err := net.DialTimeout("unix", sharedParams.DomainSocket, sharedParams.ConnectionTimeout)
8369
if err != nil {
8470
logger.Printf("Failed to connect to domain socket: %v", err)
8571
if err = serverConnection.Close(); err != nil {
@@ -88,7 +74,7 @@ func (dpc *DomainProxyClient) handleConnectionRequest(serverConnection net.Conn)
8874
return
8975
}
9076
go func() {
91-
common.BiDirectionalTransfer(serverConnection, domainConnection, dpc.byteBufferSize, dpc.idleTimeout, HttpToDomainSocket, connectionNo)
77+
common.BiDirectionalTransfer(serverConnection, domainConnection, sharedParams.ByteBufferSize, sharedParams.IdleTimeout, HttpToDomainSocket, connectionNo)
9278
logger.Printf("%s Connection %d ended after %d ms", HttpToDomainSocket, connectionNo, time.Since(startTime).Milliseconds())
9379
}()
9480
}
@@ -103,6 +89,6 @@ func (dpc *DomainProxyClient) Stop() {
10389
}
10490
}
10591

106-
func GetServerHttpPort() int {
92+
func getServerHttpPort() int {
10793
return common.GetIntEnvVariable(ServerHttpPortKey, DefaultServerHttpPort)
10894
}

pkg/domainproxy/common/common.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ type Common struct {
2626
logger *log.Logger
2727
}
2828

29+
type SharedParams struct {
30+
ByteBufferSize int
31+
DomainSocket string
32+
ConnectionTimeout time.Duration
33+
IdleTimeout time.Duration
34+
}
35+
2936
func NewCommon(logger *log.Logger) *Common {
3037
return &Common{
3138
logger: logger,
@@ -36,6 +43,15 @@ func NewLogger(appName string) *log.Logger {
3643
return log.New(os.Stdout, appName+" ", log.LstdFlags|log.Lshortfile)
3744
}
3845

46+
func (c *Common) NewSharedParams() SharedParams {
47+
return SharedParams{
48+
ByteBufferSize: c.getByteBufferSize(),
49+
DomainSocket: c.getDomainSocket(),
50+
ConnectionTimeout: c.getConnectionTimeout(),
51+
IdleTimeout: c.getIdleTimeout(),
52+
}
53+
}
54+
3955
func (c *Common) BiDirectionalTransfer(leftConnection, rightConnection net.Conn, byteBufferSize int, idleTimeout time.Duration, connectionType string, connectionNo uint64) {
4056
defer c.CloseConnection(leftConnection, rightConnection, connectionType, connectionNo)
4157
done := make(chan struct{}, 2)
@@ -166,18 +182,18 @@ func (c *Common) parseCsvToMap(csvString string) map[string]bool {
166182
return values
167183
}
168184

169-
func (c *Common) GetByteBufferSize() int {
185+
func (c *Common) getByteBufferSize() int {
170186
return c.GetIntEnvVariable(ByteBufferSizeKey, DefaultByteBufferSize)
171187
}
172188

173-
func (c *Common) GetDomainSocket() string {
189+
func (c *Common) getDomainSocket() string {
174190
return c.GetEnvVariable(DomainSocketKey, DefaultDomainSocket)
175191
}
176192

177-
func (c *Common) GetConnectionTimeout() time.Duration {
193+
func (c *Common) getConnectionTimeout() time.Duration {
178194
return c.GetMillisecondsEnvVariable(ConnectionTimeoutKey, DefaultConnectionTimeout)
179195
}
180196

181-
func (c *Common) GetIdleTimeout() time.Duration {
197+
func (c *Common) getIdleTimeout() time.Duration {
182198
return c.GetMillisecondsEnvVariable(IdleTimeoutKey, DefaultIdleTimeout)
183199
}

pkg/domainproxy/server/server.go

Lines changed: 58 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ const (
1818
HttpsPort = 443
1919
ProxyTargetWhitelistKey = "PROXY_TARGET_WHITELIST"
2020
DefaultProxyTargetWhitelist = "localhost,repo1.maven.org,repo.maven.apache.org,repository.jboss.org,packages.confluent.io,jitpack.io,repo.gradle.org,plugins.gradle.org"
21+
InternalProxyHostKey = "INTERNAL_PROXY_HOST"
22+
DefaultInternalProxyHost = "indy-generic-proxy"
23+
InternalProxyPortKey = "INTERNAL_PROXY_PORT"
24+
DefaultInternalProxyPort = 80
25+
InternalProxyUserKey = "INTERNAL_PROXY_USER"
26+
DefaultInternalProxyUser = ""
27+
InternalProxyPasswordKey = "INTERNAL_PROXY_PASSWORD"
28+
DefaultInternalProxyPassword = ""
2129
InternalNonProxyHostsKey = "INTERNAL_NON_PROXY_HOSTS"
2230
DefaultInternalNonProxyHosts = "localhost"
2331
DomainSocketToHttp = "Domain Socket <-> HTTP"
@@ -28,57 +36,50 @@ var logger = NewLogger("Domain Proxy Server")
2836
var common = NewCommon(logger)
2937

3038
type DomainProxyServer struct {
31-
domainSocket string
32-
byteBufferSize int
33-
connectionTimeout time.Duration
34-
idleTimeout time.Duration
39+
sharedParams SharedParams
3540
proxyTargetWhitelist map[string]bool
36-
nonProxyHosts map[string]bool
41+
internalProxyHost string
42+
internalProxyPort int
43+
internalProxyUser string
44+
internalProxyPassword string
45+
internalNonProxyHosts map[string]bool
3746
httpConnectionCounter atomic.Uint64
3847
httpsConnectionCounter atomic.Uint64
3948
listener net.Listener
4049
shutdownChan chan struct{}
4150
}
4251

43-
func newDomainProxyServer(domainSocket string, byteBufferSize int, connectionTimeout, idleTimeout time.Duration, proxyTargetWhitelist, nonProxyHosts map[string]bool) *DomainProxyServer {
52+
func NewDomainProxyServer() *DomainProxyServer {
4453
return &DomainProxyServer{
45-
domainSocket: domainSocket,
46-
byteBufferSize: byteBufferSize,
47-
connectionTimeout: connectionTimeout,
48-
idleTimeout: idleTimeout,
49-
proxyTargetWhitelist: proxyTargetWhitelist,
50-
nonProxyHosts: nonProxyHosts,
51-
shutdownChan: make(chan struct{}),
54+
sharedParams: common.NewSharedParams(),
55+
proxyTargetWhitelist: getProxyTargetWhitelist(),
56+
internalProxyHost: getInternalProxyHost(), // TODO Implement internal proxy logic
57+
internalProxyPort: getInternalProxyPort(),
58+
internalProxyUser: getInternalProxyUser(),
59+
internalProxyPassword: getInternalProxyPassword(),
60+
internalNonProxyHosts: getInternalNonProxyHosts(), // TODO Implement internal non-proxy hosts logic
61+
shutdownChan: make(chan struct{}),
5262
}
5363
}
5464

55-
func NewDomainProxyServer() *DomainProxyServer {
56-
return newDomainProxyServer(common.GetDomainSocket(),
57-
common.GetByteBufferSize(),
58-
common.GetConnectionTimeout(),
59-
common.GetIdleTimeout(),
60-
GetProxyTargetWhitelist(),
61-
GetInternalNonProxyHosts(), // TODO Implement Non-proxy logic
62-
)
63-
}
64-
6565
func (dps *DomainProxyServer) Start() {
6666
logger.Println("Starting domain proxy server...")
6767
go dps.startServer()
6868
}
6969

7070
func (dps *DomainProxyServer) startServer() {
71-
if _, err := os.Stat(dps.domainSocket); err == nil {
72-
if err := os.Remove(dps.domainSocket); err != nil {
71+
sharedParams := dps.sharedParams
72+
if _, err := os.Stat(sharedParams.DomainSocket); err == nil {
73+
if err := os.Remove(sharedParams.DomainSocket); err != nil {
7374
logger.Fatalf("Failed to delete existing domain socket: %v", err)
7475
}
7576
}
7677
var err error
77-
dps.listener, err = net.Listen("unix", dps.domainSocket)
78+
dps.listener, err = net.Listen("unix", sharedParams.DomainSocket)
7879
if err != nil {
7980
logger.Fatalf("Failed to start domain socket listener: %v", err)
8081
}
81-
logger.Printf("Domain socket server listening on %s", dps.domainSocket)
82+
logger.Printf("Domain socket server listening on %s", sharedParams.DomainSocket)
8283
for {
8384
if domainConnection, err := dps.listener.Accept(); err != nil {
8485
select {
@@ -94,7 +95,8 @@ func (dps *DomainProxyServer) startServer() {
9495
}
9596

9697
func (dps *DomainProxyServer) handleConnectionRequest(domainConnection net.Conn) {
97-
if err := domainConnection.SetDeadline(time.Now().Add(dps.idleTimeout)); err != nil {
98+
sharedParams := dps.sharedParams
99+
if err := domainConnection.SetDeadline(time.Now().Add(sharedParams.IdleTimeout)); err != nil {
98100
common.HandleSetDeadlineError(domainConnection, err)
99101
return
100102
}
@@ -108,7 +110,7 @@ func (dps *DomainProxyServer) handleConnectionRequest(domainConnection net.Conn)
108110
return
109111
}
110112
writer := &responseWriter{connection: domainConnection}
111-
if err = domainConnection.SetDeadline(time.Now().Add(dps.idleTimeout)); err != nil {
113+
if err = domainConnection.SetDeadline(time.Now().Add(sharedParams.IdleTimeout)); err != nil {
112114
common.HandleSetDeadlineError(domainConnection, err)
113115
return
114116
}
@@ -130,7 +132,8 @@ func (dps *DomainProxyServer) handleHttpConnection(sourceConnection net.Conn, wr
130132
return
131133
}
132134
startTime := time.Now()
133-
targetConnection, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, targetPort), dps.connectionTimeout)
135+
sharedParams := dps.sharedParams
136+
targetConnection, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, targetPort), sharedParams.ConnectionTimeout)
134137
if err != nil {
135138
dps.handleErrorResponse(writer, err, "Failed to connect to target")
136139
if err = sourceConnection.Close(); err != nil {
@@ -148,7 +151,7 @@ func (dps *DomainProxyServer) handleHttpConnection(sourceConnection net.Conn, wr
148151
return
149152
}
150153
go func() {
151-
common.BiDirectionalTransfer(sourceConnection, targetConnection, dps.byteBufferSize, dps.idleTimeout, DomainSocketToHttp, connectionNo)
154+
common.BiDirectionalTransfer(sourceConnection, targetConnection, sharedParams.ByteBufferSize, sharedParams.IdleTimeout, DomainSocketToHttp, connectionNo)
152155
logger.Printf("%s Connection %d ended after %d ms", DomainSocketToHttp, connectionNo, time.Since(startTime).Milliseconds())
153156
}()
154157
}
@@ -164,7 +167,8 @@ func (dps *DomainProxyServer) handleHttpsConnection(sourceConnection net.Conn, w
164167
return
165168
}
166169
startTime := time.Now()
167-
targetConnection, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, targetPort), dps.connectionTimeout)
170+
sharedParams := dps.sharedParams
171+
targetConnection, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, targetPort), sharedParams.ConnectionTimeout)
168172
if err != nil {
169173
dps.handleErrorResponse(writer, err, "Failed to connect to target")
170174
if err = sourceConnection.Close(); err != nil {
@@ -182,7 +186,7 @@ func (dps *DomainProxyServer) handleHttpsConnection(sourceConnection net.Conn, w
182186
return
183187
}
184188
go func() {
185-
common.BiDirectionalTransfer(sourceConnection, targetConnection, dps.byteBufferSize, dps.idleTimeout, DomainSocketToHttps, connectionNo)
189+
common.BiDirectionalTransfer(sourceConnection, targetConnection, sharedParams.ByteBufferSize, sharedParams.IdleTimeout, DomainSocketToHttps, connectionNo)
186190
logger.Printf("%s Connection %d ended after %d ms", DomainSocketToHttps, connectionNo, time.Since(startTime).Milliseconds())
187191
}()
188192
}
@@ -222,8 +226,9 @@ func (dps *DomainProxyServer) Stop() {
222226
common.HandleListenerCloseError(err)
223227
}
224228
}
225-
if _, err := os.Stat(dps.domainSocket); err == nil {
226-
if err := os.Remove(dps.domainSocket); err != nil {
229+
sharedParams := dps.sharedParams
230+
if _, err := os.Stat(sharedParams.DomainSocket); err == nil {
231+
if err := os.Remove(sharedParams.DomainSocket); err != nil {
227232
logger.Printf("Failed to delete domain socket: %v", err)
228233
}
229234
}
@@ -260,10 +265,26 @@ func (rw *responseWriter) WriteHeader(statusCode int) {
260265
}
261266
}
262267

263-
func GetProxyTargetWhitelist() map[string]bool {
268+
func getProxyTargetWhitelist() map[string]bool {
264269
return common.GetCsvEnvVariable(ProxyTargetWhitelistKey, DefaultProxyTargetWhitelist)
265270
}
266271

267-
func GetInternalNonProxyHosts() map[string]bool {
272+
func getInternalProxyHost() string {
273+
return common.GetEnvVariable(InternalProxyHostKey, DefaultInternalProxyHost)
274+
}
275+
276+
func getInternalProxyPort() int {
277+
return common.GetIntEnvVariable(InternalProxyPortKey, DefaultInternalProxyPort)
278+
}
279+
280+
func getInternalProxyUser() string {
281+
return common.GetEnvVariable(InternalProxyUserKey, DefaultInternalProxyUser)
282+
}
283+
284+
func getInternalProxyPassword() string {
285+
return common.GetEnvVariable(InternalProxyPasswordKey, DefaultInternalProxyPassword)
286+
}
287+
288+
func getInternalNonProxyHosts() map[string]bool {
268289
return common.GetCsvEnvVariable(InternalNonProxyHostsKey, DefaultInternalNonProxyHosts)
269290
}

0 commit comments

Comments
 (0)