MCPcopy Create free account
hub / github.com/cloudnative-pg/cloudnative-pg / CreateAffinitySection

Function CreateAffinitySection

pkg/specs/pods.go:353–388  ·  view source on GitHub ↗

CreateAffinitySection creates the affinity sections for Pods, given the configuration from the user

(clusterName string, config apiv1.AffinityConfiguration)

Source from the content-addressed store, hash-verified

351// CreateAffinitySection creates the affinity sections for Pods, given the configuration
352// from the user
353func CreateAffinitySection(clusterName string, config apiv1.AffinityConfiguration) *corev1.Affinity {
354 // Initialize affinity
355 affinity := CreateGeneratedAntiAffinity(clusterName, config)
356
357 if config.AdditionalPodAffinity == nil &&
358 config.AdditionalPodAntiAffinity == nil &&
359 config.NodeAffinity == nil {
360 return affinity
361 }
362
363 if affinity == nil {
364 affinity = &corev1.Affinity{}
365 }
366
367 if config.AdditionalPodAffinity != nil {
368 affinity.PodAffinity = config.AdditionalPodAffinity
369 }
370
371 if config.AdditionalPodAntiAffinity != nil {
372 if affinity.PodAntiAffinity == nil {
373 affinity.PodAntiAffinity = &corev1.PodAntiAffinity{}
374 }
375 affinity.PodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution = append(
376 affinity.PodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution,
377 config.AdditionalPodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution...)
378 affinity.PodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution = append(
379 affinity.PodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution,
380 config.AdditionalPodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution...)
381 }
382
383 if config.NodeAffinity != nil {
384 affinity.NodeAffinity = config.NodeAffinity
385 }
386
387 return affinity
388}
389
390// CreateGeneratedAntiAffinity generates the affinity terms the operator is in charge for if enabled,
391// return nil if disabled or an error occurred, as invalid values should be validated before this method is called

Callers 3

CreatePrimaryJobFunction · 0.85
createClusterPodSpecFunction · 0.85
pods_test.goFile · 0.85

Calls 1

Tested by

no test coverage detected