HelmCLI: support SOL018 Helm CLI ssh access
[pti/o2.git] / o2common / config / config.py
index b8186b8..64bf3eb 100644 (file)
@@ -163,3 +163,61 @@ def get_helm_cli():
 
 def get_system_controller_as_respool():
     return True
+
+
+def gen_k8s_config_dict(cluster_api_endpoint, cluster_ca_cert, admin_user,
+                        admin_client_cert, admin_client_key):
+    # KUBECONFIG environment variable
+    # reference:
+    # https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
+    data = {
+        'apiVersion': 'v1',
+        'clusters': [
+            {
+                'cluster': {
+                    'server':
+                    cluster_api_endpoint,
+                    'certificate-authority-data':
+                    cluster_ca_cert,
+                },
+                'name': 'inf-cluster'
+            }],
+        'contexts': [
+            {
+                'context': {
+                    'cluster': 'inf-cluster',
+                    'user': 'kubernetes-admin'
+                },
+                'name': 'kubernetes-admin@inf-cluster'
+            }
+        ],
+        'current-context': 'kubernetes-admin@inf-cluster',
+        'kind': 'Config',
+        'preferences': {},
+        'users': [
+            {
+                'name': admin_user,
+                'user': {
+                    'client-certificate-data':
+                    admin_client_cert,
+                    'client-key-data':
+                    admin_client_key,
+                }
+            }]
+    }
+
+    return data
+
+
+def get_helmcli_access():
+    host_external = os.environ.get("API_HOST_EXTERNAL_FLOATING")
+    host = "127.0.0.1" if host_external is None or host_external == '' \
+        else host_external
+    port = "10022" if host_external is None or host_external == '' \
+        else "50022"
+
+    helm_host_with_port = host+':'+port
+    helm_user = 'helm'
+    helm_pass = os.environ.get("HELM_USER_PASSWD")
+
+    return helm_host_with_port, helm_user, helm_pass