---
title: "Update database engine"
method: PUT
path: "/namespaces/{namespace}/database-engines/{name}"
tags: ["Database Engine"]
---

# Update database engine

`PUT /namespaces/{namespace}/database-engines/{name}`

This API updates the database engine specified by the `name` and `namespace`.

## Path parameters

- `namespace` string, required
- `name` string, required

## Request body

- DatabaseEngine — DatabaseEngine is the Schema for the databaseengines API.
  - `apiVersion` string — APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  - `kind` string — Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  - `metadata` object
  - `spec` object — DatabaseEngineSpec is a spec for a database engine.
    - `allowedVersions` string[]
    - `secretKeys` object — SecretKeys contains the definition of the various Secrets that the given DBEngine supports. This information acts like metadata for the Everest UI to guide the users in filling out the correct Secret keys for their clusters.
      - `user` object[] — User secret keys are used to store the details of the users.
        - `description` string — Description is a human-readable description of the Secret key.
        - `name` string — Name is the name of the Secret key.
    - `type` string, required — EngineType stands for the supported database engines. Right now it's only pxc and psmdb. However, it can be ps, pg and any other source.
  - `status` object — DatabaseEngineStatus defines the observed state of DatabaseEngine.
    - `availableVersions` object — Versions struct represents available versions of database engine components.
      - `backup` object — ComponentsMap is a map of database engine components.
      - `engine` object — ComponentsMap is a map of database engine components.
      - `proxy` object
      - `tools` object
    - `operatorUpgrade` object — OperatorUpgrade contains the status of the operator upgrade.
      - `installPlanRef` object — InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade. We do not recommended approving this InstallPlan directly from the Kubernetes API. This is because this InstallPlan may also upgrade other operators in the namespace and that can have unintended consequences. This behaviour is not a bug from Everest, but an unfortunate limitation of OLM. We suggest using the Everest API/UI to handle operator upgrades, which will perform a series of checks and safely upgrade all operators in the namespace.
        - `name` string — Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
      - `message` string
      - `phase` string — UpgradePhase represents the phase of the operator upgrade.
      - `startedAt` string, date-time
      - `targetVersion` string — TargetVersion is the version to which the operator should be upgraded.
    - `operatorVersion` string
    - `pendingOperatorUpgrades` object[]
      - `installPlanRef` object — InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade. We do not recommended approving this InstallPlan directly from the Kubernetes API. This is because this InstallPlan may also upgrade other operators in the namespace and that can have unintended consequences. This behaviour is not a bug from Everest, but an unfortunate limitation of OLM. We suggest using the Everest API/UI to handle operator upgrades, which will perform a series of checks and safely upgrade all operators in the namespace.
        - `name` string — Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
      - `targetVersion` string — TargetVersion is the version to which the operator should be upgraded.
    - `status` string — EngineState represents state of engine in a k8s cluster.

## Response `200`

Successful operation

- DatabaseEngine — DatabaseEngine is the Schema for the databaseengines API.
  - `apiVersion` string — APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  - `kind` string — Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  - `metadata` object
  - `spec` object — DatabaseEngineSpec is a spec for a database engine.
    - `allowedVersions` string[]
    - `secretKeys` object — SecretKeys contains the definition of the various Secrets that the given DBEngine supports. This information acts like metadata for the Everest UI to guide the users in filling out the correct Secret keys for their clusters.
      - `user` object[] — User secret keys are used to store the details of the users.
        - `description` string — Description is a human-readable description of the Secret key.
        - `name` string — Name is the name of the Secret key.
    - `type` string, required — EngineType stands for the supported database engines. Right now it's only pxc and psmdb. However, it can be ps, pg and any other source.
  - `status` object — DatabaseEngineStatus defines the observed state of DatabaseEngine.
    - `availableVersions` object — Versions struct represents available versions of database engine components.
      - `backup` object — ComponentsMap is a map of database engine components.
      - `engine` object — ComponentsMap is a map of database engine components.
      - `proxy` object
      - `tools` object
    - `operatorUpgrade` object — OperatorUpgrade contains the status of the operator upgrade.
      - `installPlanRef` object — InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade. We do not recommended approving this InstallPlan directly from the Kubernetes API. This is because this InstallPlan may also upgrade other operators in the namespace and that can have unintended consequences. This behaviour is not a bug from Everest, but an unfortunate limitation of OLM. We suggest using the Everest API/UI to handle operator upgrades, which will perform a series of checks and safely upgrade all operators in the namespace.
        - `name` string — Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
      - `message` string
      - `phase` string — UpgradePhase represents the phase of the operator upgrade.
      - `startedAt` string, date-time
      - `targetVersion` string — TargetVersion is the version to which the operator should be upgraded.
    - `operatorVersion` string
    - `pendingOperatorUpgrades` object[]
      - `installPlanRef` object — InstallPlanRef is a reference to the InstallPlan object created for the operator upgrade. We do not recommended approving this InstallPlan directly from the Kubernetes API. This is because this InstallPlan may also upgrade other operators in the namespace and that can have unintended consequences. This behaviour is not a bug from Everest, but an unfortunate limitation of OLM. We suggest using the Everest API/UI to handle operator upgrades, which will perform a series of checks and safely upgrade all operators in the namespace.
        - `name` string — Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
      - `targetVersion` string — TargetVersion is the version to which the operator should be upgraded.
    - `status` string — EngineState represents state of engine in a k8s cluster.

## Other responses

- `400` — Unsuccessful operation
- `500` — Internal server error

---

[API](https://skmtc.net/openeverest/apis/openeverest-schema.md) · [All operations](https://skmtc.net/openeverest/apis/openeverest-schema/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openeverest/openeverest-schema/versions/46b19e13670b/schema)
