mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 17:22:20 -05:00
* Added fields for connectivity mode, custom loc, auto-metrics, auto-logs, and the dynamic enablement of such fields. * Changed the description of the data controller details page. * Change notebook params to work for direct mode * Added login to dc deployment notebooks * Fixed auto upload metrics and logs true/false, separated login into another cell. * Removed localization of indirect and direct connectivity labels.
250 lines
10 KiB
Plaintext
250 lines
10 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "82e60c1a-7acf-47ee-877f-9e85e92e11da"
|
|
},
|
|
"source": [
|
|
"\n",
|
|
" \n",
|
|
"## Deploy Azure Arc Data Controller on an existing cluster\n",
|
|
" \n",
|
|
"This notebook walks through the process of deploying a <a href=\"https://azure.microsoft.com/services/azure-arc/\">Azure Arc controller</a> on an existing cluster.\n",
|
|
" \n",
|
|
"* Follow the instructions in the **Prerequisites** cell to install the tools if not already installed.\n",
|
|
"* The **Required information** will check and prompt you for password if it is not set in the environment variable. The password can be used to access the data controller.\n",
|
|
"\n",
|
|
"<span style=\"color:red\"><font size=\"3\">Please press the \"Run All\" button to run the notebook</font></span>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "714582b9-10ee-409e-ab12-15a4825c9471"
|
|
},
|
|
"source": [
|
|
"### **Prerequisites** \n",
|
|
"Ensure the following tools are installed and added to PATH before proceeding.\n",
|
|
" \n",
|
|
"|Tools|Description|Installation|\n",
|
|
"|---|---|---|\n",
|
|
"|kubectl | Command-line tool for monitoring the underlying Kubernetes cluster | [Installation](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-native-package-management) |\n",
|
|
"|Azure CLI (az) | Command-line tool for installing and managing resources in an Azure Arc cluster |[Installation](https://docs.microsoft.com/cli/azure/install-azure-cli-windows?tabs=azure-cli) |\n",
|
|
"|Azure CLI arcdata extension | Commands for using Azure Arc for Azure data services. | [Installation](https://docs.microsoft.com/azure/azure-arc/data/install-arcdata-extension)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "e3dd8e75-e15f-44b4-81fc-1f54d6f0b1e2"
|
|
},
|
|
"source": [
|
|
"### **Setup**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"azdata_cell_guid": "d973d5b4-7f0a-4a9d-b204-a16480f3940d",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import sys,os,getpass\n",
|
|
"def run_command(command):\n",
|
|
" print(\"Executing: \" + command)\n",
|
|
" !{command}\n",
|
|
" if _exit_code != 0:\n",
|
|
" sys.exit(f'Command execution failed with exit code: {str(_exit_code)}.\\n\\t{command}\\n')\n",
|
|
" print(f'Successfully executed: {command}')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "4b266b2d-bd1b-4565-92c9-3fc146cdce6d"
|
|
},
|
|
"source": [
|
|
"### **Set variables**\n",
|
|
"Generated by Azure Data Studio using the values collected in the 'Create Azure Arc data controller' wizard."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "2544648b-59c9-4ce5-a3b6-87086e214d4c"
|
|
},
|
|
"source": [
|
|
"### **Check dependencies**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"azdata_cell_guid": "691671d7-3f05-406c-a183-4cff7d17f83d",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"run_command('az --version')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "0bb02e76-fee8-4dbc-a75b-d5b9d1b187d0"
|
|
},
|
|
"source": [
|
|
"### **Required information**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"azdata_cell_guid": "e7e10828-6cae-45af-8c2f-1484b6d4f9ac",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"if \"AZDATA_NB_VAR_ARC_ADMIN_PASSWORD\" in os.environ:\n",
|
|
" arc_admin_password = os.environ[\"AZDATA_NB_VAR_ARC_ADMIN_PASSWORD\"]\n",
|
|
"else:\n",
|
|
" if arc_admin_password == \"\":\n",
|
|
" arc_admin_password = getpass.getpass(prompt = 'Azure Arc Data Controller password')\n",
|
|
" if arc_admin_password == \"\":\n",
|
|
" sys.exit(f'Password is required.')\n",
|
|
" confirm_password = getpass.getpass(prompt = 'Confirm password')\n",
|
|
" if arc_admin_password != confirm_password:\n",
|
|
" sys.exit(f'Passwords do not match.')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "127c8042-181f-4862-a390-96e59c181d09"
|
|
},
|
|
"source": [
|
|
"### **Set and show current context**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"azdata_cell_guid": "7d1a03d4-1df8-48eb-bff0-0042603b95b1",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"os.environ[\"KUBECONFIG\"] = arc_config_file\n",
|
|
"run_command(f'kubectl config use-context {arc_cluster_context}')\n",
|
|
"run_command('kubectl config current-context')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### **Log in to Azure CLI**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"is_indirect = arc_data_controller_connectivity_mode == 'Indirect'\n",
|
|
"\n",
|
|
"if not is_indirect:\n",
|
|
"\trun_command('az login')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "efe78cd3-ed73-4c9b-b586-fdd6c07dd37f"
|
|
},
|
|
"source": [
|
|
"### **Create Azure Arc Data Controller**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"azdata_cell_guid": "373947a1-90b9-49ee-86f4-17a4c7d4ca76",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"print (f'Creating Azure Arc Data Controller: {arc_data_controller_name} using configuration {arc_cluster_context}')\n",
|
|
"os.environ[\"AZDATA_USERNAME\"] = arc_admin_username\n",
|
|
"os.environ[\"AZDATA_PASSWORD\"] = arc_admin_password\n",
|
|
"\n",
|
|
"namespace = f' --k8s-namespace {arc_data_controller_namespace}' if is_indirect else ''\n",
|
|
"use_k8s = ' --use-k8s' if is_indirect else ''\n",
|
|
"\n",
|
|
"custom_location = f' --custom-location {arc_data_controller_custom_location}' if not is_indirect else ''\n",
|
|
"\n",
|
|
"auto_upload_metrics_value = 'true' if arc_data_controller_auto_upload_metrics == 'true' else 'false'\n",
|
|
"auto_upload_logs_value = 'true' if arc_data_controller_auto_upload_logs == 'true' else 'false'\n",
|
|
"\n",
|
|
"auto_upload_metrics = f' --auto-upload-metrics {auto_upload_metrics_value}' if not is_indirect else ''\n",
|
|
"auto_upload_logs = f' --auto-upload-logs {auto_upload_logs_value}' if not is_indirect else ''\n",
|
|
"\n",
|
|
"if os.name == 'nt':\n",
|
|
" print(f'If you don\\'t see output produced by az, you can run the following command in a terminal window to check the deployment status:\\n\\t {os.environ[\"AZDATA_NB_VAR_KUBECTL\"]} get pods -n {arc_data_controller_namespace}')\n",
|
|
"run_command(f'az arcdata dc create --connectivity-mode {arc_data_controller_connectivity_mode} --name {arc_data_controller_name}{namespace} --subscription {arc_subscription} --resource-group {arc_resource_group} --location {arc_data_controller_location} --storage-class {arc_data_controller_storage_class} --profile-name {arc_profile} --infrastructure {arc_infrastructure}{custom_location}{auto_upload_metrics}{auto_upload_logs}{use_k8s}')\n",
|
|
"print(f'Azure Arc Data Controller: {arc_data_controller_name} created.') "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"azdata_cell_guid": "a3ddc701-811d-4058-b3fb-b7295fcf50ae"
|
|
},
|
|
"source": [
|
|
"### **Setting context to created Azure Arc Data Controller**"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"azdata_cell_guid": "c974561f-13d0-4e7a-b74b-d781c2e06d68"
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"# Setting context to Data Controller.\n",
|
|
"#\n",
|
|
"run_command(f'kubectl config set-context --current --namespace {arc_data_controller_namespace}')"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.6.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|