Exemple #1
0
        public async Task TestWithSpdySession()
        {
            var podPort = 80;
            var config  = new KubernetesConfiguration();
            var factory =
                new KubernetesClientFactory(config);

            using var client = factory.Create("kind-argo-demo-test");
            var session = await client.SpdyNamespacedPodPortForwardAsync(
                "argocd-server-78ffb87fd8-f6559",
                "argocd",
                new[] { podPort },
                CancellationToken.None)
                          .ConfigureAwait(false);

            using var stream = session.Open(
                      headers: new NameValueHeaderBlock(
                          (Kubernetes.Headers.StreamType, new[]
            {
                Kubernetes.Headers.StreamTypeData
            }),
                          (Kubernetes.Headers.Port, new[]
            {
                podPort.ToString()
            })));
            await stream.Remote.WaitForOpenedAsync()
            .ConfigureAwait(false);

            await Task.Delay(10)
            .ConfigureAwait(false);
        }
Exemple #2
0
 public KubernetesRepository(SelectedNamespacesState selectedNamespaces, CurrentContext currentContext,
                             KubernetesClientFactory kubernetesClientFactory)
 {
     SelectedNamespaces      = selectedNamespaces;
     CurrentContext          = currentContext;
     KubernetesClientFactory = kubernetesClientFactory;
 }
Exemple #3
0
        public async Task Test1()
        {
            var factory =
                new KubernetesClientFactory(new KubernetesConfiguration());
            var ks = new KubernetesService(
                factory, new SocketNetworkServerFactory(), new TestFeatureManager());
            await ks.PortForwardAsync(
                "kind-argo-demo-ci", new Shared.PortForward(
                    podPort: 2746,
                    protocolType: ProtocolType.Tcp,
                    @namespace: "argo",
                    service: "argo-server-5f5c647dcb-bkcz6",
                    pod: "")
            {
                LocalPort = 2746
            }, CancellationTokenSource.Token)
            .ConfigureAwait(false);

            await Task.Delay(int.MaxValue)
            .ConfigureAwait(false);
        }
Exemple #4
0
        private async Task EnsureInitialized()
        {
            var currentSelectedContext = await CurrentContext.Get();

            if (_currentAppliedContext != currentSelectedContext)
            {
                _isInitialized = false;
                _items.Clear();
                _currentAppliedContext = currentSelectedContext;
                Computed.Invalidate(GetAll);
            }

            if (_isInitialized)
            {
                return;
            }
            var client = await KubernetesClientFactory.Get();

            var kubernetesRequest = client.Request <TList>();
            var initialRequest    = await kubernetesRequest.ExecuteAsync <TList>();

            if (initialRequest?.Items != null)
            {
                foreach (var initialRequestItem in initialRequest.Items)
                {
                    var fullPod = await client.Request <TEntity>(initialRequestItem.Namespace(),
                                                                 initialRequestItem.Metadata.Name).ExecuteAsync <TEntity>();

                    _items.TryAdd(fullPod.Uid(), fullPod);
                }
            }

            _watch = kubernetesRequest.ToWatch <TEntity>(initialRequest.ResourceVersion());
            _watch.EventReceived += EventReceived;
            // Capture as discarded var to stop the "use await" warning
            var _ = _watch.Run();

            _isInitialized = true;
        }
Exemple #5
0
        public async Task TestWithSpdy()
        {
            var config  = new KubernetesConfiguration();
            var factory =
                new KubernetesClientFactory(config);

            await using var ks = new KubernetesService(
                            factory, new SocketNetworkServerFactory(), new TestFeatureManager((nameof(Features.PortForwardingWithSpdy), true)));
            await ks.PortForwardAsync(
                "kind-argo-demo-test", new Shared.PortForward(
                    podPort: 80,
                    protocolType: ProtocolType.Tcp,
                    @namespace: "argocd",
                    service: "",
                    pod: "argocd-server-78ffb87fd8-f6559")
            {
                LocalPort = 8081
            }, CancellationTokenSource.Token)
            .ConfigureAwait(false);

            await Task.Delay(5000)
            .ConfigureAwait(false);
        }