Exemplo n.º 1
0
    private async Task <ICache> GetKubernetesInfo(string name)
    {
        var cache = new IngressCache();

        var typeMap = new Dictionary <string, Type>();

        typeMap.Add("networking.k8s.io/v1/Ingress", typeof(V1Ingress));
        typeMap.Add("v1/Service", typeof(V1Service));
        typeMap.Add("v1/Endpoints", typeof(V1Endpoints));

        var kubeObjects = await Yaml.LoadAllFromFileAsync(Path.Combine("testassets", name, "ingress.yaml"), typeMap).ConfigureAwait(false);

        foreach (var obj in kubeObjects)
        {
            if (obj is V1Ingress ingress)
            {
                cache.Update(WatchEventType.Added, ingress);
            }
            else if (obj is V1Service service)
            {
                cache.Update(WatchEventType.Added, service);
            }
            else if (obj is V1Endpoints endpoints)
            {
                cache.Update(WatchEventType.Added, endpoints);
            }
        }

        return(cache);
    }
Exemplo n.º 2
0
    public IngressCacheTests()
    {
        _mockLogger  = new Mock <ILogger <IngressCache> >();
        _mockOptions = new Mock <IOptions <YarpOptions> >();
        _mockOptions.SetupGet(o => o.Value).Returns(new YarpOptions {
            ControllerClass = "microsoft.com/ingress-yarp"
        });

        _cacheUnderTest = new IngressCache(_mockOptions.Object, _mockLogger.Object);
    }
Exemplo n.º 3
0
    public IngressCacheTests(ITestOutputHelper output)
    {
        var logger = new TestLogger <IngressCache>(output);

        _mockOptions = new Mock <IOptions <YarpOptions> >();
        _mockOptions.SetupGet(o => o.Value).Returns(new YarpOptions {
            ControllerClass = "microsoft.com/ingress-yarp"
        });

        _cacheUnderTest = new IngressCache(_mockOptions.Object, logger);
    }
    private async Task <ICache> GetKubernetesInfo(string name, V1IngressClass ingressClass)
    {
        var mockLogger  = new Mock <ILogger <IngressCache> >();
        var mockOptions = new Mock <IOptions <YarpOptions> >();

        mockOptions.SetupGet(o => o.Value).Returns(new YarpOptions {
            ControllerClass = "microsoft.com/ingress-yarp"
        });

        var cache = new IngressCache(mockOptions.Object, mockLogger.Object);

        var typeMap = new Dictionary <string, Type>();

        typeMap.Add("networking.k8s.io/v1/Ingress", typeof(V1Ingress));
        typeMap.Add("v1/Service", typeof(V1Service));
        typeMap.Add("v1/Endpoints", typeof(V1Endpoints));

        if (ingressClass is not null)
        {
            cache.Update(WatchEventType.Added, ingressClass);
        }

        var kubeObjects = await Yaml.LoadAllFromFileAsync(Path.Combine("testassets", name, "ingress.yaml"), typeMap).ConfigureAwait(false);

        foreach (var obj in kubeObjects)
        {
            if (obj is V1Ingress ingress)
            {
                cache.Update(WatchEventType.Added, ingress);
            }
            else if (obj is V1Service service)
            {
                cache.Update(WatchEventType.Added, service);
            }
            else if (obj is V1Endpoints endpoints)
            {
                cache.Update(WatchEventType.Added, endpoints);
            }
        }

        return(cache);
    }