cloudera.services.ml_project_application module – Manage a Cloudera Machine Learning (CML) project application

Note

This module is part of the cloudera.services collection (version 1.0.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install git+https://github.com/cloudera-labs/cloudera.services.git.

To use it in a playbook, specify: cloudera.services.ml_project_application.

New in cloudera.services 1.0.0

Synopsis

  • Create, update, restart, stop, or delete a Cloudera Machine Learning (CML) project application.

  • The restarted and stopped states imply present; if the application does not exist it is created (requiring subdomain, script, and runtime) and then transitioned to the requested state.

  • The module supports check_mode.

Parameters

Parameter

Comments

addons

aliases: runtime_addons, runtime_addon_identifiers

list / elements=string

A list of runtime addon identifiers for the application.

api_key

aliases: token

string / required

The CML API key (bearer token) used to authenticate to the Workspace API.

If not set, the value of the CML_API_KEY environment variable is used.

auth

aliases: auth_enabled

boolean

Whether user authentication is required to access the application.

When false, the application is publicly accessible.

Choices:

  • false

  • true

client_cert

path

The path to a client certificate for authenticating to the API endpoint.

client_key

path

The path to a client key for authenticating to the API endpoint.

cpu

float

The vCPU allocated to the application.

debug

aliases: debug_endpoints

boolean

A flag to enable debug logging of the module’s execution.

Choices:

  • false ← (default)

  • true

desc

aliases: description

string

The description of the application.

env

aliases: env_vars

dictionary

Environment variables to set on the application.

On update, the provided variables are merged with the application’s existing variables.

force

boolean

A flag to force a refresh of the API request, ignoring any cached results.

Choices:

  • false ← (default)

  • true

force_basic_auth

boolean

A flag to force basic authentication for API requests.

Choices:

  • false ← (default)

  • true

gpu

aliases: nvidia_gpu

integer

The count of Nvidia GPUs allocated to the application.

http_agent

aliases: user_agent

string

The User-Agent string to send with API requests.

Default: "cloudera-services-module"

id

aliases: application_id

string

The unique identifier of an existing application.

Mutually exclusive with name.

kernel

string

The kernel to use for the application.

Choices:

  • "python3"

  • "python2"

  • "r"

  • "scala"

memory

float

The RAM allocated to the application, in GB.

name

string

The name of the application.

Required when creating an application.

Mutually exclusive with id.

page_size

aliases: default_page_size

integer

The number of items to return per page in a paginated API response.

Default: 100

project_id

string

The unique identifier of the enclosing project for the application.

Mutually exclusive with project_name.

project_name

string

The name of the enclosing project for the application.

Mutually exclusive with project_id.

runtime

aliases: runtime_image_id, runtime_identifier

string

The container runtime identifier for the application.

Required when creating an application.

script

string

The entrypoint script for the application.

Required when creating an application.

state

string

The declarative state of the application.

Choices:

  • "present" ← (default)

  • "restarted"

  • "stopped"

  • "absent"

subdomain

string

The DNS subdomain for the application.

Required when creating an application.

timeout

aliases: timeout_seconds

integer

The timeout in seconds for any API requests.

Default: 60

url

aliases: endpoint, endpoint_url, workspace_url

string / required

The base URL of the CML Workspace API endpoint, including the port if necessary.

If not set, the value of the CML_ENDPOINT environment variable is used.

url_password

string

The password for authenticating to the API endpoint.

url_username

string

The username for authenticating to the API endpoint.

use_gssapi

boolean

A flag to enable or disable GSSAPI authentication for API requests.

Choices:

  • false ← (default)

  • true

use_proxy

boolean

A flag to enable or disable the use of a proxy for API requests.

Choices:

  • false

  • true ← (default)

validate_certs

boolean

A flag to enable or disable SSL certificate validation for API requests.

Choices:

  • false

  • true ← (default)

Examples

- name: Create an application
  cloudera.services.ml_project_application:
    url: "https://ml-workspace.example.com"
    api_key: "{{ cml_api_key }}"
    project_name: my-project
    name: my-application
    subdomain: my-app
    script: app.py
    runtime: "{{ runtime_id }}"
    auth: true
    env:
      LOG_LEVEL: debug
    state: present

- name: Restart an application
  cloudera.services.ml_project_application:
    project_id: "{{ project_id }}"
    id: "{{ application_id }}"
    state: restarted

- name: Stop an application
  cloudera.services.ml_project_application:
    project_id: "{{ project_id }}"
    name: my-application
    state: stopped

- name: Delete an application
  cloudera.services.ml_project_application:
    project_id: "{{ project_id }}"
    id: "{{ application_id }}"
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

application

dictionary

The CML application details.

Returned: always

bypass_authentication

boolean

Whether application access is public (unauthenticated).

Returned: when available

cpu

float

The vCPU allocated to the application.

Returned: when available

created_at

string

The timestamp when the application was created.

Returned: when available

creator

dictionary

Details of the user that created the application.

Returned: when available

description

string

The description of the application.

Returned: when available

environment

dictionary

The environment variables of the application.

Returned: when available

id

string

The unique identifier of the application.

Returned: always

kernel

string

The kernel for the application.

Returned: when available

memory

float

The RAM allocated to the application, in GB.

Returned: when available

name

string

The name of the application.

Returned: always

nvidia_gpu

integer

The count of Nvidia GPUs allocated to the application.

Returned: when available

project_id

string

The identifier of the enclosing project.

Returned: when available

runtime_addon_identifiers

list / elements=string

The runtime addon identifiers for the application.

Returned: when available

runtime_identifier

string

The container runtime identifier for the application.

Returned: when available

script

string

The entrypoint script for the application.

Returned: when available

status

string

The current runtime state of the application.

Returned: when available

subdomain

string

The DNS subdomain of the application.

Returned: when available

updated_at

string

The timestamp when the application was last updated.

Returned: when available

sdk_out

string

Returns the captured REST API log.

Returned: when supported

sdk_out_lines

list / elements=string

Returns a list of each line of the captured REST API log.

Returned: when supported

Authors

  • Webster Mudge (@wmudge)