From 296969f09e5f7e612744a80a26fc757db86268a1 Mon Sep 17 00:00:00 2001 From: Janusz Dziurzynski Date: Fri, 12 Aug 2022 12:51:59 -0400 Subject: [PATCH] Add support for enabling the Dapr extension (#350) * Add support for enabling the Dapr extension Signed-off-by: Janusz Dziurzynski * Add "dapr" to cspell Signed-off-by: Janusz Dziurzynski * Tweaks based on review feedback Signed-off-by: Janusz Dziurzynski Signed-off-by: Janusz Dziurzynski --- .../workflows_dep/regressionparams/dapr.json | 18 +++++++++++ bicep/main.bicep | 26 ++++++++++++++++ cspell.json | 2 ++ helper/src/components/addonsTab.js | 30 +++++++++++++++++-- helper/src/components/deployTab.js | 6 ++-- helper/src/config.json | 2 ++ 6 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 .github/workflows_dep/regressionparams/dapr.json diff --git a/.github/workflows_dep/regressionparams/dapr.json b/.github/workflows_dep/regressionparams/dapr.json new file mode 100644 index 000000000..429b073ff --- /dev/null +++ b/.github/workflows_dep/regressionparams/dapr.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "value": "az-k8s-dapr" + }, + "agentVMSize": { + "value": "Standard_DS3_v2" + }, + "daprAddon": { + "value": true + }, + "daprAddonHA": { + "value": true + } + } +} diff --git a/bicep/main.bicep b/bicep/main.bicep index 2623ecb1f..274bfb72e 100644 --- a/bicep/main.bicep +++ b/bicep/main.bicep @@ -1183,6 +1183,32 @@ resource fluxAddon 'Microsoft.KubernetesConfiguration/extensions@2022-04-02-prev } output fluxReleaseNamespace string = fluxGitOpsAddon ? fluxAddon.properties.scope.cluster.releaseNamespace : '' +@description('Add the Dapr extension') +param daprAddon bool = false +@description('Enable high availability (HA) mode for the Dapr control plane') +param daprAddonHA bool = false + +resource daprExtension 'Microsoft.KubernetesConfiguration/extensions@2022-04-02-preview' = if(daprAddon) { + name: 'dapr' + scope: aks + properties: { + extensionType: 'Microsoft.Dapr' + autoUpgradeMinorVersion: true + releaseTrain: 'Stable' + configurationSettings: { + 'global.ha.enabled': '${daprAddonHA}' + } + scope: { + cluster: { + releaseNamespace: 'dapr-system' + } + } + configurationProtectedSettings: {} + } +} + +output daprReleaseNamespace string = daprAddon ? daprExtension.properties.scope.cluster.releaseNamespace : '' + /*__ ___. ______ .__ __. __ .___________. ______ .______ __ .__ __. _______ | \/ | / __ \ | \ | | | | | | / __ \ | _ \ | | | \ | | / _____| diff --git a/cspell.json b/cspell.json index 5bf3832e6..b5a6570df 100644 --- a/cspell.json +++ b/cspell.json @@ -41,6 +41,8 @@ "currenttab", "currt", "currv", + "dapr", + "Dapr", "Daemonset", "demoapp", "denydefault", diff --git a/helper/src/components/addonsTab.js b/helper/src/components/addonsTab.js index 01786bdcd..5f4847656 100644 --- a/helper/src/components/addonsTab.js +++ b/helper/src/components/addonsTab.js @@ -384,8 +384,32 @@ export default function ({ tabValues, updateFn, featureFlag, invalidArray }) { - - + - ) + + + + Enabling this option installs dapr, but doesn't apply configuration + + updateFn("daprAddon", v)} + label="Install the Dapr AddOn" + /> + updateFn("daprAddonHA", v)} + label="Enable high availability mode" + /> + + + ); } diff --git a/helper/src/components/deployTab.js b/helper/src/components/deployTab.js index 8e64a0978..cd4a06a58 100644 --- a/helper/src/components/deployTab.js +++ b/helper/src/components/deployTab.js @@ -88,7 +88,9 @@ export default function DeployTab({ defaults, updateFn, tabValues, invalidArray, ...(addons.csisecret !== "none" && { keyVaultAksCSI: true }), ...(addons.csisecret === 'akvNew' && { keyVaultCreate: true, ...(deploy.kvCertSecretRole && { keyVaultOfficerRolePrincipalId: "$(az ad signed-in-user show --query id --out tsv)"}) }), ...(addons.csisecret !== "none" && addons.keyVaultAksCSIPollInterval !== defaults.addons.keyVaultAksCSIPollInterval && { keyVaultAksCSIPollInterval: addons.keyVaultAksCSIPollInterval }), - ...(addons.fluxGitOpsAddon !== defaults.addons.fluxGitOpsAddon && { fluxGitOpsAddon: addons.fluxGitOpsAddon}) + ...(addons.fluxGitOpsAddon !== defaults.addons.fluxGitOpsAddon && { fluxGitOpsAddon: addons.fluxGitOpsAddon}), + ...(addons.daprAddon !== defaults.addons.daprAddon && { daprAddon: addons.daprAddon }), + ...(addons.daprAddonHA !== defaults.addons.daprAddonHA && { daprAddonHA: addons.daprAddonHA }), } const preview_params = { @@ -516,4 +518,4 @@ az ad sp delete --id $(az ad sp show --id \${rmId[0]} --query id -o tsv) ) -} \ No newline at end of file +} diff --git a/helper/src/config.json b/helper/src/config.json index 153776d18..af2163c5f 100644 --- a/helper/src/config.json +++ b/helper/src/config.json @@ -50,6 +50,8 @@ "DefenderForContainers" : false }, "addons": { + "daprAddon": false, + "daprAddonHA": false, "fluxGitOpsAddon": false, "networkPolicy": "none", "kedaAddon": false,