Skip to content

Commit 6a72979

Browse files
Bhautik-ValaBhautik Vala
andauthored
[minor] Enable AI Service integration with Manange (#155)
Co-authored-by: Bhautik Vala <bhautikvala@ibm.com>
1 parent 35422f1 commit 6a72979

4 files changed

Lines changed: 62 additions & 27 deletions

File tree

src/mas/devops/aiservice.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,33 @@ def verifyAiServiceInstance(dynClient: DynamicClient, instanceId: str) -> bool:
4545
return False
4646

4747

48+
def listAiServiceTenantInstances(dynClient: DynamicClient) -> list:
49+
"""
50+
Get a list of AI Service Tenant instances on the cluster
51+
"""
52+
return listInstances(dynClient, "aiservice.ibm.com/v1", "AIServiceTenant")
53+
54+
55+
def verifyAiServiceTenantInstance(dynClient: DynamicClient, instanceId: str, tenantId: str) -> bool:
56+
"""
57+
Validate that the chosen AI Service Tenant exists
58+
"""
59+
try:
60+
aiserviceTenantAPI = dynClient.resources.get(api_version="aiservice.ibm.com/v1", kind="AIServiceTenant")
61+
aiserviceTenantAPI.get(name=f"aiservice-{instanceId}-{tenantId}", namespace=f"aiservice-{instanceId}")
62+
return True
63+
except NotFoundError:
64+
print("NOT FOUND")
65+
return False
66+
except ResourceNotFoundError:
67+
# The AIServiceApp CRD has not even been installed in the cluster
68+
print("RESOURCE NOT FOUND")
69+
return False
70+
except UnauthorizedError as e:
71+
logger.error(f"Error: Unable to verify AI Service Tenant due to failed authorization: {e}")
72+
return False
73+
74+
4875
def getAiserviceChannel(dynClient: DynamicClient, instanceId: str) -> str:
4976
"""
5077
Get the AI Service channel from the subscription

src/mas/devops/ocp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ def listInstances(dynClient: DynamicClient, apiVersion: str, kind: str) -> list:
252252
if len(instances) > 0:
253253
logger.info(f"There are {len(instances)} {kind} instances installed on this cluster:")
254254
for instance in instances:
255-
logger.info(f" * {instance['metadata']['name']} v{instance['status']['versions']['reconciled']}")
255+
logger.info(f" * {instance['metadata']['name']} v{instance.get('status', {}).get('versions', {}).get('reconciled', 'N/A')}")
256256
else:
257257
logger.info(f"There are no {kind} instances installed on this cluster")
258258
return instances

src/mas/devops/templates/pipelinerun-install.yml.j2

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,14 @@ spec:
572572
value: "{{ mas_app_channel_manage }}"
573573
- name: mas_appws_components
574574
value: "{{ mas_appws_components }}"
575+
{%- if manage_bind_aiservice_instance_id is defined and manage_bind_aiservice_instance_id != "" %}
576+
- name: manage_bind_aiservice_instance_id
577+
value: "{{ manage_bind_aiservice_instance_id }}"
578+
{%- endif %}
579+
{%- if manage_bind_aiservice_tenant_id is defined and manage_bind_aiservice_tenant_id != "" %}
580+
- name: manage_bind_aiservice_tenant_id
581+
value: "{{ manage_bind_aiservice_tenant_id }}"
582+
{%- endif %}
575583
{%- if mas_appws_bindings_health_wsl_flag is defined and mas_appws_bindings_health_wsl_flag != "" %}
576584
- name: mas_appws_bindings_health_wsl_flag
577585
value: "{{ mas_appws_bindings_health_wsl_flag }}"
@@ -652,19 +660,19 @@ spec:
652660
value: "{{ mas_app_settings_customization_archive_password }}"
653661
{%- endif %}
654662
{%- endif %}
655-
{%- if mas_app_settings_crypto_key is defined and mas_app_settings_crypto_key != "" %}
656-
- name: mas_app_settings_crypto_key
657-
value: "{{ mas_app_settings_crypto_key }}"
658-
- name: mas_app_settings_cryptox_key
659-
value: "{{ mas_app_settings_cryptox_key }}"
660-
- name: mas_app_settings_old_crypto_key
661-
value: "{{ mas_app_settings_old_crypto_key }}"
662-
- name: mas_app_settings_old_cryptox_key
663-
value: "{{ mas_app_settings_old_cryptox_key }}"
664-
{%- endif %}
665-
{%- if mas_app_settings_override_encryption_secrets_flag is defined and mas_app_settings_override_encryption_secrets_flag != "" %}
666-
- name: mas_app_settings_override_encryption_secrets_flag
667-
value: "{{ mas_app_settings_override_encryption_secrets_flag }}"
663+
{%- if mas_manage_encryptionsecret_crypto_key is defined and mas_manage_encryptionsecret_crypto_key != "" %}
664+
- name: mas_manage_encryptionsecret_crypto_key
665+
value: "{{ mas_manage_encryptionsecret_crypto_key }}"
666+
- name: mas_manage_encryptionsecret_cryptox_key
667+
value: "{{ mas_manage_encryptionsecret_cryptox_key }}"
668+
- name: mas_manage_encryptionsecret_old_crypto_key
669+
value: "{{ mas_manage_encryptionsecret_old_crypto_key }}"
670+
- name: mas_manage_encryptionsecret_old_cryptox_key
671+
value: "{{ mas_manage_encryptionsecret_old_cryptox_key }}"
672+
{%- endif %}
673+
{%- if mas_manage_ws_db_encryptionsecret is defined and mas_manage_ws_db_encryptionsecret != "" %}
674+
- name: mas_manage_ws_db_encryptionsecret
675+
value: "{{ mas_manage_ws_db_encryptionsecret }}"
668676
{%- endif %}
669677
{%- if mas_app_settings_default_jms is defined and mas_app_settings_default_jms != "" %}
670678
- name: mas_app_settings_default_jms

src/mas/devops/templates/pipelinerun-upgrade.yml.j2

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -215,19 +215,19 @@ spec:
215215
value: "{{ mas_app_settings_customization_archive_password }}"
216216
{%- endif %}
217217
{%- endif %}
218-
{%- if mas_app_settings_crypto_key is defined and mas_app_settings_crypto_key != "" %}
219-
- name: mas_app_settings_crypto_key
220-
value: "{{ mas_app_settings_crypto_key }}"
221-
- name: mas_app_settings_cryptox_key
222-
value: "{{ mas_app_settings_cryptox_key }}"
223-
- name: mas_app_settings_old_crypto_key
224-
value: "{{ mas_app_settings_old_crypto_key }}"
225-
- name: mas_app_settings_old_cryptox_key
226-
value: "{{ mas_app_settings_old_cryptox_key }}"
227-
{%- endif %}
228-
{%- if mas_app_settings_override_encryption_secrets_flag is defined and mas_app_settings_override_encryption_secrets_flag != "" %}
229-
- name: mas_app_settings_override_encryption_secrets_flag
230-
value: "{{ mas_app_settings_override_encryption_secrets_flag }}"
218+
{%- if mas_manage_encryptionsecret_crypto_key is defined and mas_manage_encryptionsecret_crypto_key != "" %}
219+
- name: mas_manage_encryptionsecret_crypto_key
220+
value: "{{ mas_manage_encryptionsecret_crypto_key }}"
221+
- name: mas_manage_encryptionsecret_cryptox_key
222+
value: "{{ mas_manage_encryptionsecret_cryptox_key }}"
223+
- name: mas_manage_encryptionsecret_old_crypto_key
224+
value: "{{ mas_manage_encryptionsecret_old_crypto_key }}"
225+
- name: mas_manage_encryptionsecret_old_cryptox_key
226+
value: "{{ mas_manage_encryptionsecret_old_cryptox_key }}"
227+
{%- endif %}
228+
{%- if mas_manage_ws_db_encryptionsecret is defined and mas_manage_ws_db_encryptionsecret != "" %}
229+
- name: mas_manage_ws_db_encryptionsecret
230+
value: "{{ mas_manage_ws_db_encryptionsecret }}"
231231
{%- endif %}
232232
{%- if mas_app_settings_default_jms is defined and mas_app_settings_default_jms != "" %}
233233
- name: mas_app_settings_default_jms

0 commit comments

Comments
 (0)