pelican: migrate to envFrom with per-container InfisicalSecrets

Folds the pelican-config ConfigMap into Infisical so the container has a single envFrom. Pins imagePullPolicy to IfNotPresent because ghcr.io/pelican-dev/panel no longer allows anonymous pulls.
This commit is contained in:
2026-08-23 23:16:37 +02:00
parent 647d82fe0f
commit f382c87f58
11 changed files with 36 additions and 60 deletions
@@ -1,20 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: pelican-config
namespace: pelican
data:
APP_NAME: Pelican
APP_URL: https://pelican.jsme.be
BEHIND_PROXY: "true"
ADMIN_EMAIL: jeffreysmeets@jsme.be
DB_CONNECTION: pgsql
DB_HOST: pelican-postgres
DB_PORT: "5432"
CACHE_STORE: redis
QUEUE_CONNECTION: redis
SESSION_DRIVER: redis
REDIS_HOST: pelican-redis
REDIS_PORT: "6379"
XDG_DATA_HOME: /pelican-data
AWS_USE_PATH_STYLE_ENDPOINT: "true"
@@ -20,6 +20,7 @@ spec:
containers: containers:
- name: pelican - name: pelican
image: ghcr.io/pelican-dev/panel:latest image: ghcr.io/pelican-dev/panel:latest
imagePullPolicy: IfNotPresent
ports: ports:
- containerPort: 80 - containerPort: 80
resources: resources:
@@ -30,24 +31,8 @@ spec:
cpu: 1000m cpu: 1000m
memory: 1Gi memory: 1Gi
envFrom: envFrom:
- configMapRef: - secretRef:
name: pelican-config name: pelican-app-secrets
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: pelican-secrets
key: DB_USERNAME
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: pelican-secrets
key: DB_PASSWORD
- name: DB_DATABASE
valueFrom:
secretKeyRef:
name: pelican-secrets
key: DB_DATABASE
volumeMounts: volumeMounts:
- name: pelican-data - name: pelican-data
mountPath: /pelican-data mountPath: /pelican-data
@@ -1,7 +1,7 @@
apiVersion: secrets.infisical.com/v1alpha1 apiVersion: secrets.infisical.com/v1alpha1
kind: InfisicalSecret kind: InfisicalSecret
metadata: metadata:
name: pelican-secrets name: pelican-app-secrets
namespace: infisical namespace: infisical
spec: spec:
hostAPI: https://infisical.jsme.be hostAPI: https://infisical.jsme.be
@@ -16,9 +16,10 @@ spec:
secretsScope: secretsScope:
projectSlug: "kubernetes" projectSlug: "kubernetes"
envSlug: "prod" envSlug: "prod"
secretsPath: "/pelican" secretsPath: "/pelican/pelican"
recursive: true # Non-recursive: keys are already named as the container expects.
recursive: false
managedSecretReference: managedSecretReference:
secretName: pelican-secrets secretName: pelican-app-secrets
secretNamespace: pelican secretNamespace: pelican
secretType: Opaque secretType: Opaque
@@ -0,0 +1,25 @@
apiVersion: secrets.infisical.com/v1alpha1
kind: InfisicalSecret
metadata:
name: pelican-postgres-secrets
namespace: infisical
spec:
hostAPI: https://infisical.jsme.be
resyncInterval: 30
authentication:
kubernetesAuth:
identityId: "5458def7-7c63-40d2-95da-41c614d0933a"
serviceAccountRef:
name: infisical-auth
namespace: infisical
autoCreateServiceAccountToken: true
secretsScope:
projectSlug: "kubernetes"
envSlug: "prod"
secretsPath: "/pelican/postgres"
# Non-recursive: keys are already named as the container expects.
recursive: false
managedSecretReference:
secretName: pelican-postgres-secrets
secretNamespace: pelican
secretType: Opaque
@@ -31,24 +31,9 @@ spec:
volumeMounts: volumeMounts:
- name: pelican-postgres-data - name: pelican-postgres-data
mountPath: /var/lib/postgresql/data mountPath: /var/lib/postgresql/data
env: envFrom:
- name: PGDATA - secretRef:
value: /var/lib/postgresql/data/pgdata name: pelican-postgres-secrets
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: pelican-secrets
key: DB_USERNAME
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: pelican-secrets
key: DB_PASSWORD
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
name: pelican-secrets
key: DB_DATABASE
volumes: volumes:
- name: pelican-postgres-data - name: pelican-postgres-data
persistentVolumeClaim: persistentVolumeClaim: