chore: release prep
ci/woodpecker/push/govulncheck Pipeline was successful Details
ci/woodpecker/push/test Pipeline was successful Details
ci/woodpecker/cron/govulncheck Pipeline was successful Details

This commit is contained in:
Dawid Wysokiński 2024-03-31 10:23:10 +02:00
parent d51cc3215e
commit c735850306
Signed by: Kichiyaki
GPG Key ID: B5445E357FB8B892
22 changed files with 500 additions and 50 deletions

View File

@ -17,3 +17,4 @@ skaffold.yml
.woodpecker
.kpt-pipeline
tmp
dist

26
.gorelearser.yml Normal file
View File

@ -0,0 +1,26 @@
# Visit https://goreleaser.com for documentation on how to customize this
# behavior.
before:
hooks: []
builds:
- env:
- CGO_ENABLED=0
mod_timestamp: "{{ .CommitTimestamp }}"
flags:
- -trimpath
ldflags:
- -X main.version={{.Version}}
goos:
- linux
goarch:
- amd64
- arm64
binary: "{{ .ProjectName }}_v{{ .Version }}"
archives:
- format: binary
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
checksum:
name_template: "{{ .ProjectName }}_{{ .Version }}_SHA256SUMS"
algorithm: sha256
changelog:
skip: false

View File

@ -21,21 +21,17 @@ steps:
notify:
image: deblan/woodpecker-email
settings:
dsn:
from_secret: email_dsn
from:
from_secret: email_from
from.name: Woodpecker
host:
from_secret: email_host
username:
from_secret: email_username
password:
from_secret: email_password
address:
from_secret: email_from_address
name: Woodpecker
recipients:
- notifications@dwysokinski.me
- notifications@twhelp.app
recipients_only: true
subject:
"[govulncheck - {{ build.status }}] {{ repo.owner }}/{{ repo.name }}
({{ build.branch }} - {{ truncate build.commit 8 }})"
"[govulncheck - {{ pipeline.status }}] {{ repo.full_name }} ({{ commit.branch }} - {{ commit.sha[0:8] }}"
when:
status: [success, failure]
event: cron

41
.woodpecker/release.yml Normal file
View File

@ -0,0 +1,41 @@
when:
event: tag
variables:
- &go_image 'golang:1.22'
- &goreleaser_image 'goreleaser/goreleaser'
- &docker_buildx_image 'woodpeckerci/plugin-docker-buildx'
steps:
generate:
image: *go_image
pull: true
commands:
- go mod vendor
- make generate
release:
image: *goreleaser_image
depends_on:
- generate
commands:
- goreleaser release --clean
secrets:
- gitea_token
docker:
image: *docker_buildx_image
depends_on:
- release
settings:
platforms: linux/amd64,linux/arm64
repo: gitea.dwysokinski.me/twhelp/core
registry: gitea.dwysokinski.me
dockerfile: ./build/docker/twhelp/prod/Dockerfile
auto_tag: true
build_args:
- CI_COMMIT_TAG=${CI_COMMIT_TAG}
username:
from_secret: docker_username
password:
from_secret: docker_password

View File

@ -15,14 +15,14 @@
·
<a href="https://gitea.dwysokinski.me/twhelp/dcbot">Discord Bot</a>
·
<a href="mailto:contact@tribalwarshelp.com">Report Bug</a>
<a href="mailto:contact@twhelp.app">Report Bug</a>
·
<a href="mailto:contact@tribalwarshelp.com">Request Feature</a>
<a href="mailto:contact@twhelp.app">Request Feature</a>
</p>
## Contributing
If you would like to contribute to the software, please contact me via [email](mailto:contact@tribalwarshelp.com).
If you would like to contribute to the software, please contact me via [email](mailto:contact@twhelp.app).
## License

View File

@ -1,21 +1,11 @@
FROM golang:1.22.1-alpine3.19 AS builder
FROM --platform=$BUILDPLATFORM alpine:3.19
LABEL maintainer="contact@twhelp.app"
WORKDIR /twhelp
ARG TARGETOS
ARG TARGETARCH
COPY go.mod go.sum ./
RUN go mod download && apk --no-cache add make
COPY . .
RUN make generate
ARG CI_COMMIT_TAG="development"
RUN CGO_ENABLED=0 go build -ldflags "-X main.version=${CI_COMMIT_TAG##v}" -trimpath -o twhelp ./cmd/twhelp
######## Start a new stage from scratch #######
FROM alpine:3.19
RUN apk --no-cache add ca-certificates tzdata
COPY --from=builder /twhelp/twhelp /usr/bin/
RUN apk --no-cache add ca-certificates tzdata wget
RUN wget -O /usr/bin/twhelp https://gitea.dwysokinski.me/twhelp/core/releases/download/${CI_COMMIT_TAG}/core_${CI_COMMIT_TAG##v}_${TARGETOS}_${TARGETARCH}
EXPOSE 9234/tcp

View File

@ -41,8 +41,8 @@ spec:
value: "true"
resources:
requests:
cpu: 100m
memory: 100Mi
cpu: 20m
memory: 300Mi
limits:
cpu: 200m
memory: 300Mi

View File

@ -43,8 +43,8 @@ spec:
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 100Mi
cpu: 20m
memory: 300Mi
limits:
cpu: 300m
memory: 300Mi

View File

@ -38,7 +38,7 @@ spec:
key: rabbitmq-connection-string
resources:
requests:
cpu: 50m
cpu: 20m
memory: 64Mi
limits:
cpu: 100m
@ -84,7 +84,7 @@ spec:
key: rabbitmq-connection-string
resources:
requests:
cpu: 50m
cpu: 20m
memory: 64Mi
limits:
cpu: 100m
@ -130,7 +130,7 @@ spec:
key: rabbitmq-connection-string
resources:
requests:
cpu: 50m
cpu: 20m
memory: 64Mi
limits:
cpu: 100m
@ -176,7 +176,7 @@ spec:
key: rabbitmq-connection-string
resources:
requests:
cpu: 50m
cpu: 20m
memory: 64Mi
limits:
cpu: 100m
@ -211,8 +211,8 @@ spec:
value: 60s
resources:
requests:
cpu: 50m
memory: 64Mi
cpu: 20m
memory: 128Mi
limits:
cpu: 100m
memory: 128Mi

View File

@ -43,8 +43,8 @@ spec:
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 100Mi
cpu: 20m
memory: 300Mi
limits:
cpu: 300m
memory: 300Mi

View File

@ -43,8 +43,8 @@ spec:
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 100Mi
cpu: 20m
memory: 150Mi
limits:
cpu: 300m
memory: 300Mi
cpu: 150m
memory: 150Mi

View File

@ -43,8 +43,8 @@ spec:
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 100Mi
cpu: 20m
memory: 300Mi
limits:
cpu: 300m
memory: 300Mi

View File

@ -43,8 +43,8 @@ spec:
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 100Mi
cpu: 20m
memory: 300Mi
limits:
cpu: 300m
memory: 300Mi

31
k8s/overlays/prod/api.yml Normal file
View File

@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: twhelp-api-v2-deployment
spec:
template:
spec:
containers:
- name: twhelp-api-v2
image: twhelp
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "10"
- name: DB_MAX_IDLE_CONNS
value: "3"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
- name: AUTO_MAX_PROCS
value: "true"

View File

@ -0,0 +1,32 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: twhelp-ennoblement-consumer-deployment
spec:
replicas: 2
template:
spec:
containers:
- name: twhelp-ennoblement-consumer
image: twhelp
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "3"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
- name: AUTO_MAX_PROCS
value: "true"

View File

@ -0,0 +1,31 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: twhelp-api-v2-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
traefik.ingress.kubernetes.io/router.tls: "false"
traefik.ingress.kubernetes.io/router.middlewares:
kube-system-cors-twhelp@kubernetescrd,kube-system-compress@kubernetescrd,kube-system-ratelimit-twhelp@kubernetescrd
spec:
rules:
- host: tribalwarshelp.com
http:
paths:
- path: /api/v2
pathType: Prefix
backend:
service:
name: twhelp-api-v2-service
port:
number: 9234
- host: twhelp.app
http:
paths:
- path: /api/v2
pathType: Prefix
backend:
service:
name: twhelp-api-v2-service
port:
number: 9234

163
k8s/overlays/prod/jobs.yml Normal file
View File

@ -0,0 +1,163 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: twhelp-job-sync-data
spec:
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: twhelp-job-sync-data
image: twhelp
args: [job, sync, data]
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "1"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: twhelp-job-sync-ennoblements
spec:
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: twhelp-job-sync-ennoblements
image: twhelp
args: [job, sync, ennoblements]
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "1"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: twhelp-job-create-snapshots
spec:
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: twhelp-job-create-snapshots
image: twhelp
args: [job, create, snapshots]
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "1"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: twhelp-job-cleanup
spec:
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: twhelp-job-cleanup
image: twhelp
args: [job, cleanup]
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "1"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
---
apiVersion: batch/v1
kind: Job
metadata:
name: twhelp-migrations-job
spec:
template:
spec:
containers:
- name: twhelp-migrations
image: twhelp
args: [db, migrate]
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "1"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: DB_READ_TIMEOUT
value: 60s

View File

@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: twhelp
resources:
- ../../base
- ingress.yml
patchesStrategicMerge:
- api.yml
- ennoblement-consumer.yml
- jobs.yml
- player-consumer.yml
- server-consumer.yml
- tribe-consumer.yml
- village-consumer.yml

View File

@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: twhelp-player-consumer-deployment
spec:
template:
spec:
containers:
- name: twhelp-player-consumer
image: twhelp
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "3"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
- name: AUTO_MAX_PROCS
value: "true"

View File

@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: twhelp-server-consumer-deployment
spec:
template:
spec:
containers:
- name: twhelp-server-consumer
image: twhelp
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "3"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
- name: AUTO_MAX_PROCS
value: "true"

View File

@ -0,0 +1,31 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: twhelp-tribe-consumer-deployment
spec:
template:
spec:
containers:
- name: twhelp-tribe-consumer
image: twhelp
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "3"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
- name: AUTO_MAX_PROCS
value: "true"

View File

@ -0,0 +1,32 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: twhelp-village-consumer-deployment
spec:
replicas: 2
template:
spec:
containers:
- name: twhelp-village-consumer
image: twhelp
env:
- name: APP_MODE
value: production
- name: LOG_LEVEL
value: info
- name: DB_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: db-connection-string
- name: DB_MAX_OPEN_CONNS
value: "3"
- name: DB_MAX_IDLE_CONNS
value: "1"
- name: RABBITMQ_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: twhelp-secret
key: rabbitmq-connection-string
- name: AUTO_MAX_PROCS
value: "true"