Skip to content

Commit b691739

Browse files
committed
Add SecurityContext to Pipeline/TaskRunSpec
1 parent b208a72 commit b691739

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
@@ -52,6 +52,9 @@ following fields:
5252
- [`affinity`] - The pod's scheduling constraints. More info:
5353

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

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

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

7478
// 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
@@ -65,6 +65,10 @@ type TaskRunSpec 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
// 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
@@ -452,11 +452,12 @@ func (c *Reconciler) createTaskRun(logger *zap.SugaredLogger, rprt *resources.Re
452452
Inputs: v1alpha1.TaskRunInputs{
453453
Params: rprt.PipelineTask.Params,
454454
},
455-
ServiceAccount: pr.Spec.ServiceAccount,
456-
Timeout: taskRunTimeout,
457-
NodeSelector: pr.Spec.NodeSelector,
458-
Tolerations: pr.Spec.Tolerations,
459-
Affinity: pr.Spec.Affinity,
455+
ServiceAccount: pr.Spec.ServiceAccount,
456+
Timeout: taskRunTimeout,
457+
NodeSelector: pr.Spec.NodeSelector,
458+
Tolerations: pr.Spec.Tolerations,
459+
Affinity: pr.Spec.Affinity,
460+
SecurityContext: pr.Spec.SecurityContext,
460461
}}
461462

462463
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
@@ -286,6 +286,7 @@ func MakePod(taskRun *v1alpha1.TaskRun, taskSpec v1alpha1.TaskSpec, kubeclient k
286286
NodeSelector: taskRun.Spec.NodeSelector,
287287
Tolerations: taskRun.Spec.Tolerations,
288288
Affinity: taskRun.Spec.Affinity,
289+
SecurityContext: taskRun.Spec.SecurityContext,
289290
},
290291
}, nil
291292
}

test/builder/pipeline.go

+7
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,13 @@ func PipelineRunAffinity(affinity *corev1.Affinity) PipelineRunSpecOp {
329329
}
330330
}
331331

332+
// PipelineRunSecurityContext sets the securityContext to the PipelineSpec.
333+
func PipelineRunSecurityContext(securityContext *corev1.PodSecurityContext) PipelineRunSpecOp {
334+
return func(prs *v1alpha1.PipelineRunSpec) {
335+
prs.SecurityContext = securityContext
336+
}
337+
}
338+
332339
// PipelineRunStatus sets the PipelineRunStatus to the PipelineRun.
333340
// Any number of PipelineRunStatus modifier can be passed to transform it.
334341
func PipelineRunStatus(ops ...PipelineRunStatusOp) PipelineRunOp {

test/builder/task.go

+7
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,13 @@ func TaskRunAffinity(affinity *corev1.Affinity) TaskRunSpecOp {
349349
}
350350
}
351351

352+
// TaskRunSecurityContext sets the SecurityContext to the PipelineSpec.
353+
func TaskRunSecurityContext(securityContext *corev1.PodSecurityContext) TaskRunSpecOp {
354+
return func(spec *v1alpha1.TaskRunSpec) {
355+
spec.SecurityContext = securityContext
356+
}
357+
}
358+
352359
// StateTerminated set Terminated to the StepState.
353360
func StateTerminated(exitcode int) StepStateOp {
354361
return func(s *v1alpha1.StepState) {

0 commit comments

Comments
 (0)