* Add ability to specify alternative schedulers via schedulerName. Co-authored-by: micah.coletti@gmail.com <micah.coletti@gmail.com>
This commit is contained in:
parent
cfd83e33c8
commit
85d1a72cd6
|
|
@ -354,6 +354,8 @@ spec:
|
|||
memory:
|
||||
type: string
|
||||
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||
schedulerName:
|
||||
type: string
|
||||
serviceAnnotations:
|
||||
type: object
|
||||
additionalProperties:
|
||||
|
|
|
|||
|
|
@ -65,6 +65,10 @@ These parameters are grouped directly under the `spec` key in the manifest.
|
|||
custom Docker image that overrides the **docker_image** operator parameter.
|
||||
It should be a [Spilo](https://github.com/zalando/spilo) image. Optional.
|
||||
|
||||
* **schedulerName**
|
||||
specifies the scheduling profile for database pods. If no value is provided
|
||||
K8s' `default-scheduler` will be used. Optional.
|
||||
|
||||
* **spiloRunAsUser**
|
||||
sets the user ID which should be used in the container to run the process.
|
||||
This must be set to run the container without root. By default the container
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@ spec:
|
|||
memory:
|
||||
type: string
|
||||
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
|
||||
schedulerName:
|
||||
type: string
|
||||
serviceAnnotations:
|
||||
type: object
|
||||
additionalProperties:
|
||||
|
|
|
|||
|
|
@ -535,6 +535,9 @@ var PostgresCRDResourceValidation = apiextv1.CustomResourceValidation{
|
|||
},
|
||||
},
|
||||
},
|
||||
"schedulerName": {
|
||||
Type: "string",
|
||||
},
|
||||
"serviceAnnotations": {
|
||||
Type: "object",
|
||||
AdditionalProperties: &apiextv1.JSONSchemaPropsOrBool{
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ type PostgresSpec struct {
|
|||
ClusterName string `json:"-"`
|
||||
Databases map[string]string `json:"databases,omitempty"`
|
||||
PreparedDatabases map[string]PreparedDatabase `json:"preparedDatabases,omitempty"`
|
||||
SchedulerName *string `json:"schedulerName,omitempty"`
|
||||
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
|
||||
Sidecars []Sidecar `json:"sidecars,omitempty"`
|
||||
InitContainers []v1.Container `json:"initContainers,omitempty"`
|
||||
|
|
|
|||
|
|
@ -687,6 +687,11 @@ func (in *PostgresSpec) DeepCopyInto(out *PostgresSpec) {
|
|||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.SchedulerName != nil {
|
||||
in, out := &in.SchedulerName, &out.SchedulerName
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -537,6 +537,7 @@ func (c *Cluster) generatePodTemplate(
|
|||
spiloRunAsGroup *int64,
|
||||
spiloFSGroup *int64,
|
||||
nodeAffinity *v1.Affinity,
|
||||
schedulerName *string,
|
||||
terminateGracePeriod int64,
|
||||
podServiceAccountName string,
|
||||
kubeIAMRole string,
|
||||
|
|
@ -575,6 +576,10 @@ func (c *Cluster) generatePodTemplate(
|
|||
SecurityContext: &securityContext,
|
||||
}
|
||||
|
||||
if schedulerName != nil {
|
||||
podSpec.SchedulerName = *schedulerName
|
||||
}
|
||||
|
||||
if shmVolume != nil && *shmVolume {
|
||||
addShmVolume(&podSpec)
|
||||
}
|
||||
|
|
@ -1184,6 +1189,7 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
|||
effectiveRunAsGroup,
|
||||
effectiveFSGroup,
|
||||
nodeAffinity(c.OpConfig.NodeReadinessLabel),
|
||||
spec.SchedulerName,
|
||||
int64(c.OpConfig.PodTerminateGracePeriod.Seconds()),
|
||||
c.OpConfig.PodServiceAccountName,
|
||||
c.OpConfig.KubeIAMRole,
|
||||
|
|
@ -1885,6 +1891,7 @@ func (c *Cluster) generateLogicalBackupJob() (*batchv1beta1.CronJob, error) {
|
|||
nil,
|
||||
nil,
|
||||
nodeAffinity(c.OpConfig.NodeReadinessLabel),
|
||||
nil,
|
||||
int64(c.OpConfig.PodTerminateGracePeriod.Seconds()),
|
||||
c.OpConfig.PodServiceAccountName,
|
||||
c.OpConfig.KubeIAMRole,
|
||||
|
|
|
|||
Loading…
Reference in New Issue