PodSpec support in environment builder (#1369)

This commit is contained in:
Vivek Singh
2019-11-03 23:05:02 +08:00
committed by Ta-Ching Chen
parent 3b6749dce9
commit e1a64dd0c1
3 changed files with 16 additions and 5 deletions
+3
View File
@@ -490,6 +490,9 @@ type (
// - ImagePullPolicy // - ImagePullPolicy
// - ReadinessProbe // - ReadinessProbe
Container *apiv1.Container `json:"container,omitempty"` Container *apiv1.Container `json:"container,omitempty"`
// PodSpec will store the spec of the pod that will be applied to the pod created for the builder
PodSpec *apiv1.PodSpec `json:"podspec,omitempty"`
} }
// EnvironmentSpec contains with builder, runtime and some other related environment settings. // EnvironmentSpec contains with builder, runtime and some other related environment settings.
+12 -4
View File
@@ -489,6 +489,17 @@ func (envw *environmentWatcher) createBuilderDeployment(env *fv1.Environment, ns
return nil, err return nil, err
} }
podSpec := apiv1.PodSpec{
Containers: []apiv1.Container{*container},
ServiceAccountName: "fission-builder",
}
finalPodSpec, err := util.MergePodSpec(&podSpec, env.Spec.Builder.PodSpec)
if err != nil {
return nil, err
}
deployment := &appsv1.Deployment{ deployment := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Namespace: ns, Namespace: ns,
@@ -505,10 +516,7 @@ func (envw *environmentWatcher) createBuilderDeployment(env *fv1.Environment, ns
Labels: sel, Labels: sel,
Annotations: podAnnotations, Annotations: podAnnotations,
}, },
Spec: apiv1.PodSpec{ Spec: *finalPodSpec,
Containers: []apiv1.Container{*container},
ServiceAccountName: "fission-builder",
},
}, },
}, },
} }
+1 -1
View File
@@ -426,7 +426,7 @@ func (fr *FissionResources) Validate(flags cli.Input) error {
environments := make(map[string]struct{}) environments := make(map[string]struct{})
for _, e := range fr.Environments { for _, e := range fr.Environments {
environments[fmt.Sprintf("%s:%s", e.Metadata.Name, e.Metadata.Namespace)] = struct{}{} environments[fmt.Sprintf("%s:%s", e.Metadata.Name, e.Metadata.Namespace)] = struct{}{}
if (e.Spec.Runtime.Container != nil) && (e.Spec.Runtime.PodSpec != nil) { if ((e.Spec.Runtime.Container != nil) && (e.Spec.Runtime.PodSpec != nil)) || ((e.Spec.Builder.Container != nil) && (e.Spec.Builder.PodSpec != nil)) {
log.Warn("You have provided both - container spec and pod spec and while merging the pod spec will take precedence.") log.Warn("You have provided both - container spec and pod spec and while merging the pod spec will take precedence.")
} }
// Unlike CLI can change the environment version silently, // Unlike CLI can change the environment version silently,