Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ require (
github.com/google/uuid v1.1.2
github.com/hashicorp/golang-lru v0.5.1
github.com/mtrmac/gpgme v0.1.2 // indirect
github.com/openshift/api v0.0.0-20210831091943-07e756545ac1
github.com/openshift/api v0.0.0-20210927171657-636513e97fda
github.com/openshift/build-machinery-go v0.0.0-20210806203541-4ea9b6da3a37
github.com/openshift/client-go v0.0.0-20210831095141-e19a065e79f7
github.com/openshift/library-go v0.0.0-20210909124717-1c18e732a117
github.com/openshift/client-go v0.0.0-20210916133943-9acee1a0fb83
github.com/openshift/library-go v0.0.0-20210929123655-f91754363286
github.com/openshift/runtime-utils v0.0.0-20200415173359-c45d4ff3f912
github.com/prometheus/client_golang v1.11.0
github.com/prometheus/client_model v0.2.0
Expand Down
60 changes: 54 additions & 6 deletions go.sum

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions pkg/build/controller/build/build_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ type BuildController struct {
buildDefaults builddefaults.BuildDefaults
buildOverrides buildoverrides.BuildOverrides
internalRegistryHostname string
buildCSIVolumesEnabled bool

recorder record.EventRecorder
registryConfData string
Expand Down
5 changes: 3 additions & 2 deletions pkg/build/controller/strategy/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ func init() {

// DockerBuildStrategy creates a Docker build using a Docker builder image.
type DockerBuildStrategy struct {
Image string
Image string
BuildCSIVolumesEnabled bool
}

// CreateBuildPod creates the pod to be used for the Docker build
Expand Down Expand Up @@ -214,7 +215,7 @@ func (bs *DockerBuildStrategy) CreateBuildPod(build *buildv1.Build, additionalCA
setupContainersStorage(pod, &pod.Spec.Containers[0]) // for unprivileged builds
// setupContainersNodeStorage(pod, &pod.Spec.Containers[0]) // for privileged builds
setupBlobCache(pod)
if err := setupBuildVolumes(pod, build.Spec.Strategy.DockerStrategy.Volumes); err != nil {
if err := setupBuildVolumes(pod, build.Spec.Strategy.DockerStrategy.Volumes, bs.BuildCSIVolumesEnabled); err != nil {
return pod, err
}
return pod, nil
Expand Down
7 changes: 4 additions & 3 deletions pkg/build/controller/strategy/sti.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ import (

// SourceBuildStrategy creates STI(source to image) builds
type SourceBuildStrategy struct {
Image string
SecurityClient securityclient.SecurityV1Interface
Image string
SecurityClient securityclient.SecurityV1Interface
BuildCSIVolumeseEnabled bool
}

// DefaultDropCaps is the list of capabilities to drop if the current user cannot run as root
Expand Down Expand Up @@ -221,7 +222,7 @@ func (bs *SourceBuildStrategy) CreateBuildPod(build *buildv1.Build, additionalCA
setupContainersStorage(pod, &pod.Spec.Containers[0]) // for unprivileged builds
// setupContainersNodeStorage(pod, &pod.Spec.Containers[0]) // for privileged builds
setupBlobCache(pod)
if err := setupBuildVolumes(pod, build.Spec.Strategy.SourceStrategy.Volumes); err != nil {
if err := setupBuildVolumes(pod, build.Spec.Strategy.SourceStrategy.Volumes, bs.BuildCSIVolumeseEnabled); err != nil {
return pod, err
}
return pod, nil
Expand Down
4 changes: 3 additions & 1 deletion pkg/build/controller/strategy/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,9 @@ func setupBlobCache(pod *corev1.Pod) {
}

// setupBuildVolumes sets up user defined BuildVolumes
func setupBuildVolumes(pod *corev1.Pod, buildVolumes []buildv1.BuildVolume) error {
func setupBuildVolumes(pod *corev1.Pod, buildVolumes []buildv1.BuildVolume, csiVolumesEnabled bool) error {
//TODO for BUILD-275, if csiVolumesEnabled, then we can honor req's to mount CSI volumes to leverage SharedConfigMaps and SharedSecrets

// if there are no BuildVolumes or the pod is nil,
// there is no processing needed, so just return quickly
if len(buildVolumes) == 0 || pod == nil {
Expand Down
3 changes: 2 additions & 1 deletion pkg/build/controller/strategy/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -719,7 +719,8 @@ func TestSetupBuildVolumes(t *testing.T) {
p.Spec.Containers[0].VolumeMounts = append(p.Spec.Containers[0].VolumeMounts, tt.StartingVolumeMounts...)
}

err := setupBuildVolumes(p, tt.BuildVolumes)
//TODO for BUILD-275, add tests with buildCSIVolumes == true when we pull in csi volumes to leverage SharedConfigMaps and SharedSecrets
err := setupBuildVolumes(p, tt.BuildVolumes, false)

if err == nil && tt.ShouldFail {
t.Errorf("test %q should have failed with error %q, but didn't", tt.Name, tt.ErrorMessage)
Expand Down
22 changes: 18 additions & 4 deletions pkg/cmd/controller/build.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package controller

import (
"strings"

clientset "k8s.io/client-go/kubernetes"
"k8s.io/klog/v2"

buildclient "github.com/openshift/client-go/build/clientset/versioned"

buildcontroller "github.com/openshift/openshift-controller-manager/pkg/build/controller/build"
builddefaults "github.com/openshift/openshift-controller-manager/pkg/build/controller/build/defaults"
buildoverrides "github.com/openshift/openshift-controller-manager/pkg/build/controller/build/overrides"
Expand Down Expand Up @@ -50,6 +51,17 @@ func RunBuildController(ctx *ControllerContext) (bool, error) {
proxyCfgInformer := ctx.ConfigInformers.Config().V1().Proxies()
imageContentSourcePolicyInformer := ctx.OperatorInformers.Operator().V1alpha1().ImageContentSourcePolicies()

fg := ctx.OpenshiftControllerConfig.FeatureGates
csiVolumesEnabled := false
if fg != nil {
for _, v := range fg {
v = strings.TrimSpace(v)
if v == "BuildCSIVolumes=true" {
csiVolumesEnabled = true
}
}
}

buildControllerParams := &buildcontroller.BuildControllerParams{
BuildInformer: buildInformer,
BuildConfigInformer: buildConfigInformer,
Expand All @@ -67,11 +79,13 @@ func RunBuildController(ctx *ControllerContext) (bool, error) {
KubeClient: externalKubeClient,
BuildClient: buildClient,
DockerBuildStrategy: &buildstrategy.DockerBuildStrategy{
Image: imageTemplate.ExpandOrDie("docker-builder"),
Image: imageTemplate.ExpandOrDie("docker-builder"),
BuildCSIVolumesEnabled: csiVolumesEnabled,
},
SourceBuildStrategy: &buildstrategy.SourceBuildStrategy{
Image: imageTemplate.ExpandOrDie("docker-builder"),
SecurityClient: securityClient.SecurityV1(),
Image: imageTemplate.ExpandOrDie("docker-builder"),
SecurityClient: securityClient.SecurityV1(),
BuildCSIVolumeseEnabled: csiVolumesEnabled,
},
CustomBuildStrategy: &buildstrategy.CustomBuildStrategy{},
BuildDefaults: builddefaults.BuildDefaults{Config: ctx.OpenshiftControllerConfig.Build.BuildDefaults},
Expand Down
3 changes: 2 additions & 1 deletion vendor/github.com/openshift/api/Makefile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading