@@ -54,50 +54,57 @@ internal static async Task Run(
5454 . WaitForCompletion ( cloneAll )
5555 . WithParentRelationship ( cloneAll ) ;
5656
57- var elasticsearchLocal = builder . AddElasticsearch ( ElasticsearchLocal )
58- . WithEnvironment ( "LICENSE" , "trial" ) ;
59- if ( ! startElasticsearch )
60- elasticsearchLocal = elasticsearchLocal . WithExplicitStart ( ) ;
57+ IResourceBuilder < ElasticsearchResource > ? elasticsearchLocal = null ;
58+ if ( startElasticsearch )
59+ elasticsearchLocal = builder . AddElasticsearch ( ElasticsearchLocal )
60+ . WithEnvironment ( "LICENSE" , "trial" ) ;
6161
6262 var elasticsearchRemote = builder . AddExternalService ( ElasticsearchRemote , elasticsearchUrl ) ;
6363
64- var api = builder . AddProject < Projects . Elastic_Documentation_Api > ( Api )
64+ // Read ENVIRONMENT and DOCS_BUILD_TYPE from the host process (injected by CI or set locally).
65+ // Index name pattern: docs-{type}.semantic-{env}-latest
66+ var rawEnvironment = Environment . GetEnvironmentVariable ( "ENVIRONMENT" ) ;
67+ var serviceEnvironment = string . IsNullOrWhiteSpace ( rawEnvironment ) ? "prod" : rawEnvironment ;
68+ var rawBuildType = Environment . GetEnvironmentVariable ( "DOCS_BUILD_TYPE" ) ;
69+ var buildType = string . IsNullOrWhiteSpace ( rawBuildType ) ? "assembler" : rawBuildType ;
70+
71+ var api = builder . AddProject < Projects . Elastic_Documentation_Api > ( Api , launchProfileName : "http" )
6572 . WithArgs ( GlobalArguments )
66- . WithEnvironment ( "ENVIRONMENT" , "dev" )
73+ . WithEnvironment ( "ENVIRONMENT" , serviceEnvironment )
74+ . WithEnvironment ( "DOCS_BUILD_TYPE" , buildType )
6775 . WithEnvironment ( "LLM_GATEWAY_FUNCTION_URL" , llmUrl )
68- . WithEnvironment ( "LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH" , llmServiceAccountPath ) ;
76+ . WithEnvironment ( "LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH" , llmServiceAccountPath )
77+ . WithHttpHealthCheck ( "/docs/_api/health" ) ;
6978
7079 // ReSharper disable once RedundantAssignment
7180 api = startElasticsearch
7281 ? api
73- . WithReference ( elasticsearchLocal )
74- . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal . GetEndpoint ( "http" ) )
75- . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal . Resource . PasswordParameter )
76- . WithParentRelationship ( elasticsearchLocal )
77- . WaitFor ( elasticsearchLocal )
78- . WithExplicitStart ( )
82+ . WithReference ( elasticsearchLocal ! )
83+ . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal ! . GetEndpoint ( "http" ) )
84+ . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal ! . Resource . PasswordParameter )
85+ . WithParentRelationship ( elasticsearchLocal ! )
86+ . WaitFor ( elasticsearchLocal ! )
7987 : api . WithReference ( elasticsearchRemote )
8088 . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchUrl )
81- . WithEnvironment ( "DOCUMENTATION_ELASTIC_APIKEY" , elasticsearchApiKey )
82- . WithExplicitStart ( ) ;
89+ . WithEnvironment ( "DOCUMENTATION_ELASTIC_APIKEY" , elasticsearchApiKey ) ;
8390
8491 var mcp = builder . AddProject < Projects . Elastic_Documentation_Mcp_Remote > ( RemoteMcp )
8592 . WithArgs ( GlobalArguments )
86- . WithEnvironment ( "ENVIRONMENT" , "dev" ) ;
93+ . WithEnvironment ( "ENVIRONMENT" , serviceEnvironment )
94+ . WithEnvironment ( "DOCS_BUILD_TYPE" , buildType )
95+ . WithHttpHealthCheck ( "/docs/_mcp/health" ) ;
8796
8897 // ReSharper disable once RedundantAssignment
8998 mcp = startElasticsearch
9099 ? mcp
91- . WithReference ( elasticsearchLocal )
92- . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal . GetEndpoint ( "http" ) )
93- . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal . Resource . PasswordParameter )
94- . WithParentRelationship ( elasticsearchLocal )
95- . WaitFor ( elasticsearchLocal )
96- . WithExplicitStart ( )
100+ . WithReference ( elasticsearchLocal ! )
101+ . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal ! . GetEndpoint ( "http" ) )
102+ . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal ! . Resource . PasswordParameter )
103+ . WithParentRelationship ( elasticsearchLocal ! )
104+ . WaitFor ( elasticsearchLocal ! )
97105 : mcp . WithReference ( elasticsearchRemote )
98106 . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchUrl )
99- . WithEnvironment ( "DOCUMENTATION_ELASTIC_APIKEY" , elasticsearchApiKey )
100- . WithExplicitStart ( ) ;
107+ . WithEnvironment ( "DOCUMENTATION_ELASTIC_APIKEY" , elasticsearchApiKey ) ;
101108
102109 var indexElasticsearch = builder . AddProject < Projects . docs_builder > ( ElasticsearchIngest )
103110 . WithArgs ( [ "assembler" , "index" , .. GlobalArguments ] )
@@ -107,11 +114,11 @@ internal static async Task Run(
107114 // ReSharper disable once RedundantAssignment
108115 indexElasticsearch = startElasticsearch
109116 ? indexElasticsearch
110- . WaitFor ( elasticsearchLocal )
111- . WithReference ( elasticsearchLocal )
112- . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal . GetEndpoint ( "http" ) )
113- . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal . Resource . PasswordParameter )
114- . WithParentRelationship ( elasticsearchLocal )
117+ . WaitFor ( elasticsearchLocal ! )
118+ . WithReference ( elasticsearchLocal ! )
119+ . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal ! . GetEndpoint ( "http" ) )
120+ . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal ! . Resource . PasswordParameter )
121+ . WithParentRelationship ( elasticsearchLocal ! )
115122 : indexElasticsearch
116123 . WithReference ( elasticsearchRemote )
117124 . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchUrl )
@@ -129,16 +136,16 @@ internal static async Task Run(
129136
130137 serveStatic = startElasticsearch
131138 ? serveStatic
132- . WithReference ( elasticsearchLocal )
133- . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal . GetEndpoint ( "http" ) )
134- . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal . Resource . PasswordParameter )
139+ . WithReference ( elasticsearchLocal ! )
140+ . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchLocal ! . GetEndpoint ( "http" ) )
141+ . WithEnvironment ( context => context . EnvironmentVariables [ "DOCUMENTATION_ELASTIC_PASSWORD" ] = elasticsearchLocal ! . Resource . PasswordParameter )
135142 : serveStatic
136143 . WithReference ( elasticsearchRemote )
137144 . WithEnvironment ( "DOCUMENTATION_ELASTIC_URL" , elasticsearchUrl )
138145 . WithEnvironment ( "DOCUMENTATION_ELASTIC_APIKEY" , elasticsearchApiKey ) ;
139146
140147 // ReSharper disable once RedundantAssignment
141- serveStatic = startElasticsearch ? serveStatic . WaitFor ( elasticsearchLocal ) : serveStatic . WaitFor ( buildAll ) ;
148+ serveStatic = startElasticsearch ? serveStatic . WaitFor ( elasticsearchLocal ! ) : serveStatic . WaitFor ( buildAll ) ;
142149
143150 await builder . Build ( ) . RunAsync ( ct ) ;
144151 }
0 commit comments