Skip to main content

Expose Deployments

You can use predefined objectOutputRefs to expose an App Deployment's or model deployment's service, ingress, or gateway (HTTP route). Adding predefined objectOutputRefs to your application's workload profile allows you to access your application by selecting a button instead of visiting a URL or IP address.

A view of the Access Button

Prerequisites

  • Permission to create or edit WorkloadProfile resources.

  • Knowledge of the name and namespace of the application's or model's service, ingress, or gateway (HTTP route)

  • (Applications or models with an ingress) The application's or model's SSL certificate; otherwise, HTTPS will be unavailable.

Enablement

  1. Log in to PaletteAI.

  2. From the left main menu, select Workload Profile.

  3. Create a new workload profile or modify an existing profile.

    • New workload profile - Select New profile.
    • Modify existing workload profile - Select the three-dot menu beside the profile and choose View Details > Create Version.
  4. Complete the appropriate workload profile fields. A workload profile name, type (application, model, or infrastructure), and update type (patch, minor, or major) are required. The name and type cannot be modified if creating a new profile version. Select Next when finished.

  5. Select an existing component from the stack or select Add component. If adding a new component, complete the applicable component fields. Fields vary based on the component type.

  6. In the top-right of the profile pane, select Add Object Output.

  7. In the Add Object Output drawer, choose Namespace for the resource scope, and enter the following values based on whether you are exposing the application's or model's service, ingress, or gateway. You must create a separate object output for each Output name in the table below.

    Refer to our Outputs reference guide for additional details.

    warning

    The Resource Name and Namespace values must match metadata.name and metadata.namespace of the service, ingress, or gateway. You can use Variables to define these values and use macros in these fields (for example, {{ .var.clearml-namespace }}).

    Output NameAPI VersionKindPath
    webserverIpv1Service.status.loadBalancer.ingress[0].ip
    webserverPortv1Service.spec.ports[0].port
  8. (Optional) Configure the following options, if desired:

    • Skip hash - Prevent the workload from being redeployed when only the output value changes. Useful for outputs that change frequently but do not require the app to be redeployed.
    • Deployment priority - Specify when this output should be resolved. If provided, the output is resolved at the specified deployment priority; otherwise, the output is resolved after the final deployment priority. Refer to our Definitions guide for more information on deployment priorities.
  9. Select Add to complete your object output setup. Repeat steps 7 - 8 until all required outputs are added for your application or model.

  10. Close the Object Outputs drawer. Select Next.

  11. Review your workload profile configuration and select Save Profile.

Validate

  1. Log in to PaletteAI.

  2. From the left main menu, select Workload Profile.

  3. Select the three-dot menu beside the applicable workload profile and choose View Details.

  4. In the bottom-left of the profile editor, select the </> button to open the YAML editor. If you have multiple workload profile versions, use the version drop-down menu to ensure you are on the version containing the predefined object outputs.

    YAML editor button

  5. Scroll to the spec.workload.objectOutputRefs section of your workload profile YAML and confirm the YAML contains the expected values. The following example is for an application exposed via a service.

    Example objectOutputRefs for service
    spec:
    workload:
    objectOutputRefs:
    - name: webserverIp
    pathRef:
    apiVersion: v1
    kind: Service
    path: .status.loadBalancer.ingress[0].ip
    name: clearml-webserver
    namespace: '{{ .var.clearml-namespace }}'
    skipHash: false
    - name: webserverPort
    pathRef:
    apiVersion: v1
    kind: Service
    path: .spec.ports[0].port
    name: clearml-webserver
    namespace: '{{ .var.clearml-namespace }}'
    skipHash: false
  6. If you have an application or model deployed with a workload profile, navigate to the left main menu and select either App Deployments or Model Deployments.

  7. Locate your application or model. In the Platform URL column, select Access App to open your application or model in a new browser tab. For example, using the previous objectOutputRefs for a ClearML application opens the following web page.

    A view of the ClearML application