コード例 #1
0
        public async Task EnsureRoleExistsAsync(KubernetesEndpointManifest clusterInfo)
        {
            using var op = Logger.BeginOperation($"Preparing Role '{clusterInfo.ServiceAccount.Role.Metadata.Name}' ...", "K8S-Role");
            var all = await k8s.ListNamespacedRoleAsync(clusterInfo.Namespace.Metadata.Name);

            var found = all.Items.FirstOrDefault(al => al.Metadata.Name.Equals(clusterInfo.ServiceAccount.Role.Metadata.Name));

            if (found == null)
            {
                await k8s.CreateNamespacedRoleAsync(clusterInfo.ServiceAccount.Role,
                                                    clusterInfo.Namespace.Metadata.Name);

                op.EndWithSuccess("Created");
            }
            else
            {
                await k8s.ReplaceNamespacedRoleAsync(clusterInfo.ServiceAccount.Role,
                                                     clusterInfo.ServiceAccount.Role.Metadata.Name,
                                                     clusterInfo.Namespace.Metadata.Name);

                op.EndWithSuccess("Updated");
            }
        }