Feature/cu5 features (#11046)

* openshift bdc target (#10358)

* openshift bdc target

* openshift bdc target

* comments

* new ad settings (#10390)

* ad settings

* comments

* bump version requirement (#10587)

* fix error

* update the notebook description (#10888)

* update notebooks
This commit is contained in:
Alan Ren
2020-06-22 19:04:51 -07:00
committed by GitHub
parent e01723f195
commit c9c4ec2035
18 changed files with 1028 additions and 135 deletions

View File

@@ -17,8 +17,10 @@ export const DomainDNSName_VariableName = 'AZDATA_NB_VAR_BDC_AD_DOMAIN_DNS_NAME'
export const Realm_VariableName = 'AZDATA_NB_VAR_BDC_AD_REALM';
export const DomainServiceAccountUserName_VariableName = 'AZDATA_NB_VAR_BDC_AD_DOMAIN_SVC_USERNAME';
export const DomainServiceAccountPassword_VariableName = 'AZDATA_NB_VAR_BDC_AD_DOMAIN_SVC_PASSWORD';
export const AppOwners_VariableName = 'AZDATA_NB_VAR_AD_BDC_APP_OWNERS';
export const AppReaders_VariableName = 'AZDATA_NB_VAR_AD_BDC_APP_READERS';
export const AppOwners_VariableName = 'AZDATA_NB_VAR_BDC_AD_APP_OWNERS';
export const AppReaders_VariableName = 'AZDATA_NB_VAR_AD_BDC_AD_APP_READERS';
export const Subdomain_VariableName = 'AZDATA_NB_VAR_BDC_AD_SUBDOMAIN';
export const AccountPrefix_VariableName = 'AZDATA_NB_VAR_BDC_AD_ACCOUNTPREFIX';
export const SubscriptionId_VariableName = 'AZDATA_NB_VAR_BDC_AZURE_SUBSCRIPTION';
export const ResourceGroup_VariableName = 'AZDATA_NB_VAR_BDC_RESOURCEGROUP_NAME';
export const Location_VariableName = 'AZDATA_NB_VAR_BDC_AZURE_REGION';

View File

@@ -94,14 +94,9 @@ export class DeployClusterWizard extends WizardBase<DeployClusterWizard, WizardP
new SummaryPage(this));
break;
case BdcDeploymentType.ExistingAKS:
pages.push(
new DeploymentProfilePage(this),
new TargetClusterContextPage(this),
new ClusterSettingsPage(this),
new ServiceSettingsPage(this),
new SummaryPage(this));
break;
case BdcDeploymentType.ExistingKubeAdm:
case BdcDeploymentType.ExistingARO:
case BdcDeploymentType.ExistingOpenShift:
pages.push(
new DeploymentProfilePage(this),
new TargetClusterContextPage(this),
@@ -171,6 +166,11 @@ export class DeployClusterWizard extends WizardBase<DeployClusterWizard, WizardP
return localize('deployCluster.ExistingAKSWizardTitle', "Deploy SQL Server 2019 Big Data Cluster on an existing AKS cluster");
case BdcDeploymentType.ExistingKubeAdm:
return localize('deployCluster.ExistingKubeAdm', "Deploy SQL Server 2019 Big Data Cluster on an existing kubeadm cluster");
case BdcDeploymentType.ExistingARO:
return localize('deployCluster.ExistingARO', "Deploy SQL Server 2019 Big Data Cluster on an existing Azure Red Hat OpenShift cluster");
case BdcDeploymentType.ExistingOpenShift:
return localize('deployCluster.ExistingOpenShift', "Deploy SQL Server 2019 Big Data Cluster on an existing OpenShift cluster");
default:
throw new Error(`Unknown deployment type: ${type}`);
}

View File

@@ -132,7 +132,9 @@ export class DeployClusterWizardModel extends Model {
clusterAdmins: this.getStringValue(VariableNames.ClusterAdmins_VariableName)!,
clusterUsers: this.getStringValue(VariableNames.ClusterUsers_VariableName)!,
appOwners: this.getStringValue(VariableNames.AppOwners_VariableName),
appReaders: this.getStringValue(VariableNames.AppReaders_VariableName)
appReaders: this.getStringValue(VariableNames.AppReaders_VariableName),
subdomain: this.getStringValue(VariableNames.Subdomain_VariableName),
accountPrefix: this.getStringValue(VariableNames.AccountPrefix_VariableName)
});
}
return targetDeploymentProfile;
@@ -148,7 +150,10 @@ export class DeployClusterWizardModel extends Model {
statements.push(`azure_vm_size = '${this.getStringValue(VariableNames.VMSize_VariableName)}'`);
statements.push(`azure_vm_count = '${this.getStringValue(VariableNames.VMCount_VariableName)}'`);
statements.push(`aks_cluster_name = '${this.getStringValue(VariableNames.AksName_VariableName)}'`);
} else if (this.deploymentTarget === BdcDeploymentType.ExistingAKS || this.deploymentTarget === BdcDeploymentType.ExistingKubeAdm) {
} else if (this.deploymentTarget === BdcDeploymentType.ExistingAKS
|| this.deploymentTarget === BdcDeploymentType.ExistingKubeAdm
|| this.deploymentTarget === BdcDeploymentType.ExistingARO
|| this.deploymentTarget === BdcDeploymentType.ExistingOpenShift) {
statements.push(`mssql_kube_config_path = '${this.escapeForNotebookCodeCell(this.getStringValue(VariableNames.KubeConfigPath_VariableName)!)}'`);
statements.push(`mssql_cluster_context = '${this.getStringValue(VariableNames.ClusterContext_VariableName)}'`);
statements.push('os.environ["KUBECONFIG"] = mssql_kube_config_path');

View File

@@ -186,6 +186,18 @@ export class ClusterSettingsPage extends WizardPageBase<DeployClusterWizard> {
variableName: VariableNames.AppReaders_VariableName,
placeHolder: localize('deployCluster.AppReadersPlaceHolder', "Use comma to separate the values."),
description: localize('deployCluster.AppReadersDescription', "The Active Directory users or groups of app readers. Use comma as separator them if there are multiple users/groups.")
}, {
type: FieldType.Text,
label: localize('deployCluster.Subdomain', "Subdomain"),
required: false,
variableName: VariableNames.Subdomain_VariableName,
description: localize('deployCluster.SubdomainDescription', "A unique DNS subdomain to use for this SQL Server Big Data Cluster. If not provided, the cluster name will be used as the default value.")
}, {
type: FieldType.Text,
label: localize('deployCluster.AccountPrefix', "Account prefix"),
required: false,
variableName: VariableNames.AccountPrefix_VariableName,
description: localize('deployCluster.AccountPrefixDescription', "A unique prefix for AD accounts SQL Server Big Data Cluster will generate. If not provided, the subdomain name will be used as the default value. If a subdomain is not provided, the cluster name will be used as the default value.")
}
]
};
@@ -279,10 +291,9 @@ export class ClusterSettingsPage extends WizardPageBase<DeployClusterWizard> {
variableDNSPrefixMapping[VariableNames.SQLServerDNSName_VariableName] = 'bdc-sql';
variableDNSPrefixMapping[VariableNames.ServiceProxyDNSName_VariableName] = 'bdc-proxy';
const subdomain = this.wizard.model.getStringValue(VariableNames.Subdomain_VariableName) || this.wizard.model.getStringValue(VariableNames.ClusterName_VariableName);
Object.keys(variableDNSPrefixMapping).forEach((variableName: string) => {
if (!this.wizard.model.getStringValue(variableName)) {
this.wizard.model.setPropertyValue(variableName, `${variableDNSPrefixMapping[variableName]}.${this.wizard.model.getStringValue(VariableNames.DomainDNSName_VariableName)}`);
}
this.wizard.model.setPropertyValue(variableName, `${variableDNSPrefixMapping[variableName]}.${subdomain}.${this.wizard.model.getStringValue(VariableNames.DomainDNSName_VariableName)}`);
});
}
this.wizard.wizardObject.registerNavigationValidator((pcInfo) => {

View File

@@ -246,6 +246,10 @@ export class DeploymentProfilePage extends WizardPageBase<DeployClusterWizard> {
return 'aks-dev-test';
case BdcDeploymentType.ExistingKubeAdm:
return 'kubeadm-dev-test';
case BdcDeploymentType.ExistingARO:
return 'aro-dev-test';
case BdcDeploymentType.ExistingOpenShift:
return 'openshift-dev-test';
default:
throw new Error(`Unknown deployment type: ${this.wizard.deploymentType}`);
}

View File

@@ -161,6 +161,21 @@ export class SummaryPage extends WizardPageBase<DeployClusterWizard> {
labelCSSStyles: { fontWeight: FontWeight.Bold }
}]
});
clusterSectionInfo.rows!.push({
items: [
{
type: FieldType.ReadonlyText,
label: localize('deployCluster.Subdomain', "Subdomain"),
defaultValue: this.wizard.model.getStringValue(VariableNames.Subdomain_VariableName),
labelCSSStyles: { fontWeight: FontWeight.Bold }
},
{
type: FieldType.ReadonlyText,
label: localize('deployCluster.AccountPrefix', "Account prefix"),
defaultValue: this.wizard.model.getStringValue(VariableNames.AccountPrefix_VariableName),
labelCSSStyles: { fontWeight: FontWeight.Bold }
}]
});
clusterSectionInfo.rows!.push({
items: [
{