// ApplyOverrides applies configured overrides to a build in a build pod func (b BuildOverrides) ApplyOverrides(pod *kapi.Pod) error { if b.config == nil { return nil } build, version, err := buildadmission.GetBuildFromPod(pod) if err != nil { return err } glog.V(4).Infof("Applying overrides to build %s/%s", build.Namespace, build.Name) if b.config.ForcePull { if build.Spec.Strategy.DockerStrategy != nil { glog.V(5).Infof("Setting docker strategy ForcePull to true in build %s/%s", build.Namespace, build.Name) build.Spec.Strategy.DockerStrategy.ForcePull = true } if build.Spec.Strategy.SourceStrategy != nil { glog.V(5).Infof("Setting source strategy ForcePull to true in build %s/%s", build.Namespace, build.Name) build.Spec.Strategy.SourceStrategy.ForcePull = true } if build.Spec.Strategy.CustomStrategy != nil { err := applyForcePullToPod(pod) if err != nil { return err } glog.V(5).Infof("Setting custom strategy ForcePull to true in build %s/%s", build.Namespace, build.Name) build.Spec.Strategy.CustomStrategy.ForcePull = true } } // Apply label overrides for _, lbl := range b.config.ImageLabels { glog.V(5).Infof("Overriding image label %s=%s in build %s/%s", lbl.Name, lbl.Value, build.Namespace, build.Name) overrideLabel(lbl, &build.Spec.Output.ImageLabels) } if len(b.config.NodeSelector) != 0 && pod.Spec.NodeSelector == nil { pod.Spec.NodeSelector = map[string]string{} } for k, v := range b.config.NodeSelector { glog.V(5).Infof("Adding override nodeselector %s=%s to build pod %s/%s", k, v, pod.Namespace, pod.Name) pod.Spec.NodeSelector[k] = v } if len(b.config.Annotations) != 0 && pod.Annotations == nil { pod.Annotations = map[string]string{} } for k, v := range b.config.Annotations { glog.V(5).Infof("Adding override annotation %s=%s to build pod %s/%s", k, v, pod.Namespace, pod.Name) pod.Annotations[k] = v } return buildadmission.SetBuildInPod(pod, build, version) }
// ApplyDefaults applies configured build defaults to a build pod func (b BuildDefaults) ApplyDefaults(pod *kapi.Pod) error { if b.config == nil { return nil } build, version, err := buildadmission.GetBuildFromPod(pod) if err != nil { return nil } glog.V(4).Infof("Applying defaults to build %s/%s", build.Namespace, build.Name) b.applyBuildDefaults(build) b.applyPodDefaults(pod) err = buildadmission.SetPodLogLevelFromBuild(pod, build) if err != nil { return err } return buildadmission.SetBuildInPod(pod, build, version) }