Skip to content

Commit 99a02b8

Browse files
committed
Add SecurityContext to Pipeline/TaskRunSpec
1 parent ea5cc07 commit 99a02b8

File tree

9 files changed

+53
-5
lines changed

9 files changed

+53
-5
lines changed

docs/pipelineruns.md

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

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

5558
[kubernetes-overview]:
5659
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
@@ -60,6 +60,9 @@ following fields:
6060
<https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/>
6161
- [`affinity`] - the pod's scheduling constraints. More info:
6262
<https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature>
63+
- [`securityContext`] - holds pod-level security attributes and common
64+
container settings. Defaults to empty. See type description for default
65+
values of each field.
6366

6467
[kubernetes-overview]:
6568
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
@@ -68,6 +68,10 @@ type PipelineRunSpec struct {
6868
// If specified, the pod's scheduling constraints
6969
// +optional
7070
Affinity *corev1.Affinity `json:"affinity,omitempty"`
71+
// SecurityContext holds pod-level security attributes and common container settings.
72+
// Optional: Defaults to empty. See type description for default values of each field.
73+
// +optional
74+
SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
7175
}
7276

7377
// 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
@@ -64,6 +64,10 @@ type TaskRunSpec struct {
6464
// If specified, the pod's scheduling constraints
6565
// +optional
6666
Affinity *corev1.Affinity `json:"affinity,omitempty"`
67+
// SecurityContext holds pod-level security attributes and common container settings.
68+
// Optional: Defaults to empty. See type description for default values of each field.
69+
// +optional
70+
SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
6771
}
6872

6973
// 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

+6-5
Original file line numberDiff line numberDiff line change
@@ -481,11 +481,12 @@ func (c *Reconciler) createTaskRun(logger *zap.SugaredLogger, rprt *resources.Re
481481
Inputs: v1alpha1.TaskRunInputs{
482482
Params: rprt.PipelineTask.Params,
483483
},
484-
ServiceAccount: pr.Spec.ServiceAccount,
485-
Timeout: taskRunTimeout,
486-
NodeSelector: pr.Spec.NodeSelector,
487-
Tolerations: pr.Spec.Tolerations,
488-
Affinity: pr.Spec.Affinity,
484+
ServiceAccount: pr.Spec.ServiceAccount,
485+
Timeout: taskRunTimeout,
486+
NodeSelector: pr.Spec.NodeSelector,
487+
Tolerations: pr.Spec.Tolerations,
488+
Affinity: pr.Spec.Affinity,
489+
SecurityContext: pr.Spec.SecurityContext,
489490
}}
490491

491492
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
@@ -341,6 +341,7 @@ func MakePod(taskRun *v1alpha1.TaskRun, taskSpec v1alpha1.TaskSpec, kubeclient k
341341
NodeSelector: taskRun.Spec.NodeSelector,
342342
Tolerations: taskRun.Spec.Tolerations,
343343
Affinity: taskRun.Spec.Affinity,
344+
SecurityContext: taskRun.Spec.SecurityContext,
344345
},
345346
}, nil
346347
}

test/builder/pipeline.go

+7
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,13 @@ func PipelineRunAffinity(affinity *corev1.Affinity) PipelineRunSpecOp {
338338
}
339339
}
340340

341+
// PipelineRunSecurityContext sets the securityContext to the PipelineSpec.
342+
func PipelineRunSecurityContext(securityContext *corev1.PodSecurityContext) PipelineRunSpecOp {
343+
return func(prs *v1alpha1.PipelineRunSpec) {
344+
prs.SecurityContext = securityContext
345+
}
346+
}
347+
341348
// PipelineRunStatus sets the PipelineRunStatus to the PipelineRun.
342349
// Any number of PipelineRunStatus modifier can be passed to transform it.
343350
func PipelineRunStatus(ops ...PipelineRunStatusOp) PipelineRunOp {

test/builder/task.go

+7
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,13 @@ func TaskRunAffinity(affinity *corev1.Affinity) TaskRunSpecOp {
355355
}
356356
}
357357

358+
// TaskRunSecurityContext sets the SecurityContext to the PipelineSpec.
359+
func TaskRunSecurityContext(securityContext *corev1.PodSecurityContext) TaskRunSpecOp {
360+
return func(spec *v1alpha1.TaskRunSpec) {
361+
spec.SecurityContext = securityContext
362+
}
363+
}
364+
358365
// StateTerminated set Terminated to the StepState.
359366
func StateTerminated(exitcode int) StepStateOp {
360367
return func(s *v1alpha1.StepState) {

0 commit comments

Comments
 (0)