Exemple #1
0
        private async Task ResourceHandler(WatchEventType type, ChallangeResource crd, IKubernetes client)
        {
            _logger.Information($"{type} Dns: {crd.Spec.DnsName} Key: {crd.Spec.Key}");

            switch (type)
            {
            case WatchEventType.Added:
                await _tokenRepository.RegisterTokenAsync(crd.Spec);

                break;

            case WatchEventType.Deleted:
                await _tokenRepository.DeleteTokenAsyc(crd.Spec.Token);

                break;

            case WatchEventType.Modified:
                await _tokenRepository.UpdateTokenAsync(crd.Spec);

                break;

            case WatchEventType.Error:
                _logger.Error("Error on resource {@resouce}", crd.Spec);
                await _tokenRepository.DeleteTokenAsyc(crd.Spec.Token);

                break;

            default:
                _logger.Warning("Unhandled watching event type {@type}", type);
                break;
            }
        }
Exemple #2
0
        static async Task Main(string[] args)
        {
            var config = KubernetesClientConfiguration.BuildConfigFromConfigFile();
            var client = new Kubernetes(config);

            var cr         = new ChallangeResource();
            var controller = new Controller(client);

            var cts = new CancellationToken();

            Console.WriteLine($"PID: {Environment.ProcessId}");
            await controller.StartAsync <ChallangeResource>("app-gw", (type, crd, cl) => {
                Console.WriteLine($"{type} Dns: {crd.Spec.DnsName} Key: {crd.Spec.Key}");
            }, cts);



            var ctrlc = new ManualResetEventSlim(false);

            Console.CancelKeyPress += (sender, eventArgs) => ctrlc.Set();
            ctrlc.Wait();
        }