public DeploymentRendererContext GenerateDeploymentRendererContext() { if (!_deploymentConfigurationPathProvider.TryGetDeploymentConfigurationRoot(out var configurationRoot)) { throw new InvalidOperationException("Could not get configuration root directory for environment to render."); } if (!_deploymentConfigurationProvider.GetDeploymentConfiguration(out var deploymentConfiguration)) { throw new InvalidOperationException("Could not build deployment configuration for environment to render."); } var configurationRootDirectory = (DirectoryInfo)configurationRoot; var rendererType = _deploymentRendererFactory.GetDeploymentRendererType(); return(rendererType switch { RendererType.Helm2 => GenerateHelmDeploymentRendererContext( configurationRootDirectory, deploymentConfiguration ), RendererType.Helm3 => GenerateHelmDeploymentRendererContext( configurationRootDirectory, deploymentConfiguration ), _ => throw new InvalidOperationException("An unsupported deployment render was provided.") });