Skip to main content

OpenSearch Charms Single Kernel

Shared and reusable Python code for Canonical OpenSearch charms.

This repository contains the common implementation used by OpenSearch charms across machine and Kubernetes substrates. It provides base charm classes, workload abstractions, event handlers, state models, and managers for common OpenSearch operations so charm-specific repositories can stay focused on their substrate and packaging concerns.

The project is intended for contributors working on the OpenSearch charm codebase.

What Is Included

  • Base charm classes for VM and Kubernetes charms.
  • Workload adapters for substrate-specific OpenSearch operations.
  • Managers for cluster health, configuration, TLS, users, snapshots, plugins, upgrades, profiles, peer clusters, notifications, external clients, and locks.
  • Event handlers for OpenSearch lifecycle events and supported Juju relations.
  • Pydantic models and state helpers for relation data and cluster state.
  • Vendored charm libraries required by the shared implementation.
  • Test charms and integration fixtures used to validate the shared library.

Repository Layout

Path Purpose
opensearch_single_kernel/charms/ Base charm classes and VM/Kubernetes charm entry points.
opensearch_single_kernel/workload/ Workload abstractions and substrate-specific implementations.
opensearch_single_kernel/managers/ Operational managers for OpenSearch features and lifecycle work.
opensearch_single_kernel/events/ Juju event handlers and custom OpenSearch events.
opensearch_single_kernel/core/ Relation state, secrets, models, and shared data structures.
opensearch_single_kernel/common/ Constants, statuses, exceptions, and the OpenSearch client.
opensearch_single_kernel/lib/ Vendored charm libraries refreshed through charmcraft.
tests/unit/ Unit tests for the shared library.
tests/integration/ Integration tests and supporting charms.
tests/charms/ Local test charms that consume the shared kernel.
scripts/build_lib_for_integration.sh Helper for copying the local library into test charms before packing.

Development

Install tox and poetry with pipx:

pipx install tox
pipx install poetry

Install the project dependencies:

poetry install

Install pre-commit hooks before submitting changes:

poetry run pre-commit install

See CONTRIBUTING.md for contribution guidelines and the Canonical contributor agreement.

Testing

Run the default local checks:

tox

Useful tox environments:

tox run -e format       # apply formatting
tox run -e lint         # lint, spelling, formatting, and shell checks
tox run -e unit         # unit tests for all substrates
tox run -e unit-vm      # unit tests with the VM substrate
tox run -e unit-k8s     # unit tests with the Kubernetes substrate
tox run -e integration  # integration tests
tox run -e build        # build the Python package

Integration tests require a Juju test environment and, for object storage scenarios, the cloud credentials consumed by tox.ini.

Building Test Charms for Integration Runs

Use scripts/build_lib_for_integration.sh when an integration run needs test charms packed with the local version of this library:

scripts/build_lib_for_integration.sh

By default, the script prepares tests/charms/opensearch_test_charm. You can target another charm and, when needed, pass a charmcraft platform:

scripts/build_lib_for_integration.sh --charm tests/charms/opensearch_k8s_test_charm
scripts/build_lib_for_integration.sh --platform amd64 --charm tests/charms/opensearch_test_charm

Metadata

Release files for opensearch-charms-single-kernel 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opensearch-charms-single-kernel 0.0.13
File Size Uploaded
opensearch_charms_single_kernel-0.0.13.tar.gz 349.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opensearch-charms-single-kernel 0.0.13
File Interpreter ABI Platform
opensearch_charms_single_kernel-0.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 755.0 kB

Release files / opensearch_charms_single_kernel-0.0.13.tar.gz

Download URL opensearch_charms_single_kernel-0.0.13.tar.gz
Size 349.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a6594e611a881b0de386d7fdae6ea11c8fe4450d0c1cb6a3ad45d522e803c8b3
BLAKE2b-256 checksum
How to use checksums
f563a848b06a7d831796626342692326ebb51117af43187355e4cde80486a7a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / opensearch_charms_single_kernel-0.0.13-py3-none-any.whl

Download URL opensearch_charms_single_kernel-0.0.13-py3-none-any.whl
Size 406.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d71bf6b9178b62a5f54b07dbd4480b877ef9e40404ab58e8515d8d46253c3f4
BLAKE2b-256 checksum
How to use checksums
49dfc4a5ca20a125b0e91fac0c9a6d11c9486215fbd2e615077c28035ae8cc1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

2.0.2

2 release files

2.0.1

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

This release

0.0.13 This release

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.6

2 release files

0.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page