// annotateForExecutorOnSlave sets the BindingHostKey annotation which // marks the pod to be processed by the scheduler and launched as a Mesos // task. The executor on the slave will to the final binding to finish the // scheduling in the kubernetes sense. func annotateForExecutorOnSlave(pod *api.Pod, slave string) { if pod.Annotations == nil { pod.Annotations = make(map[string]string) } else { oemAnn := pod.Annotations pod.Annotations = make(map[string]string) for k, v := range oemAnn { pod.Annotations[k] = v } } pod.Annotations[annotation.BindingHostKey] = slave }
func (f *typeBasedFactoryStrategy) CreateBuildPod(build *buildapi.Build) (*kapi.Pod, error) { var pod *kapi.Pod var err error switch build.Parameters.Strategy.Type { case buildapi.DockerBuildStrategyType: pod, err = f.DockerBuildStrategy.CreateBuildPod(build) case buildapi.SourceBuildStrategyType: pod, err = f.SourceBuildStrategy.CreateBuildPod(build) case buildapi.CustomBuildStrategyType: pod, err = f.CustomBuildStrategy.CreateBuildPod(build) default: return nil, fmt.Errorf("no supported build strategy defined for Build %s/%s with type %s", build.Namespace, build.Name, build.Parameters.Strategy.Type) } if pod != nil { if pod.Annotations == nil { pod.Annotations = map[string]string{} } pod.Annotations[buildapi.BuildAnnotation] = build.Name } return pod, err }
func (c *Controller) updateInstanceMetadata( pod *api.Pod, nic *types.VirtualMachineInterface, address, gateway string) { doUpdate := false if pod.Annotations == nil { pod.Annotations = make(map[string]string) doUpdate = true } if updateElement(pod.Annotations, "nic_uuid", nic.GetUuid()) { doUpdate = true } var mac_address string addressArr := nic.GetVirtualMachineInterfaceMacAddresses() if len(addressArr.MacAddress) > 0 { mac_address = addressArr.MacAddress[0] } else { glog.Errorf("interface %s: no mac-addresses", nic.GetName()) } if updateElement(pod.Annotations, "mac_address", mac_address) { doUpdate = true } if updateElement(pod.Annotations, "ip_address", address) { doUpdate = true } if updateElement(pod.Annotations, "gateway", gateway) { doUpdate = true } if !doUpdate { return } _, err := c.kube.Pods(pod.Namespace).Update(pod) if err != nil { // Update will return an error if the pod object that we are // working with is stale. glog.Infof("Pod Update %s: %v", pod.Name, err) } }