@@ -152,6 +152,91 @@ module containerApps 'core/host/container-apps.bicep' = {
152152// Web frontend
153153var webAppName = replace ('${take (prefix , 19 )}-ca' , '--' , '-' )
154154var webAppIdentityName = '${prefix }-id-web'
155+ var webAppEnv = [
156+ {
157+ name : 'POSTGRES_HOST'
158+ value : postgresServer .outputs .POSTGRES_DOMAIN_NAME
159+ }
160+ {
161+ name : 'POSTGRES_USERNAME'
162+ value : webAppIdentityName
163+ }
164+ {
165+ name : 'POSTGRES_DATABASE'
166+ value : postgresDatabaseName
167+ }
168+ {
169+ name : 'POSTGRES_SSL'
170+ value : 'require'
171+ }
172+ {
173+ name : 'RUNNING_IN_PRODUCTION'
174+ value : 'true'
175+ }
176+ {
177+ name : 'APPLICATIONINSIGHTS_CONNECTION_STRING'
178+ value : monitoring .outputs .applicationInsightsConnectionString
179+ }
180+ {
181+ name : 'OPENAI_CHAT_HOST'
182+ value : useAzureOpenAI ? 'azure' : 'openaicom'
183+ }
184+ {
185+ name : 'AZURE_OPENAI_CHAT_DEPLOYMENT'
186+ value : useAzureOpenAI ? chatConfig .deploymentName : ''
187+ }
188+ {
189+ name : 'AZURE_OPENAI_CHAT_MODEL'
190+ value : useAzureOpenAI ? chatConfig .modelName : ''
191+ }
192+ {
193+ name : 'OPENAICOM_CHAT_MODEL'
194+ value : useAzureOpenAI ? '' : 'gpt-3.5-turbo'
195+ }
196+ {
197+ name : 'OPENAI_EMBED_HOST'
198+ value : useAzureOpenAI ? 'azure' : 'openaicom'
199+ }
200+ {
201+ name : 'OPENAICOM_EMBED_MODEL_DIMENSIONS'
202+ value : useAzureOpenAI ? '' : '1536'
203+ }
204+ {
205+ name : 'OPENAICOM_EMBED_MODEL'
206+ value : useAzureOpenAI ? '' : 'text-embedding-ada-002'
207+ }
208+ {
209+ name : 'AZURE_OPENAI_EMBED_MODEL'
210+ value : useAzureOpenAI ? embedConfig .modelName : ''
211+ }
212+ {
213+ name : 'AZURE_OPENAI_EMBED_DEPLOYMENT'
214+ value : useAzureOpenAI ? embedConfig .deploymentName : ''
215+ }
216+ {
217+ name : 'AZURE_OPENAI_EMBED_MODEL_DIMENSIONS'
218+ value : useAzureOpenAI ? string (embedConfig .dimensions ) : ''
219+ }
220+ {
221+ name : 'AZURE_OPENAI_ENDPOINT'
222+ value : useAzureOpenAI ? (deployAzureOpenAI ? openAI .outputs .endpoint : azureOpenAIEndpoint ) : ''
223+ }
224+ {
225+ name : 'AZURE_OPENAI_VERSION'
226+ value : useAzureOpenAI ? azureOpenAIAPIVersion : ''
227+ }
228+ ]
229+ var webAppEnvWithSecret = !empty (azureOpenAIKey ) ? union (webAppEnv , [
230+ {
231+ name : 'AZURE_OPENAI_KEY'
232+ secretRef : 'azure-openai-key'
233+ }
234+ ]) : webAppEnv
235+
236+ var secrets = !empty (azureOpenAIKey ) ? {
237+ 'azure-openai-key' : azureOpenAIKey
238+ } : {}
239+
155240module web 'web.bicep' = {
156241 name : 'web'
157242 scope : resourceGroup
@@ -163,87 +248,8 @@ module web 'web.bicep' = {
163248 containerAppsEnvironmentName : containerApps .outputs .environmentName
164249 containerRegistryName : containerApps .outputs .registryName
165250 exists : webAppExists
166- environmentVariables : [
167- {
168- name : 'POSTGRES_HOST'
169- value : postgresServer .outputs .POSTGRES_DOMAIN_NAME
170- }
171- {
172- name : 'POSTGRES_USERNAME'
173- value : webAppIdentityName
174- }
175- {
176- name : 'POSTGRES_DATABASE'
177- value : postgresDatabaseName
178- }
179- {
180- name : 'POSTGRES_SSL'
181- value : 'require'
182- }
183- {
184- name : 'RUNNING_IN_PRODUCTION'
185- value : 'true'
186- }
187- {
188- name : 'APPLICATIONINSIGHTS_CONNECTION_STRING'
189- value : monitoring .outputs .applicationInsightsConnectionString
190- }
191- {
192- name : 'OPENAI_CHAT_HOST'
193- value : useAzureOpenAI ? 'azure' : 'openaicom'
194- }
195- {
196- name : 'AZURE_OPENAI_CHAT_DEPLOYMENT'
197- value : useAzureOpenAI ? chatConfig .deploymentName : ''
198- }
199- {
200- name : 'AZURE_OPENAI_CHAT_MODEL'
201- value : useAzureOpenAI ? chatConfig .modelName : ''
202- }
203- {
204- name : 'OPENAICOM_CHAT_MODEL'
205- value : useAzureOpenAI ? '' : 'gpt-3.5-turbo'
206- }
207- {
208- name : 'OPENAI_EMBED_HOST'
209- value : useAzureOpenAI ? 'azure' : 'openaicom'
210- }
211- {
212- name : 'OPENAICOM_EMBED_MODEL_DIMENSIONS'
213- value : useAzureOpenAI ? '' : '1536'
214- }
215- {
216- name : 'OPENAICOM_EMBED_MODEL'
217- value : useAzureOpenAI ? '' : 'text-embedding-ada-002'
218- }
219- {
220- name : 'AZURE_OPENAI_EMBED_MODEL'
221- value : useAzureOpenAI ? embedConfig .modelName : ''
222- }
223- {
224- name : 'AZURE_OPENAI_EMBED_DEPLOYMENT'
225- value : useAzureOpenAI ? embedConfig .deploymentName : ''
226- }
227- {
228- name : 'AZURE_OPENAI_EMBED_MODEL_DIMENSIONS'
229- value : useAzureOpenAI ? string (embedConfig .dimensions ) : ''
230- }
231- {
232- name : 'AZURE_OPENAI_ENDPOINT'
233- value : useAzureOpenAI ? (deployAzureOpenAI ? openAI .outputs .endpoint : azureOpenAIEndpoint ) : ''
234- }
235- {
236- name : 'AZURE_OPENAI_VERSION'
237- value : useAzureOpenAI ? azureOpenAIAPIVersion : ''
238- }
239- {
240- name : 'AZURE_OPENAI_KEY'
241- secretRef : 'azure-openai-key'
242- }
243- ]
244- secrets : {
245- 'azure-openai-key' : empty (azureOpenAIKey ) ? 'no-key-provided' : azureOpenAIKey
246- }
251+ environmentVariables : webAppEnvWithSecret
252+ secrets : secrets
247253 }
248254}
249255
0 commit comments