github.com/grahambrereton-form3/tilt@v0.10.18/internal/synclet/sidecar/inject.go (about) 1 package sidecar 2 3 import ( 4 v1 "k8s.io/api/core/v1" 5 6 "github.com/windmilleng/tilt/internal/container" 7 "github.com/windmilleng/tilt/internal/k8s" 8 ) 9 10 // Inject the synclet into any Pod 11 func InjectSyncletSidecar(entity k8s.K8sEntity, selector container.RefSelector, container SyncletContainer) (k8s.K8sEntity, bool, error) { 12 entity = entity.DeepCopy() 13 14 pods, err := k8s.ExtractPods(&entity) 15 if err != nil { 16 return k8s.K8sEntity{}, false, err 17 } 18 19 replaced := false 20 for _, pod := range pods { 21 ok, err := k8s.PodContainsRef(*pod, selector) 22 if err != nil { 23 return k8s.K8sEntity{}, false, err 24 } 25 26 if !ok { 27 continue 28 } 29 30 replaced = true 31 vol := SyncletVolume.DeepCopy() 32 pod.Volumes = append(pod.Volumes, *vol) 33 34 container := (*v1.Container)(container).DeepCopy() 35 pod.Containers = append(pod.Containers, *container) 36 } 37 return entity, replaced, nil 38 }