From 50357325426e3de0842280a1aa40288569a3626c Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Wed, 4 Jun 2025 12:10:04 +0200 Subject: [PATCH] feat: some env / CICD fixes --- .env.example | 2 - app/Http/Controllers/API/SyncController.php | 2 +- app/Jobs/Mails/SendTenantDeletedMail.php | 4 +- config/app.php | 2 - config/logging.php | 17 +++++++ config/mail.php | 2 +- manifest.yaml | 53 ++++++++++++++++++++- 7 files changed, 74 insertions(+), 8 deletions(-) diff --git a/.env.example b/.env.example index f05192a..a1f5fc7 100644 --- a/.env.example +++ b/.env.example @@ -5,8 +5,6 @@ APP_DEBUG=true APP_URL=http://localhost API_TOKEN=toto -BRAND= - LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug diff --git a/app/Http/Controllers/API/SyncController.php b/app/Http/Controllers/API/SyncController.php index 74c543c..23fe203 100644 --- a/app/Http/Controllers/API/SyncController.php +++ b/app/Http/Controllers/API/SyncController.php @@ -237,7 +237,7 @@ class SyncController extends Controller 'body' => $message, 'from' => $user->email, 'fromName' => $user->firstname . ' ' . $user->lastname, - 'subject' => '[' . config('app.BRAND') . '] - ' . $subject, + 'subject' => sprintf("[%s] - %s", \tenant('name'), $subject), 'attach' => $attach, 'filesName' => $filesName, ]); diff --git a/app/Jobs/Mails/SendTenantDeletedMail.php b/app/Jobs/Mails/SendTenantDeletedMail.php index e768fd0..0786723 100644 --- a/app/Jobs/Mails/SendTenantDeletedMail.php +++ b/app/Jobs/Mails/SendTenantDeletedMail.php @@ -39,6 +39,8 @@ class SendTenantDeletedMail implements ShouldQueue */ public function handle(): void { - Mail::to(config('mail.to.address'))->send(new TenantDeleted($this->author, $this->name)); + foreach (config('mail.to.address') as $address) { + Mail::to($address)->send(new TenantDeleted($this->author, $this->name)); + } } } diff --git a/config/app.php b/config/app.php index b33406e..b14a766 100644 --- a/config/app.php +++ b/config/app.php @@ -4,8 +4,6 @@ use Illuminate\Support\Facades\Facade; return [ - 'BRAND' => env('BRAND', 'LDC'), - /* |-------------------------------------------------------------------------- | Application Name diff --git a/config/logging.php b/config/logging.php index 6caeb8a..04402c5 100644 --- a/config/logging.php +++ b/config/logging.php @@ -118,6 +118,23 @@ return [ 'emergency' => [ 'path' => storage_path('logs/laravel.log'), ], + + 'stdout' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDOUT_FORMATTER'), + 'with' => [ + 'stream' => 'php://stdout', + ], + ], + + 'k8s' => [ + 'driver' => 'stack', + 'channels' => ['daily', 'stdout'], + 'ignore_exceptions' => false, + ], + ], ]; diff --git a/config/mail.php b/config/mail.php index 6508651..7f55939 100644 --- a/config/mail.php +++ b/config/mail.php @@ -97,7 +97,7 @@ return [ ], 'to' => [ - 'address' => env('MAIL_TO_ADDRESS', 'hello@example.com'), + 'address' => explode(",", env('MAIL_TO_ADDRESS', 'hello@example.com')), 'name' => env('MAIL_TO_NAME', 'Example'), ], diff --git a/manifest.yaml b/manifest.yaml index e76161a..ee6fe62 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -24,9 +24,10 @@ data: MAIL_FROM_NAME: "${APP_APP_NAME}" MAIL_TO_ADDRESS: "${APP_MAIL_TO_ADDRESS}" MAIL_TO_NAME: "${APP_MAIL_TO_NAME}" + QUEUE_CONNECTION: "database" SENTRY_LARAVEL_DSN: "${APP_SENTRY_LARAVEL_DSN}" - BRAND: "${APP_BRAND}" LDC_WEB_API_KEY: "${APP_LDC_WEB_API_KEY}" + API_TOKEN: "${APP_API_TOKEN}" SAML2_SP_CERT_x509: "${APP_SAML2_SP_CERT_x509}" SAML2_SP_CERT_PRIVATEKEY: "${APP_SAML2_SP_CERT_PRIVATEKEY}" SAML2_CONTACT_TECHNICAL_EMAIL: "${APP_SAML2_CONTACT_TECHNICAL_EMAIL}" @@ -128,3 +129,53 @@ spec: port: 80 tls: secretName: ${CRT_TLS_NAME} +--- +apiVersion: batch/v1 +kind: CronJob +metadata: + name: ${CI_PROJECT_PATH_SLUG}-cronjob +spec: + schedule: "* * * * *" + concurrencyPolicy: Forbid + jobTemplate: + spec: + template: + spec: + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - ${CI_PROJECT_PATH_SLUG}-app + topologyKey: "kubernetes.io/hostname" + namespaces: [ $KUBE_NAMESPACE ] + containers: + - name: ${CI_PROJECT_PATH_SLUG}-scheduled + image: $IMAGE_TAG + imagePullPolicy: IfNotPresent + command: + - "php" + args: + - "artisan" + - "schedule:run" + envFrom: + - configMapRef: + name: ${CI_PROJECT_PATH_SLUG}-config-map + volumeMounts: + - name: storage + mountPath: /app/srcs/storage + imagePullSecrets: + - name: docker-registry-credentials + volumes: + - name: storage + persistentVolumeClaim: + claimName: ${CI_PROJECT_PATH_SLUG}-pvc-storage + securityContext: + runAsUser: 33 + runAsGroup: 33 + fsGroup: 33 + fsGroupChangePolicy: "OnRootMismatch" + restartPolicy: OnFailure