예제 #1
0
        private void EnsureServiceAccount(User user)
        {
            var groupNamespaceName = user.Spec.GetGroupNamespace();
            var serviceAccountName = user.Metadata.Name;
            var serviceAccounts    = _client.ListNamespacedServiceAccount(groupNamespaceName,
                                                                          fieldSelector: $"metadata.name={serviceAccountName}");

            if (!serviceAccounts.Items.Any())
            {
                var serviceAccount = new V1ServiceAccount
                {
                    Metadata = new V1ObjectMeta
                    {
                        Name   = serviceAccountName,
                        Labels = new Dictionary <string, string>()
                        {
                            { "kiamol", "ch20" },
                        }
                    },
                    AutomountServiceAccountToken = false
                };
                _client.CreateNamespacedServiceAccount(serviceAccount, groupNamespaceName);
                Console.WriteLine($"** Created service account: {serviceAccountName}, in group namespace: {groupNamespaceName}");
            }
            else
            {
                Console.WriteLine($"** Service account exists: {serviceAccountName}, in group namespace: {groupNamespaceName}");
            }
        }