Skip to content

Commit 0c55290

Browse files
committed
Add SecurityContext to Pipeline/TaskRunSpec
1 parent 9428c43 commit 0c55290

File tree

9 files changed

+52
-4
lines changed

9 files changed

+52
-4
lines changed

docs/pipelineruns.md

+3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ following fields:
4949
- [`affinity`] - The pod's scheduling constraints. More info:
5050

5151
<https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature>
52+
- [`securityContext`] - holds pod-level security attributes and common
53+
container settings. Defaults to empty. See type description for default
54+
values of each field.
5255

5356
[kubernetes-overview]:
5457
https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields

docs/taskruns.md

+3
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ following fields:
5656
<https://kubernetes.io/docs/concepts/configuration/assign-pod-node/>
5757
- [`affinity`] - the pod's scheduling constraints. More info:
5858
<https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature>
59+
- [`securityContext`] - holds pod-level security attributes and common
60+
container settings. Defaults to empty. See type description for default
61+
values of each field.
5962

6063
[kubernetes-overview]:
6164
https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields

pkg/apis/pipeline/v1alpha1/pipelinerun_types.go

+4
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ type PipelineRunSpec struct {
6565
// If specified, the pod's scheduling constraints
6666
// +optional
6767
Affinity *corev1.Affinity `json:"affinity,omitempty"`
68+
// SecurityContext holds pod-level security attributes and common container settings.
69+
// Optional: Defaults to empty. See type description for default values of each field.
70+
// +optional
71+
SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
6872
}
6973

7074
// PipelineRunSpecStatus defines the pipelinerun spec status the user can provide

pkg/apis/pipeline/v1alpha1/taskrun_types.go

+4
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ type TaskRunSpec struct {
6262
// If specified, the pod's scheduling constraints
6363
// +optional
6464
Affinity *corev1.Affinity `json:"affinity,omitempty"`
65+
// SecurityContext holds pod-level security attributes and common container settings.
66+
// Optional: Defaults to empty. See type description for default values of each field.
67+
// +optional
68+
SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
6569
}
6670

6771
// TaskRunSpecStatus defines the taskrun spec status the user can provide

pkg/apis/pipeline/v1alpha1/zz_generated.deepcopy.go

+18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/reconciler/v1alpha1/pipelinerun/pipelinerun.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -435,10 +435,11 @@ func (c *Reconciler) createTaskRun(logger *zap.SugaredLogger, rprt *resources.Re
435435
Inputs: v1alpha1.TaskRunInputs{
436436
Params: rprt.PipelineTask.Params,
437437
},
438-
ServiceAccount: pr.Spec.ServiceAccount,
439-
Timeout: taskRunTimeout,
440-
NodeSelector: pr.Spec.NodeSelector,
441-
Affinity: pr.Spec.Affinity,
438+
ServiceAccount: pr.Spec.ServiceAccount,
439+
Timeout: taskRunTimeout,
440+
NodeSelector: pr.Spec.NodeSelector,
441+
Affinity: pr.Spec.Affinity,
442+
SecurityContext: pr.Spec.SecurityContext,
442443
}}
443444

444445
resources.WrapSteps(&tr.Spec, rprt.PipelineTask, rprt.ResolvedTaskResources.Inputs, rprt.ResolvedTaskResources.Outputs, storageBasePath)

pkg/reconciler/v1alpha1/taskrun/resources/pod.go

+1
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ func MakePod(taskRun *v1alpha1.TaskRun, taskSpec v1alpha1.TaskSpec, kubeclient k
248248
Volumes: volumes,
249249
NodeSelector: taskRun.Spec.NodeSelector,
250250
Affinity: taskRun.Spec.Affinity,
251+
SecurityContext: taskRun.Spec.SecurityContext,
251252
},
252253
}, nil
253254
}

test/builder/pipeline.go

+7
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,13 @@ func PipelineRunAffinity(affinity *corev1.Affinity) PipelineRunSpecOp {
322322
}
323323
}
324324

325+
// PipelineRunSecurityContext sets the securityContext to the PipelineSpec.
326+
func PipelineRunSecurityContext(securityContext *corev1.PodSecurityContext) PipelineRunSpecOp {
327+
return func(prs *v1alpha1.PipelineRunSpec) {
328+
prs.SecurityContext = securityContext
329+
}
330+
}
331+
325332
// PipelineRunStatus sets the PipelineRunStatus to the PipelineRun.
326333
// Any number of PipelineRunStatus modifier can be passed to transform it.
327334
func PipelineRunStatus(ops ...PipelineRunStatusOp) PipelineRunOp {

test/builder/task.go

+7
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,13 @@ func TaskRunAffinity(affinity *corev1.Affinity) TaskRunSpecOp {
330330
}
331331
}
332332

333+
// TaskRunSecurityContext sets the SecurityContext to the PipelineSpec.
334+
func TaskRunSecurityContext(securityContext *corev1.PodSecurityContext) TaskRunSpecOp {
335+
return func(spec *v1alpha1.TaskRunSpec) {
336+
spec.SecurityContext = securityContext
337+
}
338+
}
339+
333340
// StateTerminated set Terminated to the StepState.
334341
func StateTerminated(exitcode int) StepStateOp {
335342
return func(s *v1alpha1.StepState) {

0 commit comments

Comments
 (0)