nomad-client-rs

Crates.ionomad-client-rs
lib.rsnomad-client-rs
version0.9.2
sourcesrc
created_at2023-01-23 15:35:24.025743
updated_at2024-11-04 13:17:03.513037
descriptionA HashiCorp Nomad's HTTP API client
homepagehttps://buildline.de
repositoryhttps://gitlab.com/buildline-gmbh/nomad_client_rs
max_upload_size
id765908
size231,304
BuildLine GmbH (BuildLineGmbH)

documentation

README

Nomad Client

License Lines of code Crates.io Crates.io

Nomad HTTP API Client

Table of contents

Overview

HTTP API Version : v1.5.x

Quick start

Install the package over cli

cargo add nomad-client-rs

or add the following to your Cargo.toml

[dependencies]
nomad-client-rs = "x.x.x"

Usage

Default nomad client uses environment variables / default values

let client = NomadClient::default();

Nomad client with custom config

let client_config = Config {
  base_url: "http://example".into(),
  port: 1234,
  api_version: "v1".into(),
  token: None,
  ..Config::default()
};

let client = NomadClient::new(client_config);

Implemented API Endpoints

Class Method HTTP Request
allocation allocation_restart POST /client/allocation/{alloc_id}/restart
acl acl_tokens_list GET /acl/tokens
acl acl_token_create POST /acl/token
acl acl_token_update POST /acl/token/{accessor_id}
acl acl_token_read GET /acl/token/{accessor_id}
acl acl_token_read_self GET /acl/token/self
acl acl_token_delete DELETE /acl/token/{accessor_id}
client client_list_files GET /client/fs/ls/{alloc_id}?path={file_path}
client client_get_file GET /client/fs/cat/{alloc_id}?path={file_path}
client client_get_file_info GET /client/fs/stat/{alloc_id}?path={file_path}
client client_read_metadata GET /client/metadata
client client_update_metadata POST /client/metadata
deployment deployment_list GET /deployments
deployment deployment_get GET /deployments/{id}
deployment deployment_allocation_list GET /deployment/allocations/{id}
deployment deployment_fail POST /deployment/fail/{id}
event events_subscribe GET /event/stream
job job_dispatch POST /job/{job_name}/dispatch
job job_parse POST /job/parse
job job_create POST /jobs
job job_list_allocations GET /job/{job_name}/allocations
job job_delete DELETE /job/{job_name}
namespace namespace_list GET /namespaces
namespace namespace_get GET /namespace/{namespace}
namespace namespace_create POST /namespace
namespace namespace_delete DELETE /namespace/{namespace}
status status_get_peers GET /status/peers
status status_get_leader GET /status/leader
variable variables_list GET /vars
variable variable_get GET /var/{var_path}
variable variable_create PUT /var/{var_path}
variable variable_delete DELETE /var/{var_path}
service service_list GET /services
service variable_get GET /services/{service_name}

Environment

Variables

NomadClient can be configured by env variables.
If env variable is not available it will use specified default value.

Variable Default
NOMAD_BASE_URL http://localhost
NOMAD_PORT 4646
NOMAD_API_VERSION v1
NOMAD_SECRET_TOKEN
NOMAD_TLS_ALLOW_INSECURE false
NOMAD_MTLS_CERT_PATH
NOMAD_MTLS_KEY_PATH

Authentiction

MTLS

NomadClient supports mtls authentication using .pem files only. To use mtls authentication simply configure mtls field in Config struct.

let client_config = Config {
  mtls: Some(MTLSConfig::new("path/to/client.pem", "path/to/client-key.pem"));
  ..Config::default()
};
Commit count: 221

cargo fmt