Compare commits

...

39 Commits

Author SHA1 Message Date
Sheldan
0b80e351a5 [maven-release-plugin] prepare release sissi-1.4.7 2023-08-29 23:26:24 +02:00
Sheldan
3fe47ab682 [SIS-xxx] prepare for release 2023-08-29 23:25:56 +02:00
Sheldan
9b69fe5f2d [SIS-xxx] removing grafana credentials secret from helm chart 2023-08-29 23:25:03 +02:00
Sheldan
953eb1b4ff [maven-release-plugin] prepare for next development iteration 2023-08-28 00:06:52 +02:00
Sheldan
876dd82d87 [maven-release-plugin] prepare release sissi-1.4.6 2023-08-28 00:06:34 +02:00
Sheldan
454d66c71e [SIS-xxx] changing repository for bot deployment in k8s 2023-08-28 00:05:59 +02:00
Sheldan
87f72a077d [maven-release-plugin] prepare for next development iteration 2023-08-27 23:56:33 +02:00
Sheldan
62c27d1461 [maven-release-plugin] prepare release sissi-1.4.5 2023-08-27 23:56:29 +02:00
Sheldan
3b2bbb1dce [SIS-xxx] preparing for 1.4.5 release 2023-08-27 23:55:36 +02:00
Sheldan
8f40a95cbe [maven-release-plugin] prepare for next development iteration 2023-08-27 23:48:06 +02:00
Sheldan
5e9518de71 [maven-release-plugin] prepare release sissi-1.4.4 2023-08-27 23:48:02 +02:00
Sheldan
0ecab3b21b [SIS-xxx] preparing for 1.4.4 release 2023-08-27 23:42:57 +02:00
Sheldan
5e0e546eb4 [maven-release-plugin] prepare for next development iteration 2023-08-27 23:32:57 +02:00
Sheldan
ade0d4e57d [maven-release-plugin] prepare release sissi-1.4.3 2023-08-27 23:32:53 +02:00
Sheldan
26b08c593c [SIS-xxx] preparing for 1.4.2 release 2023-08-27 23:32:25 +02:00
Sheldan
888f2bd402 [SIS-xxx] fixing env file loading 2023-08-27 23:31:12 +02:00
Sheldan
eb369d9116 [maven-release-plugin] prepare for next development iteration 2023-08-27 23:17:25 +02:00
Sheldan
f2acdbdd81 [maven-release-plugin] prepare release sissi-1.4.2 2023-08-27 23:17:21 +02:00
Sheldan
d65f6d380f [SIS-xxx] introducing helm chart
restructuring
2023-08-27 23:12:01 +02:00
Sheldan
30d45952be [maven-release-plugin] prepare for next development iteration 2023-07-22 18:29:23 +02:00
Sheldan
068cbdb33c [maven-release-plugin] prepare release sissi-1.4.1 2023-07-22 18:29:19 +02:00
Sheldan
effca93b7a [SIS-xxx] upgrading to abstracto 1.5.1 2023-07-22 18:26:51 +02:00
Sheldan
ac815b5972 [SIS-22] fixing always url encoding the location for meetups 2023-07-10 01:31:21 +02:00
Sheldan
e6cccef48d [SIS-21] fixing meetup title not being escaped in meetup list response 2023-07-10 01:07:21 +02:00
Sheldan
4f35aa56f4 [maven-release-plugin] prepare for next development iteration 2023-07-09 23:44:53 +02:00
Sheldan
66204ca061 [maven-release-plugin] prepare release sissi-1.4.0 2023-07-09 23:44:49 +02:00
Sheldan
2960173517 [SIS-xxx] prepare for release
upgrading to java 17
upgrading to abstracto 1.5.0
2023-07-09 23:37:49 +02:00
Sheldan
b810c25613 [maven-release-plugin] prepare for next development iteration 2023-06-04 21:41:53 +02:00
Sheldan
583c2cc4be [maven-release-plugin] prepare release sissi-1.3.29 2023-06-04 21:41:49 +02:00
Sheldan
0c36564331 [SIS-xxx] prepare for release 2023-06-04 21:14:24 +02:00
Sheldan
d7bd458bed [SIS-xxx] limiting shown meetups to the ones created in the channel 2023-05-23 01:11:45 +02:00
Sheldan
bbcd77e3c8 [maven-release-plugin] prepare for next development iteration 2023-05-19 00:47:13 +02:00
Sheldan
ec166167f4 [maven-release-plugin] prepare release sissi-1.3.28 2023-05-19 00:47:09 +02:00
Sheldan
d5b4835d1f [SIS-xxx] preparing for release 2023-05-19 00:43:40 +02:00
Sheldan
41304551e4 [SIS-xxx] preparing for release 2023-05-19 00:25:39 +02:00
Sheldan
279959f256 [maven-release-plugin] prepare for next development iteration 2023-05-19 00:06:57 +02:00
Sheldan
7cc0e8e21c [maven-release-plugin] prepare release sissi-1.3.27 2023-05-19 00:06:53 +02:00
Sheldan
87e9122c41 [SIS-xxx] preparing for release 2023-05-19 00:06:18 +02:00
Sheldan
f22cc03e14 [maven-release-plugin] prepare for next development iteration 2023-05-18 23:22:59 +02:00
104 changed files with 2053 additions and 3308 deletions

View File

@@ -17,11 +17,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
- uses: actions/checkout@v3
with:
java-version: 1.8
persist-credentials: false
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: 17
- name: Build with Maven
run: mvn -s settings.xml -B install --file pom.xml
env:

View File

@@ -6,13 +6,14 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
persist-credentials: false
- name: Set up Java for publishing to GitHub Packages
uses: actions/setup-java@v1
uses: actions/setup-java@v3
with:
java-version: 1.8
distribution: 'corretto'
java-version: 17
- name: Load current version
id: version
run: echo "version=$(mvn -s settings.xml --file pom.xml -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
@@ -22,17 +23,26 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
user: Sheldan
token: ${{ secrets.ABSTRACTO_PAT }}
- name: Login to GitHub Packages Docker Registry
uses: docker/login-action@v1
- name: Login to Harbor
uses: docker/login-action@v2
with:
registry: docker.pkg.github.com
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push deployment container
registry: harbor.sheldan.dev
username: ${{ secrets.HARBOR_USERNAME }}
password: ${{ secrets.HARBOR_TOKEN }}
- name: Load env files
id: dotenv
uses: falti/dotenv-action@v1.0.4
with:
path: ./deployment/image-packaging/src/main/docker/.env
- name: Push container
working-directory: ./deployment/image-packaging/src/main/docker
run: docker-compose build && docker-compose push
env:
REGISTRY_PREFIX: docker.pkg.github.com/sheldan/sissi/
VERSION: ${{ env.version }}
ABSTRACTO_VERSION: 1.4.23
ABSTRACTO_REGISTRY_PREFIX: docker.pkg.github.com/sheldan/abstracto/
REGISTRY_PREFIX: ${{ steps.dotenv.outputs.registry_prefix }}
VERSION: ${{ steps.dotenv.outputs.version }}
- name: Helm push
working-directory: ./deployment/helm/
run: |-
helm registry login -u '${{ secrets.HARBOR_USERNAME }}' -p '${{ secrets.HARBOR_TOKEN }}' harbor.sheldan.dev
helm package sissi
helm push sissi*.tgz oci://harbor.sheldan.dev/sissi

37
Tiltfile Normal file
View File

@@ -0,0 +1,37 @@
allow_k8s_contexts('k8s-cluster')
load('ext://restart_process', 'docker_build_with_restart')
registry = 'harbor.sheldan.dev/sissi/'
local_resource(
'sissi-java-compile',
'mvn install && ' +
'rm -rf application/executable/target/jar-staging && ' +
'unzip -o application/executable/target/sissi-exec.jar -d application/executable/target/jar-staging && ' +
'rsync --delete --inplace --checksum -r application/executable/target/jar-staging/ application/executable/target/jar && ' +
'mkdir application/executable/target/jar/snapshots && ' +
'rsync --delete --inplace --checksum -r application/executable/target/jar/BOOT-INF/lib/*-SNAPSHOT.jar application/executable/target/jar/snapshots && ' +
'rm -f application/executable/target/jar/BOOT-INF/lib/*-SNAPSHOT.jar ',
deps=['pom.xml'])
docker_build_with_restart(
registry + 'sissi',
'./application/executable/target/jar',
entrypoint=['java', '-noverify', '-cp', '.:./lib/*', 'dev.sheldan.sissi.executable.Application'],
dockerfile='./application/executable/Dockerfile',
live_update=[
sync('./application/executable/target/jar/BOOT-INF/lib', '/app/lib'),
sync('./application/executable/target/jar/META-INF', '/app/META-INF'),
sync('./application/executable/target/jar/BOOT-INF/classes', '/app'),
sync('./application/executable/target/jar/snapshots', '/app/lib')
],
)
docker_build(registry + 'sissi-db-data', 'deployment/image-packaging/src/main/docker/db-data/')
docker_build(registry + 'sissi-template-data', 'deployment/image-packaging/src/main/docker/template-data/')
k8s_yaml(helm('deployment/helm/sissi', values=
['./../Sissi-environments/values/local/values.yaml',
'secrets://./../Sissi-environments/values/local/values.secrets.yaml']
))

View File

@@ -0,0 +1,10 @@
FROM amazoncorretto:17.0.8-alpine3.18
RUN apk add entr
WORKDIR /app
ADD BOOT-INF/lib/ /app/lib
ADD snapshots/ /app/lib
ADD META-INF /app/META-INF
ADD BOOT-INF/classes /app
ENTRYPOINT java -cp .:./lib/* dev.sheldan.sissi.executable.Application

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.application</groupId>
<artifactId>application</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>executable</artifactId>
@@ -14,6 +14,7 @@
</properties>
<build>
<finalName>sissi</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
@@ -75,6 +76,11 @@
<artifactId>webservices-impl</artifactId>
</dependency>
<dependency>
<groupId>dev.sheldan.abstracto.modules</groupId>
<artifactId>twitch-impl</artifactId>
</dependency>
<dependency>
<groupId>dev.sheldan.abstracto.modules</groupId>
<artifactId>utility-impl</artifactId>

View File

@@ -0,0 +1,18 @@
package dev.sheldan.sissi.executable;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((authorize) -> authorize
.anyRequest().permitAll());
return http.build();
}
}

View File

@@ -1,21 +0,0 @@
spring.datasource.url=jdbc:postgresql://localhost:5432/abstracto
spring.datasource.username=abstracto
spring.datasource.password=abstracto
spring.jpa.properties.hibernate.default_schema=abstracto
spring.quartz.jdbc.initialize-schema=never
spring.jpa.hibernate.ddl-auto = none
spring.jpa.show-sql = false
spring.jpa.properties.hibernate.format_sql = true
log4j.logger.org.hibernate.SQL=trace
log4j.logger.org.hibernate.type.descriptor.sql=trace
log4j.logger.org.hibernate.type=trace
management.metrics.tags.application=sissi
spring.security.user.name=abstracto
spring.security.user.password=password
spring.security.user.roles=USER
spring.application.name=Sissi

View File

@@ -1,11 +1,13 @@
spring.datasource.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
spring.datasource.username= ${DB_USER}
spring.datasource.password= ${DB_PASS}
spring.jpa.hibernate.default_schema=${DB_NAME}
spring.jpa.hibernate.default_schema=abstracto
spring.jpa.properties.hibernate.default_schema=abstracto
spring.quartz.jdbc.initialize-schema=never
management.metrics.tags.application=Sissi
spring.security.user.name= ${REST_USER_NAME}
spring.security.user.password= ${REST_PASSWORD}
spring.security.user.roles=USER
management.endpoint.health.probes.enabled=true
management.health.livenessState.enabled=true
management.health.readinessState.enabled=true
spring.application.name=Sissi
spring.application.name=Sissi
spring.main.allow-circular-references=true

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi</groupId>
<artifactId>sissi</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.application.module.custom</groupId>
<artifactId>sissi-customizations</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>application</artifactId>
<groupId>dev.sheldan.sissi.application</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.application</groupId>
<artifactId>sissi-modules</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.application</groupId>
<artifactId>sissi-modules</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -49,19 +49,19 @@ public class ListMeetups extends AbstractConditionableCommand {
@Override
public CompletableFuture<CommandResult> executeAsync(CommandContext commandContext) {
MessageToSend messageToSend = getMessageToSend(commandContext.getGuild().getIdLong());
MessageToSend messageToSend = getMessageToSend(commandContext.getGuild().getIdLong(), commandContext.getChannel().getIdLong());
return FutureUtils.toSingleFutureGeneric(channelService.sendMessageToSendToChannel(messageToSend, commandContext.getChannel()))
.thenApply(unused -> CommandResult.fromIgnored());
}
@Override
public CompletableFuture<CommandResult> executeSlash(SlashCommandInteractionEvent event) {
return interactionService.replyMessageToSend(getMessageToSend(event.getGuild().getIdLong()), event)
return interactionService.replyMessageToSend(getMessageToSend(event.getGuild().getIdLong(), event.getChannel().getIdLong()), event)
.thenApply(interactionHook -> CommandResult.fromSuccess());
}
private MessageToSend getMessageToSend(Long serverId) {
List<Meetup> meetups = meetupManagementServiceBean.getIncomingMeetups();
private MessageToSend getMessageToSend(Long serverId, Long channelId) {
List<Meetup> meetups = meetupManagementServiceBean.getIncomingMeetups(serverId, channelId);
List<MeetupListItemModel> listItems = meetups
.stream()
.map(MeetupListItemModel::fromMeetup)

View File

@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import lombok.*;
import javax.persistence.*;
import jakarta.persistence.*;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.models.database.ComponentPayload;
import dev.sheldan.sissi.module.meetup.model.database.embed.MeetupComponentId;
import lombok.*;
import javax.persistence.*;
import jakarta.persistence.*;
import java.time.Instant;
@Builder

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.sissi.module.meetup.model.database.embed.MeetupParticipationId;
import lombok.*;
import javax.persistence.*;
import jakarta.persistence.*;
import java.time.Instant;
@Builder

View File

@@ -2,8 +2,8 @@ package dev.sheldan.sissi.module.meetup.model.database.embed;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import java.io.Serializable;
@Embeddable

View File

@@ -2,8 +2,8 @@ package dev.sheldan.sissi.module.meetup.model.database.embed;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import java.io.Serializable;
@Embeddable

View File

@@ -16,6 +16,7 @@ public class MeetupMessageModel {
private String description;
private Instant meetupTime;
private String location;
private String decodedLocation;
private MemberDisplay organizer;
private Long meetupId;
private String yesId;

View File

@@ -12,7 +12,6 @@ import java.util.List;
@Repository
public interface MeetupRepository extends JpaRepository<Meetup, ServerSpecificId> {
List<Meetup> findByMeetupTimeLessThan(Instant date);
List<Meetup> findByMeetupTimeGreaterThan(Instant date);
List<Meetup> findByMeetupTimeGreaterThanAndState(Instant date, MeetupState state);
List<Meetup> findByMeetupTimeGreaterThanAndStateAndServer_IdAndMeetupChannel_Id(Instant date, MeetupState state, Long serverId, Long channelId);
List<Meetup> findByState(MeetupState state);
}

View File

@@ -176,11 +176,13 @@ public class MeetupServiceBean {
.stream()
.filter(meetupParticipator -> meetupParticipator.getDecision().equals(MeetupDecision.NO_TIME))
.collect(Collectors.toList());
String rawLocation = java.net.URLDecoder.decode(meetup.getLocation(), StandardCharsets.UTF_8);
return MeetupMessageModel
.builder()
.description(meetup.getDescription())
.topic(meetup.getTopic())
.location(meetup.getLocation())
.decodedLocation(rawLocation)
.noTimeId(meetup.getNoTimeButtonId())
.yesId(meetup.getYesButtonId())
.maybeId(meetup.getMaybeButtonId())

View File

@@ -72,12 +72,8 @@ public class MeetupManagementServiceBean {
return meetupRepository.findByState(MeetupState.CANCELLED);
}
public List<Meetup> getFutureMeetups() {
return meetupRepository.findByMeetupTimeGreaterThan(Instant.now());
}
public List<Meetup> getIncomingMeetups() {
return meetupRepository.findByMeetupTimeGreaterThanAndState(Instant.now(), MeetupState.CONFIRMED);
public List<Meetup> getIncomingMeetups(Long serverId, Long channelId) {
return meetupRepository.findByMeetupTimeGreaterThanAndStateAndServer_IdAndMeetupChannel_Id(Instant.now(), MeetupState.CONFIRMED, serverId, channelId);
}
public void deleteMeetups(List<Meetup> meetups) {

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.application</groupId>
<artifactId>application</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.application</groupId>
<artifactId>sissi-modules</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import lombok.*;
import javax.persistence.*;
import jakarta.persistence.*;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;

View File

@@ -2,7 +2,7 @@ package dev.sheldan.sissi.module.quotes.model.database;
import lombok.*;
import javax.persistence.*;
import jakarta.persistence.*;
@Builder
@Entity

View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>dev.sheldan.sissi</groupId>
<artifactId>deployment</artifactId>
<version>1.3.26</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<artifactId>docker-compose</artifactId>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assembly-docker-compose-configuration</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/docker-compose.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -1,19 +0,0 @@
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
<id>docker-compose</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<outputDirectory>./docker-compose</outputDirectory>
<directory>${project.basedir}/src/main/resources/</directory>
<includes>
<include>**/*</include>
</includes>
<filtered>true</filtered>
</fileSet>
</fileSets>
</assembly>

View File

@@ -1,35 +0,0 @@
COMPOSE_PROJECT_NAME=sissi
# database configuration
DATABASE_HOST=database
DATABASE_PORT=5432
DATABASE_USER=abstracto
DATABASE_NAME=abstracto
DATABASE_PASSWORD=abstracto
GRAFANA_DATABASE_PASSWORD=grafana
GRAFANA_DATABASE_USER=grafana
# deployment configuration, whether or not the container should execute the parts on startup
EXECUTE_DEPLOYMENT=true
EXECUTE_LIQUIBASE=true
EXECUTE_TEMPLATES=true
# whether or not remote debug should be enabled on the application
REMOTE_DEBUG=false
DEBUG_PORT=5005
TOMCAT_PORT=8080
# authentication for actuator endpoints
REST_USER_NAME=abstracto
REST_PASSWORD=password
# port grafana will be reachable
GRAFANA_PORT=3000
# port prometheus will be reachable
LOKI_PORT=3100
PROMETHEUS_PORT=9090
# port pg admin will be reachable
PGADMIN_PORT=5050
# default authentication for pg admin
PGADMIN_DEFAULT_EMAIL=sheldan@sheldan.dev
DEBRA_DONATION_NOTIFICATION_SERVER_ID=0
PGADMIN_DEFAULT_PASSWORD=admin
TOKEN=<INSERT_TOKEN>
YOUTUBE_API_KEY=<INSERT_KEY>
OPEN_WEATHER_MAP_API_KEY=<INSERT_KEY>
SISSI_VERSION=1.3.26

View File

@@ -1,10 +0,0 @@
# Setup for local docker-compose deployment
* Install docker [here](https://docs.docker.com/get-docker/)
* Install docker-compose [here](https://docs.docker.com/compose/install/).
* Execute `docker-compose build` in `image-packaging`.
* Fill out values in `.env` for token and database password. There are some default values, but token is required to be changed.
* Execute `fill-prometheus-file-sh` in order to populate the prometheus config with the correct password (https://github.com/prometheus/prometheus/issues/2357)
* Execute `docker-compose up` in this directory and wait for completion.
* Per default pgAdmin is available on `localhost:5050` with the configured user and password. It will contain a configuration in the servers list.

View File

@@ -1,148 +0,0 @@
version: '3.7'
services:
db:
image: ${REGISTRY_PREFIX}sissi_database:${SISSI_VERSION}
container_name: ${COMPOSE_PROJECT_NAME}_database
restart: always
environment:
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_USER: ${DATABASE_USER}
ports:
- "127.0.0.1:${DATABASE_PORT}:5432"
networks:
- sissi
volumes:
- db-data:/var/lib/postgresql/data
deployment_container:
container_name: ${COMPOSE_PROJECT_NAME}_deployment
image: ${REGISTRY_PREFIX}sissi_deployment:${SISSI_VERSION}
depends_on:
- db
environment:
DB_PASS: ${DATABASE_PASSWORD}
DB_HOST: ${COMPOSE_PROJECT_NAME}_${DATABASE_HOST}
DB_PORT: ${DATABASE_PORT}
DB_USER: ${DATABASE_USER}
DB_NAME: ${DATABASE_NAME}
ABSTRACTO_GRAFANA_DB_PASS: ${GRAFANA_DATABASE_PASSWORD}
ABSTRACTO_GRAFANA_DB_USER: ${GRAFANA_DATABASE_USER}
EXECUTE_DEPLOYMENT: ${EXECUTE_DEPLOYMENT}
EXECUTE_LIQUIBASE: ${EXECUTE_LIQUIBASE}
EXECUTE_TEMPLATES: ${EXECUTE_TEMPLATES}
LIQUIBASE_PATH: ${LIQUIBASE_PATH:-/liquibase}
POSTGRES_DRIVER_PATH: ${EXECUTE_DEPLOYMENT:-/postgres/driver.jar}
WAIT_HOSTS: ${COMPOSE_PROJECT_NAME}_${DATABASE_HOST}:${DATABASE_PORT}
networks:
- sissi
bot:
image: ${REGISTRY_PREFIX}sissi:${SISSI_VERSION}
depends_on:
- db
- deployment_container
restart: on-failure
container_name: ${COMPOSE_PROJECT_NAME}bot
environment:
TOKEN: ${TOKEN}
REMOTE_DEBUG: ${REMOTE_DEBUG}
DB_PASS: ${DATABASE_PASSWORD}
DEBRA_DONATION_NOTIFICATION_SERVER_ID: ${DEBRA_DONATION_NOTIFICATION_SERVER_ID}
DB_HOST: ${COMPOSE_PROJECT_NAME}_${DATABASE_HOST}
DB_PORT: ${DATABASE_PORT}
DB_USER: ${DATABASE_USER}
DB_NAME: ${DATABASE_NAME}
REST_USER_NAME: ${REST_USER_NAME}
REST_PASSWORD: ${REST_PASSWORD}
YOUTUBE_API_KEY: ${YOUTUBE_API_KEY}
OPEN_WEATHER_MAP_API_KEY: ${OPEN_WEATHER_MAP_API_KEY}
command: sh -c "while ping -c1 deployment_container &>/dev/null; do sleep 1; done; echo 'Liquibase finished!' && ./start.sh"
ports:
- "127.0.0.1:${DEBUG_PORT}:5005"
- "127.0.0.1:${TOMCAT_PORT}:8080"
networks:
- sissi
volumes:
- bot-logs:/logs
- ./config:/config
pgadmin:
container_name: ${COMPOSE_PROJECT_NAME}_pgadmin
image: ${REGISTRY_PREFIX}sissi_pg_admin:${SISSI_VERSION}
depends_on:
- db
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
ports:
- "127.0.0.1:${PGADMIN_PORT}:80"
restart: unless-stopped
networks:
- sissi
prometheus:
container_name: ${COMPOSE_PROJECT_NAME}_prometheus
image: ${REGISTRY_PREFIX}sissi_prometheus:${SISSI_VERSION}
depends_on:
- bot
ports:
- "127.0.0.1:${PROMETHEUS_PORT}:9090"
restart: unless-stopped
networks:
- sissi
volumes:
- ./res/prometheus-scrapper-password-filled:/etc/prometheus/micrometer_password
- prometheus-data:/prometheus
grafana:
container_name: ${COMPOSE_PROJECT_NAME}_grafana
image: ${REGISTRY_PREFIX}sissi_grafana:${SISSI_VERSION}
depends_on:
- prometheus
- bot
ports:
- "127.0.0.1:${GRAFANA_PORT}:3000"
restart: unless-stopped
environment:
DB_PASS: ${GRAFANA_DATABASE_PASSWORD}
DB_HOST: ${COMPOSE_PROJECT_NAME}_${DATABASE_HOST}
DB_PORT: ${DATABASE_PORT}
DB_USER: ${GRAFANA_DATABASE_USER}
DB_NAME: ${DATABASE_NAME}
PROMETHEUS_HOST: '${COMPOSE_PROJECT_NAME}_prometheus'
PROMETHEUS_PORT: 9090
LOKI_HOST: '${COMPOSE_PROJECT_NAME}_loki'
LOKI_PORT: ${LOKI_PORT}
volumes:
- grafana-user-data:/var/lib/grafana
networks:
- sissi
promtail:
container_name: ${COMPOSE_PROJECT_NAME}_promtail
image: ${REGISTRY_PREFIX}sissi_promtail:${SISSI_VERSION}
depends_on:
- bot
restart: unless-stopped
command: -config.file=/mnt/config/promtail-config.yaml
volumes:
- bot-logs:/logs
networks:
- sissi
loki:
container_name: ${COMPOSE_PROJECT_NAME}_loki
image: ${REGISTRY_PREFIX}sissi_loki:${SISSI_VERSION}
depends_on:
- promtail
command: -config.file=/mnt/config/loki-config.yaml
ports:
- "127.0.0.1:${LOKI_PORT}:3100"
restart: unless-stopped
networks:
- sissi
networks:
sissi:
driver: bridge
name: sissi-network
volumes:
db-data:
grafana-user-data:
prometheus-data:
bot-logs:

View File

@@ -1,5 +0,0 @@
#!/bin/bash
set -o allexport
source .env
set +o allexport
envsubst < res/prometheus-scrapper-password > res/prometheus-scrapper-password-filled

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,24 @@
apiVersion: v2
name: sissi
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.4.7
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.4.7"

View File

@@ -0,0 +1,4 @@
base_url: {{ $.Values.grafanaDeployment.grafana.host }}
username: {{ $.Values.grafanaDeployment.grafana.basicAuth.username }}
password: {{ $.Values.grafanaDeployment.grafana.basicAuth.password }}
folder_name: Sissi

View File

@@ -0,0 +1,929 @@
{
"dashboard": {
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(discord_api_interactions_total[1m]) /2",
"instant": false,
"legendFormat": "{{ "{{" }} action {{ "}}" }}",
"range": true,
"refId": "A"
}
],
"title": "Discord API Interaction",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(command_processed_total[1m]) / 2 ",
"instant": false,
"legendFormat": "{{ "{{" }}type{{ "}}" }}-{{ "{{" }}status{{ "}}" }}",
"range": true,
"refId": "A"
}
],
"title": "Commands processed",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(message_total[1m]) / 2",
"instant": false,
"legendFormat": "{{ "{{" }} action {{ "}}" }}",
"range": true,
"refId": "A"
}
],
"title": "Message events",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(okhttp_request_total[1m]) / 2",
"instant": false,
"legendFormat": "{{ "{{" }} http_code {{ "}}" }}",
"range": true,
"refId": "A"
}
],
"title": "HTTP Reponse codes",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 5,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(cache_evictions_total{application=\"$application\", cache=\"messages\"}[1m]) / 2",
"instant": false,
"legendFormat": "Cache evictions",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(cache_gets_total{application=\"$application\", cache=\"messages\"}[1m]) / 2",
"hide": false,
"instant": false,
"legendFormat": "Cache gets {{ "{{" }} result {{ "}}" }}",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(cache_puts_total{application=\"$application\", cache=\"messages\"}[1m]) / 2",
"hide": false,
"instant": false,
"legendFormat": "Cache puts",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(cache_removals{application=\"$application\", cache=\"messages\"}[1m]) / 2",
"hide": false,
"instant": false,
"legendFormat": "Cache removals",
"range": true,
"refId": "D"
}
],
"title": "Message cache statistic",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 6,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "discord_gateway_ping",
"instant": false,
"legendFormat": "Gateway ping",
"range": true,
"refId": "A"
}
],
"title": "Gateway ping",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 24
},
"id": 7,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(starboard_stars_total[1m]) / 2",
"instant": false,
"legendFormat": "{{ "{{" }} action {{ "}}" }}",
"range": true,
"refId": "A"
}
],
"title": "Starboard reactions",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 24
},
"id": 8,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(emote_usages_total[1m]) / 2",
"instant": false,
"legendFormat": "Used emotes",
"range": true,
"refId": "A"
}
],
"title": "Used tracked emotes",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 16,
"w": 24,
"x": 0,
"y": 32
},
"id": 9,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "increase(jda_event_total[1m]) / 2",
"instant": false,
"legendFormat": "{{ "{{" }} event_class {{ "}}" }}",
"range": true,
"refId": "A"
}
],
"title": "JDA Events",
"type": "timeseries"
}
],
"refresh": "",
"schemaVersion": 38,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"hide": 2,
"label": "",
"name": "application",
"query": "Sissi",
"skipUrlSync": false,
"type": "constant"
}
]
},
"time": {
"from": "now-30m",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Sissi Discord status",
"uid": "a7b3297d-972e-4dbd-9223-88d589817d34",
"version": 1,
"weekStart": ""
},
"overwrite": true
}

View File

@@ -0,0 +1,237 @@
{
"dashboard": {
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"description": "Overview over logging outputs of Sissi bot",
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "loki",
"uid": "loki"
},
"description": "Display logs and search for logs",
"gridPos": {
"h": 13,
"w": 24,
"x": 0,
"y": 0
},
"id": 4,
"options": {
"dedupStrategy": "none",
"enableLogDetails": true,
"prettifyLogMessage": false,
"showCommonLabels": false,
"showLabels": false,
"showTime": false,
"sortOrder": "Ascending",
"wrapLogMessage": true
},
"targets": [
{
"datasource": {
"type": "loki",
"uid": "loki"
},
"editorMode": "builder",
"expr": "{app=\"sissi\"} |= `$logFilter`",
"maxLines": 5000,
"queryType": "range",
"refId": "A"
}
],
"title": "Sissi Logs",
"type": "logs"
},
{
"datasource": {
"type": "loki",
"uid": "loki"
},
"description": "Any line on level ERROR",
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 13
},
"id": 2,
"options": {
"dedupStrategy": "none",
"enableLogDetails": true,
"prettifyLogMessage": false,
"showCommonLabels": false,
"showLabels": false,
"showTime": false,
"sortOrder": "Ascending",
"wrapLogMessage": true
},
"targets": [
{
"datasource": {
"type": "loki",
"uid": "loki"
},
"editorMode": "code",
"expr": "{app=\"sissi\"} |= \"ERROR\"",
"maxLines": 5000,
"queryType": "range",
"refId": "A"
}
],
"title": "Sissi Error Logs",
"type": "logs"
},
{
"datasource": {
"type": "loki",
"uid": "loki"
},
"description": "Number of log events",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 13
},
"id": 3,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "loki",
"uid": "loki"
},
"editorMode": "code",
"expr": "rate({app=\"sissi\"}[$__interval])",
"queryType": "range",
"refId": "A"
}
],
"title": "Log Rate",
"type": "timeseries"
}
],
"refresh": "",
"schemaVersion": 38,
"style": "dark",
"tags": [],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "",
"value": ""
},
"description": "What to search in the logs",
"hide": 0,
"name": "logFilter",
"options": [
{
"selected": true,
"text": "",
"value": ""
}
],
"query": "",
"skipUrlSync": false,
"type": "textbox"
}
]
},
"time": {
"from": "now-30m",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Sissi Logs",
"uid": "a5b429af-860c-4438-a575-24bed6dcba09",
"version": 2,
"weekStart": ""
},
"overwrite": true
}

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "sissi.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "sissi.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "sissi.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "sissi.labels" -}}
helm.sh/chart: {{ include "sissi.chart" . }}
{{ include "sissi.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "sissi.selectorLabels" -}}
app.kubernetes.io/name: {{ include "sissi.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "sissi.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "sissi.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: Secret
metadata:
name: api-keys
data:
discordToken: {{ $.Values.apiKeys.discord.token | b64enc }} # b64enc is needed, because a stringData secret field cannot hold numeric values
youtubeApiKey: {{ $.Values.apiKeys.youtube.apiKey | b64enc }}
twitchClientId: {{ $.Values.apiKeys.twitch.clientId | b64enc }}
twitchSecret: {{ $.Values.apiKeys.twitch.secret | b64enc }}
openWeatherMapApiKey: {{ $.Values.apiKeys.openWeatherMap.apiKey | b64enc }}

View File

@@ -0,0 +1,69 @@
{{- if .Values.dbConfigDeployment.enabled -}}
apiVersion: batch/v1
kind: Job
metadata:
{{- $deploymentJobName := print ((include "sissi.fullname" .) | trunc 39) "-db-config-deployment-job" }}
name: {{ $deploymentJobName | trunc 63 }}
annotations:
"helm.sh/hook": post-install
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: db-config-deployment-job
image: "{{ $.Values.dbConfigDeployment.repository }}/{{ $.Values.dbConfigDeployment.image }}:{{ $.Values.dbConfigDeployment.tag | default .Chart.AppVersion}}"
imagePullPolicy: {{ $.Values.dbConfigDeployment.pullPolicy }}
args:
- "/var/db-config/"
env:
- name: DB_PASS
valueFrom:
secretKeyRef:
name: db-credentials
key: dbPassword
- name: DB_HOST
valueFrom:
secretKeyRef:
name: db-credentials
key: dbHost
- name: DB_PORT
valueFrom:
secretKeyRef:
name: db-credentials
key: dbPort
- name: DB_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: dbUser
- name: DB_NAME
valueFrom:
secretKeyRef:
name: db-credentials
key: dbName
- name: DB_SCHEME
value: "abstracto"
volumeMounts:
- mountPath: "/var/db-config/"
name: database-config-mount
restartPolicy: Never
initContainers:
- name: database-config-data
image: "{{ $.Values.dbConfigDeploymentData.repository }}/{{ $.Values.dbConfigDeploymentData.image }}:{{ $.Values.dbConfigDeploymentData.tag | default .Chart.AppVersion}}"
imagePullPolicy: {{ $.Values.dbConfigDeploymentData.pullPolicy }}
volumeMounts:
- mountPath: "/var/run-config"
name: database-config-mount
volumes:
- name: database-config-mount
emptyDir: {}
backoffLimit: 4
{{- end }}

View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
data:
dbPassword: {{ $.Values.dbCredentials.password | b64enc }} # b64enc is needed, because a stringData secret field cannot hold numeric values
dbUser: {{ $.Values.dbCredentials.userName | b64enc }}
dbHost: {{ $.Values.dbCredentials.host | b64enc }}
dbPort: {{ $.Values.dbCredentials.port | b64enc }}
dbName: {{ $.Values.dbCredentials.name | b64enc }}

View File

@@ -0,0 +1,116 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "sissi.fullname" . }}
labels:
{{- include "sissi.labels" . | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels:
{{- include "sissi.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "sissi.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "sissi.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.bot.repository }}/{{ .Values.bot.image }}:{{ .Values.bot.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.bot.pullPolicy }}
env:
- name: DB_PASS
valueFrom:
secretKeyRef:
name: db-credentials
key: dbPassword
- name: DB_HOST
valueFrom:
secretKeyRef:
name: db-credentials
key: dbHost
- name: DB_PORT
valueFrom:
secretKeyRef:
name: db-credentials
key: dbPort
- name: DB_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: dbUser
- name: DB_NAME
valueFrom:
secretKeyRef:
name: db-credentials
key: dbName
- name: DEBRA_DONATION_NOTIFICATION_SERVER_ID
value: "297910194841583616"
- name: TOKEN
valueFrom:
secretKeyRef:
name: api-keys
key: discordToken
- name: YOUTUBE_API_KEY
valueFrom:
secretKeyRef:
name: api-keys
key: youtubeApiKey
- name: OPEN_WEATHER_MAP_API_KEY
valueFrom:
secretKeyRef:
name: api-keys
key: openWeatherMapApiKey
- name: TWITCH_CLIENT_ID
valueFrom:
secretKeyRef:
name: api-keys
key: twitchClientId
- name: TWITCH_SECRET
valueFrom:
secretKeyRef:
name: api-keys
key: twitchSecret
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
livenessProbe:
httpGet:
path: /actuator/health/liveness
port: 8080
initialDelaySeconds: 60
periodSeconds: 3
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: 8080
initialDelaySeconds: 60
periodSeconds: 3
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@@ -0,0 +1,42 @@
{{- if $.Values.grafanaDeployment.enabled }}
apiVersion: batch/v1
kind: Job
metadata:
name: grafana-dashboard-deployment-job
annotations:
"helm.sh/hook": post-install
"helm.sh/hook-weight": "-4"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: template-deployment-job
image: "{{ $.Values.grafanaDeployment.repository }}/{{ $.Values.grafanaDeployment.image }}:{{ $.Values.grafanaDeployment.tag }}"
imagePullPolicy: {{ $.Values.grafanaDeployment.pullPolicy }}
args:
- "/var/userconfig"
volumeMounts:
- mountPath: "/var/userconfig"
name: grafana-dashboard-config
readOnly: true
volumes:
- name: grafana-dashboard-config
secret:
secretName: grafana-dashboard-config
restartPolicy: Never
backoffLimit: 4
---
apiVersion: v1
kind: Secret
metadata:
name: grafana-dashboard-config
data:
config.yaml: {{ (tpl (.Files.Get "configuration/grafana/config.yaml") . ) | b64enc }}
log-dashboard.json: {{ (tpl (.Files.Get "configuration/grafana/sissi-log-dashboard.json") . ) | b64enc }}
discord-dashboard.json: {{ (tpl (.Files.Get "configuration/grafana/sissi-discord-dashboard.json") . ) | b64enc }}
{{- end }}

View File

@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "sissi.fullname" . }}
labels:
{{- include "sissi.labels" . | nindent 4 }}
{{- with .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "sissi.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,12 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "sissi.serviceAccountName" . }}
labels:
{{- include "sissi.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,69 @@
{{- if .Values.dbConfigDeployment.enabled -}}
apiVersion: batch/v1
kind: Job
metadata:
{{- $deploymentJobName := print ((include "sissi.fullname" .) | trunc 39) "-template-deployment-job" }}
name: {{ $deploymentJobName | trunc 63 }}
annotations:
"helm.sh/hook": post-install
"helm.sh/hook-weight": "-4"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: template-deployment-job
image: "{{ $.Values.templateDeployment.repository }}/{{ $.Values.templateDeployment.image }}:{{ $.Values.templateDeployment.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ $.Values.templateDeployment.pullPolicy }}
args:
- "/var/template-config/"
env:
- name: DB_PASS
valueFrom:
secretKeyRef:
name: db-credentials
key: dbPassword
- name: DB_HOST
valueFrom:
secretKeyRef:
name: db-credentials
key: dbHost
- name: DB_PORT
valueFrom:
secretKeyRef:
name: db-credentials
key: dbPort
- name: DB_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: dbUser
- name: DB_NAME
valueFrom:
secretKeyRef:
name: db-credentials
key: dbName
- name: DB_SCHEME
value: "abstracto."
volumeMounts:
- mountPath: "/var/template-config/"
name: template-config-mount
initContainers:
- name: database-config-data
image: "{{ $.Values.templateDeploymentData.repository }}/{{ $.Values.templateDeploymentData.image }}:{{ $.Values.templateDeploymentData.tag | default .Chart.AppVersion}}"
imagePullPolicy: {{ $.Values.templateDeploymentData.pullPolicy }}
volumeMounts:
- mountPath: "/var/run-config"
name: template-config-mount
volumes:
- name: template-config-mount
emptyDir: {}
restartPolicy: Never
backoffLimit: 4
{{- end }}

View File

@@ -0,0 +1,117 @@
# Default values for sissi.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
bot:
repository: harbor.sheldan.dev/sissi
pullPolicy: IfNotPresent
image: sissi
tag: 1.4.7
templateDeployment:
enabled: true
repository: harbor.sheldan.dev/abstracto
pullPolicy: Always
image: abstracto-template-deployment
tag: 1.5.5
templateDeploymentData:
repository: harbor.sheldan.dev/sissi
pullPolicy: Always
image: sissi-template-data
tag: 1.4.7
dbConfigDeployment:
enabled: true
repository: harbor.sheldan.dev/abstracto
pullPolicy: Always
image: abstracto-db-deployment
tag: 1.5.5
dbConfigDeploymentData:
repository: harbor.sheldan.dev/sissi
pullPolicy: Always
image: sissi-db-data
tag: 1.4.7
dbCredentials:
host:
port:
userName:
password:
name:
grafanaDeployment:
repository: harbor.sheldan.dev/grafana-tools
pullPolicy: Always
image: grafana-dashboard-deployment
tag: 0.0.2
enabled: true
grafana:
host:
basicAuth:
username:
password:
apiKeys:
discord:
token:
youtube:
apiKey:
openWeatherMap:
apiKey:
twitch:
secret:
clientId:
imagePullSecrets:
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 8080
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: "/actuator/prometheus"
prometheus.io/port: "8080"
resources:
limits:
cpu:
memory:
requests:
cpu:
memory:
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi</groupId>
<artifactId>deployment</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -49,7 +49,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>core.zip</destFileName>
</artifactItem>
@@ -59,17 +59,27 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>assignable-roles.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>dev.sheldan.abstracto-templates.templates</groupId>
<artifactId>twitch</artifactId>
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>twitch.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>dev.sheldan.abstracto-templates.templates</groupId>
<artifactId>experience-tracking</artifactId>
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>experience-tracking.zip</destFileName>
</artifactItem>
@@ -79,7 +89,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>modmail.zip</destFileName>
</artifactItem>
@@ -89,7 +99,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>utility.zip</destFileName>
</artifactItem>
@@ -99,7 +109,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>logging.zip</destFileName>
</artifactItem>
@@ -109,7 +119,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>webservices.zip</destFileName>
</artifactItem>
@@ -119,7 +129,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>remind.zip</destFileName>
</artifactItem>
@@ -129,7 +139,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>suggestion.zip</destFileName>
</artifactItem>
@@ -139,7 +149,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>link-embed.zip</destFileName>
</artifactItem>
@@ -149,7 +159,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>starboard.zip</destFileName>
</artifactItem>
@@ -159,7 +169,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>moderation.zip</destFileName>
</artifactItem>
@@ -169,7 +179,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>entertainment.zip</destFileName>
</artifactItem>
@@ -179,7 +189,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>custom-command.zip</destFileName>
</artifactItem>
@@ -189,7 +199,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>statistic.zip</destFileName>
</artifactItem>
@@ -200,7 +210,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>quotes.zip</destFileName>
</artifactItem>
@@ -210,7 +220,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>meetup.zip</destFileName>
</artifactItem>
@@ -220,7 +230,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>debra.zip</destFileName>
</artifactItem>
@@ -232,7 +242,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>moderation-custom.zip</destFileName>
</artifactItem>
@@ -244,7 +254,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>core.zip</destFileName>
</artifactItem>
@@ -254,7 +264,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>link-embed.zip</destFileName>
</artifactItem>
@@ -264,17 +274,27 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>experience-tracking.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>dev.sheldan.abstracto-templates.translations</groupId>
<artifactId>twitch</artifactId>
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>twitch.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>dev.sheldan.abstracto-templates.translations</groupId>
<artifactId>modmail</artifactId>
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>modmail.zip</destFileName>
</artifactItem>
@@ -284,7 +304,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>assignable-roles.zip</destFileName>
</artifactItem>
@@ -294,7 +314,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>utility.zip</destFileName>
</artifactItem>
@@ -304,7 +324,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>webservices.zip</destFileName>
</artifactItem>
@@ -314,7 +334,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>remind.zip</destFileName>
</artifactItem>
@@ -324,7 +344,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>suggestion.zip</destFileName>
</artifactItem>
@@ -334,7 +354,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>starboard.zip</destFileName>
</artifactItem>
@@ -344,7 +364,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>moderation.zip</destFileName>
</artifactItem>
@@ -354,7 +374,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>entertainment.zip</destFileName>
</artifactItem>
@@ -364,7 +384,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>logging.zip</destFileName>
</artifactItem>
@@ -374,7 +394,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>custom-command.zip</destFileName>
</artifactItem>
@@ -384,7 +404,7 @@
<version>${abstracto.templates.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>statistic.zip</destFileName>
</artifactItem>
@@ -396,7 +416,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>quotes.zip</destFileName>
</artifactItem>
@@ -406,7 +426,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>meetup.zip</destFileName>
</artifactItem>
@@ -416,7 +436,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>debra.zip</destFileName>
</artifactItem>
@@ -430,7 +450,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>scheduling.zip</destFileName>
</artifactItem>
@@ -441,7 +461,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>core.zip</destFileName>
</artifactItem>
@@ -452,10 +472,21 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>link-embed.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>dev.sheldan.abstracto.modules</groupId>
<artifactId>twitch-impl</artifactId>
<version>${abstracto.version}</version>
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>twitch.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>dev.sheldan.abstracto.modules</groupId>
<artifactId>experience-tracking-impl</artifactId>
@@ -463,7 +494,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>experience-tracking.zip</destFileName>
</artifactItem>
@@ -474,7 +505,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>logging.zip</destFileName>
</artifactItem>
@@ -485,7 +516,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>starboard.zip</destFileName>
</artifactItem>
@@ -496,7 +527,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>assignable-roles.zip</destFileName>
</artifactItem>
@@ -507,7 +538,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>utility.zip</destFileName>
</artifactItem>
@@ -518,7 +549,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>modmail.zip</destFileName>
</artifactItem>
@@ -529,7 +560,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>utility.zip</destFileName>
</artifactItem>
@@ -540,7 +571,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>webservices.zip</destFileName>
</artifactItem>
@@ -551,7 +582,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>remind.zip</destFileName>
</artifactItem>
@@ -562,7 +593,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>suggestion.zip</destFileName>
</artifactItem>
@@ -573,7 +604,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>moderation.zip</destFileName>
</artifactItem>
@@ -584,7 +615,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>entertainment.zip</destFileName>
</artifactItem>
@@ -595,7 +626,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>custom-command.zip</destFileName>
</artifactItem>
@@ -608,7 +639,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>quotes.zip</destFileName>
</artifactItem>
@@ -619,7 +650,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>meetup.zip</destFileName>
</artifactItem>
@@ -630,7 +661,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>debra.zip</destFileName>
</artifactItem>
@@ -641,7 +672,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>statistic.zip</destFileName>
</artifactItem>
@@ -654,7 +685,7 @@
<classifier>liquibase</classifier>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/liquibase-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/db-data/liquibase-artifacts/</outputDirectory>
<destFileName>moderation-custom.zip</destFileName>
</artifactItem>
@@ -664,7 +695,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>moderation-custom.zip</destFileName>
</artifactItem>
@@ -676,7 +707,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>moderation-template-overrides.zip</destFileName>
</artifactItem>
@@ -686,7 +717,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>experience-template-overrides.zip</destFileName>
</artifactItem>
@@ -696,7 +727,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/template-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/template-artifacts/</outputDirectory>
<destFileName>logging-template-overrides.zip</destFileName>
</artifactItem>
@@ -708,7 +739,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>moderation-translation-overrides.zip</destFileName>
</artifactItem>
@@ -718,7 +749,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>experience-translation-overrides.zip</destFileName>
</artifactItem>
@@ -728,7 +759,7 @@
<version>${project.version}</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${file.basedir}/deployment/translation-artifacts/</outputDirectory>
<outputDirectory>${file.basedir}/template-data/translation-artifacts/</outputDirectory>
<destFileName>logging-translation-overrides.zip</destFileName>
</artifactItem>

View File

@@ -1,6 +1,2 @@
PROMTAIL_VERSION=2.2.1
LOKI_VERSION=2.2.1
PROMETHEUS_VERSION=v2.28.1
PG_ADMIN_VERSION=5.5
GRAFANA_VERSION=8.0.6
POSTGRES_VERSION=13.3-buster
REGISTRY_PREFIX=harbor.sheldan.dev/sissi/
VERSION=1.4.7

View File

@@ -1,5 +0,0 @@
ARG POSTGRES_VERSION
FROM postgres:${POSTGRES_VERSION}
MAINTAINER Sheldan
VOLUME /tmp
ADD sql/init.sql /docker-entrypoint-initdb.d/init.sql

View File

@@ -1 +0,0 @@
CREATE SCHEMA abstracto

View File

@@ -0,0 +1,6 @@
FROM alpine:3.18.0
MAINTAINER Sheldan
ADD config/ /var/db-config/
ADD liquibase-artifacts /var/db-config/liquibase-zips
CMD ["/bin/sh", "/var/db-config/move.sh"]

View File

@@ -1,17 +1,4 @@
{
"template_artifacts": [
"core","starboard", "link-embed", "moderation", "entertainment", "custom-command", "utility", "webservices", "remind", "suggestion", "modmail", "assignable-roles", "experience-tracking", "logging", "statistic",
"quotes", "meetup", "debra",
"moderation-custom",
"moderation-template-overrides", "experience-template-overrides", "logging-template-overrides"
],
"translation_artifacts": [
"core",
"starboard", "link-embed", "moderation", "entertainment", "custom-command", "utility", "webservices", "suggestion", "remind", "modmail", "assignable-roles", "experience-tracking", "logging", "statistic",
"quotes", "meetup", "debra",
"moderation-custom",
"moderation-translation-overrides", "experience-translation-overrides", "logging-translation-overrides"
],
"liquibase_artifacts": [
{ "zip": "scheduling", "file": "scheduling-changeLog.xml" },
{ "zip": "core", "file": "core-changeLog.xml" },
@@ -31,6 +18,7 @@
{ "zip": "remind", "file": "remind-changeLog.xml"},
{ "zip": "suggestion", "file": "suggestion-changeLog.xml"},
{ "zip": "modmail", "file": "modMail-changeLog.xml"},
{ "zip": "twitch", "file": "twitch-changeLog.xml"},
{ "zip": "assignable-roles", "file": "assignableRoles-changeLog.xml"},
{ "zip": "moderation-custom", "file": "moderation-custom-changeLog.xml"}
]

View File

@@ -0,0 +1,2 @@
#!/bin/sh
mv /var/db-config/* /var/run-config/

View File

@@ -1,8 +0,0 @@
ARG ABSTRACTO_REGISTRY_PREFIX
ARG ABSTRACTO_VERSION=latest
FROM ${ABSTRACTO_REGISTRY_PREFIX}abstracto_deployment:${ABSTRACTO_VERSION:-latest}
MAINTAINER Sheldan
ADD template-artifacts /templates
ADD translation-artifacts /translations
ADD liquibase-artifacts /liquibase-zips
ADD config /

View File

@@ -5,46 +5,11 @@ services:
build:
context: sissi
image: ${REGISTRY_PREFIX}sissi:${VERSION:-latest}
database:
db-data:
build:
context: database
args:
POSTGRES_VERSION: ${POSTGRES_VERSION}
image: ${REGISTRY_PREFIX}sissi_database:${VERSION:-latest}
pg_admin:
context: db-data
image: ${REGISTRY_PREFIX}sissi-db-data:${VERSION:-latest}
template-data:
build:
context: pgAdmin
args:
PG_ADMIN_VERSION: ${PG_ADMIN_VERSION}
image: ${REGISTRY_PREFIX}sissi_pg_admin:${VERSION:-latest}
deployment_container:
build:
context: deployment
args:
ABSTRACTO_REGISTRY_PREFIX: ${ABSTRACTO_REGISTRY_PREFIX}
ABSTRACTO_VERSION: ${ABSTRACTO_VERSION}
image: ${REGISTRY_PREFIX}sissi_deployment:${VERSION:-latest}
prometheus:
build:
context: prometheus
args:
PROMETHEUS_VERSION: ${PROMETHEUS_VERSION}
image: ${REGISTRY_PREFIX}sissi_prometheus:${VERSION:-latest}
grafana:
build:
context: grafana
args:
GRAFANA_VERSION: ${GRAFANA_VERSION}
image: ${REGISTRY_PREFIX}sissi_grafana:${VERSION:-latest}
promtail:
build:
context: promtail
args:
PROMTAIL_VERSION: ${PROMTAIL_VERSION}
image: ${REGISTRY_PREFIX}sissi_promtail:${VERSION:-latest}
loki:
build:
context: loki
args:
LOKI_VERSION: ${LOKI_VERSION}
image: ${REGISTRY_PREFIX}sissi_loki:${VERSION:-latest}
context: template-data
image: ${REGISTRY_PREFIX}sissi-template-data:${VERSION:-latest}

View File

@@ -1,6 +0,0 @@
ARG GRAFANA_VERSION
FROM grafana/grafana:${GRAFANA_VERSION}
MAINTAINER Sheldan
ADD ./provisioning /etc/grafana/provisioning
ADD ./config.ini /etc/grafana/config.ini
ADD ./dashboards /var/lib/grafana/dashboards

View File

@@ -1,2 +0,0 @@
[paths]
provisioning = conf/provisioning

View File

@@ -1,65 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 4,
"links": [],
"panels": [
{
"datasource": "Loki",
"gridPos": {
"h": 14,
"w": 24,
"x": 0,
"y": 0
},
"id": 2,
"options": {
"dedupStrategy": "none",
"enableLogDetails": true,
"showLabels": false,
"showTime": false,
"sortOrder": "Descending",
"wrapLogMessage": true
},
"targets": [
{
"expr": "{job=\"sissi-logs\", filename=\"/logs/log.log\"}",
"queryType": "randomWalk",
"refId": "A"
}
],
"title": "Sissi logs",
"type": "logs"
}
],
"refresh": "",
"schemaVersion": 30,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-3h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Sissi logs",
"uid": "1uGb0q4nz",
"version": 2
}

View File

@@ -1,6 +0,0 @@
- name: 'sissi-bot-dashboards'
org_id: 1
folder: ''
type: 'file'
options:
folder: '/var/lib/grafana/dashboards'

View File

@@ -1,29 +0,0 @@
apiVersion: 1
datasources:
- access: 'proxy'
editable: true
is_default: true
name: 'prometheus'
org_id: 1
type: 'prometheus'
url: 'http://${PROMETHEUS_HOST}:${PROMETHEUS_PORT}'
version: 1
- name: 'postgres-db'
type: postgres
access: 'proxy'
url: '${DB_HOST}:${DB_PORT}'
password: '${DB_PASS}'
user: '${DB_USER}'
database: '${DB_NAME}'
basicAuth: false
is_default: false
jsonData:
sslmode: 'disable'
version: 1
editable: false
- name: Loki
type: loki
access: proxy
url: 'http://${LOKI_HOST}:${LOKI_PORT}'
jsonData:
maxLines: 2000

View File

@@ -1,4 +0,0 @@
ARG LOKI_VERSION
FROM grafana/loki:${LOKI_VERSION}
MAINTAINER Sheldan
ADD loki.yml /mnt/config/loki-config.yaml

View File

@@ -1,66 +0,0 @@
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
ingester:
wal:
enabled: true
dir: /tmp/wal
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h
max_chunk_age: 1h
chunk_target_size: 1048576
chunk_retain_period: 30s
max_transfer_retries: 0
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /tmp/loki/boltdb-shipper-active
cache_location: /tmp/loki/boltdb-shipper-cache
cache_ttl: 24h
shared_store: filesystem
filesystem:
directory: /tmp/loki/chunks
compactor:
working_directory: /tmp/loki/boltdb-shipper-compactor
shared_store: filesystem
limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: true
retention_period: 360h
ruler:
storage:
type: local
local:
directory: /tmp/loki/rules
rule_path: /tmp/loki/rules-temp
ring:
kvstore:
store: inmemory

View File

@@ -1,5 +0,0 @@
ARG PG_ADMIN_VERSION
FROM dpage/pgadmin4:${PG_ADMIN_VERSION}
MAINTAINER Sheldan
VOLUME /tmp
ADD config/servers.json /pgadmin4/servers.json

View File

@@ -1,13 +0,0 @@
{
"Servers": {
"1": {
"Name": "Sissi database",
"Group": "Server Group 1",
"Port": 5432,
"Username": "abstracto",
"Host": "sissi_database",
"SSLMode": "prefer",
"MaintenanceDB": "postgres"
}
}
}

View File

@@ -1,4 +0,0 @@
ARG PROMETHEUS_VERSION
FROM prom/prometheus:${PROMETHEUS_VERSION}
MAINTAINER Sheldan
ADD prometheus.yml /etc/prometheus/prometheus.yml

View File

@@ -1,17 +0,0 @@
global:
scrape_interval: 10s
scrape_timeout: 10s
evaluation_interval: 1m
scrape_configs:
- job_name: sissi_micrometer
honor_timestamps: true
scrape_interval: 5s
scrape_timeout: 5s
metrics_path: /actuator/prometheus
scheme: http
static_configs:
- targets:
- sissibot:8080
basic_auth:
username: "abstracto"
password_file: /etc/prometheus/micrometer_password

View File

@@ -1,4 +0,0 @@
ARG PROMTAIL_VERSION
FROM grafana/promtail:${PROMTAIL_VERSION}
MAINTAINER Sheldan
ADD promtail.yaml /mnt/config/promtail-config.yaml

View File

@@ -1,17 +0,0 @@
server:
disable: true
positions:
filename: /tmp/positions.yaml
clients:
- url: http://sissi_loki:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: sissi-logs
__path__: /logs/*.log

View File

@@ -1,10 +1,8 @@
FROM openjdk:8-jdk-alpine
FROM openjdk:17-alpine
MAINTAINER Sheldan
VOLUME /tmp
ADD bot/app.jar /app.jar
ADD config/* /config/
VOLUME ["/config"]
VOLUME ["/logs"]
ADD wrapper/*.sh /
RUN chmod +x /start.sh
ADD bot/app.jar /app.jar
CMD ["/start.sh"]

View File

@@ -0,0 +1,7 @@
FROM alpine:3.18.0
MAINTAINER Sheldan
ADD config /var/template-config/
ADD template-artifacts /var/template-config/templates
ADD translation-artifacts /var/template-config/translations
CMD ["/bin/sh", "/var/template-config/move.sh"]

View File

@@ -0,0 +1,17 @@
{
"template_artifacts": [
"core","starboard", "link-embed", "moderation", "entertainment", "custom-command", "utility", "webservices", "remind", "suggestion", "modmail", "assignable-roles", "experience-tracking", "logging", "statistic", "twitch",
"quotes", "meetup", "debra",
"moderation-custom",
"moderation-template-overrides", "experience-template-overrides", "logging-template-overrides"
],
"translation_artifacts": [
"core",
"starboard", "link-embed", "moderation", "entertainment", "custom-command", "utility", "webservices", "suggestion", "remind", "modmail", "assignable-roles", "experience-tracking", "logging", "statistic", "twitch",
"quotes", "meetup", "debra",
"moderation-custom",
"moderation-translation-overrides", "experience-translation-overrides", "logging-translation-overrides"
]
}

View File

@@ -0,0 +1,2 @@
#!/bin/sh
mv /var/template-config/* /var/run-config/

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi</groupId>
<artifactId>sissi</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -11,7 +11,6 @@
<packaging>pom</packaging>
<modules>
<module>docker-compose</module>
<module>image-packaging</module>
</modules>

14
pom.xml
View File

@@ -6,22 +6,22 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<version>3.1.1</version>
<relativePath />
</parent>
<groupId>dev.sheldan.sissi</groupId>
<artifactId>sissi</artifactId>
<name>Sissi</name>
<version>1.3.26</version>
<version>1.4.7</version>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<!-- edit in release.yml as well -->
<!-- when releasing a new bot version, update the .env as well-->
<abstracto.version>1.4.23</abstracto.version>
<abstracto.templates.version>1.4.16</abstracto.templates.version>
<abstracto.version>1.5.5</abstracto.version>
<abstracto.templates.version>1.4.18</abstracto.templates.version>
</properties>
<modules>
@@ -57,7 +57,7 @@
<scm>
<url>https://maven.pkg.github.com/Sheldan/Sissi</url>
<developerConnection>scm:git:git@github.com:Sheldan/Sissi.git</developerConnection>
<tag>sissi-1.3.26</tag>
<tag>sissi-1.4.7</tag>
</scm>
</project>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi</groupId>
<artifactId>sissi</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>customization-templates</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>sissi-templates</artifactId>
<groupId>dev.sheldan.sissi.templates</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>module-templates</artifactId>
<groupId>dev.sheldan.sissi.templates</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>module-templates</artifactId>
<groupId>dev.sheldan.sissi.templates</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -8,6 +8,6 @@ DTSTART:${meetupIcsModel.icsFormattedStartTime}
DTEND:${meetupIcsModel.icsFormattedEndTime}
SUMMARY:${topic}
<#if description?has_content>DESCRIPTION:${description}</#if>
<#if location?? && location != "%22%22">LOCATION:${location}</#if>
<#if decodedLocation?? && decodedLocation != "">LOCATION:${decodedLocation}</#if>
END:VEVENT
END:VCALENDAR

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>sissi-templates</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>module-templates</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>templates</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>template-overrides</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>template-overrides</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>template-overrides</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>sissi-templates</artifactId>
<groupId>dev.sheldan.sissi.templates</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates.translations</groupId>
<artifactId>customization-translations</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>sissi-translations</artifactId>
<groupId>dev.sheldan.sissi.templates.translations</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<artifactId>module-translations</artifactId>
<groupId>dev.sheldan.sissi.templates.translations</groupId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates.translations</groupId>
<artifactId>module-translations</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -1,3 +1,3 @@
Time: ${time} ${timeRelative}
Link: [here](${link})
Meetup Topic: `${topic}`
Meetup Topic: `${topic?json_string}`

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates.translations</groupId>
<artifactId>sissi-translations</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates.translations</groupId>
<artifactId>module-translations</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>dev.sheldan.sissi.templates</groupId>
<artifactId>templates</artifactId>
<version>1.3.26</version>
<version>1.4.7</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Some files were not shown because too many files have changed in this diff Show More