Skip to content

Commit 2aa8187

Browse files
authored
Attempt to reduce deployment failures due to ingress configuration delays (#739)
1 parent 9545cba commit 2aa8187

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/deploy-tes-on-azure/Deployer.cs

+5-1
Original file line numberDiff line numberDiff line change
@@ -597,9 +597,13 @@ await PerformHelmDeploymentAsync(resourceGroup,
597597
await ExecuteQueriesOnAzurePostgreSQLDbFromK8(kubernetesClient, deploymentName, deploymentNamespace);
598598
await kubernetesClient.AppsV1.DeleteNamespacedDeploymentAsync(deploymentName, deploymentNamespace, cancellationToken: cts.Token);
599599

600-
601600
if (configuration.EnableIngress.GetValueOrDefault())
602601
{
602+
var tmpValues = await kubernetesManager.ConfigureAltLocalValuesYamlAsync("no-ingress.yml", values => values.Service["enableIngress"] = $"{false}");
603+
var backupValues = kubernetesManager.SwapLocalValuesYaml(tmpValues);
604+
await kubernetesManager.DeployHelmChartToClusterAsync(kubernetesClient);
605+
kubernetesManager.RestoreLocalValuesYaml(backupValues);
606+
603607
await Execute(
604608
$"Enabling Ingress {kubernetesManager.TesHostname}",
605609
async () =>

src/deploy-tes-on-azure/KubernetesManager.cs

+22
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ await ExecHelmProcessAsync($"upgrade --install tesonazure ./helm --kubeconfig \"
231231
workingDirectory: workingDirectoryTemp);
232232
await WaitForWorkloadAsync(kubernetesClient, "tes", configuration.AksCoANamespace, cancellationToken);
233233
}
234+
234235
public async Task RemovePodAadChart()
235236
{
236237
await ExecHelmProcessAsync($"uninstall aad-pod-identity", throwOnNonZeroExitCode: false);
@@ -300,6 +301,27 @@ public async Task UpgradeValuesYamlAsync(IStorageAccount storageAccount, Diction
300301
await Deployer.UploadTextToStorageAccountAsync(storageAccount, Deployer.ConfigurationContainerName, "aksValues.yaml", valuesString, cancellationToken);
301302
}
302303

304+
public async Task<FileInfo> ConfigureAltLocalValuesYamlAsync(string altName, Action<HelmValues> configure)
305+
{
306+
FileInfo altValues = new(Path.Combine(Path.GetDirectoryName(TempHelmValuesYamlPath), altName));
307+
var values = KubernetesYaml.Deserialize<HelmValues>(await File.ReadAllTextAsync(TempHelmValuesYamlPath, cancellationToken));
308+
configure(values);
309+
await File.WriteAllTextAsync(altValues.FullName, KubernetesYaml.Serialize(values), cancellationToken);
310+
return altValues;
311+
}
312+
313+
public FileInfo SwapLocalValuesYaml(FileInfo file)
314+
{
315+
FileInfo backup = new(Path.Combine(file.DirectoryName, "backup.bak"));
316+
File.Replace(file.FullName, TempHelmValuesYamlPath, backup.FullName);
317+
return backup;
318+
}
319+
320+
public void RestoreLocalValuesYaml(FileInfo backup)
321+
{
322+
File.Replace(backup.FullName, TempHelmValuesYamlPath, default);
323+
}
324+
303325
public async Task<Dictionary<string, string>> GetAKSSettingsAsync(IStorageAccount storageAccount)
304326
{
305327
var values = KubernetesYaml.Deserialize<HelmValues>(await Deployer.DownloadTextFromStorageAccountAsync(storageAccount, Deployer.ConfigurationContainerName, "aksValues.yaml", cancellationToken));

0 commit comments

Comments
 (0)