Compare commits

..

1 Commits

Author SHA1 Message Date
c4f6f78553 ~ UPD build system (#11)
All checks were successful
/ build-and-deploy (push) Successful in 2m11s
* ~ Rebuild Image

* ~ FIX project descriptor file

* ~ FIX composer plugin-api-version

* ~ FIX composer plugin-api-version

* ~ FIX composer plugin-api-version

* ~ Rebuild Image

* ~ Rebuild Image

* ~ Upgrade dependencies

* ~ CHG rebuild dev image

---------

Co-authored-by: felegy <felegy@hvg.hu>
2025-09-25 16:46:16 +02:00
34 changed files with 3342 additions and 4899 deletions

File diff suppressed because one or more lines are too long

BIN
.devops/db/wp_init_db.gz Normal file

Binary file not shown.

View File

@@ -1,77 +0,0 @@
#!/usr/bin/env bash
# Usage: ./generate application.sh <application-name>
# Example: ./generate application.sh hvgblog-7koznapi > .env.hvgblog-7koznapi
script_dir=$(dirname "$0")
APPLICATION_NAME=${1:-"dev"}
if [ -z "$APPLICATION_NAME" ]; then
echo "Usage: $0 <application-name>"
exit 1
fi
SALT_PATTERN=${SALT_PATTERN:-':alnum:!"#$%&()*+,-./:;<=>?@[\]^_`{|}~'}
SALT_LENGTH=${SALT_LENGTH:-64}
PASS_PATTERN=${PASS_PATTERN:-':alnum:'}
PASS_LENGTH=${PASS_LENGTH:-16}
APPLICATION_NAMESPACE=${APPLICATION_NAMESPACE:-'hvg-dev'}
APPLICATION_DOMAIN=${APPLICATION_DOMAIN:-'hvgblog.hu'}
APPLICATION_HOST=${APPLICATION_HOST:-"${APPLICATION_NAME}.${APPLICATION_DOMAIN}"}
APPLICATION_EMAIL=${APPLICATION_EMAIL:-'blogadmin@hvg.hu'}
CERT=${SEAL_CERT_TMP:-$(mktemp)}
if [ -z "$SEAL_CERT" ]; then
echo "SEAL_CERT is not set, fetching..." | tee /dev/stderr
kubeseal --fetch-cert > "$CERT"
else
regex='(https?|ftp|file)://[-[:alnum:]\+&@#/%?=~_|!:,.;]*[-[:alnum:]\+&@#/%=~_|]'
if [[ $SEAL_CERT =~ $regex ]]; then
echo "SEAL_CERT looks like a URL, fetching..." | tee /dev/stderr
curl -sSL "$SEAL_CERT" -o "$CERT"
else
if [ -f "$SEAL_CERT" ]; then
echo "SEAL_CERT looks like a file path, using..." | tee /dev/stderr
cp "$SEAL_CERT" "$CERT"
else
echo "SEAL_CERT is not a valid URL or file path, exiting." | tee /dev/stderr
exit 1
fi
fi
fi
seal() {
local value=$1
echo -n "$value" |
kubeseal --cert "$CERT" --from-file=/dev/stdin --raw --scope cluster-wide
}
gen_salt() {
cat /dev/urandom | tr -dc "${SALT_PATTERN}" | fold -w "${SALT_LENGTH}" | head -n 1 | sed 's/\n//'
}
gen_pass() {
cat /dev/urandom | tr -dc "${PASS_PATTERN}" | fold -w "${PASS_LENGTH}" | head -n 1 | sed 's/\n//'
}
declare -A parameters
get_parameter() {
local key=$1
echo "${parameters[$key]}"
}
dump_parameters() {
echo "parameters:"
for key in "${!parameters[@]}"; do
echo " - name: $key"
echo " value: ${parameters[$key]}"
done
}
# shellcheck disable=SC1091
source "${script_dir}/parameters.tmp"
dump_parameters | tee

View File

@@ -1,19 +0,0 @@
declare -A parameters=( \
[db.name]=$APPLICATION_NAME \
[db.username]=$APPLICATION_NAME \
[db.sealedPassword]=$(seal $(gen_pass)) \
[env.BLOG_SLUG]=$APPLICATION_NAME \
[env.WP_HOME]="https://${APPLICATION_HOST}" \
[env.WP_SITEURL]="https://${APPLICATION_HOST}/wp" \
[env.ADMIN_EMAIL]=$APPLICATION_EMAIL \
[env.S3_UPLOADS_BUCKET]="hvgblog/${APPLICATION_NAME}" \
[env.S3_UPLOADS_BUCKET_URL]="https://cdn.${APPLICATION_DOMAIN}/${APPLICATION_NAME}" \
[sealedSecretEnv.AUTH_KEY]=$(seal $(gen_salt)) \
[sealedSecretEnv.AUTH_SALT]=$(seal $(gen_salt)) \
[sealedSecretEnv.LOGGED_IN_KEY]=$(seal $(gen_salt)) \
[sealedSecretEnv.LOGGED_IN_SALT]=$(seal $(gen_salt)) \
[sealedSecretEnv.NONCE_KEY]=$(seal $(gen_salt)) \
[sealedSecretEnv.NONCE_SALT]=$(seal $(gen_salt)) \
[sealedSecretEnv.SECURE_AUTH_KEY]=$(seal $(gen_salt)) \
[sealedSecretEnv.SECURE_AUTH_SALT]=$(seal $(gen_salt)) \
)

View File

@@ -1,14 +1,13 @@
name: blog name: blog
proxy: proxy:
appserver_nginx: appserver_nginx:
- blog.hvgdev.website - blog.hvgdev.website
mailhog:
- mailhog.hvgdev.website
recipe: wordpress recipe: wordpress
config: config:
php: "8.4" php: '8.3'
via: nginx via: nginx
database: mariadb database: mariadb:11.4.5
webroot: web webroot: web
xdebug: false xdebug: false
config: config:

View File

@@ -2,6 +2,6 @@ brew "editorconfig-checker"
brew "composer" brew "composer"
brew "wp-cli" brew "wp-cli"
tap "shivammathur/php" tap "shivammathur/php"
brew "php@8.4" brew "php@8.3"
brew "php-code-sniffer" brew "php-code-sniffer"
vscode "Command is only available in WSL or inside a Visual Studio Code terminal." vscode "Command is only available in WSL or inside a Visual Studio Code terminal."

View File

@@ -48,7 +48,7 @@
} }
], ],
"require": { "require": {
"php": ">=7.4 <8.5", "php": ">=7.4 <8.4",
"ext-gd": "*", "ext-gd": "*",
"ext-redis": "*", "ext-redis": "*",
"ext-mbstring": "*", "ext-mbstring": "*",
@@ -61,11 +61,11 @@
"oscarotero/env": "^2.1", "oscarotero/env": "^2.1",
"roots/bedrock-autoloader": "^1.0", "roots/bedrock-autoloader": "^1.0",
"roots/bedrock-disallow-indexing": "^2.0", "roots/bedrock-disallow-indexing": "^2.0",
"roots/wordpress": "^6.9", "roots/wordpress": "^6.8.1",
"roots/wp-config": "^1.0.0", "roots/wp-config": "^1.0.0",
"wpackagist-theme/twentytwentyfive": "^1.0",
"humanmade/s3-uploads": "^3.0", "humanmade/s3-uploads": "^3.0",
"hvg-dev/hvg-blog-general": "dev-main", "hvg-dev/hvg-blog-general": "dev-main",
"wpackagist-theme/twentytwentyfive": "^1.0",
"wpackagist-plugin/disable-wordpress-updates": "^1.8", "wpackagist-plugin/disable-wordpress-updates": "^1.8",
"wpackagist-plugin/disable-comments": "^2.5", "wpackagist-plugin/disable-comments": "^2.5",
"wpackagist-plugin/wp-webhooks": "^3.3", "wpackagist-plugin/wp-webhooks": "^3.3",

6775
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
apiVersion: kpack.io/v1alpha2
kind: ClusterLifecycle
metadata:
name: default-lifecycle
spec:
image: buildpacksio/lifecycle

View File

@@ -1,9 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kpack-service-account
namespace: kpack
secrets:
- name: kp-default-registry-creds
imagePullSecrets:
- name: kp-default-registry-creds

View File

@@ -1,10 +0,0 @@
apiVersion: kpack.io/v1alpha2
kind: ClusterStore
metadata:
name: default
spec:
serviceAccountRef:
name: kpack-service-account
namespace: kpack
sources:
- image: ghcr.io/hvg-dev/test-builder@sha256:3c169742c4d278f9baa79003b1a998d9337cc2050c7845207d8012207c16a1a7

View File

@@ -1,13 +0,0 @@
apiVersion: kpack.io/v1alpha2
kind: ClusterStack
metadata:
name: heroku-24
spec:
buildImage:
image: ghcr.io/hvg-dev/test-builder@sha256:6294ec780aeb492bbcef91884c21d9b5f1fc1f88f6096228ea2e3a640dadef09
id: heroku-24
runImage:
image: ghcr.io/hvg-dev/test-builder@sha256:9a80c7da247decbfb1350c1fb0aa6436d74bde59953751e6193835063ca38e84
serviceAccountRef:
name: kpack-service-account
namespace: kpack

View File

@@ -1,25 +0,0 @@
apiVersion: kpack.io/v1alpha2
kind: ClusterBuilder
metadata:
name: builder
spec:
lifecycle:
kind: ClusterLifecycle
name: default-lifecycle
order:
- group:
- id: heroku/php
- id: heroku/procfile
- group:
- id: heroku/nodejs
- id: heroku/procfile
serviceAccountRef:
name: kpack-service-account
namespace: kpack
stack:
kind: ClusterStack
name: heroku-24
store:
kind: ClusterStore
name: default
tag: ghcr.io/hvg-dev/test-builder

View File

@@ -1,10 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kpack-service-account
namespace: hvg-dev
secrets:
- name: kp-default-registry-creds
- name: git-ssh-auth-secret
imagePullSecrets:
- name: kp-default-registry-creds

View File

@@ -1,20 +0,0 @@
apiVersion: kpack.io/v1alpha2
kind: Image
metadata:
name: blog-dev
namespace: hvg-dev
spec:
additionalTags:
- ghcr.io/hvg-dev/blog:sha-2bc32b8
builder:
kind: ClusterBuilder
name: builder
failedBuildHistoryLimit: 10
imageTaggingStrategy: BuildNumber
serviceAccountName: kpack-service-account
source:
git:
revision: 2bc32b8f256bd8931d690ab78b08a6e31cab7af0
url: git@gitea-ssh.gitea.svc:hvg-dev/blog.git
successBuildHistoryLimit: 10
tag: ghcr.io/hvg-dev/blog:dev

View File

@@ -1,20 +0,0 @@
apiVersion: kpack.io/v1alpha2
kind: Image
metadata:
name: blog-main
namespace: hvg-dev
spec:
additionalTags:
- ghcr.io/hvg-dev/blog:sha-b0e1cfc
builder:
kind: ClusterBuilder
name: builder
failedBuildHistoryLimit: 10
imageTaggingStrategy: BuildNumber
serviceAccountName: kpack-service-account
source:
git:
revision: b0e1cfca5205556c738e44b7eb040c5f87dac109
url: git@gitea-ssh.gitea.svc:hvg-dev/blog.git
successBuildHistoryLimit: 10
tag: ghcr.io/hvg-dev/blog:main

View File

@@ -1,52 +0,0 @@
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
annotations:
helmcharts.cattle.io/managed-by: helm-controller
name: hvgblog-vcluster
namespace: kube-system
spec:
chart: vcluster
createNamespace: true
repo: https://charts.loft.sh
set:
integrations.metricsServer.enabled: "true"
sync.toHost.ingresses.enabled: "true"
sync.toHost.persistentVolumeClaims.enabled: "true"
targetNamespace: hvgblog
valuesContent: |
controlPlane:
distro:
k3s:
enabled: true
extraArgs:
- --tls-san=hvgblog-vcluster.hvg.hu
image:
tag: v1.32.1-k3s1
ingress:
annotations:
cert-manager.io/cluster-issuer: cloudflare-cluster-issuer
ingress.kubernetes.io/force-ssl-redirect: "true"
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/ssl-redirect: "true"
enabled: true
host: hvgblog-vcluster.hvg.hu
pathType: ImplementationSpecific
spec:
tls:
- hosts:
- hvgblog-vcluster.hvg.hu
secretName: tls-vcluster
exportKubeConfig:
context: hvgblog-vcluster
integrations:
metricsServer:
enabled: true
sync:
toHost:
ingresses:
enabled: true
persistentVolumeClaims:
enabled: true
version: 0.26.0

View File

@@ -1,4 +0,0 @@
apiVersion: v2
name: hvgblog
version: 0.1.0
type: application

View File

@@ -1,15 +0,0 @@
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
name: github-container-registry
spec:
encryptedData:
.dockerconfigjson: {{ .Values.imagePullSealedSecret | quote }}
template:
metadata:
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
name: github-container-registry
type: kubernetes.io/dockerconfigjson

View File

@@ -1,33 +0,0 @@
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: "{{ .Release.Name }}-db-pass"
namespace: {{ .Release.Namespace }}
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
spec:
encryptedData:
password: {{ .Values.db.sealedPassword | quote }}
template:
metadata:
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
name: "{{ .Release.Name }}-db-pass"
namespace: {{ .Release.Namespace }}
---
apiVersion: k8s.mariadb.com/v1alpha1
kind: User
metadata:
name: "{{ .Release.Name }}-db-user"
spec:
name: {{ .Values.db.username | quote }}
mariaDbRef:
name: mariadb
namespace: default
passwordSecretKeyRef:
name: "{{ .Release.Name }}-db-pass"
key: password
# This field is immutable and defaults to 10
host: "%"
cleanupPolicy: Delete
maxUserConnections: 0

View File

@@ -1,13 +0,0 @@
apiVersion: k8s.mariadb.com/v1alpha1
kind: Database
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
spec:
name: {{ .Values.db.name | quote }}
mariaDbRef:
name: mariadb
namespace: default
characterSet: utf8
collate: utf8_general_ci
cleanupPolicy: Delete

View File

@@ -1,26 +0,0 @@
apiVersion: k8s.mariadb.com/v1alpha1
kind: Grant
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
spec:
mariaDbRef:
name: mariadb
namespace: default
privileges:
- "SELECT"
- "INSERT"
- "UPDATE"
- "DELETE"
- "CREATE"
- "DROP"
- "INDEX"
- "ALTER"
- "LOCK TABLES"
- "EXECUTE"
database: {{ .Values.db.name | quote }}
table: "*"
host: "%"
username: {{ .Values.db.username | quote }}
grantOption: true
cleanupPolicy: Delete

View File

@@ -1,26 +0,0 @@
apiVersion: k8s.mariadb.com/v1alpha1
kind: Connection
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
spec:
mariaDbRef:
name: mariadb
namespace: default
username: {{ .Values.db.username | quote }}
passwordSecretKeyRef:
name: "{{ .Release.Name }}-db-pass"
key: password
database: {{ .Values.db.name | quote }}
secretName: "{{ .Release.Name }}-db-connection"
secretTemplate:
key: dsn
usernameKey: DB_USER
passwordKey: DB_PASSWORD
hostKey: DB_HOST
portKey: DB_PORT
databaseKey: DB_NAME
healthCheck:
interval: 60s
retryInterval: 30s
serviceName: mariadb

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
data:
WP_HOME: "https://{{ .Values.host }}"
WP_SITEURL: "https://{{ .Values.host }}/wp"
{{- range $key, $val := .Values.env }}
{{ $key }}: {{ $val | quote }}
{{- end }}

View File

@@ -1,18 +0,0 @@
{{- if .Values.sealedSecretEnv }}
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
spec:
encryptedData:
{{- range $key, $val := .Values.sealedSecretEnv }}
{{ $key }}: {{ $val | quote }}
{{- end }}
template:
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
{{- end }}

View File

@@ -1,55 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: {{ .Release.Name }}
spec:
replicas: 1
# revisionHistoryLimit: 3
selector:
matchLabels:
app: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Release.Name }}
spec:
imagePullSecrets:
- name: github-container-registry
containers:
- name: {{ .Release.Name }}
image: {{ .Values.image }}
imagePullPolicy: Always
command:
- {{ .Values.command | default "web" | quote }}
resources:
requests:
memory: 128M
cpu: 100m
limits:
memory: 512M
ports:
- containerPort: {{ .Values.env.PORT | default 5000 }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}
- secretRef:
name: {{ .Release.Name }}
- secretRef:
name: "{{ .Release.Name }}-db-connection"
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
spec:
selector:
app: {{ .Release.Name }}
ports:
- name: wp
protocol: TCP
port: {{ .Values.env.PORT | default 5000 }}
targetPort: {{ .Values.env.PORT | default 5000 }}

View File

@@ -1,22 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
spec:
ingressClassName: nginx
rules:
- host: {{ .Values.host }}
http:
paths:
- backend:
service:
name: {{ .Release.Name }}
port:
number: {{ .Values.env.PORT | default 5000 }}
path: /
pathType: Prefix
tls:
- hosts:
- {{ .Values.host }}
secretName: "{{ .Release.Name }}-tls"

View File

@@ -1,46 +0,0 @@
image: ghcr.io/hvg-dev/blog:main
# Image pull secret for the container registry (see https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-create-imagepullsecrets)
imagePullSealedSecret: AgA56Wy8PD6cByq+xIFwOBl0OUPt0ricOB0tjaC+B/mpHhFnsKaGKt4EdUsfnDZccc3IdpoIFdhOo3rkAikxN+PjCFpb/bC0JZZiP8K3DAREizLAU1R0og0xWjOGZ+GHRdZMiuNFf3ADl5D65lrIr1e1wTrSuJ8SReOqo2rY9QGDwWC51iJwy0cmB3WVGDYjDUIz/vnx5p8BxzIEHsCIoSelBIQjJ0idZwe8JuaSxrQRUtk8/Cenj3mUVsXIVpNr4ExBMF4tBuYEAYuY1t98bp66l6dbbEfnLDpQXDusj7RITV0N2KQ++7h5fjlH9yC8nsXntZb4T6oVSZlJWUYDzqaqfBFckQ6S0L9XcgSOFHKeZa1MVEiKpjiU9uEn+hDCPbatg5exMUEAcvXl6LxnKW/Mn0dIykOv/LIQyxXeUFdGOoFj6pCvkj/Z2DFeHLq5/+rY0ZIvLnLtGYfxm2Du1ft3MldWUSq9i4BUuL0ddH5h4PRxC5SE7Yp/SGkU4qDqqSmh21GxVdezp4YK9Mg4gRrCcGPL+sViDYkDLvBXOpBVhhQbAQcZWkDHit58p3nh2byP0GpIL0etnFGVqx9n2W2BuckKbOeEaRGbdaeO8pT6f2IOA6ZyuT91RiqRYrzXYMA2hzmQBVYlKXjI3LAuEHOnccl7cA57j32U+yHsaCHpxQ0vbDpoZHwRj7O3De4BlEdFiMIBcgveXMK8V5t6Hie/KQZOXwt38UPj9axdGoMzPFe5KffWHNJrUYVyHkS9lfKgi4aHF/SIs034x39l7KPitk3+UqFtKUEuL0/P+EoxN9qre/HFGvF3uZRdllt6gruWYLVCrnLnHfKRKe9D9Mb5jVi+BbVfxuXBip/TFnc0x3JRGmGQQm2bICyYonPP3pQcDqqq/8dshKCGeVHmsN8mP+ERv/izbb2QU4loRg==
command: web
host: dev.hvgblog.hu
db:
name: dev
username: dev
# Use `kubeseal --fetch-cert > pub-cert.pem` to get the cert from the cluster
# Then use `tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1 | kubeseal --raw --scope cluster-wide --cert pub-cert.pem` to create a sealed password
sealedPassword: AgCjcJj1U6QOlCbQFVrT55D/6NECvZzwXZlQmVbeIW/b//SawiIIrlSnVHkQUYcC8VVswYJ854P1+3HANJriBHBs+fLklVsQytnjC6gktUgPcxuhBgACtOBWco3wyq3MNX5qU2IYevdCd7da31czaTNnLkowF8S7Oqyb4DKQAc1RE7geepJyHUxILGvFSsd3LiPkoI5y+J1IWcThFFU2ACZ247FYAprn/XqozgQcX28yO8U30ejW73TJrvxhKR4UvTlqNDSRh/XNBKre/zqCvKg8aKd+LgwCVegPQnGRMl3Jcw1CyRFDADYLg6YwQ9bRRpN518z3IQOonPL82EOAeXAYU6aTVQz2qwQZkDp7ww0MCknhypUSxfHTQ+FSauXxoweUICAzFP3LQuyoE+LUoUMKyC6tKh9Lsiiks+Y0gRp4Jpj0Rhm/f2wPQZwecN63Sd95pEmruYpsTfA4bqJo2omhdZHeQKLMfZQk4MGNBjGeXkif4NIk5RsOgQHM4Rf3tXOmxKoXRayl6J0ow36/jfxCMQAliiq7SGRcty6Mq7j2ou0MRi19b88fFUynLpxQUK7Ob7ziYmWDBPGwAGg9SLApJYidnpKO+351no58UBhAf+d4cyTI0PURvp9kZhkQNsCHuDFWh9CZ3B5RjJ7D/znkdZELvRWWGde7+qbRb924QfWmCpcmjxT6dOP0qQt4dUChVl/yBraBeWyL0EZtjXGDq/W+mf4AkAYN3fwpb98G
env:
PORT: 5000
DB_PREFIX: wp_
WP_ENV: production
DISABLE_WP_CRON: 1
TZ: Europe/Budapest
#GTM_CODE:
S3_UPLOADS_ENDPOINT: https://ams3.digitaloceanspaces.com
S3_UPLOADS_HTTP_CACHE_CONTROL: "30 * 24 * 60 * 60"
S3_UPLOADS_REGION: eu-west-1
SMTP_ENABLED: 1
SMTP_PORT: 2525
SMTP_SECURE: tls
SMTP_SERVER: smtp.eu.mailgun.org
SMTP_DOMAIN: mg.hvgblog.hu
SMTP_LOGIN: wp@mg.hvgblog.hu
sealedSecretEnv:
S3_UPLOADS_KEY: AgDFe7dbKo/5MDvniH7GrsoIdLHpFE4cB5h9RwDxqCa7jQppBic95lT3kqNOFrewKfolGXGu8Zr2lJpw/Bq0XjSBuSCBTKruaxSJp3dOi34cCimjH7/GnFHdqkiqG39sBFX5MJoCV1odDBIWsMKiBsqNH/IV9A2QMawZUuvg0ei/e347HZ2Qo++2NM3FaxC4vR/jMlNjEEasQWtsvMr1MVEQWadhKCuGpAiimMS4Vi8aU65DVXF+6pv/tW/8eBxUfGiY3bWvER0geoFSwCYBpQEHWSjGv6ll1GRaG00JEn+qGF5t4/xsDjE8LPfcKxvg3+eQKhA4Ze8KMagv7jO2p0B46PYMYUTdUz1/7SNJtVBZn/Iw+HlXtTXM77rEJxC1zpVVTeE1Pvl0itSKr82cIIwUES0ULry2pS9v0Eu7TO8GcuqKZ1kY/Vjz3nKwBuCD8VjUpdFNhjWterpFMG8mGwMvTA7KrPAuz+UO1cnJILcmGA2gqxk5uOzUy85KAdof/rDgQwNMO4DEjAKnGqVeHp7DkWt6jO6HyzQiqgNUJs0COi/yS4UbRdlWvsxKj+EMeDXJWexndm6ypS7z2DCn8xQTz9C4xfpAAYOzTrDHlpjNNXU0bWS7VtsbB+UjNAbbEy16C+u/xTFAk8tL+yzHcJ+95foofzwX8mfq/r8B9sMAHF+qYro0NgE7Ey/3YNdpWpLf8qFAJImgSawj84lrvGkdGf6ClA==
S3_UPLOADS_SECRET: AgBJZkFQVuH7a5aL14fVusWVlpecX2DCGy6QqZEfvH75ZJqTLzNsGNU0Xgcwvd3IuCUx5Z9D8TWDQ27MnBH/MEJVc05Yc7CW9/u+0/NPIWibx+tzYgr3uY2An4QhOqSydCk+583aGAo6grEnlxIphAy64bfUaXYLnpTrS9Ztno6enLciGzLXHqdlSiiWyTZSOIUqs8tuvs7GBTmcdQXjveNppw4gqz4ZXNsV0S9WVc3jO/PlObFQON4sBAycxm7FCDoIpYg9DuUGvXQXhNly6hMT8vt1OEStTQowvp7yXmTGGBKn8GkOhFZghYJNcpfjL1hjXbtxS5fitXXFF0tA1EbBCmDpkdfJ/Y/Tl8ZmSmOcJTJz9jwFdnPBM2IANtxBfH5G2jeG6ngj+m6F/o3n3LaXMdoRD7z/ej1IyxAVOkcqOSrYAB8awauKVeyG1CAB/RCHiuQIzy2DDNZ0yrr6Q19JfrCbiSkEzyRUoKqUUaUccXnhStgPvM0xiDYMXJykTv+1Za3B52bxI73YVLDzVN53Wd2sRy47WGfGVjoDtoKuv2uibZUpBS4hBNk0k+/ElvOO2ZEWrlEV/o5Y0tgU730Ke6WZCs3/C63olRqOeYlf6JXQAaIyZZHZ3QooG/gCc4kAQ21/ZnduG0w+a8ilhKMhhAOpCua5QOyoFPFZlEXrGKlW62RaxeR0/8LrmOUxdYFpUGVvt7iKnJEGT1aukF/fl6GAea72YKuJJq9jX7wfXDc1nrOxv0wi/vbN
SMTP_PASSWORD: AgDzPlfjaqC40ZsCZrWLS3ULJ9zfT8McPKbAjumrRaugSPR945MOCN/bpGnYJiIBa0A08bZE9oBgsEEA0eglVN7fEsg4hnPU/3MUZf8fbB2eRLBAx3hN8pRC9X7tXCnLRh/BHlFljtLCU3kxcQM3Ujqyg4/wzGUiaXb5TCeGu2U4Krx0lBx5NCrx1tOjRH4yQ0KXToBjvDTLd1Vd2V/zmY1o063mhLmUh/h5j8NnTyqVRgeUyD+QR+Br8wbmHZrtyGBnI2cP+x+8aRXQxvEMwz1PkVHRXYVpSJRg1wLYnUqi2fQHjsaq8X0vgd/SWmaNllKL2cinP2xXDRLEEI+MyCUFDjYm0rhKEFLxa5KNahZiZw4cj0nnr4cIhHHgKSc47p++M3UiL06cZpb8Adaq8Y+5A2QSjm4E/9SmL5xt3mBFNssK/Qo9OLXaUjzvxK3C4p6BnObPOlAVuWfY60ekSvoKn3mzjKSvkZLamgInr9lOxHirPPeYFJTkdm7VV3M29bJqrbMB5KJDCX1Wt/qNOPLmyImwxYDWoh0M/YoFDupAqLKuHti49un6W2ZBzFhaW5f1IauNMBpD7xlP0qUb6Qs4G2lO5iebl+Q2rPUG7uN61rLo1CPukU2c6DiMHgb0Ffr5s4m6urv/uIpLgFzagVruroGp2ASARIMMKGMXS8TblsJcZBTqumXiJ9Ae6gnkWNUrVY90V0qjvU1qhvkS7k9ZnH70sW1tU4wRMu4Lmeqx/zQcnUAEresPsKFwF4VcnryRCQ==
### WordPress Salts
AUTH_KEY: AgCvDJbrBT/ze5NXqfrs4ZCjHkDj6uM19QVVomPy3mLkcDqBoRznD0heGbiWBLu6/kOcV18sw1q7WMwU//6cuU5eZmeYnhZHbNDxGDPE8Nw/UUmoOR9wOc/XozXf4DBK1zLn9ne4xA4lMdlYeJ7WBWPFYyoc0htrbEiB+MAEt8DXvlRooDIZYtitZzBHWrhFLuIhAi2mIA2SQ9V8simzbUU3DM7Wb/DY4Qoa4jP/XTEgcxdtQPzOXFJTlZt5poMqs1/ckrTeo1/9SLrZZTWQPeZlsoISs18J8oeK33ugTNYz51mRoOai0Yhnc2bbN+4WGgtXi6FPjPgFcdjKjul5gdb81Z47RIO8wwsPjnFTSQ1LXtSJ/HiX9uOj1OHUYEH1rIqzaOmxDo23VYParhDsU2QLDIf1S8mJo/WTn4Hb6IAA5Veb7bbudesffgxgMm69qTQrdoPumLaXNX6TnRC5tGM+YaYbBGVsuDxSZUnagEkobgG8D60V58c6mWbZ+k+VZ+0aNGyaLHEAjZDCDxh9/6AkOoqLIaUXOgL7hQ3eX2YAFfBdwIICY82ylC1DqwTxGqpjRP45E2tMHEp8IQHLgvdEChLBXmqPVk0kJF+FJIzdOE+OkLtnAmCD0L3eq2SXRoceISxf0UNVWLwXMYCrvOM2kSrDHT/PhCqtGwaIDWuLXdddXZzECPk5hcLJb+JSYG1yRc6Qc8nezag7hh31pvfFI6PtR4LqlI8xmsHz0RognxQi/MEI6uSJ23/w+4RbjlBBKILoLqkgE+v1mhbAUuMr0Q==
AUTH_SALT: AgBX0tOuA235buf6x054X0SmTsyqkjeYuevgDdbWIWqi+AWd9slUnlS2bnBtjYGg4U+fTIbldo2bYuEAHK+TIVOXTxud7+PSYEO+JjtpetHchQBYh0rNjTs8K11uK5mqPBSPVkLJE08U2BNvXXubc7plLerNjW4D44ICvJly7P6CO2Rnrjueg34DB1TnGnD8PANIiUZVTrJOCC/QSodhaerqDvJBuq6qS0q+GEqU4C5kineHyzuQnuGq5lUN6l+Gk2R8vlwLaT36x4MJlxRa/UjQsvbQ6CYRNGnZW1knPsvON/sukpy7BVEVYAnCYnrzRX/8kEgyxMfSePcWOwsG1JkSb1PrcQXftro7xZQjKgdkqacOGnkVd8sKn1n0f0w2iAGhMt2fCn7sf5htnSC5lL0mdBosNv3p1VwrfXIwjDr5Fzs1CHTbb1hJ8282aAGfzLxmGXPucAbk7nSvbD4iVhXmZ91vbWJRKC+DD/9HBdQloEplSKYm3uyTb0qlJzPIUVTNLu9b+yTeBQIckuAYu03NX2WWSVkX1M80YMER0/eNbvec4ZCSUxKWLzjVm+k3ra8ToL5tYrEr65Be/WuK57tMvx25106OHvokc6S0wp5B+VyirLtwXqRSGFBWqQv62hxJQDOySNsi45QzueD/BYxG+tf3QX1+bdc50WlwUHK1UEZuSNb6JnGfvFU1fJEApAZWJaK2odItjaR2dVVDMuW1NsXj4qLpB/CaNYM/B8C4Elg7jyCrwTv/1TaY3IW3j/SVnRstgXTwNjRnM/WCUIJbWA==
LOGGED_IN_KEY: AgDU2Ss24Cuw1kthXp2DcKahfQT7apnRWtaoQymBEZMMRpGlvxWMTRRMKAx4N7E0AZdW41QLTpK0ciaI63B0PRD2B6fPVVpoz3ybNlJO/0caIw0yHWL8YSOD7rGw6TkxKrz8lggqRVZerS0tEFT8nLGoqgi+SCsfBhh3u5JQ8QM60WLeWaPvph/QFlSl290+UC2xIVEjk37zQdyXou3goeS3DMjdtze8FiwnmK/XVPsPf2cWZQw0wwAwgIJMVZWhkK2bPOKrMmsdqy4G6YrihcjjRTK/0lGKZ6sEVUsu7NTKgeHGogbu8feA8gpTEuRYP60iFNgwNrCYGmOKCXyw0vSLtxHPE7+cm2pU57GhJCTnOe1Ez9zJZmv0Zc4OEZBAaLbCXoNvoJPskeDBUe7+qcV8ugdtFCxCBtoUolos9UukhAtUWp6+uTv/vjjnCv/7kGGp2fNK8lS1D1ksk1mB0JsnjxKo5pnMHBVhJfk3IfbPLx3yvMaz86wCDKZacm5h9IwsPYEvVzkvWhiOydg3ZRVH7WUE8uJ1+Ojt2+6hlB2cMNNQ5P16fTOmt9vfl9Schlrgo+ku2tU/KPfMs4hHCvvecOskqy9MeTOF5mJllI2gqTlGR2uQ5Hgb/OgH8YOmmycpS+MqKNaTKafvwgN1i0xBaYD8y3hSYeBRTmaHu+Szm8CKEDL8PW4ebJX3a+khJMXkf3UkDjRXjSQhUoFMyRNsHLwAt5mC3asySQue6jOP/mKbZ4c7lH0gx8caDoWrlJFHsDhr79jw3F0gkr4mN+ueAQ==
LOGGED_IN_SALT: AgAVoBL1paq14YzaeB9lkvabzo5iDoVN23gvEQAs6CgZUIejtUa2AAkTmQIjVfkb2S7LOdfXIq1lIAPBqSmO5LqfWDh8kuxgz23mTDxYWvVqqbDpiwAgaydokprDm0WEpPdGTyvqsvEk0Gtxq6rqbFXObsfkLCv85FweyfHxh8Gwo+L/e2l1/NUFOkmT5e1j7bkKmTgBUyMEVuWMA6lFVCd3D6vGfOZqS5O5NfzhFnK9U4ZG+55+LlgbFZZltHixs/jpMBms30B/wkRxBzAAGMMCyqVLlqr3bB0HQsobA/PWHAJbGBuFHV1e9XE+7SUlKLTmcmTyxx2cfHiX2XK7Ne3VW3wEtN/4IVeCPpbwCnceXEzK4uhTHH2Hwihewm+xN5uB7SDBLLO3qSLLznapEhgHIj2tPV2i2ftAsIUjzjuPHyFhdFumzXW3QxqOofvruRYqxQAFN1LBvbys6wWLRPkRgEez0/UIiL3xaWnA+r51/cozozNZI+QDgeAACQQguX/Ag7jR+q83Xga1SeYV0HYT9AvRr+UvRQ0NcTG2ObD5JE5rUmFUeRFWIwRh+HqgekDYy359vFds54vHDn/xtOS6Cb6fyr0qX1WygsBtWUV6jf6T59zYg9L2/kr+s1iUTbbBRizJOrRMdr2gswoUWW+THhM+yc/mIL7BCoWoHPBVJ9m5uvqemfy8VOvFHOVxlBnzqIsc5eAvTh4Nqy6hIxISxG8s44RHTLfDfDxWXxI2QVq8NzY91TlBL68fzINf+Bc4vks3CJnssYdinTS9AjQQOg==
NONCE_KEY: AgAHwWgpFVXSLcEdHG5USGPhqueGXo163MdqCSSscxXjxw9JXKjDQ13jrsnD0JcZIWnSJnBdJ/H84HgHdaFU9g8CDzL3mXC4s66RM+c7Jw/0VCHM72+3zr5Nw+h6ycLzlE1UmB806nY88t8h4/HKujmu42qSzdFySxC5x6WbnaOqri+H+VHZ57dQfyyNFlp7fum2WnqU+EXoxvbEOMgJaxpwc8iwsmKGwy+aSzE7DTpkt/9fA+T8LiaakwtAwcvo8EnVxBesCe9ioDsA+ZjgI3xOr7OsUPb/NxaGt3VGmVk2d8dcKI6YOiyoLCFjAL1z56922OjScOO0CUo7qq0jPRuUJdouT5S3OpDm3NGCr/yjCz9Mh8anWPKxYX1ZEg2QmPiR//r+94V10A0NP6W9frpiBQhIWDqMprUK/0SpZGX88C4F1FPmOi2RSn6Tl7mwOHpZadLzBLpbY2DY/AyGQO6H0W+MJpXCT65vZJeTDcLMjCNGkVEI9vxvtVedTVkbZNbLS6+ros/HA/0qMI803exlNZEnMMwlHn1Hm4z6ngeBP4KJBUkLYLD3ienwijmiMtqmgkOhGbG2K6r+IdKHrssWeizNrx5TzLXKXzyCyk5I/9jVLhC2AM6tBqxW8TVs2WfKS4RVsNvS55qpjWbVpZb7ei10+RiPA6KaVW4ZmwtDuW8bzD2d1rMd6yJ1SiYQhzUOVjcCCYEz6VWN3R5IZ/3UjpeCWnkQ7Lja+Xm3Asvxg4m41cA3B1S/ckmj+qOr2WgjFu7GymWX8IF0hZXZo1oz2g==
NONCE_SALT: AgABajYW5+6c0BPjlcQLPd7v706wd+i8U1hp69+up8PalMtvugwR754mEU/ed7L15U9pTWAf6zGjmuMIZYiFpQVosQl/ggq2LeciT+xBUcrvCxZ/EBCdTl8ig/TgzucVNsR2Y0dCK5Tp7YBTuAIOa0dqyK+v1+LGrgb4PnVQvi18hApBiDX0Txnn5QkGhBaSr7LJuD76KfgY+AZ8Gv95b30pTY2AtYydDJXrtqoDCIXfPcnPf102Hq3na5OfJp2m2N4IUD771tDesb+faeDgk7K/mVcn+kmXB8rIawOQFnaowt5UwbfZ60ppgy1MzQZiiq2pXvMA8F42EnhNUe+C3fPyG7Kl6t7jRo+3mHhz0Dv+o0DO4Iir8r0dTw0MruLqun9YU8pLOv17+BciAxWeG8obJ9Hs5sv9ZPv7wdmlQIX/8fvsxgJgy0cqgH4lWNBD5Em9EyiVAUiRmA6tOosFrlifJMS8F1wfaiNEZ7DxjdSVMrEBtntBO2ndSdrdqNIfUED9ZfIvBxP2UHRS9h4KEyCvxcM8HgWt7htnpiSx/XpFZCJr4meGfaNB1Tv5f40bCFpKmsbK1GXNMKJwOJcV1I2FV6xpp6Ch7tgHlZ/Il7hbQ4JsKav7l93b/Dd2e8y/58Jk3DvBQzrPOWPpQrKxrIOeT8o+HC8PS7jdi5xKJ0g9dR10LkgmW0m/usTdwCLWca/9I7iLxiAF/zRoN+7+8ySxIxnBTaFWykYsIDs+5nsYH6TgXseq9PFnxxtKutMp7EPtnO7vzc4DNtkuouS8oqt+Aw==
SECURE_AUTH_KEY: AgBAPzBURABD4yzbUrMr4l4CRD18wu9+o6+wA9UJ6NQ8F+Hn3ddGG8HMpbq/eWwXw4q7SXv7BEU4VVoeuPjTle5ChQJfrdbThjermhjwcEDu8Cgr6jczj9bKEJ6Th3ezXR2jf+gwpvoPbrlk2s+mPJdWnJrAGxkV89KJWTxPuCz2PbZp2ZaxdAbXiGSL2X9KPO1XHYZjpgN1nd4+2BqGnA9B0ozyVChPctYHv1taPdvF0ifMsJDiNu4PpEcq9Ga/hrgmjYEVvxvrA5J+zOs/DaVm68VtJvyQEIw3A6jZNOVC5WFUk7UuCoBhuj9X/6ayZTVjqvtHMhi3BT2pxFT0n7OXAWd8g4MctyX93dBYcmkjqE4aZn1kHndOdvS1E41J+aMjslWgzdCLDqGqzVxgilMbxXxM+AXOeuAzSzo96WzTnIxnX851xdkJEIjBnCedaIXVkXfEWOewE2SOa/7F7JbQAlMwCrNN5/Co45tLNsfolpwy4WQmWJWcI4nZVTOM79kZM9kr6hAYqhHCG6/8MQ/2Vd8fYvTblJKoagEpKhqZK0J7HQpBaneOGhFV/Wn42v8g73HZc2BdxMrj53yq2eHzpe5AQSApn9nNBWhivAR7+jaDWmNYjcsmDzFf5p8MVPsiyT6JZxVjphkKI38/AfUt7WENcGjyXW6I0MwFYvEXgiPUUPQXtMvX6yDscpxGa/aVIin+7BKrZiu12du4jfyr7VyF+hyw90/YSrk/hfehjiTWk844GDMF9K7LSMLR+tWQ47yUyV5rNQ2FsGqGqdKE/Q==
SECURE_AUTH_SALT: AgCuReJp+NF2X4ywkx+vNjLvX/7JrgCcw8qDGnfI6Pr4/rCUEAouzI9GQ81jLWJX5JL0xIoNfLzv9KyhVGpPEZ2qj+2pHveCFKab0QcMLTVdqLVu9JiESiJ769va7dwV0UZiv2hW1TDdHzTNCtujz3Sd2nP1QXE5stjunVYgMuR5TuDc0vMVYrD4G3GkEaIdKNyDFLrq5w4QHa+zxhDpYPIv1yg09K4X4j0dgYT/PiSdCyhjwyO+92q6AXaeRuq7o1/AavSvpslp3Zc7kiNPY79C6khZhI9VdHosT1H2xbySEovF1FO3f0q1nrxuMFVeMrJrnJBrOjf/7fxi3EQU8YHqcuLLZhOJ9vo7Xo6mpjdiUC3/HCtGDwlGGlsZtZ8xSOT7sqrSS7Z6L+8SMciO/JJY0SyOSQ+KI6XLCF+gLJ/ldguY07RLSCaEqpso1ov6BwdBgkMwYVEtCG19Ll6Qug4gEps6AAfX9fYtzZuqh7klHIstJJ+z1bRZyRMqiyKD3U8B3Xj76nDzmNoKGqEh64q+ylR1yDI7sN4myBXVSLxC86DEfHiDgb7Fpm9KvzqSuPc6WQiRAJOsshnju1g2Mks9XQ3o2xwNtC39uwfXB/aVtG69udi5AYjhRlXfHRkqNxl/nT3sDLR4F4ViLh736b30FPdzjiYx/SBdfwSEljrBWQfMpTSx7jEAFvgARci1MvIPk3SJi39PH4rej4wZGTuEtoWA33473bFKGx5ch7rXGHuVOEgtU4aTshUmKpIbYc0ViZcvKKJM9saEVetQjJvPJw==

View File

@@ -1,43 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: nyomorszele.hvgblog.hu
namespace: hvg-dev
spec:
project: default
source:
repoURL: "ssh://git@ssh.github.com:443/hvg-dev/blog.git"
path: k8s/manifests/app
targetRevision: dev
helm:
releaseName: hvgblog-dev-wp
parameters:
- name: host
value: nyomorszele.hvgblog.hu
- name: db.name
value: nyomorszele
- name: db.user
value: nyomorszele
# - name: env.DB_PREFIX
# value: wp_
- name: env.BLOG_SLUG
value: nyomorszele
- name: env.S3_UPLOADS_BUCKET
value: hvgblog/nyomorszele
# - name: env.WP_DEBUG_LOG
# value: /tmp/debug.log
- name: env.S3_UPLOADS_BUCKET_URL
value: https://hvgblog.ams3.cdn.digitaloceanspaces.com/nyomorszele
- name: image
value: ghcr.io/hvg-dev/blog:dev
valueFiles: []
destination:
server: "https://hvgblog-vcluster.hvg.hu"
namespace: nyomorszele
ignoreDifferences: []
syncPolicy:
automated:
prune: true
selfHeal: false
syncOptions:
- CreateNamespace=true

View File

@@ -1,43 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dev.hvgblog.hu
namespace: hvg-dev
spec:
project: default
source:
repoURL: "ssh://git@ssh.github.com:443/hvg-dev/blog.git"
path: k8s/manifests/app
targetRevision: dev
helm:
releaseName: hvgblog-dev-wp
parameters:
- name: host
value: dev.hvgblog.hu
- name: db.name
value: dev
- name: db.user
value: dev
# - name: env.DB_PREFIX
# value: wp_
- name: env.BLOG_SLUG
value: dev
- name: env.S3_UPLOADS_BUCKET
value: hvgblog/dev
# - name: env.WP_DEBUG_LOG
# value: /tmp/debug.log
- name: env.S3_UPLOADS_BUCKET_URL
value: https://hvgblog.ams3.cdn.digitaloceanspaces.com/dev
- name: image
value: ghcr.io/hvg-dev/blog:dev
valueFiles: []
destination:
server: "https://hvgblog-vcluster.hvg.hu"
namespace: dev
ignoreDifferences: []
syncPolicy:
automated:
prune: true
selfHeal: false
syncOptions:
- CreateNamespace=true

View File

@@ -1,4 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: site-system

View File

@@ -1,40 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: mariadb-my-cnf
namespace: default
data:
config: |
[mariadb]
bind-address=*
default_storage_engine=InnoDB
binlog_format=row
innodb_autoinc_lock_mode=2
wait_timeout=30
---
apiVersion: k8s.mariadb.com/v1alpha1
kind: MariaDB
metadata:
name: mariadb
namespace: default
spec:
image: mariadb:11.8.2
imagePullPolicy: IfNotPresent
myCnfConfigMapKeyRef:
key: config
name: mariadb-my-cnf
port: 3306
replicas: 1
resources:
limits:
cpu: 200m
memory: 1024M
requests:
cpu: 50m
memory: 128M
rootPasswordSecretKeyRef:
key: password
name: mariadb-root-pass
generate: true
storage:
size: 1Gi

View File

@@ -1,22 +0,0 @@
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: mariadb-operator-crds
namespace: site-system
spec:
chart: mariadb-operator-crds
repo: https://mariadb-operator.github.io/mariadb-operator
version: 25.8.3
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: mariadb-operator
namespace: site-system
spec:
chart: mariadb-operator
repo: https://mariadb-operator.github.io/mariadb-operator
targetNamespace: site-system
version: 25.8.3
valuesContent: |
fullnameOverride: mariadb-operator

View File

@@ -1,12 +0,0 @@
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: sealed-secrets
namespace: site-system
spec:
repo: https://bitnami-labs.github.io/sealed-secrets
chart: sealed-secrets
targetNamespace: kube-system
version: 2.11.0
valuesContent: |
fullnameOverride: sealed-secrets-controller