Allow per-cluster setting of a docker image.
Add dockerImage cluster configuration parameter that overrides global operator defaults when set to a non-empty value.
This commit is contained in:
parent
c25e849fe4
commit
6dcd074ea0
|
|
@ -280,7 +280,8 @@ func (c *Cluster) generatePodTemplate(resourceRequirements *v1.ResourceRequireme
|
|||
tolerationsSpec *[]v1.Toleration,
|
||||
pgParameters *spec.PostgresqlParam,
|
||||
patroniParameters *spec.Patroni,
|
||||
cloneDescription *spec.CloneDescription) *v1.PodTemplateSpec {
|
||||
cloneDescription *spec.CloneDescription,
|
||||
dockerImage *string) *v1.PodTemplateSpec {
|
||||
spiloConfiguration := c.generateSpiloJSONConfiguration(pgParameters, patroniParameters)
|
||||
|
||||
envVars := []v1.EnvVar{
|
||||
|
|
@ -362,9 +363,13 @@ func (c *Cluster) generatePodTemplate(resourceRequirements *v1.ResourceRequireme
|
|||
envVars = append(envVars, c.generateCloneEnvironment(cloneDescription)...)
|
||||
}
|
||||
privilegedMode := true
|
||||
containerImage := c.OpConfig.DockerImage
|
||||
if dockerImage != nil && *dockerImage != "" {
|
||||
containerImage = *dockerImage
|
||||
}
|
||||
container := v1.Container{
|
||||
Name: c.containerName(),
|
||||
Image: c.OpConfig.DockerImage,
|
||||
Image: containerImage,
|
||||
ImagePullPolicy: v1.PullIfNotPresent,
|
||||
Resources: *resourceRequirements,
|
||||
Ports: []v1.ContainerPort{
|
||||
|
|
@ -422,7 +427,7 @@ func (c *Cluster) generateStatefulSet(spec *spec.PostgresSpec) (*v1beta1.Statefu
|
|||
return nil, fmt.Errorf("could not generate resource requirements: %v", err)
|
||||
}
|
||||
|
||||
podTemplate := c.generatePodTemplate(resourceRequirements, &spec.Tolerations, &spec.PostgresqlParam, &spec.Patroni, &spec.Clone)
|
||||
podTemplate := c.generatePodTemplate(resourceRequirements, &spec.Tolerations, &spec.PostgresqlParam, &spec.Patroni, &spec.Clone, &spec.DockerImage)
|
||||
volumeClaimTemplate, err := generatePersistentVolumeClaimTemplate(spec.Volume.Size, spec.Volume.StorageClass)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not generate volume claim template: %v", err)
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ type PostgresSpec struct {
|
|||
|
||||
TeamID string `json:"teamId"`
|
||||
AllowedSourceRanges []string `json:"allowedSourceRanges"`
|
||||
DockerImage string `json:"dockerImage,omitempty"`
|
||||
// EnableLoadBalancer is a pointer, since it is important to know if that parameters is omitted from the manifest
|
||||
UseLoadBalancer *bool `json:"useLoadBalancer,omitempty"`
|
||||
ReplicaLoadBalancer bool `json:"replicaLoadBalancer,omitempty"`
|
||||
|
|
|
|||
Loading…
Reference in New Issue