diff --git a/docs/howto/custom_images.md b/docs/howto/custom_images.md index 209689c9d2..35037e2f51 100644 --- a/docs/howto/custom_images.md +++ b/docs/howto/custom_images.md @@ -21,6 +21,7 @@ The current images that could be overwritten are: | Kibana | KIBANA_IMAGE_REF_OVERRIDE | kibana | | Elastic Agent | ELASTIC_AGENT_IMAGE_REF_OVERRIDE | elastic-agent | | Logstash | LOGSTASH_IMAGE_REF_OVERRIDE | logstash | +| IsReady | ISREADY_IMAGE_REF_OVERRIDE | is_ready | For the following two examples, it will be used as example overwriting elastic-agent image. diff --git a/internal/install/application_configuration.go b/internal/install/application_configuration.go index 075761ab9f..137be01388 100644 --- a/internal/install/application_configuration.go +++ b/internal/install/application_configuration.go @@ -37,6 +37,7 @@ const ( elasticsearchImageName = "docker.elastic.co/elasticsearch/elasticsearch" kibanaImageName = "docker.elastic.co/kibana/kibana" logstashImageName = "docker.elastic.co/logstash/logstash" + isReadyImageName = "tianon/true:multiarch" applicationConfigurationYmlFile = "config.yml" ) @@ -101,6 +102,7 @@ func (s stack) ImageRefOverridesForVersion(version string) ImageRefs { Elasticsearch: checkImageRefOverride("ELASTICSEARCH_IMAGE_REF_OVERRIDE", stringOrDefault(appConfigImageRefs.Elasticsearch, "")), Kibana: checkImageRefOverride("KIBANA_IMAGE_REF_OVERRIDE", stringOrDefault(appConfigImageRefs.Kibana, "")), Logstash: checkImageRefOverride("LOGSTASH_IMAGE_REF_OVERRIDE", stringOrDefault(appConfigImageRefs.Logstash, "")), + IsReady: checkImageRefOverride("ISREADY_IMAGE_REF_OVERRIDE", stringOrDefault(appConfigImageRefs.IsReady, "")), } } @@ -110,6 +112,7 @@ type ImageRefs struct { Elasticsearch string `yaml:"elasticsearch"` Kibana string `yaml:"kibana"` Logstash string `yaml:"logstash"` + IsReady string `yaml:"is_ready"` } // AsEnv method returns key=value representation of image refs. @@ -119,6 +122,7 @@ func (ir ImageRefs) AsEnv() []string { vars = append(vars, "ELASTICSEARCH_IMAGE_REF="+ir.Elasticsearch) vars = append(vars, "KIBANA_IMAGE_REF="+ir.Kibana) vars = append(vars, "LOGSTASH_IMAGE_REF="+ir.Logstash) + vars = append(vars, "ISREADY_IMAGE_REF="+ir.IsReady) return vars } @@ -129,6 +133,7 @@ func (ac *ApplicationConfiguration) StackImageRefs() ImageRefs { refs.Elasticsearch = stringOrDefault(refs.Elasticsearch, fmt.Sprintf("%s:%s", elasticsearchImageName, ac.stackVersion)) refs.Kibana = stringOrDefault(refs.Kibana, fmt.Sprintf("%s:%s", kibanaImageName, ac.stackVersion)) refs.Logstash = stringOrDefault(refs.Logstash, fmt.Sprintf("%s:%s", logstashImageName, ac.stackVersion)) + refs.IsReady = stringOrDefault(refs.IsReady, isReadyImageName) return refs } diff --git a/internal/profile/testdata/migration-home-legacy/profiles/default/stack/snapshot.yml b/internal/profile/testdata/migration-home-legacy/profiles/default/stack/snapshot.yml index eabc00a879..780d8b5fac 100644 --- a/internal/profile/testdata/migration-home-legacy/profiles/default/stack/snapshot.yml +++ b/internal/profile/testdata/migration-home-legacy/profiles/default/stack/snapshot.yml @@ -20,7 +20,7 @@ services: - "127.0.0.1:9200:9200" elasticsearch_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: elasticsearch: condition: service_healthy @@ -49,7 +49,7 @@ services: - "127.0.0.1:5601:5601" kibana_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: kibana: condition: service_healthy @@ -78,7 +78,7 @@ services: - "127.0.0.1:9000:9000" package-registry_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: package-registry: condition: service_healthy @@ -116,7 +116,7 @@ services: fleet-server_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: fleet-server: condition: service_healthy @@ -148,7 +148,7 @@ services: target: /run/service_logs/ elastic-agent_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: elastic-agent: condition: service_healthy diff --git a/internal/stack/_static/docker-compose-stack.yml.tmpl b/internal/stack/_static/docker-compose-stack.yml.tmpl index f07bcad9cf..0cbe545cd8 100644 --- a/internal/stack/_static/docker-compose-stack.yml.tmpl +++ b/internal/stack/_static/docker-compose-stack.yml.tmpl @@ -28,7 +28,7 @@ services: - "127.0.0.1:9200:9200" elasticsearch_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: elasticsearch: condition: service_healthy @@ -57,7 +57,7 @@ services: - "127.0.0.1:5601:5601" kibana_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: kibana: condition: service_healthy @@ -89,7 +89,7 @@ services: - "127.0.0.1:9000:9000" package-registry_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: package-registry: condition: service_healthy @@ -130,7 +130,7 @@ services: {{ end }} fleet-server_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: fleet-server: condition: service_healthy @@ -162,7 +162,7 @@ services: target: /run/service_logs/ elastic-agent_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: elastic-agent: condition: service_healthy @@ -195,7 +195,7 @@ services: - ELASTIC_HOSTS=https://127.0.0.1:9200 logstash_is_ready: - image: tianon/true:multiarch + image: "${ISREADY_IMAGE_REF}" depends_on: logstash: condition: service_healthy diff --git a/internal/stack/_static/local-services-docker-compose.yml.tmpl b/internal/stack/_static/local-services-docker-compose.yml.tmpl index f7446bba6b..a062524825 100644 --- a/internal/stack/_static/local-services-docker-compose.yml.tmpl +++ b/internal/stack/_static/local-services-docker-compose.yml.tmpl @@ -40,7 +40,7 @@ services: - "host.docker.internal:host-gateway" fleet-server_is_ready: - image: tianon/true:multiarch + image: "{{ fact "isready_image" }}" depends_on: fleet-server: condition: service_healthy @@ -76,7 +76,7 @@ services: - "host.docker.internal:host-gateway" elastic-agent_is_ready: - image: tianon/true:multiarch + image: "{{ fact "isready_image" }}" depends_on: elastic-agent: condition: service_healthy @@ -109,7 +109,7 @@ services: - "host.docker.internal:host-gateway" logstash_is_ready: - image: tianon/true:multiarch + image: "{{ fact "isready_image" }}" depends_on: logstash: condition: service_healthy diff --git a/internal/stack/localresources.go b/internal/stack/localresources.go index 8f3fdc0c5f..2a336d753d 100644 --- a/internal/stack/localresources.go +++ b/internal/stack/localresources.go @@ -53,6 +53,7 @@ func applyLocalResources(profile *profile.Profile, stackVersion string, config C "agent_version": stackVersion, "agent_image": imageRefs.ElasticAgent, "logstash_image": imageRefs.Logstash, + "isready_image": imageRefs.IsReady, "elasticsearch_host": DockerInternalHost(esHostWithPort(config.ElasticsearchHost)), "api_key": config.ElasticsearchAPIKey, "username": config.ElasticsearchUsername,