generated from canonical/template-operator
-
Notifications
You must be signed in to change notification settings - Fork 11
/
charmcraft.yaml
100 lines (88 loc) · 2.29 KB
/
charmcraft.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Copyright 2024 Jon Seager (@jnsgruk)
# See LICENSE file for licensing details.
name: zinc-k8s
description: |
Zinc is a search engine that does full text indexing. It is a lightweight alternative to
elasticsearch and runs in less than 100 MB of RAM. It uses bluge as the underlying indexing
library.
It is very simple and easy to operate as opposed to elasticsearch which requires a couple dozen
knobs to understand and tune.
It is a drop-in replacement for elasticsearch if you are just ingesting data using APIs and
searching using kibana (Kibana is not supported with zinc. Zinc provides its own UI).
summary: |
Zinc is a search engine that does full text indexing. It is a lightweight alternative to
elasticsearch and runs in less than 100 MB of RAM. It uses bluge as the underlying indexing
library.
type: charm
base: ubuntu@24.04
platforms:
amd64:
parts:
charm:
build-snaps:
- rustup
- astral-uv
override-build: |
rustup toolchain install stable
make generate-requirements
craftctl default
prime:
- -*.charm
- -spread.yaml
- -rockcraft.yaml
- -.venv
- -CONTRIBUTING.md
- -Makefile
- -pyproject.toml
- -README.md
- -requirements-dev.txt
- -scripts/
- -tests/
- -uv.lock
- -src/zinc_k8s_operator.egg-info
assumes:
- juju >= 3.1
containers:
zinc:
resource: zinc-image
mounts:
- storage: data
location: /var/lib/zincsearch
resources:
zinc-image:
type: oci-image
description: OCI image for zinc
# Included for simplicity in integration tests
upstream-source: ghcr.io/jnsgruk/zinc:0.4.10
peers:
zinc-peers:
interface: zinc_peers
provides:
metrics-endpoint:
interface: prometheus_scrape
profiling-endpoint:
interface: parca_scrape
grafana-dashboard:
interface: grafana_dashboard
charm-libs:
- lib: grafana_k8s.grafana_dashboard
version: "0"
- lib: loki_k8s.loki_push_api
version: "0"
- lib: observability_libs.juju_topology
version: "0"
- lib: parca.parca_scrape
version: "0"
- lib: traefik_k8s.ingress
version: "2"
requires:
log-proxy:
interface: loki_push_api
limit: 1
ingress:
interface: ingress
limit: 1
storage:
data:
type: filesystem
location: /zinc-data