@@ -16,25 +16,25 @@ import (
16
16
type AgentConfig struct {
17
17
// Applies to agents within the k8s controller and within the pod
18
18
Endpoint * string `json:"endpoint,omitempty"` // BUILDKITE_AGENT_ENDPOINT
19
- NoHTTP2 bool `json:"no-http2,omitempty"` // BUILDKITE_NO_HTTP2
19
+ NoHTTP2 * bool `json:"no-http2,omitempty"` // BUILDKITE_NO_HTTP2
20
20
21
21
// Only applies to agents within the pod
22
22
Experiments []string `json:"experiment,omitempty"` // BUILDKITE_AGENT_EXPERIMENT
23
23
Shell * string `json:"shell,omitempty"` // BUILDKITE_SHELL
24
- NoColor bool `json:"no-color,omitempty"` // BUILDKITE_AGENT_NO_COLOR
25
- StrictSingleHooks bool `json:"strict-single-hooks,omitempty"` // BUILDKITE_STRICT_SINGLE_HOOKS
26
- NoMultipartArtifactUpload bool `json:"no-multipart-artifact-upload,omitempty"` // BUILDKITE_NO_MULTIPART_ARTIFACT_UPLOAD
24
+ NoColor * bool `json:"no-color,omitempty"` // BUILDKITE_AGENT_NO_COLOR
25
+ StrictSingleHooks * bool `json:"strict-single-hooks,omitempty"` // BUILDKITE_STRICT_SINGLE_HOOKS
26
+ NoMultipartArtifactUpload * bool `json:"no-multipart-artifact-upload,omitempty"` // BUILDKITE_NO_MULTIPART_ARTIFACT_UPLOAD
27
27
TraceContextEncoding * string `json:"trace-context-encoding,omitempty"` // BUILDKITE_TRACE_CONTEXT_ENCODING
28
28
DisableWarningsFor []string `json:"disable-warnings-for,omitempty"` // BUILDKITE_AGENT_DISABLE_WARNINGS_FOR
29
- DebugSigning bool `json:"debug-signing,omitempty"` // BUILDKITE_AGENT_DEBUG_SIGNING
29
+ DebugSigning * bool `json:"debug-signing,omitempty"` // BUILDKITE_AGENT_DEBUG_SIGNING
30
30
31
31
// Applies differently depending on the container
32
32
// // agent start / bootstrap
33
- NoPTY bool `json:"no-pty,omitempty"` // BUILDKITE_NO_PTY / BUILDKITE_PTY
34
- NoCommandEval bool `json:"no-command-eval,omitempty"` // BUILDKITE_NO_COMMAND_EVAL / BUILDKITE_COMMAND_EVAL
35
- NoLocalHooks bool `json:"no-local-hooks,omitempty"` // BUILDKITE_NO_LOCAL_HOOKS / BUILDKITE_LOCAL_HOOKS_ENABLED
36
- NoPlugins bool `json:"no-plugins,omitempty"` // BUILDKITE_NO_PLUGINS / BUILDKITE_PLUGINS_ENABLED
37
- PluginValidation bool `json:"plugin-validation,omitempty"` // BUILDKITE_NO_PLUGIN_VALIDATION / BUILDKITE_PLUGIN_VALIDATION
33
+ NoPTY * bool `json:"no-pty,omitempty"` // BUILDKITE_NO_PTY / BUILDKITE_PTY
34
+ NoCommandEval * bool `json:"no-command-eval,omitempty"` // BUILDKITE_NO_COMMAND_EVAL / BUILDKITE_COMMAND_EVAL
35
+ NoLocalHooks * bool `json:"no-local-hooks,omitempty"` // BUILDKITE_NO_LOCAL_HOOKS / BUILDKITE_LOCAL_HOOKS_ENABLED
36
+ NoPlugins * bool `json:"no-plugins,omitempty"` // BUILDKITE_NO_PLUGINS / BUILDKITE_PLUGINS_ENABLED
37
+ PluginValidation * bool `json:"plugin-validation,omitempty"` // BUILDKITE_NO_PLUGIN_VALIDATION / BUILDKITE_PLUGIN_VALIDATION
38
38
39
39
// Like the above, but signing keys can be supplied directly to the command container.
40
40
// // agent start / pipeline upload or agent tool sign
@@ -63,8 +63,8 @@ func (a *AgentConfig) ControllerOptions() []agentcore.ControllerOption {
63
63
if a .Endpoint != nil {
64
64
opts = append (opts , agentcore .WithEndpoint (* a .Endpoint ))
65
65
}
66
- if a .NoHTTP2 {
67
- opts = append (opts , agentcore .WithAllowHTTP2 (false ))
66
+ if a .NoHTTP2 != nil {
67
+ opts = append (opts , agentcore .WithAllowHTTP2 (* a . NoHTTP2 ))
68
68
}
69
69
return opts
70
70
}
@@ -92,15 +92,15 @@ func (a *AgentConfig) ApplyVolumesTo(podSpec *corev1.PodSpec) {
92
92
// containers that run buildkite-agent in some form.
93
93
func (a * AgentConfig ) applyCommonTo (ctr * corev1.Container ) {
94
94
appendToEnvOpt (ctr , "BUILDKITE_AGENT_ENDPOINT" , a .Endpoint )
95
- appendBoolToEnv (ctr , "BUILDKITE_NO_HTTP2" , a .NoHTTP2 )
95
+ appendBoolToEnvOpt (ctr , "BUILDKITE_NO_HTTP2" , a .NoHTTP2 )
96
96
appendCommaSepToEnv (ctr , "BUILDKITE_AGENT_EXPERIMENT" , a .Experiments )
97
97
appendToEnvOpt (ctr , "BUILDKITE_SHELL" , a .Shell )
98
- appendBoolToEnv (ctr , "BUILDKITE_AGENT_NO_COLOR" , a .NoColor )
99
- appendBoolToEnv (ctr , "BUILDKITE_STRICT_SINGLE_HOOKS" , a .StrictSingleHooks )
100
- appendBoolToEnv (ctr , "BUILDKITE_NO_MULTIPART_ARTIFACT_UPLOAD" , a .NoMultipartArtifactUpload )
98
+ appendBoolToEnvOpt (ctr , "BUILDKITE_AGENT_NO_COLOR" , a .NoColor )
99
+ appendBoolToEnvOpt (ctr , "BUILDKITE_STRICT_SINGLE_HOOKS" , a .StrictSingleHooks )
100
+ appendBoolToEnvOpt (ctr , "BUILDKITE_NO_MULTIPART_ARTIFACT_UPLOAD" , a .NoMultipartArtifactUpload )
101
101
appendToEnvOpt (ctr , "BUILDKITE_TRACE_CONTEXT_ENCODING" , a .TraceContextEncoding )
102
102
appendCommaSepToEnv (ctr , "BUILDKITE_AGENT_DISABLE_WARNINGS_FOR" , a .DisableWarningsFor )
103
- appendBoolToEnv (ctr , "BUILDKITE_AGENT_DEBUG_SIGNING" , a .DebugSigning )
103
+ appendBoolToEnvOpt (ctr , "BUILDKITE_AGENT_DEBUG_SIGNING" , a .DebugSigning )
104
104
105
105
if a .HooksVolume != nil {
106
106
hooksPath := "/buildkite/hooks"
@@ -134,11 +134,11 @@ func (a *AgentConfig) ApplyToAgentStart(ctr *corev1.Container) {
134
134
}
135
135
a .applyCommonTo (ctr )
136
136
137
- appendBoolToEnv (ctr , "BUILDKITE_NO_PTY" , a .NoPTY )
138
- appendBoolToEnv (ctr , "BUILDKITE_NO_COMMAND_EVAL" , a .NoCommandEval )
139
- appendBoolToEnv (ctr , "BUILDKITE_NO_LOCAL_HOOKS" , a .NoLocalHooks )
140
- appendBoolToEnv (ctr , "BUILDKITE_NO_PLUGINS" , a .NoPlugins )
141
- appendBoolToEnv (ctr , "BUILDKITE_NO_PLUGIN_VALIDATION" , ! a .PluginValidation )
137
+ appendBoolToEnvOpt (ctr , "BUILDKITE_NO_PTY" , a .NoPTY )
138
+ appendBoolToEnvOpt (ctr , "BUILDKITE_NO_COMMAND_EVAL" , a .NoCommandEval )
139
+ appendBoolToEnvOpt (ctr , "BUILDKITE_NO_LOCAL_HOOKS" , a .NoLocalHooks )
140
+ appendBoolToEnvOpt (ctr , "BUILDKITE_NO_PLUGINS" , a .NoPlugins )
141
+ appendNegatedToEnvOpt (ctr , "BUILDKITE_NO_PLUGIN_VALIDATION" , a .PluginValidation )
142
142
143
143
if a .VerificationJWKSVolume != nil {
144
144
dir , file := "/buildkite/verification-jwks" , "key"
@@ -173,11 +173,11 @@ func (a *AgentConfig) applyToBootstrap(ctr *corev1.Container) {
173
173
// Note that these "buildkite-agent start"-like options are applied to
174
174
// containers running "buildkite-agent bootstrap". So e.g. noPTY:true must
175
175
// be inverted to pty:false, as the agent would normally.
176
- appendBoolToEnv (ctr , "BUILDKITE_PTY" , ! a .NoPTY )
177
- appendBoolToEnv (ctr , "BUILDKITE_COMMAND_EVAL" , ! a .NoCommandEval )
178
- appendBoolToEnv (ctr , "BUILDKITE_LOCAL_HOOKS_ENABLED" , ! a .NoLocalHooks )
179
- appendBoolToEnv (ctr , "BUILDKITE_PLUGINS_ENABLED" , ! a .NoPlugins )
180
- appendBoolToEnv (ctr , "BUILDKITE_PLUGIN_VALIDATION" , a .PluginValidation )
176
+ appendNegatedToEnvOpt (ctr , "BUILDKITE_PTY" , a .NoPTY )
177
+ appendNegatedToEnvOpt (ctr , "BUILDKITE_COMMAND_EVAL" , a .NoCommandEval )
178
+ appendNegatedToEnvOpt (ctr , "BUILDKITE_LOCAL_HOOKS_ENABLED" , a .NoLocalHooks )
179
+ appendNegatedToEnvOpt (ctr , "BUILDKITE_PLUGINS_ENABLED" , a .NoPlugins )
180
+ appendBoolToEnvOpt (ctr , "BUILDKITE_PLUGIN_VALIDATION" , a .PluginValidation )
181
181
}
182
182
183
183
// ApplyToCheckout adds env vars assuming ctr is a checkout container.
0 commit comments