2023-06-28 13:11:20 +00:00
|
|
|
|
using DistTestCore.Codex;
|
|
|
|
|
using DistTestCore;
|
|
|
|
|
using KubernetesWorkflow;
|
|
|
|
|
using Logging;
|
|
|
|
|
|
|
|
|
|
namespace ContinuousTests
|
|
|
|
|
{
|
|
|
|
|
public class K8sFactory
|
|
|
|
|
{
|
2023-06-29 08:45:29 +00:00
|
|
|
|
public (WorkflowCreator, TestLifecycle) CreateFacilities(string kubeConfigFile, string logPath, string dataFilePath, string customNamespace, ITimeSet timeSet, BaseLog log)
|
2023-06-28 13:11:20 +00:00
|
|
|
|
{
|
2023-06-29 08:45:29 +00:00
|
|
|
|
var kubeConfig = GetKubeConfig(kubeConfigFile);
|
2023-06-28 13:11:20 +00:00
|
|
|
|
var lifecycleConfig = new DistTestCore.Configuration
|
|
|
|
|
(
|
|
|
|
|
kubeConfigFile: kubeConfig,
|
2023-06-29 08:45:29 +00:00
|
|
|
|
logPath: logPath,
|
2023-06-28 13:11:20 +00:00
|
|
|
|
logDebug: false,
|
2023-06-29 08:45:29 +00:00
|
|
|
|
dataFilesPath: dataFilePath,
|
2023-06-28 13:11:20 +00:00
|
|
|
|
codexLogLevel: CodexLogLevel.Debug,
|
|
|
|
|
runnerLocation: TestRunnerLocation.ExternalToCluster
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
var kubeFlowConfig = new KubernetesWorkflow.Configuration(
|
|
|
|
|
k8sNamespacePrefix: customNamespace,
|
2023-06-29 08:45:29 +00:00
|
|
|
|
kubeConfigFile: kubeConfig,
|
2023-06-28 13:11:20 +00:00
|
|
|
|
operationTimeout: timeSet.K8sOperationTimeout(),
|
|
|
|
|
retryDelay: timeSet.WaitForK8sServiceDelay());
|
|
|
|
|
|
|
|
|
|
var workflowCreator = new WorkflowCreator(log, kubeFlowConfig, testNamespacePostfix: string.Empty);
|
|
|
|
|
var lifecycle = new TestLifecycle(log, lifecycleConfig, timeSet, workflowCreator);
|
|
|
|
|
|
|
|
|
|
return (workflowCreator, lifecycle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static string? GetKubeConfig(string kubeConfigFile)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(kubeConfigFile) || kubeConfigFile.ToLowerInvariant() == "null") return null;
|
|
|
|
|
return kubeConfigFile;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|