Skip to content

Commit 676abc8

Browse files
enable aks gitops extension (#2010)
* enable aks gitops addon * enable aks gitops addon * update addon name to be all lowercase * add addon constant * add test for gitops extension * resolve conflict * - run gitops test in eastus (update resource group location) - remove gitops cassette file * - add test "create with gitops addon" - add test "disable gitops addon" - update test "enable gitops addon" * add @live_only to gitops addon tests * fix linting error, remove excess empty line
1 parent daf2c4f commit 676abc8

File tree

4 files changed

+68
-1
lines changed

4 files changed

+68
-1
lines changed

src/aks-preview/azext_aks_preview/_consts.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,6 @@
5757
'kube-dashboard': CONST_KUBE_DASHBOARD_ADDON_NAME,
5858
'ingress-appgw': CONST_INGRESS_APPGW_ADDON_NAME,
5959
'open-service-mesh': CONST_OPEN_SERVICE_MESH_ADDON_NAME,
60-
"confcom": CONST_CONFCOM_ADDON_NAME
60+
"confcom": CONST_CONFCOM_ADDON_NAME,
61+
'gitops': 'gitops'
6162
}

src/aks-preview/azext_aks_preview/_help.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
ingress-appgw - enable Application Gateway Ingress Controller addon (PREVIEW).
169169
confcom - enable confcom addon, this will enable SGX device plugin and quote helper by default(PREVIEW).
170170
open-service-mesh - enable Open Service Mesh addon (PREVIEW).
171+
gitops - enable GitOps (PREVIEW).
171172
- name: --disable-rbac
172173
type: bool
173174
short-summary: Disable Kubernetes Role-Based Access Control.
@@ -700,6 +701,7 @@
700701
Learn more at aka.ms/aks/policy.
701702
ingress-appgw - enable Application Gateway Ingress Controller addon (PREVIEW).
702703
open-service-mesh - enable Open Service Mesh addon (PREVIEW).
704+
gitops - Enable GitOps (PREVIEW).
703705
parameters:
704706
- name: --addons -a
705707
type: string

src/aks-preview/azext_aks_preview/custom.py

100755100644
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1872,6 +1872,9 @@ def _handle_addons_args(cmd, # pylint: disable=too-many-statements
18721872
if 'azure-policy' in addons:
18731873
addon_profiles[CONST_AZURE_POLICY_ADDON_NAME] = ManagedClusterAddonProfile(enabled=True)
18741874
addons.remove('azure-policy')
1875+
if 'gitops' in addons:
1876+
addon_profiles['gitops'] = ManagedClusterAddonProfile(enabled=True)
1877+
addons.remove('gitops')
18751878
if 'ingress-appgw' in addons:
18761879
addon_profile = ManagedClusterAddonProfile(enabled=True, config={})
18771880
if appgw_name is not None:

src/aks-preview/azext_aks_preview/tests/latest/test_aks_commands.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,3 +727,64 @@ def test_aks_update_to_msi_cluster(self, resource_group, resource_group_location
727727
# delete
728728
self.cmd(
729729
'aks delete -g {resource_group} -n {name} --yes --no-wait', checks=[self.is_empty()])
730+
731+
@live_only() # without live only fails with need az login
732+
@AllowLargeResponse()
733+
@ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='eastus')
734+
def test_aks_create_with_gitops_addon(self, resource_group, resource_group_location):
735+
aks_name = self.create_random_name('cliakstest', 16)
736+
self.kwargs.update({
737+
'resource_group': resource_group,
738+
'name': aks_name,
739+
})
740+
741+
create_cmd = 'aks create --resource-group={resource_group} --name={name} -a gitops -o json'
742+
self.cmd(create_cmd, checks=[
743+
self.check('provisioningState', 'Succeeded'),
744+
self.check('addonProfiles.gitops.enabled', True),
745+
])
746+
747+
@live_only() # without live only fails with need az login
748+
@AllowLargeResponse()
749+
@ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='eastus')
750+
def test_aks_enable_addon_with_gitops(self, resource_group, resource_group_location):
751+
aks_name = self.create_random_name('cliakstest', 16)
752+
self.kwargs.update({
753+
'resource_group': resource_group,
754+
'name': aks_name,
755+
})
756+
757+
create_cmd = 'aks create --resource-group={resource_group} --name={name} -o json'
758+
self.cmd(create_cmd, checks=[
759+
self.check('provisioningState', 'Succeeded'),
760+
self.check('addonProfiles.gitops', None),
761+
])
762+
763+
enable_cmd = 'aks enable-addons --addons gitops --resource-group={resource_group} --name={name} -o json'
764+
self.cmd(enable_cmd, checks=[
765+
self.check('provisioningState', 'Succeeded'),
766+
self.check('addonProfiles.gitops.enabled', True),
767+
])
768+
769+
@live_only() # without live only fails with need az login
770+
@AllowLargeResponse()
771+
@ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='eastus')
772+
def test_aks_disable_addon_gitops(self, resource_group, resource_group_location):
773+
aks_name = self.create_random_name('cliakstest', 16)
774+
self.kwargs.update({
775+
'resource_group': resource_group,
776+
'name': aks_name,
777+
})
778+
779+
create_cmd = 'aks create --resource-group={resource_group} --name={name} -a gitops -o json'
780+
self.cmd(create_cmd, checks=[
781+
self.check('provisioningState', 'Succeeded'),
782+
self.check('addonProfiles.gitops.enabled', True),
783+
])
784+
785+
disable_cmd = 'aks disable-addons --addons gitops --resource-group={resource_group} --name={name} -o json'
786+
self.cmd(disable_cmd, checks=[
787+
self.check('provisioningState', 'Succeeded'),
788+
self.check('addonProfiles.gitops.enabled', False),
789+
self.check('addonProfiles.gitops.config', None)
790+
])

0 commit comments

Comments
 (0)