diff --git a/deployments/aws/templates/ai-unlimited/ai-unlimited-with-nlb.yaml b/deployments/aws/templates/ai-unlimited/ai-unlimited-with-nlb.yaml index b36648d..67d74a2 100644 --- a/deployments/aws/templates/ai-unlimited/ai-unlimited-with-nlb.yaml +++ b/deployments/aws/templates/ai-unlimited/ai-unlimited-with-nlb.yaml @@ -151,7 +151,7 @@ Parameters: AiUnlimitedUiVersion: Description: Which version of AI Unlimited UI to deploy, uses container version tags, defaults to "latest" Type: String - Default: v0.0.5 + Default: v0.0.6 AiUnlimitedSchedulerVersion: Description: Which version of AI Unlimited Scheduler to deploy, uses container version tags, defaults to "latest" @@ -379,7 +379,10 @@ Conditions: - !Ref IamRoleName - "" - PortIsNotEighty: !Not [!Equals [!Ref AiUnlimitedUiPort, 80]] + PortIsNotEighty: !Not + - !Equals + - !Ref AiUnlimitedUiPort + - 80 Resources: AiUnlimitedVolume: @@ -509,7 +512,7 @@ Resources: TimeoutStartSec=0 Restart=always RestartSec=2 - + ExecStartPre=-/bin/bash -c '/usr/bin/docker network create -d bridge ai_unlimited || true' ExecStartPre=-/usr/bin/mkdir -p /etc/td/ai-unlimited-ui EnvironmentFile=/etc/td/ai-unlimited/init_api_key.txt @@ -1301,8 +1304,8 @@ Outputs: Description: Loadbalancer access endpoint for AI Unlimited UI Access Value: !If - PortIsNotEighty - - !Sub "http://${ LoadBalancer.DNSName }:${ AiUnlimitedUiPort }/healthcheck" - - !Sub "http://${ LoadBalancer.DNSName }" + - !Sub http://${ LoadBalancer.DNSName }:${ AiUnlimitedUiPort }/healthcheck + - !Sub http://${ LoadBalancer.DNSName } AiUnlimitedApiAccess: Description: Loadbalancer access endpoint for AI Unlimited API Access diff --git a/deployments/aws/templates/ai-unlimited/ai-unlimited-without-lb.yaml b/deployments/aws/templates/ai-unlimited/ai-unlimited-without-lb.yaml index 73ebed5..39192d8 100644 --- a/deployments/aws/templates/ai-unlimited/ai-unlimited-without-lb.yaml +++ b/deployments/aws/templates/ai-unlimited/ai-unlimited-without-lb.yaml @@ -141,7 +141,7 @@ Parameters: AiUnlimitedUiVersion: Description: Which version of AI Unlimited UI to deploy, uses container version tags, defaults to "latest" Type: String - Default: v0.0.5 + Default: v0.0.6 RootVolumeSize: Description: size of the root disk to the AI Unlimited server. @@ -364,8 +364,7 @@ Conditions: - !Ref IamRoleName - "" - PortIsNotEightyAndHasPublicIp: - !And + PortIsNotEightyAndHasPublicIp: !And - !Not - !Equals - !Ref Private @@ -375,7 +374,10 @@ Conditions: - !Ref AiUnlimitedUiPort - 80 - PortIsNotEighty: !Not [!Equals [!Ref AiUnlimitedUiPort, 80]] + PortIsNotEighty: !Not + - !Equals + - !Ref AiUnlimitedUiPort + - 80 Resources: AiUnlimitedVolume: @@ -490,7 +492,6 @@ Resources: docker: enabled: "true" ensureRunning: "true" - configure_ai_unlimited_ui_service: files: /usr/lib/systemd/system/ai-unlimited-ui.service: @@ -506,7 +507,7 @@ Resources: TimeoutStartSec=0 Restart=always RestartSec=2 - + ExecStartPre=-/bin/bash -c '/usr/bin/docker network create -d bridge ai_unlimited || true' ExecStartPre=-/usr/bin/mkdir -p /etc/td/ai-unlimited-ui EnvironmentFile=/etc/td/ai-unlimited/init_api_key.txt @@ -534,7 +535,6 @@ Resources: ai-unlimited-ui: enabled: "true" ensureRunning: "true" - configure_ai_unlimited_service: files: /usr/lib/systemd/system/ai-unlimited.service: @@ -997,17 +997,18 @@ Outputs: AiUnlimitedPublicUIAccess: Description: Teradata AI Unlimited public UI Access - Value: !If [ PortIsNotEightyAndHasPublicIp, - !Sub "http://${AiUnlimitedServer.PublicDnsName}:${AiUnlimitedUiPort}/healthcheck", - !Sub "http://${AiUnlimitedServer.PublicDnsName}" ] + Value: !If + - PortIsNotEightyAndHasPublicIp + - !Sub http://${AiUnlimitedServer.PublicDnsName}:${AiUnlimitedUiPort}/healthcheck + - !Sub http://${AiUnlimitedServer.PublicDnsName} Condition: HASPUBLICIP AiUnlimitedPrivateUIAccess: Description: Teradata AI Unlimited private UI Access Value: !If - PortIsNotEighty - - !Sub "http://${AiUnlimitedServer.PrivateDnsName}:${AiUnlimitedUiPort}/healthcheck" - - !Sub "http://${AiUnlimitedServer.PrivateDnsName}" + - !Sub http://${AiUnlimitedServer.PrivateDnsName}:${AiUnlimitedUiPort}/healthcheck + - !Sub http://${AiUnlimitedServer.PrivateDnsName} AiUnlimitedPublicAPIAccess: Description: Teradata AI Unlimited public API Access diff --git a/deployments/aws/templates/all-in-one/all-in-one-with-nlb.yaml b/deployments/aws/templates/all-in-one/all-in-one-with-nlb.yaml index 283c19b..4f38178 100644 --- a/deployments/aws/templates/all-in-one/all-in-one-with-nlb.yaml +++ b/deployments/aws/templates/all-in-one/all-in-one-with-nlb.yaml @@ -165,7 +165,7 @@ Parameters: AiUnlimitedUiVersion: Description: Which version of AI Unlimited UI to deploy, uses container version tags, defaults to "latest" Type: String - Default: v0.0.5 + Default: v0.0.6 AiUnlimitedSchedulerVersion: Description: Which version of AI Unlimited Scheduler to deploy, uses container version tags, defaults to "latest" @@ -183,7 +183,7 @@ Parameters: JupyterVersion: Description: Which version of Jupyter to deploy, uses container version tags, defaults to "latest" Type: String - Default: latest + Default: v0.0.49 RootVolumeSize: Description: size of the root disk to the AI Unlimited server. @@ -395,7 +395,10 @@ Conditions: - !Ref IamRoleName - "" - PortIsNotEighty: !Not [!Equals [!Ref AiUnlimitedUiPort, 80]] + PortIsNotEighty: !Not + - !Equals + - !Ref AiUnlimitedUiPort + - 80 Resources: AiUnlimitedVolume: @@ -527,7 +530,7 @@ Resources: TimeoutStartSec=0 Restart=always RestartSec=2 - + ExecStartPre=-/bin/bash -c '/usr/bin/docker network create -d bridge ai_unlimited || true' ExecStartPre=-/usr/bin/mkdir -p /etc/td/ai-unlimited-ui EnvironmentFile=/etc/td/ai-unlimited/init_api_key.txt @@ -1454,8 +1457,8 @@ Outputs: Description: Loadbalancer access endpoint for AI Unlimited UI Access Value: !If - PortIsNotEighty - - !Sub "http://${ LoadBalancer.DNSName }:${ AiUnlimitedUiPort }/healthcheck" - - !Sub "http://${ LoadBalancer.DNSName }" + - !Sub http://${ LoadBalancer.DNSName }:${ AiUnlimitedUiPort }/healthcheck + - !Sub http://${ LoadBalancer.DNSName } AiUnlimitedApiAccess: Description: Loadbalancer access endpoint for AI Unlimited API Access diff --git a/deployments/aws/templates/all-in-one/all-in-one-without-lb.yaml b/deployments/aws/templates/all-in-one/all-in-one-without-lb.yaml index 7a2df95..111c4d4 100644 --- a/deployments/aws/templates/all-in-one/all-in-one-without-lb.yaml +++ b/deployments/aws/templates/all-in-one/all-in-one-without-lb.yaml @@ -155,7 +155,7 @@ Parameters: AiUnlimitedUiVersion: Description: Which version of AI Unlimited UI to deploy, uses container version tags, defaults to "latest" Type: String - Default: v0.0.5 + Default: v0.0.6 JupyterHttpPort: Description: port to access the Jupyter UI. @@ -168,7 +168,7 @@ Parameters: JupyterVersion: Description: Which version of Jupyter to deploy, uses container version tags, defaults to "latest" Type: String - Default: latest + Default: v0.0.49 RootVolumeSize: Description: size of the root disk to the AI Unlimited server. @@ -380,8 +380,7 @@ Conditions: - !Ref IamRoleName - "" - PortIsNotEightyAndHasPublicIp: - !And + PortIsNotEightyAndHasPublicIp: !And - !Not - !Equals - !Ref Private @@ -391,7 +390,10 @@ Conditions: - !Ref AiUnlimitedUiPort - 80 - PortIsNotEighty: !Not [!Equals [!Ref AiUnlimitedUiPort, 80]] + PortIsNotEighty: !Not + - !Equals + - !Ref AiUnlimitedUiPort + - 80 Resources: AiUnlimitedVolume: @@ -523,7 +525,7 @@ Resources: TimeoutStartSec=0 Restart=always RestartSec=2 - + ExecStartPre=-/bin/bash -c '/usr/bin/docker network create -d bridge ai_unlimited || true' ExecStartPre=-/usr/bin/mkdir -p /etc/td/ai-unlimited-ui EnvironmentFile=/etc/td/ai-unlimited/init_api_key.txt @@ -1077,17 +1079,18 @@ Outputs: AiUnlimitedPublicUIAccess: Description: Teradata AI Unlimited public UI Access - Value: !If [ PortIsNotEightyAndHasPublicIp, - !Sub "http://${AiUnlimitedServer.PublicDnsName}:${AiUnlimitedUiPort}/healthcheck", - !Sub "http://${AiUnlimitedServer.PublicDnsName}" ] + Value: !If + - PortIsNotEightyAndHasPublicIp + - !Sub http://${AiUnlimitedServer.PublicDnsName}:${AiUnlimitedUiPort}/healthcheck + - !Sub http://${AiUnlimitedServer.PublicDnsName} Condition: HASPUBLICIP AiUnlimitedPrivateUIAccess: Description: Teradata AI Unlimited private UI Access Value: !If - PortIsNotEighty - - !Sub "http://${AiUnlimitedServer.PrivateDnsName}:${AiUnlimitedUiPort}/healthcheck" - - !Sub "http://${AiUnlimitedServer.PrivateDnsName}" + - !Sub http://${AiUnlimitedServer.PrivateDnsName}:${AiUnlimitedUiPort}/healthcheck + - !Sub http://${AiUnlimitedServer.PrivateDnsName} AiUnlimitedPublicAPIAccess: Description: Teradata AI Unlimited public API Access diff --git a/deployments/aws/templates/jupyter/jupyter-with-nlb.yaml b/deployments/aws/templates/jupyter/jupyter-with-nlb.yaml index dd169b4..e2e7645 100644 --- a/deployments/aws/templates/jupyter/jupyter-with-nlb.yaml +++ b/deployments/aws/templates/jupyter/jupyter-with-nlb.yaml @@ -120,7 +120,7 @@ Parameters: JupyterVersion: Description: Which version of jupyter to deploy, uses container version tags, defaults to "latest" Type: String - Default: latest + Default: v0.0.49 RootVolumeSize: Description: size of the root disk to the jupyter server. @@ -753,7 +753,6 @@ Outputs: Description: AI Unlimited Security Group Value: !GetAtt JupyterSecurityGroup.GroupId - LoadBalancerSecurityGroups: Description: AI Unlimited Load Balancer Security Group Value: !Join diff --git a/deployments/aws/templates/jupyter/jupyter-without-lb.yaml b/deployments/aws/templates/jupyter/jupyter-without-lb.yaml index cfd9fef..7248ecd 100644 --- a/deployments/aws/templates/jupyter/jupyter-without-lb.yaml +++ b/deployments/aws/templates/jupyter/jupyter-without-lb.yaml @@ -105,7 +105,7 @@ Parameters: JupyterVersion: Description: Which version of jupyter to deploy, uses container version tags, defaults to "latest" Type: String - Default: latest + Default: v0.0.49 RootVolumeSize: Description: size of the root disk to the jupyter server. @@ -671,7 +671,6 @@ Outputs: Description: AI Unlimited Security Group Value: !GetAtt JupyterSecurityGroup.GroupId - PublicSSHConeection: Description: Jupyter ssh connnection string Value: !Sub ssh ec2-user@${ JupyterServer.PublicIp } diff --git a/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-with-nlb.json b/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-with-nlb.json index 5da992d..18270bb 100644 --- a/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-with-nlb.json +++ b/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-with-nlb.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "11962177184326515391" + "templateHash": "2835298721030345346" } }, "parameters": { @@ -155,7 +155,7 @@ }, "AiUnlimitedUIVersion": { "type": "string", - "defaultValue": "v0.0.5", + "defaultValue": "v0.0.6", "metadata": { "description": "Container Version of the AI Unlimited UI service" } diff --git a/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-without-lb.json b/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-without-lb.json index a37a9d5..f197d00 100644 --- a/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-without-lb.json +++ b/deployments/azure/templates/arm/ai-unlimited/ai-unlimited-without-lb.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "10042357043303845085" + "templateHash": "9964344374735929406" } }, "parameters": { @@ -155,7 +155,7 @@ }, "AiUnlimitedUIVersion": { "type": "string", - "defaultValue": "v0.0.5", + "defaultValue": "v0.0.6", "metadata": { "description": "Container Version of the AI Unlimited UI service" } diff --git a/deployments/azure/templates/arm/all-in-one/all-in-one-with-nlb.json b/deployments/azure/templates/arm/all-in-one/all-in-one-with-nlb.json index d0b204d..d4f6ee6 100644 --- a/deployments/azure/templates/arm/all-in-one/all-in-one-with-nlb.json +++ b/deployments/azure/templates/arm/all-in-one/all-in-one-with-nlb.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "1860230839229358162" + "templateHash": "8915778081204530415" } }, "parameters": { @@ -162,14 +162,14 @@ }, "AiUnlimitedUIVersion": { "type": "string", - "defaultValue": "v0.0.5", + "defaultValue": "v0.0.6", "metadata": { "description": "Container Version of the AI Unlimited UI service" } }, "JupyterVersion": { "type": "string", - "defaultValue": "v0.0.43", + "defaultValue": "v0.0.49", "metadata": { "description": "Container Version of the Jupyter Labs service" } diff --git a/deployments/azure/templates/arm/all-in-one/all-in-one-without-lb.json b/deployments/azure/templates/arm/all-in-one/all-in-one-without-lb.json index e4d5535..a431f44 100644 --- a/deployments/azure/templates/arm/all-in-one/all-in-one-without-lb.json +++ b/deployments/azure/templates/arm/all-in-one/all-in-one-without-lb.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "5233063193651485146" + "templateHash": "10676142330204484121" } }, "parameters": { @@ -162,14 +162,14 @@ }, "AiUnlimitedUIVersion": { "type": "string", - "defaultValue": "v0.0.5", + "defaultValue": "v0.0.6", "metadata": { "description": "Container Version of the AI Unlimited UI service" } }, "JupyterVersion": { "type": "string", - "defaultValue": "v0.0.43", + "defaultValue": "v0.0.49", "metadata": { "description": "Container Version of the Jupyter Labs service" } diff --git a/deployments/azure/templates/arm/jupyter/jupyter-with-nlb.json b/deployments/azure/templates/arm/jupyter/jupyter-with-nlb.json index 0df867b..7128ae9 100644 --- a/deployments/azure/templates/arm/jupyter/jupyter-with-nlb.json +++ b/deployments/azure/templates/arm/jupyter/jupyter-with-nlb.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "16727973129371051282" + "templateHash": "12586694840490067753" } }, "parameters": { @@ -130,7 +130,7 @@ }, "JupyterVersion": { "type": "string", - "defaultValue": "latest", + "defaultValue": "v0.0.49", "metadata": { "description": "Container Version of the Jupyter Labs service" } @@ -203,7 +203,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "14464115164304997192" + "templateHash": "17204210556751390284" } }, "parameters": { @@ -229,7 +229,7 @@ "type": "bool", "defaultValue": false }, - "aiUnlimitedHttpPort": { + "aiUnlimitedAuthPort": { "type": "int", "defaultValue": 0 }, @@ -310,10 +310,10 @@ ] }, { - "condition": "[not(equals(parameters('aiUnlimitedHttpPort'), 0))]", + "condition": "[not(equals(parameters('aiUnlimitedAuthPort'), 0))]", "type": "Microsoft.Network/networkSecurityGroups/securityRules", "apiVersion": "2023-04-01", - "name": "[format('{0}/{1}', variables('uniqueSecurityGroupName'), format('{0}-workspace-http-allow', variables('uniqueSecurityGroupName')))]", + "name": "[format('{0}/{1}', variables('uniqueSecurityGroupName'), format('{0}-workspace-auth-allow', variables('uniqueSecurityGroupName')))]", "properties": { "copy": [ { @@ -336,7 +336,7 @@ "access": "Allow", "description": "allow http to the workspace instance", "destinationAddressPrefix": "*", - "destinationPortRange": "[string(parameters('aiUnlimitedHttpPort'))]", + "destinationPortRange": "[string(parameters('aiUnlimitedAuthPort'))]", "direction": "Inbound", "priority": 701, "protocol": "Tcp", @@ -543,7 +543,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "16665436156133272643" + "templateHash": "1616678944691212739" } }, "parameters": { @@ -556,7 +556,7 @@ "dnsPrefix": { "type": "string" }, - "aiUnlimitedHttpPort": { + "aiUnlimitedAuthPort": { "type": "int", "defaultValue": 0 }, @@ -617,8 +617,8 @@ "name": "[format('{0}OutboundBackendPool', parameters('name'))]" } ], - "loadBalancingRules": "[flatten(createArray(if(not(equals(parameters('aiUnlimitedHttpPort'), 0)), createArray(createObject('name', 'AiUnlimitedHTTP', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedHttpPort'), 'backendPort', parameters('aiUnlimitedHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}HTTPLbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('aiUnlimitedGrpcPort'), 0)), createArray(createObject('name', 'AiUnlimitedAPI', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedGrpcPort'), 'backendPort', parameters('aiUnlimitedGrpcPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}APILbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('jupyterHttpPort'), 0)), createArray(createObject('name', 'JupyterUI', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('jupyterHttpPort'), 'backendPort', parameters('jupyterHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}JupyterLbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('aiUnlimitedSchedulerHttpPort'), 0)), createArray(createObject('name', 'AiUnlimitedSchedulerHttp', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedSchedulerHttpPort'), 'backendPort', parameters('aiUnlimitedSchedulerHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}SchedulerHttpLbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('aiUnlimitedUIHttpPort'), 0)), createArray(createObject('name', 'AiUnlimitedUI', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedUIHttpPort'), 'backendPort', parameters('aiUnlimitedUIHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}UILbProbe', parameters('name'))))))), createArray())))]", - "probes": "[flatten(createArray(if(not(equals(parameters('aiUnlimitedHttpPort'), 0)), createArray(createObject('name', format('{0}HTTPLbProbe', parameters('name')), 'properties', createObject('protocol', 'Tcp', 'port', parameters('aiUnlimitedHttpPort'), 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('aiUnlimitedGrpcPort'), 0)), createArray(createObject('name', format('{0}APILbProbe', parameters('name')), 'properties', createObject('protocol', 'Tcp', 'port', parameters('aiUnlimitedGrpcPort'), 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('jupyterHttpPort'), 0)), createArray(createObject('name', format('{0}JupyterLbProbe', parameters('name')), 'properties', createObject('protocol', 'Tcp', 'port', parameters('jupyterHttpPort'), 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('aiUnlimitedSchedulerHttpPort'), 0)), createArray(createObject('name', format('{0}SchedulerHttpLbProbe', parameters('name')), 'properties', createObject('protocol', 'Http', 'port', parameters('aiUnlimitedSchedulerHttpPort'), 'requestPath', '/healthcheck', 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('aiUnlimitedUIHttpPort'), 0)), createArray(createObject('name', format('{0}UILbProbe', parameters('name')), 'properties', createObject('protocol', 'Http', 'port', parameters('aiUnlimitedUIHttpPort'), 'requestPath', '/', 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray())))]", + "loadBalancingRules": "[flatten(createArray(if(not(equals(parameters('aiUnlimitedAuthPort'), 0)), createArray(createObject('name', 'AiUnlimitedAuth', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedAuthPort'), 'backendPort', parameters('aiUnlimitedAuthPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}AuthLbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('aiUnlimitedGrpcPort'), 0)), createArray(createObject('name', 'AiUnlimitedAPI', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedGrpcPort'), 'backendPort', parameters('aiUnlimitedGrpcPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}APILbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('jupyterHttpPort'), 0)), createArray(createObject('name', 'JupyterUI', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('jupyterHttpPort'), 'backendPort', parameters('jupyterHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}JupyterLbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('aiUnlimitedSchedulerHttpPort'), 0)), createArray(createObject('name', 'AiUnlimitedSchedulerHttp', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedSchedulerHttpPort'), 'backendPort', parameters('aiUnlimitedSchedulerHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}SchedulerHttpLbProbe', parameters('name'))))))), createArray()), if(not(equals(parameters('aiUnlimitedUIHttpPort'), 0)), createArray(createObject('name', 'AiUnlimitedUI', 'properties', createObject('frontendIPConfiguration', createObject('id', resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', parameters('name'), format('{0}Inbound', parameters('name')))), 'backendAddressPool', createObject('id', resourceId('Microsoft.Network/loadBalancers/backendAddressPools', parameters('name'), format('{0}OutboundBackendPool', parameters('name')))), 'frontendPort', parameters('aiUnlimitedUIHttpPort'), 'backendPort', parameters('aiUnlimitedUIHttpPort'), 'enableFloatingIP', false(), 'idleTimeoutInMinutes', 15, 'protocol', 'Tcp', 'enableTcpReset', true(), 'loadDistribution', 'Default', 'disableOutboundSnat', true(), 'probe', createObject('id', resourceId('Microsoft.Network/loadBalancers/probes', parameters('name'), format('{0}UILbProbe', parameters('name'))))))), createArray())))]", + "probes": "[flatten(createArray(if(not(equals(parameters('aiUnlimitedAuthPort'), 0)), createArray(createObject('name', format('{0}AuthLbProbe', parameters('name')), 'properties', createObject('protocol', 'Http', 'port', parameters('aiUnlimitedAuthPort'), 'requestPath', '/healthcheck', 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('aiUnlimitedGrpcPort'), 0)), createArray(createObject('name', format('{0}APILbProbe', parameters('name')), 'properties', createObject('protocol', 'Tcp', 'port', parameters('aiUnlimitedGrpcPort'), 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('jupyterHttpPort'), 0)), createArray(createObject('name', format('{0}JupyterLbProbe', parameters('name')), 'properties', createObject('protocol', 'Tcp', 'port', parameters('jupyterHttpPort'), 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('aiUnlimitedSchedulerHttpPort'), 0)), createArray(createObject('name', format('{0}SchedulerHttpLbProbe', parameters('name')), 'properties', createObject('protocol', 'Http', 'port', parameters('aiUnlimitedSchedulerHttpPort'), 'requestPath', '/healthcheck', 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray()), if(not(equals(parameters('aiUnlimitedUIHttpPort'), 0)), createArray(createObject('name', format('{0}UILbProbe', parameters('name')), 'properties', createObject('protocol', 'Http', 'port', parameters('aiUnlimitedUIHttpPort'), 'requestPath', '/', 'intervalInSeconds', 5, 'numberOfProbes', 2))), createArray())))]", "outboundRules": [ { "name": "myOutboundRule", diff --git a/deployments/azure/templates/arm/jupyter/jupyter-without-lb.json b/deployments/azure/templates/arm/jupyter/jupyter-without-lb.json index 2b98cef..3bae8d0 100644 --- a/deployments/azure/templates/arm/jupyter/jupyter-without-lb.json +++ b/deployments/azure/templates/arm/jupyter/jupyter-without-lb.json @@ -5,7 +5,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "11024397819019437861" + "templateHash": "17407221377602669028" } }, "parameters": { @@ -130,7 +130,7 @@ }, "JupyterVersion": { "type": "string", - "defaultValue": "latest", + "defaultValue": "v0.0.49", "metadata": { "description": "Container Version of the Jupyter Labs service" } @@ -201,7 +201,7 @@ "_generator": { "name": "bicep", "version": "0.29.47.4906", - "templateHash": "14464115164304997192" + "templateHash": "17204210556751390284" } }, "parameters": { @@ -227,7 +227,7 @@ "type": "bool", "defaultValue": false }, - "aiUnlimitedHttpPort": { + "aiUnlimitedAuthPort": { "type": "int", "defaultValue": 0 }, @@ -308,10 +308,10 @@ ] }, { - "condition": "[not(equals(parameters('aiUnlimitedHttpPort'), 0))]", + "condition": "[not(equals(parameters('aiUnlimitedAuthPort'), 0))]", "type": "Microsoft.Network/networkSecurityGroups/securityRules", "apiVersion": "2023-04-01", - "name": "[format('{0}/{1}', variables('uniqueSecurityGroupName'), format('{0}-workspace-http-allow', variables('uniqueSecurityGroupName')))]", + "name": "[format('{0}/{1}', variables('uniqueSecurityGroupName'), format('{0}-workspace-auth-allow', variables('uniqueSecurityGroupName')))]", "properties": { "copy": [ { @@ -334,7 +334,7 @@ "access": "Allow", "description": "allow http to the workspace instance", "destinationAddressPrefix": "*", - "destinationPortRange": "[string(parameters('aiUnlimitedHttpPort'))]", + "destinationPortRange": "[string(parameters('aiUnlimitedAuthPort'))]", "direction": "Inbound", "priority": 701, "protocol": "Tcp", diff --git a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicep b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicep index 805cc4f..a033556 100644 --- a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicep +++ b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicep @@ -71,7 +71,7 @@ param ExistingPersistentVolume string = 'NONE' param AiUnlimitedVersion string = 'v0.3.0' @description('Container Version of the AI Unlimited UI service') -param AiUnlimitedUIVersion string = 'v0.0.5' +param AiUnlimitedUIVersion string = 'v0.0.6' // @description('Container Version of the AI Unlimited scheduler service') var AiUnlimitedSchedulerVersion = 'latest' diff --git a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicepparam b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicepparam index 10bd86a..eecbc4a 100644 --- a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicepparam +++ b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-with-nlb.bicepparam @@ -23,6 +23,6 @@ param UsePersistentVolume = 'New' param PersistentVolumeSize = 100 param ExistingPersistentVolume = 'NONE' param AiUnlimitedVersion = 'v0.3.0' -param AiUnlimitedUIVersion = 'v0.0.5' +param AiUnlimitedUIVersion = 'v0.0.6' // param AiUnlimitedSchedulerVersion = 'latest' param Tags = {} diff --git a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicep b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicep index 486eeb6..84e6353 100644 --- a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicep +++ b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicep @@ -71,7 +71,7 @@ param ExistingPersistentVolume string = 'NONE' param AiUnlimitedVersion string = 'v0.3.0' @description('Container Version of the AI Unlimited UI service') -param AiUnlimitedUIVersion string = 'v0.0.5' +param AiUnlimitedUIVersion string = 'v0.0.6' // @description('Container Version of the AI Unlimited scheduler service') var AiUnlimitedSchedulerVersion = 'latest' diff --git a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicepparam b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicepparam index 58482af..f391976 100644 --- a/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicepparam +++ b/deployments/azure/templates/bicep/ai-unlimited/ai-unlimited-without-lb.bicepparam @@ -23,6 +23,6 @@ param UsePersistentVolume = 'New' param PersistentVolumeSize = 100 param ExistingPersistentVolume = 'NONE' param AiUnlimitedVersion = 'v0.3.0' -param AiUnlimitedUIVersion = 'v0.0.5' +param AiUnlimitedUIVersion = 'v0.0.6' // param AiUnlimitedSchedulerVersion = 'latest' param Tags = {} diff --git a/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicep b/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicep index e988909..edf816d 100644 --- a/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicep +++ b/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicep @@ -74,10 +74,10 @@ param ExistingPersistentVolume string = 'NONE' param AiUnlimitedVersion string = 'v0.3.0' @description('Container Version of the AI Unlimited UI service') -param AiUnlimitedUIVersion string = 'v0.0.5' +param AiUnlimitedUIVersion string = 'v0.0.6' @description('Container Version of the Jupyter Labs service') -param JupyterVersion string = 'v0.0.43' +param JupyterVersion string = 'v0.0.49' // @description('Container Version of the AI Unlimited scheduler service') var AiUnlimitedSchedulerVersion = 'latest' diff --git a/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicepparam b/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicepparam index 2565d15..b922542 100644 --- a/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicepparam +++ b/deployments/azure/templates/bicep/all-in-one/all-in-one-with-nlb.bicepparam @@ -24,8 +24,8 @@ param UsePersistentVolume = 'New' param PersistentVolumeSize = 100 param ExistingPersistentVolume = 'NONE' param AiUnlimitedVersion = 'v0.3.0' -param AiUnlimitedUIVersion = 'v0.0.5' -param JupyterVersion = 'v0.0.43' +param AiUnlimitedUIVersion = 'v0.0.6' +param JupyterVersion = 'v0.0.49' // param AiUnlimitedSchedulerVersion = 'latest' param JupyterToken = 'USE_A_SECURE_TOKEN' /* TODO : please fix the value assigned to this parameter `uniqueString()` */ param Tags = {} diff --git a/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicep b/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicep index d99810d..db7799c 100644 --- a/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicep +++ b/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicep @@ -74,10 +74,10 @@ param ExistingPersistentVolume string = 'NONE' param AiUnlimitedVersion string = 'v0.3.0' @description('Container Version of the AI Unlimited UI service') -param AiUnlimitedUIVersion string = 'v0.0.5' +param AiUnlimitedUIVersion string = 'v0.0.6' @description('Container Version of the Jupyter Labs service') -param JupyterVersion string = 'v0.0.43' +param JupyterVersion string = 'v0.0.49' // @description('Container Version of the AI Unlimited scheduler service') var AiUnlimitedSchedulerVersion = 'latest' diff --git a/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicepparam b/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicepparam index 3474280..5f69542 100644 --- a/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicepparam +++ b/deployments/azure/templates/bicep/all-in-one/all-in-one-without-lb.bicepparam @@ -24,8 +24,8 @@ param UsePersistentVolume = 'New' param PersistentVolumeSize = 100 param ExistingPersistentVolume = 'NONE' param AiUnlimitedVersion = 'v0.3.0' -param AiUnlimitedUIVersion = 'v0.0.5' -param JupyterVersion = 'v0.0.43' +param AiUnlimitedUIVersion = 'v0.0.6' +param JupyterVersion = 'v0.0.49' // param AiUnlimitedSchedulerVersion = 'latest' param JupyterToken = 'USE_A_SECURE_TOKEN' param Tags = {} diff --git a/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicep b/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicep index 1cdc5ac..52479b4 100644 --- a/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicep +++ b/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicep @@ -56,7 +56,7 @@ param PersistentVolumeSize int = 100 param ExistingPersistentVolume string = 'NONE' @description('Container Version of the Jupyter Labs service') -param JupyterVersion string = 'latest' +param JupyterVersion string = 'v0.0.49' @description('Join token for the Jupyter Labs service') @secure() diff --git a/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicepparam b/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicepparam index c29bc89..87d94c1 100644 --- a/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicepparam +++ b/deployments/azure/templates/bicep/jupyter/jupyter-with-nlb.bicepparam @@ -17,7 +17,7 @@ param detinationAppSecGroups = [] param UsePersistentVolume = 'New' param PersistentVolumeSize = 100 param ExistingPersistentVolume = 'NONE' -param JupyterVersion = 'latest' +param JupyterVersion = 'v0.0.49' param JupyterToken = 'USE_A_SECURE_TOKEN' /* TODO : please fix the value assigned to this parameter `uniqueString()` */ param Tags = {} diff --git a/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicep b/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicep index c8739d1..f0ac351 100644 --- a/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicep +++ b/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicep @@ -56,7 +56,7 @@ param PersistentVolumeSize int = 100 param ExistingPersistentVolume string = 'NONE' @description('Container Version of the Jupyter Labs service') -param JupyterVersion string = 'latest' +param JupyterVersion string = 'v0.0.49' @description('Join token for the Jupyter Labs service') @secure() diff --git a/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicepparam b/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicepparam index f291ead..9cd7bf0 100644 --- a/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicepparam +++ b/deployments/azure/templates/bicep/jupyter/jupyter-without-lb.bicepparam @@ -18,7 +18,7 @@ param AllowPublicSSH = true param UsePersistentVolume = 'New' param PersistentVolumeSize = 100 param ExistingPersistentVolume = 'NONE' -param JupyterVersion = 'latest' +param JupyterVersion = 'v0.0.49' param JupyterToken = 'USE_A_SECURE_TOKEN' param Tags = {}