public async Task EnsureRoleBindingExistsAsync(KubernetesEndpointManifest clusterInfo) { using var op = Logger.BeginOperation($"Preparing Role binding '{clusterInfo.ServiceAccount.Binding.Metadata.Name}' ...", "RoleBinding"); var all = await k8s.ListNamespacedRoleBindingAsync(clusterInfo.Namespace.Metadata.Name); var found = all.Items.FirstOrDefault(al => al.Metadata.Name.Equals(clusterInfo.ServiceAccount.Binding.Metadata.Name)); if (found == null) { await k8s.CreateNamespacedRoleBindingAsync(clusterInfo.ServiceAccount.Binding, clusterInfo.Namespace.Metadata.Name); op.EndWithSuccess("Created"); } else { await k8s.ReplaceNamespacedRoleBindingAsync(clusterInfo.ServiceAccount.Binding, clusterInfo.ServiceAccount.Binding.Metadata.Name, clusterInfo.Namespace.Metadata.Name); op.EndWithSuccess("Updated"); } }