cloudera.services.ml_project_model_deployment module – Manage a Cloudera Machine Learning (CML) project model deployment

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_model_deployment.

New in cloudera.services 1.0.0

Synopsis

  • Start, stop, restart, or delete a Cloudera Machine Learning (CML) project model deployment.

  • Deployments are immutable; a running deployment is never updated in place. Use state=restarted to stop the current deployment and start a new one on the build.

  • The module supports check_mode.

Parameters

Parameter

Comments

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.

build_id

string

The unique identifier of the build to deploy.

If not set, the most recent successful build is used.

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

integer

The vCPU allocated to the deployment.

debug

aliases: debug_endpoints

boolean

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

Choices:

  • false ← (default)

  • true

env

aliases: env_vars

dictionary

Environment variables to set on the deployment.

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_gpus

integer

The count of Nvidia GPUs allocated to the deployment.

http_agent

aliases: user_agent

string

The User-Agent string to send with API requests.

Default: "cloudera-services-module"

id

aliases: deployment_id

string

The unique identifier of an existing deployment.

memory

integer

The RAM allocated to the deployment, in GB.

model_id

string

The unique identifier of the enclosing model.

Mutually exclusive with model_name.

model_name

string

The name of the enclosing model.

Mutually exclusive with model_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.

Mutually exclusive with project_name.

project_name

string

The name of the enclosing project.

Mutually exclusive with project_id.

state

string

The declarative state of the deployment.

present is an alias for started.

Choices:

  • "started" ← (default)

  • "present"

  • "stopped"

  • "restarted"

  • "absent"

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: Deploy the latest build of a model
  cloudera.services.ml_project_model_deployment:
    url: "https://ml-workspace.example.com"
    api_key: "{{ cml_api_key }}"
    project_name: my-project
    model_name: fraud-detector
    cpu: 1
    memory: 2
    state: started

- name: Stop a deployment
  cloudera.services.ml_project_model_deployment:
    project_id: "{{ project_id }}"
    model_id: "{{ model_id }}"
    id: "{{ deployment_id }}"
    state: stopped

- name: Restart (stop then redeploy) a model
  cloudera.services.ml_project_model_deployment:
    project_id: "{{ project_id }}"
    model_id: "{{ model_id }}"
    state: restarted

- name: Delete a deployment
  cloudera.services.ml_project_model_deployment:
    project_id: "{{ project_id }}"
    model_id: "{{ model_id }}"
    id: "{{ deployment_id }}"
    state: absent

Return Values

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

Key

Description

deployment

dictionary

The CML model deployment details.

Returned: always

build_id

string

The identifier of the enclosing build.

Returned: when available

cpu

float

The vCPU allocated to the deployment.

Returned: when available

created_at

string

The timestamp when the deployment was created.

Returned: when available

deployer

dictionary

Details of the user that deployed the model.

Returned: when available

environment

dictionary

The environment variables of the deployment.

Returned: when available

id

string

The unique identifier of the deployment.

Returned: always

memory

float

The RAM allocated to the deployment, in GB.

Returned: when available

model_id

string

The identifier of the enclosing model.

Returned: when available

nvidia_gpus

integer

The count of Nvidia GPUs allocated to the deployment.

Returned: when available

project_id

string

The identifier of the enclosing project.

Returned: when available

replicas

integer

The replica count of the deployment.

Returned: when available

status

string

The status of the deployment.

Returned: when available

updated_at

string

The timestamp when the deployment 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)