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