@@ -61,9 +61,13 @@ func (o optionPair) CompareTo(other optionPair) int {
6161 return strings .Compare (o .Value , other .Value )
6262}
6363
64+ func versionHasAdvertisedEndpoint (v driver.Version ) bool {
65+ return v .CompareTo ("3.4.0" ) >= 0
66+ }
67+
6468// createArangodArgs creates command line arguments for an arangod server in the given group.
6569func createArangodArgs (apiObject metav1.Object , deplSpec api.DeploymentSpec , group api.ServerGroup ,
66- agents api.MemberStatusList , id string , autoUpgrade bool ) []string {
70+ agents api.MemberStatusList , id string , autoUpgrade , advertisedEndpoint bool ) []string {
6771 options := make ([]optionPair , 0 , 64 )
6872 svrSpec := deplSpec .GetServerGroupSpec (group )
6973
@@ -180,7 +184,7 @@ func createArangodArgs(apiObject metav1.Object, deplSpec api.DeploymentSpec, gro
180184 optionPair {"--foxx.queues" , "true" },
181185 optionPair {"--server.statistics" , "true" },
182186 )
183- if deplSpec .ExternalAccess .HasAdvertisedEndpoint () {
187+ if deplSpec .ExternalAccess .HasAdvertisedEndpoint () && advertisedEndpoint {
184188 options = append (options ,
185189 optionPair {"--cluster.my-advertised-endpoint" , deplSpec .ExternalAccess .GetAdvertisedEndpoint ()},
186190 )
@@ -197,7 +201,7 @@ func createArangodArgs(apiObject metav1.Object, deplSpec api.DeploymentSpec, gro
197201 optionPair {"--cluster.my-address" , myTCPURL },
198202 optionPair {"--cluster.my-role" , "SINGLE" },
199203 )
200- if deplSpec .ExternalAccess .HasAdvertisedEndpoint () {
204+ if deplSpec .ExternalAccess .HasAdvertisedEndpoint () && advertisedEndpoint {
201205 options = append (options ,
202206 optionPair {"--cluster.my-advertised-endpoint" , deplSpec .ExternalAccess .GetAdvertisedEndpoint ()},
203207 )
@@ -497,7 +501,11 @@ func (r *Resources) createPodForMember(spec api.DeploymentSpec, memberID string,
497501 if autoUpgrade {
498502 newPhase = api .MemberPhaseUpgrading
499503 }
500- args := createArangodArgs (apiObject , spec , group , status .Members .Agents , m .ID , autoUpgrade )
504+ advertisedEndpoint := versionHasAdvertisedEndpoint (imageInfo .ArangoDBVersion )
505+ if ! advertisedEndpoint && spec .ExternalAccess .HasAdvertisedEndpoint () {
506+ return fmt .Errorf ("Version %s does not support advertised endpoints" , imageInfo .ArangoDBVersion )
507+ }
508+ args := createArangodArgs (apiObject , spec , group , status .Members .Agents , m .ID , autoUpgrade , advertisedEndpoint )
501509 env := make (map [string ]k8sutil.EnvValue )
502510 livenessProbe , err := r .createLivenessProbe (spec , group )
503511 if err != nil {
0 commit comments