Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions charts/ndb-operator/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: ndb-operator
description: A Helm chart for Nutanix Database Kubernetes Operator
type: application
version: 0.5.4
appVersion: v0.5.2
version: 0.5.5
appVersion: v0.5.3
maintainers:
- name: mazin-s
email: mazin.shaaeldin@nutanix.com
Expand All @@ -27,11 +27,9 @@ icon: https://www.nutanix.com/content/dam/nutanix/global/icons/products/svg/Nuta
annotations:
artifacthub.io/changes: |
- kind: changed
description: "Upgraded controller to v0.5.2 with vulnerability fixes and latest Operator SDK"
- kind: fixed
description: "Upgraded internal dependencies and controller image to v0.5.2."
description: "Upgraded controller from v0.5.2 to v0.5.3."
- kind: security
description: "Upgraded kube-rbac-proxy from v0.16.0 to v0.18.0."
description: "Upgraded kube-rbac-proxy from v0.18.0 to v0.20.2."
artifacthub.io/containsSecurityUpdates: "true"
artifacthub.io/license: Apache-2.0
artifacthub.io/maintainers: |
Expand Down
115 changes: 104 additions & 11 deletions charts/ndb-operator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,97 @@ NDB operator supports these functionalities:
4. [Install](https://cert-manager.io/docs/installation/#getting-started) cert-manager. Ensure that the cert-manager resouces are up and running successfully before installing the NDB operator.

## Installation and Running on the cluster
Deploy the operator on the cluster:

### Method 1: Install from Helm Repository (Recommended)

Add the Nutanix Helm repository:
```sh
helm repo add nutanix https://nutanix.github.io/helm/
helm repo update
```

Install the latest version:
```sh
helm install ndb-operator nutanix/ndb-operator \
--namespace ndb-operator-system \
--create-namespace
```

Install a specific version:
```sh
helm install ndb-operator nutanix/ndb-operator \
--version 0.5.4 \
--namespace ndb-operator-system \
--create-namespace
```

List available versions:
```sh
helm search repo nutanix/ndb-operator --versions
```

### Method 2: Install from OCI Registry (GHCR)

Install the latest version:
```sh
helm install ndb-operator oci://ghcr.io/nutanix-cloud-native/chart/ndb-operator \
--namespace ndb-operator-system \
--create-namespace
```

Install a specific version:
```sh
helm install ndb-operator oci://ghcr.io/nutanix-cloud-native/chart/ndb-operator \
--version 0.5.4 \
--namespace ndb-operator-system \
--create-namespace
```

helm install ndb-operator nutanix/ndb-operator -n ndb-operator --create-namespace
List available versions:
```sh
# Install oras to list OCI registry tags
brew install oras

# List all available versions
oras repo tags ghcr.io/nutanix-cloud-native/chart/ndb-operator
```

### Verify Installation

Check the installation status:
```sh
# Check Helm release
helm list -n ndb-operator-system

# Check pods
kubectl get pods -n ndb-operator-system

# Check CRDs
kubectl get crds | grep ndb.nutanix.com
```

### Upgrading

To upgrade to a newer version:

```sh
# Using Helm repository
helm repo update
helm upgrade ndb-operator nutanix/ndb-operator \
--namespace ndb-operator-system

# Using OCI registry
helm upgrade ndb-operator oci://ghcr.io/nutanix-cloud-native/chart/ndb-operator \
--version 0.5.4 \
--namespace ndb-operator-system
```

### Uninstalling

To uninstall the operator:

```sh
helm uninstall ndb-operator --namespace ndb-operator-system
```
## Usage
### Create secrets to be used by the NDBServer and Database resources using the manifest:
Expand Down Expand Up @@ -96,9 +182,10 @@ spec:
isClone: false
# Database instance specific details (that is to be provisioned)
databaseInstance:
# Cluster id of the cluster where the Database has to be provisioned
# Cluster Name or cluster ID where the Database has to be provisioned
# Can be fetched from the GET /clusters endpoint
clusterId: "Nutanix Cluster Id"
clusterName: "Nutanix Cluster Name" # Recommended: Use cluster name
# clusterId: "Nutanix Cluster UUID" # Alternative: Use cluster UUID
# The database instance name on NDB
name: "Database-Instance-Name"
# The description of the database instance
Expand Down Expand Up @@ -169,9 +256,10 @@ spec:
name: "Clone-Instance-Name"
# The description of the clone instance
description: Database Description
# Cluster id of the cluster where the Database has to be provisioned
# Cluster Name or Cluster id of the cluster where the Cloned Database has to be provisioned
# Can be fetched from the GET /clusters endpoint
clusterId: "Nutanix Cluster Id"
clusterName: "Nutanix Cluster Name" # Recommended: Use cluster name
# clusterId: "Nutanix Cluster UUID" # Alternative: Use cluster UUID
# You can specify any (or none) of these types of profiles: compute, software, network, dbParam
# If not specified, the corresponding Out-of-Box (OOB) profile will be used wherever applicable
# Name is case-sensitive. ID is the UUID of the profile. Profile should be in the "READY" state
Expand All @@ -198,11 +286,16 @@ spec:
# data: password, ssh_public_key
credentialSecret: clone-instance-secret-name
timezone: "UTC"
# ID of the database to clone from, can be fetched from NDB REST API Explorer
sourceDatabaseId: source-database-id
# ID of the snapshot to clone from, can be fetched from NDB REST API Explorer
snapshotId: snapshot-id
additionalArguments: # Optional block, can specify additional arguments that are unique to database engines.

# Name or ID of the database to clone from, can be fetched from NDB REST API Explorer
sourceDatabaseName: "source-database-name" # Recommended: Use database name
# sourceDatabaseId: "source-database-uuid" # Alternative: Use database UUID

# Name or ID of the snapshot to clone from, can be fetched from NDB REST API Explorer
snapshotName: "snapshot-name" # Recommended: Use snapshot name, or leave empty for latest
# snapshotId: "snapshot-uuid" # Alternative: Use snapshot UUID

additionalArguments: # Optional block, can specify additional arguments that are unique to database engines.
expireInDays: 3

```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ spec:
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=0
image: quay.io/brancz/kube-rbac-proxy:v0.18.0
image: quay.io/brancz/kube-rbac-proxy:v0.20.2
name: kube-rbac-proxy
ports:
- containerPort: 8443
Expand Down
Loading