Steps to reproduce
- Install owncloud using helm with the default values: https://github.com/bitnami/charts/tree/master/upstreamed/owncloud. Used command:
helm install --name owncloud-release -f values-from-default.yaml stable/owncloud --namespace owncloud
- Using “Local Node Path” Persistence Volumes.
The values-from-default.yaml file:
## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
##
# global:
# imageRegistry: myRegistryName
# imagePullSecrets:
# - myRegistryKeySecretName
# storageClass: myStorageClass
## Bitnami ownCloud image version
## ref: https://hub.docker.com/r/bitnami/owncloud/tags/
##
image:
registry: docker.io
repository: bitnami/owncloud
tag: 10.3.1-debian-9-r0
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
##
# pullSecrets:
# - myRegistryKeySecretName
## String to partially override owncloud.fullname template (will maintain the release name)
##
# nameOverride:
## String to fully override owncloud.fullname template
##
# fullnameOverride:
## For Kubernetes v1.4, v1.5 and v1.6, use 'extensions/v1beta1'
## For Kubernetes v1.7, use 'networking.k8s.io/v1'
networkPolicyApiVersion: extensions/v1beta1
## Configure the ingress resource that allows you to access the
## ownCloud installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
## Set to true to enable ingress record generation
enabled: false
## The list of hostnames to be covered with this ingress record.
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
hosts:
- name: owncloud.local
## Set this to true in order to enable TLS on the ingress record
## A side effect of this will be that the backend owncloud service will be connected at port 443
tls: false
## If TLS is set to true, you must declare what secret will store the key/certificate for TLS
tlsSecret: owncloud.local-tls
## Set this to true in order to add the corresponding annotations for cert-manager
certManager: false
## Ingress annotations done as key:value pairs
## For a full list of possible ingress annotations, please see
## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
##
## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set
## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set
annotations:
# kubernetes.io/ingress.class: nginx
secrets:
## If you're providing your own certificates, please use this to add the certificates as secrets
## key and certificate should start with -----BEGIN CERTIFICATE----- or
## -----BEGIN RSA PRIVATE KEY-----
##
## name should line up with a tlsSecret set further up
## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
##
## It is also possible to create and manage the certificates outside of this helm chart
## Please see README.md for more information
# - name: owncloud.local-tls
# key:
# certificate:
## ownCloud host to create application URLs
## ref: https://github.com/bitnami/bitnami-docker-owncloud#configuration
##
owncloudHost: owcloud.adisoft
## User of the application
## ref: https://github.com/bitnami/bitnami-docker-owncloud#configuration
##
owncloudUsername: mh
## Application password
## Defaults to a random 10-character alphanumeric string if not set
## ref: https://github.com/bitnami/bitnami-docker-owncloud#configuration
##
# owncloudPassword:
## Admin email
## ref: https://github.com/bitnami/bitnami-docker-owncloud#configuration
##
owncloudEmail: mh@adibox.be
## Set to `yes` to allow the container to be started with blank passwords
## ref: https://github.com/bitnami/bitnami-docker-owncloud#environment-variables
allowEmptyPassword: "yes"
##
## External database configuration
##
externalDatabase:
## Database host
host:
## Database host
port: 3306
## Database user
user: bn_owncloud
## Database password
password:
## Database name
database: bitnami_owncloud
##
## MariaDB chart configuration
##
## https://github.com/helm/charts/blob/master/stable/mariadb/values.yaml
##
mariadb:
## Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database set this to false and configure the externalDatabase parameters
enabled: true
## Disable MariaDB replication
replication:
enabled: false
## Create a database and a database user
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run
##
db:
name: bitnami_owncloud
user: bn_owncloud
## If the password is not specified, mariadb will generates a random password
##
# password:
## MariaDB admin password
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#setting-the-root-password-on-first-run
##
# rootUser:
# password:
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
master:
persistence:
enabled: true
## mariadb data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
accessMode: ReadWriteOnce
size: 8Gi
## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
##
service:
type: LoadBalancer
# HTTP Port
port: 80
## loadBalancerIP:
##
## nodePorts:
## http: <to set explicitly, choose port between 30000-32767>
## https: <to set explicitly, choose port between 30000-32767>
nodePorts:
http: ""
https: ""
## Enable client source IP preservation
## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
enabled: true
owncloud:
## owncloud data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
## A manually managed Persistent Volume and Claim
## Requires persistence.enabled: true
## If defined, PVC must be created manually before volume will be bound
# existingClaim:
accessMode: ReadWriteOnce
size: 8Gi
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
requests:
memory: 512Mi
cpu: 300m
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Prometheus Exporter / Metrics
##
metrics:
enabled: false
image:
registry: docker.io
repository: bitnami/apache-exporter
tag: 0.7.0-debian-9-r108
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
##
# pullSecrets:
# - myRegistryKeySecretName
## Metrics exporter pod Annotation and Labels
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9117"
## Metrics exporter resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
# resources: {}
Expected behaviour
Owncloud installation successfull.
Actual behaviour
Error on owncloud installation:
Executing internal command: /opt/bitnami/php/bin/php ["occ","status","--no-warnings","--output","json"]
php TRACE [runProgram] RESULT: {"code":1,"stderr":"","stdout":"An unhandled exception has been thrown:\nError: Call to a member function getValues() on null in /opt/bitnami/owncloud/lib/private/App/AppManager.php:131\nStack trace:\n#0 /opt/bitnami/owncloud/lib/private/App/AppManager.php(183): OC\\App\\AppManager->getInstalledAppsValues()\n#1 /opt/bitnami/owncloud/lib/private/legacy/app.php(372): OC\\App\\AppManager->isEnabledForUser('enterprise_key')\n#2 /opt/bitnami/owncloud/lib/private/legacy/util.php(463): OC_App::isEnabled('enterprise_key')\n#3 /opt/bitnami/owncloud/core/Command/Status.php(46): OC_Util::getEditionString()\n#4 /opt/bitnami/owncloud/lib/composer/symfony/console/Command/Command.php(255): OC\\Core\\Command\\Status->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#5 /opt/bitnami/owncloud/core/Command/Base.php(159): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#6 /opt/bitnami/owncloud/lib/composer/symfony/console/Application.php(963): OC\\Core\\Command\\Base->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#7 /opt/bitnami/owncloud/lib/composer/symfony/console/Application.php(254): Symfony\\Component\\Console\\Application->doRunCommand(Object(OC\\Core\\Command\\Status), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#8 /opt/bitnami/owncloud/lib/composer/symfony/console/Application.php(147): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#9 /opt/bitnami/owncloud/lib/private/Console/Application.php(165): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\
Component\\Console\\Output\\ConsoleOutput))\n#10 /opt/bitnami/owncloud/console.php(106): OC\\Console\\Application->run()\n#11 /opt/bitnami/owncloud/occ(11): require_once('/opt/bitnami/ow...')\n#12 {main}"}
Error executing 'postInstallation': Program exited with exit code 1
nami TRACE Error: Error executing 'postInstallation': Program exited with exit code 1
at runProgram (/opt/bitnami/nami/node_modules/nami-utils/lib/os/run-program.js:223:14)
at Object.runProgram (/opt/bitnami/nami/node_modules/nami-utils/lib/os/index.js:63:12)
at Object.$app.helpers.execute (/root/.nami/components/com.bitnami.php/helpers.js:69:14)
at Object.<anonymous> (/opt/bitnami/nami/node_modules/lodash/index.js:51:276)
at Object.$app.helpers.executeOcc (/root/.nami/components/com.bitnami.owncloud/helpers.js:60:22)
at Object.$app.helpers.upgradeDatabase (/root/.nami/components/com.bitnami.owncloud/helpers.js:108:42)
at Component.$app.postInstallation (/root/.nami/components/com.bitnami.owncloud/main.js:54:16)
at Component.runStep (/opt/bitnami/nami/node_modules/nami-core/lib/components/component.js:159:12)
at _.each.step (/opt/bitnami/nami/node_modules/nami-core/lib/components/component.js:236:32)
at r (/opt/bitnami/nami/node_modules/lodash/index.js:5:348)
Server configuration
Operating system: Ubuntu 18.03 64 bits
Web server: from default helm chart
Database: mariadb
PHP version: from default helm chart
ownCloud version: (see ownCloud admin page) 10.3.1-debian-9-r0
Updated from an older ownCloud or fresh install: Fresh install.
Where did you install ownCloud from: Helm chart: https://github.com/bitnami/charts/tree/master/upstreamed/owncloud
Signing status (ownCloud 9.0 and above): ?
The content of config/config.php: I do not have access to the owncloud container and thus do not have access to the config
repository. I find a conf repository
on the persistence volume on which their is a config.php
but not sure what is its purpose.
<?php
$CONFIG = array (
'passwordsalt' => 'xxx',
'secret' => 'xxx',
'trusted_domains' =>
array (
0 => 'localhost',
),
'datadirectory' => '/opt/bitnami/owncloud/data',
'overwrite.cli.url' => 'http://localhost',
'dbtype' => 'mysql',
'version' => '10.3.1.1',
'dbname' => 'bitnami_owncloud',
'dbhost' => 'owncloud-release-mariadb:3306',
'dbtableprefix' => 'oc_',
'dbuser' => 'bn_owncloud',
'dbpassword' => 'xxx',
);
Are you using external storage, if yes which one: The 2 PV and PVC used for owncloud:
PV owncloud-data:
kind: PersistentVolume apiVersion: v1 metadata: name: kube-owncloud-storage-data labels: type: local spec: capacity: storage: 30Gi storageClassName: owncloud-storage-data accessModes: - ReadWriteOnce hostPath: path: /home/adibox/owncloud-storage-data type: DirectoryOrCreate nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - 149.202.36.244
PV owncloud-maria-db:
kind: PersistentVolume apiVersion: v1 metadata: name: kube-owncloud-storage-mariadb labels: type: local spec: capacity: storage: 8Gi storageClassName: owncloud-storage-mariadb accessModes: - ReadWriteOnce hostPath: path: /home/adibox/owncloud-storage-mariadb type: DirectoryOrCreate nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - 149.202.36.244
PVC owncloud-data:
apiVersion: v1 kind: PersistentVolumeClaim metadata: finalizers: - kubernetes.io/pvc-protection name: owncloud-release-owncloud namespace: owncloud spec: accessModes: - ReadWriteOnce resources: requests: storage: 25Gi storageClassName: owncloud-storage-data volumeMode: Filesystem
PVC owncloud-mariadb
apiVersion: v1 kind: PersistentVolumeClaim metadata: finalizers: - kubernetes.io/pvc-protection labels: app: mariadb component: master heritage: Tiller release: owncloud-release name: data-owncloud-release-mariadb-0 namespace: owncloud spec: accessModes: - ReadWriteOnce resources: requests: storage: 8Gi storageClassName: owncloud-storage-mariadb volumeMode: Filesystem
Are you using encryption: no
Are you using an external user-backend, if yes which one: no
Client configuration
No relevant has owncloud is not setup.
Logs
ownCloud log (data/owncloud.log)
{"reqId":"04otWw4uFKOdRTqZdXWP","level":3,"time":"2019-11-25T08:52:56+00:00","remoteAddr":"","user":"--","app":"mysql.setup","method":"--","url":"--","message":"Specific user creation failed: An exception occurred while executing 'SELECT user FROM mysql.user WHERE user=?' with params [\"oc_mh\"]:\n\nSQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user 'bn_owncloud'@'10.42.2.81' for table 'user'"}
Browser log
not relevant