-
Notifications
You must be signed in to change notification settings - Fork 2
/
snapcraft.yaml
72 lines (65 loc) · 2.39 KB
/
snapcraft.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
name: charmed-zookeeper
base: core22
version: '3.8.4'
summary: Apache Zookeeper in a snap.
description: |
This is a snap that bundles Apache ZooKeeper together with other tools of its ecosystem in order to be used in Charmed Operators, providing automated operations management from day 0 to day 2 on the Apache ZooKeeper distributed coodrdinator, on top of a Virtual Machine cluster and K8s cluster. It is an open source, end-to-end, production ready data platform on top of cloud native technologies.
grade: stable
confinement: strict
system-usernames:
snap_daemon: shared
hooks:
install:
plugs:
- network
- network-bind
environment:
JAVA_HOME: ${SNAP}/usr/lib/jvm/java-18-openjdk-amd64
ZOO_LOG_DIR: ${SNAP_COMMON}/var/log/zookeeper
ZOOCFGDIR: ${SNAP_DATA}/etc/zookeeper
apps:
daemon:
command: opt/zookeeper/bin/with_config.sh bin/zkServer.sh start-foreground
plugs:
- network
- network-bind
- removable-media
install-mode: disable
daemon: simple
keytool:
command: usr/lib/jvm/java-18-openjdk-amd64/bin/keytool
slots:
logs:
interface: content
source:
read:
- $SNAP_COMMON/var/log/zookeeper
parts:
zookeeper:
plugin: nil
source: https://github.com/canonical/central-uploader/releases/download/zookeeper-${SNAPCRAFT_PROJECT_VERSION}-ubuntu0/zookeeper-${SNAPCRAFT_PROJECT_VERSION}-ubuntu0-20240308113314.tgz
stage-packages:
- openjdk-18-jre-headless
- util-linux
- curl
override-build: |-
snapcraftctl build
mkdir -p $SNAPCRAFT_PART_INSTALL/opt/zookeeper
cp -r ./* $SNAPCRAFT_PART_INSTALL/opt/zookeeper
override-prime: |-
snapcraftctl prime
rm -vf usr/lib/jvm/java-18-openjdk-amd64/lib/security/cacerts
prometheus-exporter:
plugin: nil
after: [zookeeper]
override-build: |
curl -o jmx_prometheus_javaagent.jar "https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar"
EXPECTED_SHA="fb569b5cb18494c22561a1eec10cb26e6117f057f6a5ac0ffe53dc16213a1dde"
JAR_SHA=$(sha256sum jmx_prometheus_javaagent.jar | cut -d " " -f1)
if [ $JAR_SHA != $EXPECTED_SHA ]; then exit 1; fi
cp jmx_prometheus_javaagent.jar $SNAPCRAFT_PART_INSTALL/
organize:
jmx_prometheus_javaagent.jar: opt/zookeeper/lib/jmx_prometheus_javaagent.jar
wrapper:
plugin: dump
source: snap/local