mirror of
https://github.com/clearml/clearml-docs
synced 2025-06-26 18:17:44 +00:00
update custom billing
This commit is contained in:
parent
eff1f2f21c
commit
1660898545
@ -82,8 +82,8 @@ services (Helm charts in Kubernetes):
|
|||||||
|
|
||||||
### Install custom-events
|
### Install custom-events
|
||||||
|
|
||||||
The `clearml-custom-events` is the Kubernetes "Custom Events" umbrella Helm chart for ClearML. It includes custom-events
|
The `clearml-custom-events` is the Kubernetes "Custom Events" umbrella Helm chart for ClearML.
|
||||||
components and dependencies (Redis) to kick-start the installation.
|
It bundles all necessary services and sets up a dedicated Redis instance.
|
||||||
|
|
||||||
#### Prepare Values
|
#### Prepare Values
|
||||||
|
|
@ -1,115 +0,0 @@
|
|||||||
---
|
|
||||||
title: Custom Events
|
|
||||||
---
|
|
||||||
|
|
||||||
ClearML Enterprise supports sending custom events to selected Kafka topics. These events are triggered by API calls
|
|
||||||
and are only available to tenants with the `custom_events` feature configured.
|
|
||||||
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
* A Kafka instance must be deployed and reachable from the ClearML `apiserver`
|
|
||||||
|
|
||||||
## Enabling Custom Events on the Server
|
|
||||||
|
|
||||||
To enable custom evens, edit ClearML Server' `clearml-values.override.yaml` file adding the following:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
apiserver:
|
|
||||||
extraEnvs:
|
|
||||||
# Enable custom events.
|
|
||||||
- name: CLEARML__services__custom_events__enabled
|
|
||||||
value: "true"
|
|
||||||
# Folder where the ClearML Apiserver container can find the custom message templates.
|
|
||||||
- name: CLEARML__services__custom_events__template_folder
|
|
||||||
value: "/mnt/custom_events/templates"
|
|
||||||
# Kafka host configuration for custom events.
|
|
||||||
- name: CLEARML__hosts__kafka__custom_events__host
|
|
||||||
value: "[<KAFKA_HOST_ADDRESS>:<KAFKA_HOST_PORT>]"
|
|
||||||
# Kafka security parameters. Below is the example for SASL plaintext security.
|
|
||||||
- name: CLEARML__SECURE__KAFKA__CUSTOM_EVENTS__security_protocol
|
|
||||||
value: "SASL_PLAINTEXT"
|
|
||||||
- name: CLEARML__SECURE__KAFKA__CUSTOM_EVENTS__sasl_mechanism
|
|
||||||
value: "SCRAM-SHA-512"
|
|
||||||
- name: CLEARML__SECURE__KAFKA__CUSTOM_EVENTS__sasl_plain_username
|
|
||||||
value: "<USERNAME>"
|
|
||||||
- name: CLEARML__SECURE__KAFKA__CUSTOM_EVENTS__sasl_plain_password
|
|
||||||
value: "<PASSWORD>"
|
|
||||||
# Kafka topics names for lifecycle and inventory messages.
|
|
||||||
- name: CLEARML__services__custom_events__channels__main__topics__service_instance_lifecycle
|
|
||||||
value: "lifecycle"
|
|
||||||
- name: CLEARML__services__custom_events__channels__main__topics__service_instance_inventory
|
|
||||||
value: "inventory"
|
|
||||||
```
|
|
||||||
|
|
||||||
After editing the configuration, upgrade the Helm chart to apply the changes.
|
|
||||||
|
|
||||||
## Enabling Custom Events for Tenants
|
|
||||||
|
|
||||||
|
|
||||||
Each tenant must be explicitly configured to use custom events. Use the following API call to set up the custom events
|
|
||||||
properties required by the event message templates:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl $APISERVER_URL/system.update_company_custom_events_config -H "Content-Type: application/json" -u $APISERVER_KEY:$APISERVER_SECRET -d'{
|
|
||||||
"company": "<company_id>",
|
|
||||||
"fields": {
|
|
||||||
"service_instance_id": "<value>",
|
|
||||||
"service_instance_name": "<value>",
|
|
||||||
"service_instance_customer_tenant_name": "<value>",
|
|
||||||
"service_instance_customer_space_name": "<value>",
|
|
||||||
"service_instance_customer_space_id": "<value>",
|
|
||||||
"parameters_connection_points": ["<value1>", "<value2>"]
|
|
||||||
}}'
|
|
||||||
```
|
|
||||||
|
|
||||||
## Event Emitters
|
|
||||||
|
|
||||||
ClearML services that send custom events include:
|
|
||||||
|
|
||||||
* `apiserver` — Sends environment lifecycle events.
|
|
||||||
* `clearml-pods-monitor-exporter` - Monitors running Pods (Tasks) and sends lifecycle events. Should run one per cluster
|
|
||||||
with a unique identifier (an explicit UUID is required for the installation).
|
|
||||||
* `clearml-pods-inventory` - Sends periodic inventory events about active Pods.
|
|
||||||
* `clearml-company-inventory` - Monitors ClearML tenants and emits environment-level inventory events.
|
|
||||||
|
|
||||||
## Install custom-events
|
|
||||||
|
|
||||||
The `clearml-custom-events` Helm chart bundles all custom event services and their dependencies (e.g., Redis). It serves
|
|
||||||
as the umbrella chart for custom event functionality.
|
|
||||||
|
|
||||||
### Prepare Values
|
|
||||||
|
|
||||||
Create a `clearml-custom-events-values.override.yaml` file with the following content (make sure to replace `<PLACEHOLDERS>`):
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
global:
|
|
||||||
imageCredentials:
|
|
||||||
password: "<CLEARML_DOCKERHUB_TOKEN>"
|
|
||||||
clearml:
|
|
||||||
apiServerUrlReference: "<CLEARML_APISERVER_URL>"
|
|
||||||
apiServerKey: "<ACCESSKEY>"
|
|
||||||
apiServerSecret: "<SECRETKEY>"
|
|
||||||
|
|
||||||
clearml-pods-monitor-exporter:
|
|
||||||
checkIntervalSeconds: 60
|
|
||||||
# -- *REQUIRED* Universal Unique string to identify Pods Monitor instances across worker clusters. Cannot be empty.
|
|
||||||
# Uniqueness is required across different clusters installations to preserve the reported data status.
|
|
||||||
podsMonitorUUID: ""
|
|
||||||
|
|
||||||
clearml-pods-inventory:
|
|
||||||
cronJob:
|
|
||||||
schedule: "@daily"
|
|
||||||
|
|
||||||
clearml-company-inventory:
|
|
||||||
cronJob:
|
|
||||||
schedule: "@daily"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Install
|
|
||||||
|
|
||||||
Install the Custom Events chart:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
helm install clearml-custom-events clearml-enterprise/clearml-custom-events -f clearml-custom-events-values.override.yaml
|
|
||||||
```
|
|
@ -287,7 +287,7 @@ For each group you define in the configuration, you need to specify the followin
|
|||||||
| `name` | Display name for the group (should match `<GroupName>` used in the variable path) | `CLEARML__services__auth__default_groups__<GroupName>__name` | `"My Group Name"`, `"MLOps Team"` |
|
| `name` | Display name for the group (should match `<GroupName>` used in the variable path) | `CLEARML__services__auth__default_groups__<GroupName>__name` | `"My Group Name"`, `"MLOps Team"` |
|
||||||
| `features` | JSON list of features to enable for this group . For the complete list of available features, see [Available Features](#available-features). Note that the features must be defined for the tenant or for the entire server in order to affect the group. By default, all the features of the tenant are available to all users. | `CLEARML__services__auth__default_groups__<GroupName>__features` | `'["applications", "experiments", "pipelines", "reports", "show_dashboard", "show_projects"]'` (Note the single quotes wrapping the JSON string if setting via YAML/environment variables). |
|
| `features` | JSON list of features to enable for this group . For the complete list of available features, see [Available Features](#available-features). Note that the features must be defined for the tenant or for the entire server in order to affect the group. By default, all the features of the tenant are available to all users. | `CLEARML__services__auth__default_groups__<GroupName>__features` | `'["applications", "experiments", "pipelines", "reports", "show_dashboard", "show_projects"]'` (Note the single quotes wrapping the JSON string if setting via YAML/environment variables). |
|
||||||
| `assignable` | Whether admins can assign users to this group from the ClearML Web UI (`true`/`false`). If `false`, group membership is managed externally or implicitly. | `CLEARML__services__auth__default_groups__<GroupName>__assignable` | `"false"` |
|
| `assignable` | Whether admins can assign users to this group from the ClearML Web UI (`true`/`false`). If `false`, group membership is managed externally or implicitly. | `CLEARML__services__auth__default_groups__<GroupName>__assignable` | `"false"` |
|
||||||
| `system` | Always set to `"false"` for custom groups | ``CLEARML__services__auth__default_groups__<GroupName>__system` | `"false"` |
|
| `system` | Always set to `"false"` for custom groups | `CLEARML__services__auth__default_groups__<GroupName>__system` | `"false"` |
|
||||||
|
|
||||||
|
|
||||||
##### Example Configuration
|
##### Example Configuration
|
||||||
|
@ -667,7 +667,6 @@ module.exports = {
|
|||||||
'deploying_clearml/enterprise_deploy/appgw_install_k8s',
|
'deploying_clearml/enterprise_deploy/appgw_install_k8s',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
'deploying_clearml/enterprise_deploy/custom_billing',
|
|
||||||
{'UI Applications': [
|
{'UI Applications': [
|
||||||
'deploying_clearml/enterprise_deploy/app_install_ubuntu_on_prem',
|
'deploying_clearml/enterprise_deploy/app_install_ubuntu_on_prem',
|
||||||
'deploying_clearml/enterprise_deploy/app_install_ex_server',
|
'deploying_clearml/enterprise_deploy/app_install_ex_server',
|
||||||
|
Loading…
Reference in New Issue
Block a user