Fix builder & newdeploy not using latest image during CI build (#1033)
This commit is contained in:
@@ -80,6 +80,7 @@ type (
|
|||||||
kubernetesClient *kubernetes.Clientset
|
kubernetesClient *kubernetes.Clientset
|
||||||
fetcherImage string
|
fetcherImage string
|
||||||
fetcherImagePullPolicy apiv1.PullPolicy
|
fetcherImagePullPolicy apiv1.PullPolicy
|
||||||
|
builderImagePullPolicy apiv1.PullPolicy
|
||||||
useIstio bool
|
useIstio bool
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -102,20 +103,8 @@ func makeEnvironmentWatcher(fissionClient *crd.FissionClient,
|
|||||||
fetcherImage = "fission/fetcher"
|
fetcherImage = "fission/fetcher"
|
||||||
}
|
}
|
||||||
|
|
||||||
fetcherImagePullPolicy := os.Getenv("FETCHER_IMAGE_PULL_POLICY")
|
fetcherImagePullPolicy := fission.GetImagePullPolicy(os.Getenv("FETCHER_IMAGE_PULL_POLICY"))
|
||||||
if len(fetcherImagePullPolicy) == 0 {
|
builderImagePullPolicy := fission.GetImagePullPolicy(os.Getenv("BUILDER_IMAGE_PULL_POLICY"))
|
||||||
fetcherImagePullPolicy = "IfNotPresent"
|
|
||||||
}
|
|
||||||
|
|
||||||
var pullPolicy apiv1.PullPolicy
|
|
||||||
switch fetcherImagePullPolicy {
|
|
||||||
case "Always":
|
|
||||||
pullPolicy = apiv1.PullAlways
|
|
||||||
case "Never":
|
|
||||||
pullPolicy = apiv1.PullNever
|
|
||||||
default:
|
|
||||||
pullPolicy = apiv1.PullIfNotPresent
|
|
||||||
}
|
|
||||||
|
|
||||||
envWatcher := &environmentWatcher{
|
envWatcher := &environmentWatcher{
|
||||||
cache: make(map[string]*builderInfo),
|
cache: make(map[string]*builderInfo),
|
||||||
@@ -124,7 +113,8 @@ func makeEnvironmentWatcher(fissionClient *crd.FissionClient,
|
|||||||
fissionClient: fissionClient,
|
fissionClient: fissionClient,
|
||||||
kubernetesClient: kubernetesClient,
|
kubernetesClient: kubernetesClient,
|
||||||
fetcherImage: fetcherImage,
|
fetcherImage: fetcherImage,
|
||||||
fetcherImagePullPolicy: pullPolicy,
|
fetcherImagePullPolicy: fetcherImagePullPolicy,
|
||||||
|
builderImagePullPolicy: builderImagePullPolicy,
|
||||||
useIstio: useIstio,
|
useIstio: useIstio,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -547,7 +537,7 @@ func (envw *environmentWatcher) createBuilderDeployment(env *crd.Environment, ns
|
|||||||
fission.MergeContainerSpecs(&apiv1.Container{
|
fission.MergeContainerSpecs(&apiv1.Container{
|
||||||
Name: "builder",
|
Name: "builder",
|
||||||
Image: env.Spec.Builder.Image,
|
Image: env.Spec.Builder.Image,
|
||||||
ImagePullPolicy: apiv1.PullIfNotPresent,
|
ImagePullPolicy: envw.builderImagePullPolicy,
|
||||||
TerminationMessagePath: "/dev/termination-log",
|
TerminationMessagePath: "/dev/termination-log",
|
||||||
VolumeMounts: []apiv1.VolumeMount{
|
VolumeMounts: []apiv1.VolumeMount{
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -328,6 +328,8 @@ spec:
|
|||||||
value: "{{ .Values.fetcherImage }}:{{ .Values.fetcherImageTag }}"
|
value: "{{ .Values.fetcherImage }}:{{ .Values.fetcherImageTag }}"
|
||||||
- name: FETCHER_IMAGE_PULL_POLICY
|
- name: FETCHER_IMAGE_PULL_POLICY
|
||||||
value: "{{ .Values.pullPolicy }}"
|
value: "{{ .Values.pullPolicy }}"
|
||||||
|
- name: BUILDER_IMAGE_PULL_POLICY
|
||||||
|
value: "{{ .Values.pullPolicy }}"
|
||||||
- name: ENABLE_ISTIO
|
- name: ENABLE_ISTIO
|
||||||
value: "{{ .Values.enableIstio }}"
|
value: "{{ .Values.enableIstio }}"
|
||||||
serviceAccount: fission-svc
|
serviceAccount: fission-svc
|
||||||
|
|||||||
@@ -309,6 +309,8 @@ spec:
|
|||||||
value: "{{ .Values.fetcherImage }}:{{ .Values.fetcherImageTag }}"
|
value: "{{ .Values.fetcherImage }}:{{ .Values.fetcherImageTag }}"
|
||||||
- name: FETCHER_IMAGE_PULL_POLICY
|
- name: FETCHER_IMAGE_PULL_POLICY
|
||||||
value: "{{ .Values.pullPolicy }}"
|
value: "{{ .Values.pullPolicy }}"
|
||||||
|
- name: BUILDER_IMAGE_PULL_POLICY
|
||||||
|
value: "{{ .Values.pullPolicy }}"
|
||||||
- name: ENABLE_ISTIO
|
- name: ENABLE_ISTIO
|
||||||
value: "{{ .Values.enableIstio }}"
|
value: "{{ .Values.enableIstio }}"
|
||||||
serviceAccount: fission-svc
|
serviceAccount: fission-svc
|
||||||
|
|||||||
@@ -184,3 +184,15 @@ func RemoveZeroBytes(src []byte) []byte {
|
|||||||
}
|
}
|
||||||
return bs
|
return bs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetImagePullPolicy returns the image pull policy base on the input value.
|
||||||
|
func GetImagePullPolicy(policy string) apiv1.PullPolicy {
|
||||||
|
switch policy {
|
||||||
|
case "Always":
|
||||||
|
return apiv1.PullAlways
|
||||||
|
case "Never":
|
||||||
|
return apiv1.PullNever
|
||||||
|
default:
|
||||||
|
return apiv1.PullIfNotPresent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ func (deploy *NewDeploy) getDeploymentSpec(fn *crd.Function, env *crd.Environmen
|
|||||||
fission.MergeContainerSpecs(&apiv1.Container{
|
fission.MergeContainerSpecs(&apiv1.Container{
|
||||||
Name: fn.Metadata.Name,
|
Name: fn.Metadata.Name,
|
||||||
Image: env.Spec.Runtime.Image,
|
Image: env.Spec.Runtime.Image,
|
||||||
ImagePullPolicy: apiv1.PullIfNotPresent,
|
ImagePullPolicy: deploy.runtimeImagePullPolicy,
|
||||||
TerminationMessagePath: "/dev/termination-log",
|
TerminationMessagePath: "/dev/termination-log",
|
||||||
VolumeMounts: []apiv1.VolumeMount{
|
VolumeMounts: []apiv1.VolumeMount{
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ type (
|
|||||||
|
|
||||||
fetcherImg string
|
fetcherImg string
|
||||||
fetcherImagePullPolicy apiv1.PullPolicy
|
fetcherImagePullPolicy apiv1.PullPolicy
|
||||||
|
runtimeImagePullPolicy apiv1.PullPolicy
|
||||||
namespace string
|
namespace string
|
||||||
sharedMountPath string
|
sharedMountPath string
|
||||||
sharedSecretPath string
|
sharedSecretPath string
|
||||||
@@ -125,17 +126,19 @@ func MakeNewDeploy(
|
|||||||
namespace: namespace,
|
namespace: namespace,
|
||||||
fsCache: fsCache,
|
fsCache: fsCache,
|
||||||
|
|
||||||
fetcherImg: fetcherImg,
|
fetcherImg: fetcherImg,
|
||||||
fetcherImagePullPolicy: apiv1.PullIfNotPresent,
|
sharedMountPath: "/userfunc",
|
||||||
sharedMountPath: "/userfunc",
|
sharedSecretPath: "/secrets",
|
||||||
sharedSecretPath: "/secrets",
|
sharedCfgMapPath: "/configs",
|
||||||
sharedCfgMapPath: "/configs",
|
useIstio: enableIstio,
|
||||||
useIstio: enableIstio,
|
|
||||||
|
|
||||||
requestChannel: make(chan *fnRequest),
|
requestChannel: make(chan *fnRequest),
|
||||||
idlePodReapTime: 2 * time.Minute,
|
idlePodReapTime: 2 * time.Minute,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nd.runtimeImagePullPolicy = fission.GetImagePullPolicy(os.Getenv("RUNTIME_IMAGE_PULL_POLICY"))
|
||||||
|
nd.fetcherImagePullPolicy = fission.GetImagePullPolicy(os.Getenv("FETCHER_IMAGE_PULL_POLICY"))
|
||||||
|
|
||||||
if nd.crdClient != nil {
|
if nd.crdClient != nil {
|
||||||
fnStore, fnController := nd.initFuncController()
|
fnStore, fnController := nd.initFuncController()
|
||||||
nd.funcStore = fnStore
|
nd.funcStore = fnStore
|
||||||
|
|||||||
+2
-21
@@ -84,17 +84,6 @@ type (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func getImagePullPolicy(policy string) apiv1.PullPolicy {
|
|
||||||
switch policy {
|
|
||||||
case "Always":
|
|
||||||
return apiv1.PullAlways
|
|
||||||
case "Never":
|
|
||||||
return apiv1.PullNever
|
|
||||||
default:
|
|
||||||
return apiv1.PullIfNotPresent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func MakeGenericPool(
|
func MakeGenericPool(
|
||||||
fissionClient *crd.FissionClient,
|
fissionClient *crd.FissionClient,
|
||||||
kubernetesClient *kubernetes.Clientset,
|
kubernetesClient *kubernetes.Clientset,
|
||||||
@@ -112,14 +101,6 @@ func MakeGenericPool(
|
|||||||
if len(fetcherImage) == 0 {
|
if len(fetcherImage) == 0 {
|
||||||
fetcherImage = "fission/fetcher"
|
fetcherImage = "fission/fetcher"
|
||||||
}
|
}
|
||||||
fetcherImagePullPolicy := os.Getenv("FETCHER_IMAGE_PULL_POLICY")
|
|
||||||
if len(fetcherImagePullPolicy) == 0 {
|
|
||||||
fetcherImagePullPolicy = "IfNotPresent"
|
|
||||||
}
|
|
||||||
runtimeImagePullPolicy := os.Getenv("RUNTIME_IMAGE_PULL_POLICY")
|
|
||||||
if len(runtimeImagePullPolicy) == 0 {
|
|
||||||
runtimeImagePullPolicy = "IfNotPresent"
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: in general we need to provide the user a way to configure pools. Initial
|
// TODO: in general we need to provide the user a way to configure pools. Initial
|
||||||
// replicas, autoscaling params, various timeouts, etc.
|
// replicas, autoscaling params, various timeouts, etc.
|
||||||
@@ -144,9 +125,9 @@ func MakeGenericPool(
|
|||||||
sharedCfgMapPath: "/configs",
|
sharedCfgMapPath: "/configs",
|
||||||
}
|
}
|
||||||
|
|
||||||
gp.runtimeImagePullPolicy = getImagePullPolicy(runtimeImagePullPolicy)
|
gp.runtimeImagePullPolicy = fission.GetImagePullPolicy(os.Getenv("RUNTIME_IMAGE_PULL_POLICY"))
|
||||||
|
gp.fetcherImagePullPolicy = fission.GetImagePullPolicy(os.Getenv("FETCHER_IMAGE_PULL_POLICY"))
|
||||||
|
|
||||||
gp.fetcherImagePullPolicy = getImagePullPolicy(fetcherImagePullPolicy)
|
|
||||||
log.Printf("fetcher image: %v, pull policy: %v", gp.fetcherImage, gp.fetcherImagePullPolicy)
|
log.Printf("fetcher image: %v, pull policy: %v", gp.fetcherImage, gp.fetcherImagePullPolicy)
|
||||||
|
|
||||||
// create fetcher SA in this ns, if not already created
|
// create fetcher SA in this ns, if not already created
|
||||||
|
|||||||
Reference in New Issue
Block a user