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.")
            });