core

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2023 License: AGPL-3.0

README

Contents

  1. Overview
  2. Configuration
  3. Deployment
  4. Usage
  5. Design
  6. Contributing
    6.1. Versioning
    6.2. Issue Reporting
    6.3. Building
    6.4. Testing
       6.4.1. Functional
       6.4.2. Performance
    6.5. Releasing

1. Overview

This repo contains the Helm chart for the Awakari Core system deployment. The chart deploys the following minimum set of components:

  1. Sharded MongoDB
  2. NATS in the Jetstream mode (if NATS usage is enabled).
  3. Specific queue wrapper service (e.g. queue-nats)
  4. Specific condition services (e.g. kiwi-tree)
  5. Subscriptions service
  6. Matches service
  7. Messages service
  8. Writer service

2. Configuration

For a component-specific options see the corresponding sub-chart configuration. Here follow own configuration options:

Variable Default Description
conditions.kiwi.tree true Enables the kiwi-tree conditions usage. May be used together with other conditions implementations.
queue.backend.nats true Enables the NATS JetStream queue wrapper service. Exclusive, can not be used together with other queue backends.

3. Deployment

Create the target namespace:

kubectl create namespace awakari

Install the package built locally:

helm install core core-0.0.0.tgz -n awakari

Warning

Do not change the "core" release name

Or use an existing:

helm repo add awakari-core https://awakari.github.io/core

helm install core awakari-core/core \
  -n awakari

4. Usage

TODO

5. Design

The core of Awakari consist of:

components

6. Contributing

6.1. Versioning

The service uses the semantic versioning. The single source of the version info is the git tag:

git describe --tags --abbrev=0

6.2. Issue Reporting

TODO

6.3. Building

Build a helm package:

helm package helm/core

6.4. Testing

6.4.1. Functional

The repo contains core functional end-to-end tests.

To run these tests, first port-forward the core public API to local:

  • messages to local port 50051
  • subscriptions to local port 50052
  • writer to local port 50053

Then:

make test
6.4.2. Performance

TODO

6.5. Releasing

To release a new version (e.g. 1.2.3) it's enough to put a git tag:

git tag -v1.2.3
git push --tags

The corresponding CI job is started to build a helm chart and publish it with the specified tag (+latest).

Directories

Path Synopsis
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL