Пример #1
0
        private static void PrintYaml(K8SConfiguration k8sConfig)
        {
            var serializer = new SerializerBuilder()
                             .Build();

            var output = serializer.Serialize(k8sConfig);

            Reporter.Output.Write(output);
        }
Пример #2
0
        private static void PrintJson(K8SConfiguration k8sConfig)
        {
            var serializer = new SerializerBuilder()
                             .JsonCompatible()
                             .Build();

            var output = serializer.Serialize(k8sConfig);

            // Prettify JSON
            output = JToken.Parse(output).ToString(Newtonsoft.Json.Formatting.Indented);

            Reporter.Output.Write(output);
        }
Пример #3
0
        public static void WriteKubeConfig(K8SConfiguration k8sConfig, string kubeConfigPath = null)
        {
            if (k8sConfig == null)
            {
                throw new ArgumentNullException(nameof(k8sConfig));
            }

            var serializer = new SerializerBuilder()
                             .Build();

            var output   = serializer.Serialize(k8sConfig);
            var filePath = kubeConfigPath ?? KubeConfigDefaultLocation;

            File.WriteAllText(filePath, output);
        }
Пример #4
0
        private static void RedactCertificateData(K8SConfiguration k8sConfig)
        {
            foreach (var cluster in k8sConfig.Clusters)
            {
                if (!string.IsNullOrWhiteSpace(cluster.ClusterEndpoint?.CertificateAuthorityData))
                {
                    cluster.ClusterEndpoint.CertificateAuthorityData = "REDACTED";
                }
            }

            foreach (var user in k8sConfig.Users)
            {
                if (!string.IsNullOrWhiteSpace(user.UserCredentials?.ClientCertificateData))
                {
                    user.UserCredentials.ClientCertificateData = "REDACTED";
                }
                if (!string.IsNullOrWhiteSpace(user.UserCredentials?.ClientKeyData))
                {
                    user.UserCredentials.ClientKeyData = "REDACTED";
                }
            }
        }
Пример #5
0
        private static K8SConfiguration MinifiedConfig(K8SConfiguration k8sConfig)
        {
            if (k8sConfig == null)
            {
                throw new ArgumentNullException(nameof(k8sConfig));
            }

            var currentContext    = k8sConfig.Contexts.First(c => c.Name == k8sConfig.CurrentContext);
            var minifiedK8sConfig = new K8SConfiguration
            {
                Preferences    = k8sConfig.Preferences,
                ApiVersion     = k8sConfig.ApiVersion,
                Kind           = k8sConfig.Kind,
                CurrentContext = k8sConfig.CurrentContext,
                Contexts       = new List <Context> {
                    currentContext
                },
                Clusters = k8sConfig.Clusters.Where(c => c.Name == currentContext.ContextDetails.Cluster),
                Users    = k8sConfig.Users.Where(u => u.Name == currentContext.ContextDetails.User)
            };

            return(minifiedK8sConfig);
        }