Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/mas/devops/aiservice.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,33 @@ def verifyAiServiceInstance(dynClient: DynamicClient, instanceId: str) -> bool:
return False


def listAiServiceTenantInstances(dynClient: DynamicClient) -> list:
"""
Get a list of AI Service Tenant instances on the cluster
"""
return listInstances(dynClient, "aiservice.ibm.com/v1", "AIServiceTenant")


def verifyAiServiceTenantInstance(dynClient: DynamicClient, instanceId: str, tenantId: str) -> bool:
"""
Validate that the chosen AI Service Tenant exists
"""
try:
aiserviceTenantAPI = dynClient.resources.get(api_version="aiservice.ibm.com/v1", kind="AIServiceTenant")
aiserviceTenantAPI.get(name=f"aiservice-{instanceId}-{tenantId}", namespace=f"aiservice-{instanceId}")
return True
except NotFoundError:
print("NOT FOUND")
return False
except ResourceNotFoundError:
# The AIServiceApp CRD has not even been installed in the cluster
print("RESOURCE NOT FOUND")
return False
except UnauthorizedError as e:
logger.error(f"Error: Unable to verify AI Service Tenant due to failed authorization: {e}")
return False


def getAiserviceChannel(dynClient: DynamicClient, instanceId: str) -> str:
"""
Get the AI Service channel from the subscription
Expand Down
2 changes: 1 addition & 1 deletion src/mas/devops/ocp.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ def listInstances(dynClient: DynamicClient, apiVersion: str, kind: str) -> list:
if len(instances) > 0:
logger.info(f"There are {len(instances)} {kind} instances installed on this cluster:")
for instance in instances:
logger.info(f" * {instance['metadata']['name']} v{instance['status']['versions']['reconciled']}")
logger.info(f" * {instance['metadata']['name']} v{instance.get('status', {}).get('versions', {}).get('reconciled', 'N/A')}")
else:
logger.info(f"There are no {kind} instances installed on this cluster")
return instances
Expand Down
34 changes: 21 additions & 13 deletions src/mas/devops/templates/pipelinerun-install.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,14 @@ spec:
value: "{{ mas_app_channel_manage }}"
- name: mas_appws_components
value: "{{ mas_appws_components }}"
{%- if manage_bind_aiservice_instance_id is defined and manage_bind_aiservice_instance_id != "" %}
- name: manage_bind_aiservice_instance_id
value: "{{ manage_bind_aiservice_instance_id }}"
{%- endif %}
{%- if manage_bind_aiservice_tenant_id is defined and manage_bind_aiservice_tenant_id != "" %}
- name: manage_bind_aiservice_tenant_id
value: "{{ manage_bind_aiservice_tenant_id }}"
{%- endif %}
{%- if mas_appws_bindings_health_wsl_flag is defined and mas_appws_bindings_health_wsl_flag != "" %}
- name: mas_appws_bindings_health_wsl_flag
value: "{{ mas_appws_bindings_health_wsl_flag }}"
Expand Down Expand Up @@ -652,19 +660,19 @@ spec:
value: "{{ mas_app_settings_customization_archive_password }}"
{%- endif %}
{%- endif %}
{%- if mas_app_settings_crypto_key is defined and mas_app_settings_crypto_key != "" %}
- name: mas_app_settings_crypto_key
value: "{{ mas_app_settings_crypto_key }}"
- name: mas_app_settings_cryptox_key
value: "{{ mas_app_settings_cryptox_key }}"
- name: mas_app_settings_old_crypto_key
value: "{{ mas_app_settings_old_crypto_key }}"
- name: mas_app_settings_old_cryptox_key
value: "{{ mas_app_settings_old_cryptox_key }}"
{%- endif %}
{%- if mas_app_settings_override_encryption_secrets_flag is defined and mas_app_settings_override_encryption_secrets_flag != "" %}
- name: mas_app_settings_override_encryption_secrets_flag
value: "{{ mas_app_settings_override_encryption_secrets_flag }}"
{%- if mas_manage_encryptionsecret_crypto_key is defined and mas_manage_encryptionsecret_crypto_key != "" %}
- name: mas_manage_encryptionsecret_crypto_key
value: "{{ mas_manage_encryptionsecret_crypto_key }}"
- name: mas_manage_encryptionsecret_cryptox_key
value: "{{ mas_manage_encryptionsecret_cryptox_key }}"
- name: mas_manage_encryptionsecret_old_crypto_key
value: "{{ mas_manage_encryptionsecret_old_crypto_key }}"
- name: mas_manage_encryptionsecret_old_cryptox_key
value: "{{ mas_manage_encryptionsecret_old_cryptox_key }}"
{%- endif %}
{%- if mas_manage_ws_db_encryptionsecret is defined and mas_manage_ws_db_encryptionsecret != "" %}
- name: mas_manage_ws_db_encryptionsecret
value: "{{ mas_manage_ws_db_encryptionsecret }}"
{%- endif %}
{%- if mas_app_settings_default_jms is defined and mas_app_settings_default_jms != "" %}
- name: mas_app_settings_default_jms
Expand Down
26 changes: 13 additions & 13 deletions src/mas/devops/templates/pipelinerun-upgrade.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -215,19 +215,19 @@ spec:
value: "{{ mas_app_settings_customization_archive_password }}"
{%- endif %}
{%- endif %}
{%- if mas_app_settings_crypto_key is defined and mas_app_settings_crypto_key != "" %}
- name: mas_app_settings_crypto_key
value: "{{ mas_app_settings_crypto_key }}"
- name: mas_app_settings_cryptox_key
value: "{{ mas_app_settings_cryptox_key }}"
- name: mas_app_settings_old_crypto_key
value: "{{ mas_app_settings_old_crypto_key }}"
- name: mas_app_settings_old_cryptox_key
value: "{{ mas_app_settings_old_cryptox_key }}"
{%- endif %}
{%- if mas_app_settings_override_encryption_secrets_flag is defined and mas_app_settings_override_encryption_secrets_flag != "" %}
- name: mas_app_settings_override_encryption_secrets_flag
value: "{{ mas_app_settings_override_encryption_secrets_flag }}"
{%- if mas_manage_encryptionsecret_crypto_key is defined and mas_manage_encryptionsecret_crypto_key != "" %}
- name: mas_manage_encryptionsecret_crypto_key
value: "{{ mas_manage_encryptionsecret_crypto_key }}"
- name: mas_manage_encryptionsecret_cryptox_key
value: "{{ mas_manage_encryptionsecret_cryptox_key }}"
- name: mas_manage_encryptionsecret_old_crypto_key
value: "{{ mas_manage_encryptionsecret_old_crypto_key }}"
- name: mas_manage_encryptionsecret_old_cryptox_key
value: "{{ mas_manage_encryptionsecret_old_cryptox_key }}"
{%- endif %}
{%- if mas_manage_ws_db_encryptionsecret is defined and mas_manage_ws_db_encryptionsecret != "" %}
- name: mas_manage_ws_db_encryptionsecret
value: "{{ mas_manage_ws_db_encryptionsecret }}"
{%- endif %}
{%- if mas_app_settings_default_jms is defined and mas_app_settings_default_jms != "" %}
- name: mas_app_settings_default_jms
Expand Down