|
57 | 57 | Pull_HelmChart_Fault_Type = 'helm-chart-pull-error' |
58 | 58 | Export_HelmChart_Fault_Type = 'helm-chart-export-error' |
59 | 59 | Get_Kubernetes_Version_Fault_Type = 'kubernetes-get-version-error' |
| 60 | +Get_Kubernetes_Distro_Fault_Type = 'kubernetes-get-distribution-error' |
60 | 61 |
|
61 | 62 |
|
62 | 63 | # pylint:disable=unused-argument |
@@ -102,7 +103,8 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, location |
102 | 103 |
|
103 | 104 | # Get kubernetes cluster info for telemetry |
104 | 105 | kubernetes_version = get_server_version(configuration) |
105 | | - kubernetes_distro = 'default' |
| 106 | + kubernetes_distro = get_kubernetes_distro(configuration) |
| 107 | + |
106 | 108 | kubernetes_properties = { |
107 | 109 | 'Context.Default.AzureCLI.KubernetesVersion': kubernetes_version, |
108 | 110 | 'Context.Default.AzureCLI.KubernetesDistro': kubernetes_distro |
@@ -243,6 +245,7 @@ def create_connectedk8s(cmd, client, resource_group_name, cluster_name, location |
243 | 245 | chart_path = os.getenv('HELMCHART') if os.getenv('HELMCHART') else helm_chart_path |
244 | 246 | cmd_helm_install = ["helm", "upgrade", "--install", "azure-arc", chart_path, |
245 | 247 | "--set", "global.subscriptionId={}".format(subscription_id), |
| 248 | + "--set", "global.kubernetesDistro={}".format(kubernetes_distro), |
246 | 249 | "--set", "global.resourceGroupName={}".format(resource_group_name), |
247 | 250 | "--set", "global.resourceName={}".format(cluster_name), |
248 | 251 | "--set", "global.location={}".format(location), |
@@ -455,6 +458,21 @@ def get_server_version(configuration): |
455 | 458 | logger.warning("Unable to fetch kubernetes version: %s\n", e) |
456 | 459 |
|
457 | 460 |
|
| 461 | +def get_kubernetes_distro(configuration): |
| 462 | + api_instance = kube_client.CoreV1Api(kube_client.ApiClient(configuration)) |
| 463 | + try: |
| 464 | + api_response = api_instance.list_node() |
| 465 | + if api_response.items: |
| 466 | + labels = api_response.items[0].metadata.labels |
| 467 | + if labels.get("node.openshift.io/os_id") == "rhcos" or labels.get("node.openshift.io/os_id") == "rhel": |
| 468 | + return "openshift" |
| 469 | + return "default" |
| 470 | + except Exception as e: # pylint: disable=broad-except |
| 471 | + telemetry.set_exception(exception=e, fault_type=Get_Kubernetes_Distro_Fault_Type, |
| 472 | + summary='Unable to fetch kubernetes distribution') |
| 473 | + logger.warning("Exception while trying to fetch kubernetes distribution: %s\n", e) |
| 474 | + |
| 475 | + |
458 | 476 | def generate_request_payload(configuration, location, public_key, tags): |
459 | 477 | # Create connected cluster resource object |
460 | 478 | aad_profile = ConnectedClusterAADProfile( |
|
0 commit comments