Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump Loki 2.9 #25

Merged
merged 3 commits into from
Sep 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/workflows/test-module.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ name: Test module

on:
workflow_dispatch:
inputs:
debug_shell:
description: "Debug shell"
required: true
type: boolean
workflow_run:
workflows: ["Publish images"]
types: [completed]
Expand All @@ -10,11 +15,12 @@ jobs:
module:
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event.workflow_run.conclusion == '' }}
uses: NethServer/ns8-github-actions/.github/workflows/module-info.yml@main
run_tests_on_do:
run_tests:
needs: module
uses: NethServer/ns8-github-actions/.github/workflows/test-on-digitalocean-infra.yml@main
with:
coremodules: "ghcr.io/${{needs.module.outputs.owner}}/${{needs.module.outputs.name}}:${{needs.module.outputs.tag}}"
args: "ghcr.io/${{needs.module.outputs.owner}}/${{needs.module.outputs.name}}:${{needs.module.outputs.tag}}"
repo_ref: ${{needs.module.outputs.sha}}
debug_shell: ${{ github.event.inputs.debug_shell == 'true' || false }}
secrets:
do_token: ${{ secrets.do_token }}
2 changes: 1 addition & 1 deletion build-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ container=$(buildah from scratch)
buildah add "${container}" imageroot /imageroot
buildah add "${container}" ui /ui
buildah config --entrypoint=/ \
--label="org.nethserver.images=docker.io/traefik:v2.11.6 docker.io/grafana/loki:2.7.5" \
--label="org.nethserver.images=docker.io/traefik:v2.11.6 docker.io/grafana/loki:2.9.10" \
--label="org.nethserver.tcp-ports-demand=1" \
--label='org.nethserver.flags=core_module' \
"${container}"
Expand Down
8 changes: 4 additions & 4 deletions imageroot/loki-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,18 @@ storage_config:
compactor:
working_directory: /loki/boltdb-shipper-compactor
shared_store: filesystem
retention_enabled: true
retention_delete_delay: 30m
delete_request_store: filesystem

limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
retention_period: ${LOKI_RETENTION_PERIOD:-365}d

chunk_store_config:
max_look_back_period: 0s

table_manager:
retention_deletes_enabled: false
retention_period: ${LOKI_RETENTION_PERIOD:-365}d

ruler:
storage:
type: local
Expand Down
52 changes: 32 additions & 20 deletions test-module.sh
Original file line number Diff line number Diff line change
@@ -1,30 +1,42 @@
#!/bin/bash

#
# Copyright (C) 2024 Nethesis S.r.l.
# SPDX-License-Identifier: GPL-3.0-or-later
#

set -e

LEADER_NODE=$1
IMAGE_URL=$2
shift 2
SSH_KEYFILE=${SSH_KEYFILE:-$HOME/.ssh/id_rsa}

ssh_key="$(cat $SSH_KEYFILE)"
ssh_key="$(< $SSH_KEYFILE)"

cleanup() {
set +e
podman cp rf-core-runner:/home/pwuser/outputs tests/
podman stop rf-core-runner
podman rm rf-core-runner
}

trap cleanup EXIT
podman run -i \
--volume=site-packages:/home/pwuser/.local/lib/python3.8/site-packages:Z \
--network=host \
-v .:/home/pwuser/ns8-module:z \
--name rf-core-runner ghcr.io/marketsquare/robotframework-browser/rfbrowser-stable:v10.0.3 \
--volume=site-packages:/home/pwuser/.local/lib/python3.8/site-packages:Z \
--name rf-core-runner ghcr.io/marketsquare/robotframework-browser/rfbrowser-stable:18.6.3 \
bash -l -s <<EOF
set -e
echo "$ssh_key" > /home/pwuser/ns8-key
set -x
pip install -r /home/pwuser/ns8-module/tests/pythonreq.txt
mkdir ~/outputs
cd /home/pwuser/ns8-module
robot -v NODE_ADDR:${LEADER_NODE} \
-v SSH_KEYFILE:/home/pwuser/ns8-key \
-d ~/outputs /home/pwuser/ns8-module/tests/
set -e
echo "$ssh_key" > /home/pwuser/ns8-key
pip install -q -r /home/pwuser/ns8-module/tests/pythonreq.txt
mkdir ~/outputs
cd /home/pwuser/ns8-module
exec robot -v NODE_ADDR:${LEADER_NODE} \
-v IMAGE_URL:${IMAGE_URL} \
-v SSH_KEYFILE:/home/pwuser/ns8-key \
--name loki \
--skiponfailure unstable \
-d ~/outputs ${@} /home/pwuser/ns8-module/tests/
EOF

tests_res=$?

podman cp rf-core-runner:/home/pwuser/outputs tests/
podman stop rf-core-runner
podman rm rf-core-runner

exit ${tests_res}
13 changes: 10 additions & 3 deletions tests/loki.robot → tests/10__install.robot
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,27 @@
Library SSHLibrary

*** Test Cases ***
Module installation
${output} ${rc} = Execute Command add-module ${IMAGE_URL} 1
... return_rc=True
Should Be Equal As Integers ${rc} 0
&{output} = Evaluate ${output}
Set Global Variable ${MID} ${output.module_id}

Check if loki service is loaded correctly
${output} ${rc} = Execute Command ssh -o StrictHostKeyChecking=no loki1@localhost systemctl --user show --property=LoadState loki
${output} ${rc} = Execute Command runagent -m ${MID} systemctl --user show --property=LoadState loki
... return_rc=True
Should Be Equal As Integers ${rc} 0
Should Be Equal As Strings ${output} LoadState=loaded

Check if loki-server service is loaded correctly
${output} ${rc} = Execute Command ssh -o StrictHostKeyChecking=no loki1@localhost systemctl --user show --property=LoadState loki-server
${output} ${rc} = Execute Command runagent -m ${MID} systemctl --user show --property=LoadState loki-server
... return_rc=True
Should Be Equal As Integers ${rc} 0
Should Be Equal As Strings ${output} LoadState=loaded

Check if internal traefik service is loaded correctly
${output} ${rc} = Execute Command ssh -o StrictHostKeyChecking=no loki1@localhost systemctl --user show --property=LoadState traefik
${output} ${rc} = Execute Command runagent -m ${MID} systemctl --user show --property=LoadState traefik
... return_rc=True
Should Be Equal As Integers ${rc} 0
Should Be Equal As Strings ${output} LoadState=loaded
12 changes: 12 additions & 0 deletions tests/90__uninstall.robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*** Settings ***
Library SSHLibrary

*** Variables ***
${MID}

*** Test Cases ***
Module removal
[Tags] module remove
${rc} = Execute Command remove-module --no-preserve ${MID}
... return_rc=True return_stdout=False
Should Be Equal As Integers ${rc} 0
24 changes: 22 additions & 2 deletions tests/__init__.robot
Original file line number Diff line number Diff line change
@@ -1,15 +1,35 @@
*** Settings ***
Library SSHLibrary
Library DateTime

*** Variables ***
${SSH_KEYFILE} %{HOME}/.ssh/id_ecdsa
${NODE_ADDR} 127.0.0.1
${MID} loki0
${IMAGE_URL} ghcr.io/nethserver/loki:latest

*** Keywords ***
Connect to the node
Open Connection ${NODE_ADDR}
Login With Public Key root ${SSH_KEYFILE}
${output} = Execute Command systemctl is-system-running --wait

Wait until boot completes
${output} = Execute Command systemctl is-system-running --wait
Should Be True '${output}' == 'running' or '${output}' == 'degraded'

Save the journal begin timestamp
${tsnow} = Get Current Date result_format=epoch
Set Global Variable ${JOURNAL_SINCE} ${tsnow}

Collect the suite journal
Execute Command journalctl -S @${JOURNAL_SINCE} >journal-dump.log
Get File journal-dump.log ${OUTPUT DIR}/journal-${SUITE NAME}.log

*** Settings ***
Suite Setup Connect to the Node
Suite Setup Run Keywords
... Connect to the Node
... Wait until boot completes
... Save the journal begin timestamp

Suite Teardown Run Keywords
... Collect the suite journal
12 changes: 2 additions & 10 deletions tests/pythonreq.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
robotframework==4.1.2
robotframework-sshlibrary==3.8.0
robotframework-requests==0.9.2
bcrypt==3.2.0
cffi==1.15.0
cryptography==36.0.1
paramiko==2.9.2
pycparser==2.21
pynacl==1.5.0
scp==0.14.2
robotframework
robotframework-sshlibrary
Loading