feat: add vector addon
This commit is contained in:
27
vector/Dockerfile
Normal file
27
vector/Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
ARG BUILD_FROM=ghcr.io/hassio-addons/debian-base:7.8.2
|
||||||
|
# hadolint ignore=DL3006
|
||||||
|
FROM ${BUILD_FROM}
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
ARG VECTOR_VERSION=0.46.1
|
||||||
|
|
||||||
|
WORKDIR /vector
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends systemd \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& mkdir -p /var/lib/vector \
|
||||||
|
&& curl -sSL -o vector.tar.gz \
|
||||||
|
https://github.com/vectordotdev/vector/releases/download/v${VECTOR_VERSION}/vector-${VECTOR_VERSION}-x86_64-unknown-linux-musl.tar.gz \
|
||||||
|
&& tar -xvf vector.tar.gz --strip-components=2 \
|
||||||
|
&& cp /vector/bin/* /usr/local/bin/
|
||||||
|
|
||||||
|
LABEL \
|
||||||
|
org.opencontainers.image.title="Vector Add-on" \
|
||||||
|
org.opencontainers.image.description="Vector log processor for Home Assistant" \
|
||||||
|
org.opencontainers.image.url="https://vector.dev" \
|
||||||
|
org.opencontainers.image.source="https://github.com/vectordotdev/vector" \
|
||||||
|
org.opencontainers.image.documentation="https://vector.dev/docs"
|
||||||
|
|
||||||
|
COPY rootfs /
|
||||||
5
vector/build.yaml
Normal file
5
vector/build.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
build_from:
|
||||||
|
amd64: ghcr.io/hassio-addons/debian-base/amd64:7.8.2
|
||||||
|
codenotary:
|
||||||
|
base_image: codenotary@frenck.dev
|
||||||
17
vector/config.yaml
Normal file
17
vector/config.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
name: "Vector"
|
||||||
|
version: "0.46.1"
|
||||||
|
slug: "vector"
|
||||||
|
description: "Vector log processor"
|
||||||
|
url: "https://vector.dev"
|
||||||
|
arch:
|
||||||
|
- amd64
|
||||||
|
boot: auto
|
||||||
|
init: false
|
||||||
|
journald: true
|
||||||
|
startup: services
|
||||||
|
advanced: true
|
||||||
|
docker_api: true
|
||||||
|
map:
|
||||||
|
- addon_config:rw
|
||||||
|
options: {}
|
||||||
|
schema: {}
|
||||||
BIN
vector/icon.png
Normal file
BIN
vector/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
BIN
vector/logo.png
Normal file
BIN
vector/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
23
vector/rootfs/etc/s6-overlay/s6-rc.d/init-vector/run
Normal file
23
vector/rootfs/etc/s6-overlay/s6-rc.d/init-vector/run
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/command/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2207
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Add-on: Vector
|
||||||
|
# Copy default config
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
CONFIG_PATH="/config/vector.yaml"
|
||||||
|
DEFAULT_CONFIG="/vector.yaml"
|
||||||
|
|
||||||
|
if ! bashio::fs.file_exists "$CONFIG_PATH"; then
|
||||||
|
bashio::log.info "Copying default configuration from $DEFAULT_CONFIG"
|
||||||
|
|
||||||
|
if cp "$DEFAULT_CONFIG" "$CONFIG_PATH"; then
|
||||||
|
bashio::log.info "Default configuration copied successfully"
|
||||||
|
else
|
||||||
|
bashio::log.error "Failed to copy default configuration!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
bashio::log.info "Using existing configuration at $CONFIG_PATH"
|
||||||
|
fi
|
||||||
1
vector/rootfs/etc/s6-overlay/s6-rc.d/init-vector/type
Normal file
1
vector/rootfs/etc/s6-overlay/s6-rc.d/init-vector/type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
oneshot
|
||||||
1
vector/rootfs/etc/s6-overlay/s6-rc.d/init-vector/up
Normal file
1
vector/rootfs/etc/s6-overlay/s6-rc.d/init-vector/up
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/etc/s6-overlay/s6-rc.d/init-vector/run
|
||||||
45
vector/rootfs/etc/s6-overlay/s6-rc.d/vector/finish
Normal file
45
vector/rootfs/etc/s6-overlay/s6-rc.d/vector/finish
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/command/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Add-on: Vector
|
||||||
|
# ==============================================================================
|
||||||
|
declare exit_code
|
||||||
|
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
|
||||||
|
readonly exit_code_service="${1}"
|
||||||
|
readonly exit_code_signal="${2}"
|
||||||
|
readonly service="Vector"
|
||||||
|
|
||||||
|
bashio::log.info \
|
||||||
|
"Service ${service} exited with code ${exit_code_service}" \
|
||||||
|
"(by signal ${exit_code_signal})"
|
||||||
|
|
||||||
|
# Received a signal
|
||||||
|
if [[ "${exit_code_service}" -eq 256 ]]; then
|
||||||
|
|
||||||
|
# The signal might be a result of another service crashing. Only
|
||||||
|
# overwrite the container exit code if it is not already set.
|
||||||
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||||
|
echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the signal is SIGTERM, we should halt the container and take down
|
||||||
|
# the whole process tree.
|
||||||
|
[[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
|
||||||
|
|
||||||
|
# The service exited with a non-zero exit code, which means it crashed.
|
||||||
|
elif [[ "${exit_code_service}" -ne 0 ]]; then
|
||||||
|
|
||||||
|
# The service might be a result of another service crashing. Only
|
||||||
|
# overwrite the container exit code if it is not already set.
|
||||||
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
||||||
|
echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We should halt the container and take down the whole process tree.
|
||||||
|
exec /run/s6/basedir/bin/halt
|
||||||
|
|
||||||
|
# The service exited with a zero exit code, which means it exited, let
|
||||||
|
# S6 supervision restart it.
|
||||||
|
else
|
||||||
|
bashio::log.info "Service ${service} restarting..."
|
||||||
|
fi
|
||||||
10
vector/rootfs/etc/s6-overlay/s6-rc.d/vector/run
Normal file
10
vector/rootfs/etc/s6-overlay/s6-rc.d/vector/run
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/command/with-contenv bashio
|
||||||
|
# shellcheck shell=bash
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Add-on: Vector
|
||||||
|
# Start Vector
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
bashio::log.info "Starting Vector..."
|
||||||
|
|
||||||
|
exec /usr/local/bin/vector --config /config/vector.yaml
|
||||||
1
vector/rootfs/etc/s6-overlay/s6-rc.d/vector/type
Normal file
1
vector/rootfs/etc/s6-overlay/s6-rc.d/vector/type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
||||||
12
vector/rootfs/vector.yaml
Normal file
12
vector/rootfs/vector.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
data_dir: /var/lib/vector
|
||||||
|
|
||||||
|
sources:
|
||||||
|
demo:
|
||||||
|
type: internal_metrics
|
||||||
|
|
||||||
|
sinks:
|
||||||
|
stdout:
|
||||||
|
type: console
|
||||||
|
inputs: [demo]
|
||||||
|
encoding:
|
||||||
|
codec: json
|
||||||
Reference in New Issue
Block a user