From 0217d579d6fcd5289205b69d7837ccad3cff9efe Mon Sep 17 00:00:00 2001 From: Dario Tranchitella Date: Tue, 18 Oct 2022 20:41:01 +0200 Subject: [PATCH] feat: tcp pod advanced scheduling --- internal/builders/controlplane/deployment.go | 12 ++++++++++++ internal/resources/k8s_deployment_resource.go | 3 +++ 2 files changed, 15 insertions(+) diff --git a/internal/builders/controlplane/deployment.go b/internal/builders/controlplane/deployment.go index 25f3f7d..8801859 100644 --- a/internal/builders/controlplane/deployment.go +++ b/internal/builders/controlplane/deployment.go @@ -818,3 +818,15 @@ func (d *Deployment) ResetKubeAPIServerFlags(resource *appsv1.Deployment, tcp *k resource.GetAnnotations()[apiServerFlagsAnnotation] = fmt.Sprintf("%d", len(tcp.Spec.ControlPlane.Deployment.ExtraArgs.APIServer)) } + +func (d *Deployment) SetNodeSelector(spec *corev1.PodSpec, tcp *kamajiv1alpha1.TenantControlPlane) { + spec.NodeSelector = tcp.Spec.ControlPlane.Deployment.NodeSelector +} + +func (d *Deployment) SetToleration(spec *corev1.PodSpec, tcp *kamajiv1alpha1.TenantControlPlane) { + spec.Tolerations = tcp.Spec.ControlPlane.Deployment.Tolerations +} + +func (d *Deployment) SetAffinity(spec *corev1.PodSpec, tcp *kamajiv1alpha1.TenantControlPlane) { + spec.Affinity = tcp.Spec.ControlPlane.Deployment.Affinity +} diff --git a/internal/resources/k8s_deployment_resource.go b/internal/resources/k8s_deployment_resource.go index ca4cb7b..30082a4 100644 --- a/internal/resources/k8s_deployment_resource.go +++ b/internal/resources/k8s_deployment_resource.go @@ -79,6 +79,9 @@ func (r *KubernetesDeploymentResource) mutate(ctx context.Context, tenantControl d.SetLabels(r.resource, utilities.MergeMaps(utilities.CommonLabels(tenantControlPlane.GetName()), tenantControlPlane.Spec.ControlPlane.Deployment.AdditionalMetadata.Labels)) d.SetAnnotations(r.resource, utilities.MergeMaps(r.resource.Annotations, tenantControlPlane.Spec.ControlPlane.Deployment.AdditionalMetadata.Annotations)) d.SetTemplateLabels(&r.resource.Spec.Template, r.deploymentTemplateLabels(ctx, tenantControlPlane)) + d.SetNodeSelector(&r.resource.Spec.Template.Spec, tenantControlPlane) + d.SetToleration(&r.resource.Spec.Template.Spec, tenantControlPlane) + d.SetAffinity(&r.resource.Spec.Template.Spec, tenantControlPlane) d.SetStrategy(&r.resource.Spec) d.SetSelector(&r.resource.Spec, tenantControlPlane) d.SetTopologySpreadConstraints(&r.resource.Spec, tenantControlPlane.Spec.ControlPlane.Deployment.TopologySpreadConstraints)