public async Task WatchingEmptyNamespaceWorks() { // make sure namespace "test" contains no configmaps var configmapsToDelete = await _k8S.ListNamespacedConfigMapAsync(TestNamespace); foreach (var configmap in configmapsToDelete.Items) { await _k8S.DeleteNamespacedConfigMapAsync(configmap.Name(), TestNamespace); } using var watch = new WatchedResource <V1ConfigMap, V1ConfigMapList>((b, limit) => _k8S.ListNamespacedConfigMapWithHttpMessagesAsync(TestNamespace, watch: b, limit: limit)); var events = new List <(WatchEventType type, V1Namespace entity)>(); watch.EntityChanged += (type, entity) => { events.Add((type, (V1Namespace)entity)); }; Thread.Sleep(1000); Assert.Empty(events); var configmaps = watch.GetAll <V1ConfigMap>().ToList(); Assert.Empty(configmaps); }
private async Task <bool> DeleteConfigMapAsync(WebPinger pinger) { var name = $"wp-{pinger.Metadata.Name}-config"; var configMaps = await _kubernetes.ListNamespacedConfigMapAsync( Program.NamespaceName, fieldSelector : $"metadata.name={name}"); if (configMaps.Items.Any()) { await _kubernetes.DeleteNamespacedConfigMapAsync(name, Program.NamespaceName); Console.WriteLine($"** Deleted ConfigMap: {name}, in namespace: {Program.NamespaceName}"); return(true); } else { Console.WriteLine($"** No ConfigMap to delete: {name}, in namespace: {Program.NamespaceName}"); return(false); } }
public static async Task <k8s.Models.V1Status> DeleteConfigMapAsync(this LinkedConfigMapCRD crd, Kubernetes client, string @namespace) { return(await client.DeleteNamespacedConfigMapAsync(crd.Spec.Config.ConfigMapName, @namespace).ConfigureAwait(false)); }