Skip to content

bug: #126

@Vadej-main

Description

@Vadej-main

Chart Version

1.25.0

Bug Description

I reported this in Discord and they recommended I post it here. Copy and pasting below:

I'm running into an issue where when I deploy with persistent volumes, I get an upgrade failed error. I'm relatively new to K3s but despite desperate searching, I can't find anyone else that is running into this issue. The pod deploys cleanly and works perfectly without the persistence block, but I need to not lose my dashboards and data every time the server, vm, or pod needs to be restarted. Please help, I'm sure I'm missing something simple.

Here's the error:

Error: UPGRADE FAILED: failed to create resource: Deployment.apps "homarr" is invalid: [spec.template.spec.containers[0].volumeMounts[0].name: Not found: "homarr-database", spec.template.spec.containers[0].volumeMounts[1].name: Not found: "homarr-images", spec.template.spec.initContainers[0].volumeMounts[0].name: Not found: "homarr-images"]

Sorry, can't get logs since the pod isn't running, but happy to run checks as needed.
OS: Ubuntu 24.04.2 LTS running K3s deploying with helm. This is a VM on proxmox.
Not positive on version since it's not running currently. Image tag is 1.25.0

In addition, I am including the rendered output from the template as that's what I have in lieu of logs right now.

values.yaml

replicaCount: 1
strategyType: Recreate

image:
  repository: ghcr.io/homarr-labs/homarr
  pullPolicy: IfNotPresent
  tag: "v1.25.0"

env:
  TZ: "America/Chicago"
  AUTH_PROVIDERS: "oidc"
  AUTH_LOGOUT_REDIRECT_URL: "https://<redacted>"
  AUTH_SESSION_EXPIRY_TIME: "30d"
  AUTH_OIDC_ISSUER: "<redacted>"
  AUTH_OIDC_CLIENT_NAME: "SSO"
  AUTH_OIDC_AUTO_LOGIN: "true"
  AUTH_OIDC_SCOPE_OVERWRITE: "openid email profile groups"
  AUTH_OIDC_GROUPS_ATTRIBUTE: "groups"

envSecrets:
  authOidcCredentials:
    existingSecret: "auth-oidc-secret"
    oidcClientId: "oidc-client-id"
    oidcClientSecret: "oidc-client-secret"

service:
  enabled: true
  type: ClusterIP
  ports:
    app:
      port: 7575
      targetPort: http
      protocol: TCP
  ipFamilyPolicy: SingleStack
  ipFamilies: []

livenessProbe:
  httpGet:
    path: /api/health/live
    port: 7575

readinessProbe:
  httpGet:
    path: /api/health/ready
    port: 7575

containerPorts:
  http:
    port: 7575
    protocol: TCP

persistence:
  homarrDatabase:
    enabled: true
    storageClassName: "local-path"
    size: "1Gi"
    volumeClaimName: "homarr-database"

  homarrImages:
    enabled: true
    storageClassName: "local-path"
    size: "1Gi"
    volumeClaimName: "homarr-images"

imagesCopy:
  enabled: true
  pathToLocalImages: "/images"


hostAliases: []

additionalObjects: []

Relevant log output

---
# Source: homarr/templates/homarr-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: homarr-database
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: "local-path"
  resources:
    requests:
      storage: 1Gi
  volumeName: "homarr-database"
---
# Source: homarr/templates/homarr-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: homarr-images
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: "local-path"
  resources:
    requests:
      storage: 1Gi
  volumeName: "homarr-images"
---
# Source: homarr/templates/homarr-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: homarr
  labels:
    helm.sh/chart: homarr-4.0.0
    app.kubernetes.io/name: homarr
    app.kubernetes.io/instance: homarr
    app.kubernetes.io/version: "v1.25.0"
    app.kubernetes.io/managed-by: Helm
spec:
  type: ClusterIP
  ipFamilyPolicy: SingleStack
  ports:
    - name: app
      port: 7575
      protocol: TCP
      targetPort: http
  selector:
    app.kubernetes.io/name: homarr
    app.kubernetes.io/instance: homarr
---
# Source: homarr/templates/homarr-dc.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: homarr
  labels:
    helm.sh/chart: homarr-4.0.0
    app.kubernetes.io/name: homarr
    app.kubernetes.io/instance: homarr
    app.kubernetes.io/version: "v1.25.0"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app.kubernetes.io/name: homarr
      app.kubernetes.io/instance: homarr
  template:
    metadata:
      labels:
        helm.sh/chart: homarr-4.0.0
        app.kubernetes.io/name: homarr
        app.kubernetes.io/instance: homarr
        app.kubernetes.io/version: "v1.25.0"
        app.kubernetes.io/managed-by: Helm
    spec:
      securityContext:
        {}

      initContainers:
        - name: image-copy-init
          image: busybox
          command: [ "/bin/sh", "-c" ]
          args:
            - "cp -r /images/* /images/"
          volumeMounts:
            - name: homarr-images
              mountPath: /images
      containers:
        - name: homarr
          securityContext:
            {}
          image: "ghcr.io/homarr-labs/homarr:v1.25.0"
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 7575
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /api/health/live
              port: 7575
            initialDelaySeconds: 10
            timeoutSeconds: 1
            periodSeconds: 10
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /api/health/ready
              port: 7575
            initialDelaySeconds: 10
            timeoutSeconds: 1
            periodSeconds: 10
            failureThreshold: 3
          env:
            - name: ENABLE_DOCKER
              value: "false"
            - name: ENABLE_KUBERNETES
              value: "false"
            - name: AUTH_LDAP_BASE
              value: ""
            - name: AUTH_LDAP_BIND_DN
              value: ""
            - name: AUTH_LDAP_GROUP_CLASS
              value: "groupOfUniqueNames"
            - name: AUTH_LDAP_GROUP_FILTER_EXTRA_ARG
              value: ""
            - name: AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE
              value: "member"
            - name: AUTH_LDAP_GROUP_MEMBER_USER_ATTRIBUTE
              value: "dn"
            - name: AUTH_LDAP_SEARCH_SCOPE
              value: "base"
            - name: AUTH_LDAP_URI
              value: ""
            - name: AUTH_LDAP_USERNAME_ATTRIBUTE
              value: "uid"
            - name: AUTH_LDAP_USERNAME_FILTER_EXTRA_ARG
              value: ""
            - name: AUTH_LDAP_USER_MAIL_ATTRIBUTE
              value: "mail"
            - name: AUTH_LOGOUT_REDIRECT_URL
              value: "https://<redacted>"
            - name: AUTH_OIDC_AUTO_LOGIN
              value: "true"
            - name: AUTH_OIDC_CLIENT_NAME
              value: "SSO"
            - name: AUTH_OIDC_GROUPS_ATTRIBUTE
              value: "groups"
            - name: AUTH_OIDC_ISSUER
              value: "<redacted>"
            - name: AUTH_OIDC_NAME_ATTRIBUTE_OVERWRITE
              value: ""
            - name: AUTH_OIDC_SCOPE_OVERWRITE
              value: "openid email profile groups"
            - name: AUTH_PROVIDERS
              value: "oidc"
            - name: AUTH_SESSION_EXPIRY_TIME
              value: "30d"
            - name: TZ
              value: "America/Chicago"
            - name: DB_MIGRATIONS_DISABLED
              value: "false"
            - name: DB_DRIVER
              value: "better-sqlite3"
            - name: DB_DIALECT
              value: "sqlite"
            - name: DB_URL
              value: "/appdata/db/db.sqlite"
            - name: AUTH_OIDC_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  name: auth-oidc-secret
                  key: oidc-client-id
            - name: AUTH_OIDC_CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: auth-oidc-secret
                  key: oidc-client-secret
            - name: SECRET_ENCRYPTION_KEY
              valueFrom:
                secretKeyRef:
                  name: db-secret
                  key: db-encryption-key

          resources:
            {}
          volumeMounts:
            - name: homarr-database
              mountPath: /appdata/db
            - name: homarr-images
              mountPath: /images

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions