oracle / oracle/oracle-database-operator

Failed to validate Wallet: read-only file system

Open
#193 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

adb
Dominant language
Go
Stars
192
Forks
69
Avg merge
16h 13m
Merged PRs (30d)
1

Description

Fresh installation of OKE (v1.32.1) using the OraOperator add-on.

Syncing with existing ADB:

apiVersion: database.oracle.com/v1alpha1
kind: AutonomousDatabase
metadata:
  name: my-release-adb-s
  namespace: my-release
spec:
  action: "Sync"
  details:
    id: ocid1.autonomousdatabase.oc1....
  wallet:
    name: my-release-adb-tns-admin-1
    password:
      k8sSecret:
        name: my-release-adb-wallet-pass-1
  ociConfig:
    configMapName: my-release-oci-config

ADB resource in AVAILABLE state, with no details and secret my-release-adb-tns-admin-1 not created.

Logs on controller pod:

ERROR   controllers.database.AutonomousDatabase.validateWallet.manageError
Error occured   {"Namespace/Name": {"name":"my-release-adb-s","namespace":"my-release"}, 

---> "error": "Failed to validate Wallet: open /tmp/wallet1208873634.zip: read-only file system"}

github.com/oracle/oracle-database-operator/controllers/database.(*AutonomousDatabaseReconciler).manageError
        /workspace/controllers/database/autonomousdatabase_controller.go:392
github.com/oracle/oracle-database-operator/controllers/database.(*AutonomousDatabaseReconciler).Reconcile
        /workspace/controllers/database/autonomousdatabase_controller.go:320
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile
        /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:116
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler
        /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:303
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem
        /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:263
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2
        /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:224

Manual Workaround
Edited the deployments/oracle-database-operator-controller-manager and added:

  volumeMounts:
    - mountPath: /tmp
      name: tmp
...
volumes:
  - emptyDir: {}
    name: tmp

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with controllers/database/autonomousdatabase_controller.go around the validateWallet error at line 392 and the reconciliation path at line 320, then inspect the oracle-database-operator-controller-manager deployment. Verify wallet validation when /tmp is read-only and compare it with the reported emptyDir mount; done means the ADB reaches AVAILABLE with details and the wallet secret is created.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
devops, infrastructure
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.