Skip to content
Open
Show file tree
Hide file tree
Changes from 4 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
17 changes: 17 additions & 0 deletions docs/examples/hanadb/clustering/standalone.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: hana-standalone
namespace: demo
spec:
version: "2.0.82"
replicas: 1
storageType: Durable
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
storageClassName: local-path
deletionPolicy: WipeOut
22 changes: 22 additions & 0 deletions docs/examples/hanadb/clustering/system-replication.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: hana-cluster
namespace: demo
spec:
version: "2.0.82"
replicas: 3
storageType: Durable
topology:
mode: SystemReplication
systemReplication:
replicationMode: fullsync
operationMode: logreplay_readaccess
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
storageClassName: local-path
deletionPolicy: WipeOut
19 changes: 19 additions & 0 deletions docs/examples/hanadb/configuration/custom-hanadb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: custom-hanadb
namespace: demo
spec:
version: "2.0.82"
replicas: 1
configuration:
secretName: hanadb-configuration
storageType: Durable
storage:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
deletionPolicy: WipeOut
9 changes: 9 additions & 0 deletions docs/examples/hanadb/configuration/hanadb-configuration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: hanadb-configuration
namespace: demo
stringData:
global.ini: |
[memorymanager]
global_allocation_limit = 8589934592
21 changes: 21 additions & 0 deletions docs/examples/hanadb/custom-rbac/hanadb-custom-clusterrole.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: my-custom-clusterrole
rules:
- apiGroups:
- catalog.kubedb.com
resources:
- hanadbversions
verbs:
- get
- list
- watch
- apiGroups:
- kubedb.com
resources:
- hanadbs
verbs:
- get
- list
- watch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: my-custom-clusterrolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: my-custom-clusterrole
subjects:
- kind: ServiceAccount
name: my-custom-serviceaccount
namespace: demo
20 changes: 20 additions & 0 deletions docs/examples/hanadb/custom-rbac/hanadb-custom-db.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: quick-hanadb
namespace: demo
spec:
version: "2.0.82"
replicas: 1
storageType: Durable
podTemplate:
spec:
serviceAccountName: my-custom-serviceaccount
storage:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
deletionPolicy: WipeOut
58 changes: 58 additions & 0 deletions docs/examples/hanadb/custom-rbac/hanadb-custom-role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: my-custom-role
namespace: demo
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- "*"
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
- apiGroups:
- kubedb.com
resources:
- hanadbs
verbs:
- get
- list
- watch
- patch
- apiGroups:
- kubedb.com
resources:
- hanadbs/status
verbs:
- patch
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- create
- update
- apiGroups:
- apps.k8s.appscode.com
resources:
- petsets
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- get
- update
22 changes: 22 additions & 0 deletions docs/examples/hanadb/monitoring/builtin-prom-hanadb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: builtin-prom-hanadb
namespace: demo
spec:
version: "2.0.82"
replicas: 1
storageType: Durable
storage:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
deletionPolicy: WipeOut
monitor:
agent: prometheus.io/builtin
prometheus:
exporter:
port: 9668
26 changes: 26 additions & 0 deletions docs/examples/hanadb/monitoring/coreos-prom-hanadb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: coreos-prom-hanadb
namespace: demo
spec:
version: "2.0.82"
replicas: 1
storageType: Durable
storage:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
deletionPolicy: WipeOut
monitor:
agent: prometheus.io/operator
prometheus:
exporter:
port: 9668
serviceMonitor:
labels:
release: prometheus
interval: 10s
18 changes: 18 additions & 0 deletions docs/examples/hanadb/private-registry/pvt-hanadbversion.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: catalog.kubedb.com/v1alpha1
kind: HanaDBVersion
metadata:
name: "2.0.82-private"
spec:
coordinator:
image: PRIVATE_REGISTRY/hanadb-coordinator:v0.4.0
db:
image: PRIVATE_REGISTRY/hanaexpress:2.00.082.00.20250528.1
exporter:
image: PRIVATE_REGISTRY/hanadb-exporter:1.0.0
securityContext:
runAsGroup: 79
runAsUser: 12000
updateConstraints:
allowlist:
- 2.0.82-private
version: "2.0.82"
21 changes: 21 additions & 0 deletions docs/examples/hanadb/private-registry/pvt-reg-hanadb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: pvt-reg-hanadb
namespace: demo
spec:
version: "2.0.82-private"
replicas: 1
storageType: Durable
storage:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
podTemplate:
spec:
imagePullSecrets:
- name: myregistrykey
deletionPolicy: WipeOut
17 changes: 17 additions & 0 deletions docs/examples/hanadb/quickstart/quick-hanadb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: quick-hanadb
namespace: demo
spec:
version: "2.0.82"
replicas: 1
storageType: Durable
storage:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
deletionPolicy: Delete
21 changes: 21 additions & 0 deletions docs/examples/hanadb/quickstart/system-replication.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: hana-cluster
namespace: demo
spec:
version: "2.0.82"
replicas: 3
storageType: Durable
topology:
mode: SystemReplication
systemReplication:
replicationMode: fullsync
operationMode: logreplay_readaccess
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 64Gi
storageClassName: local-path
74 changes: 74 additions & 0 deletions docs/guides/hanadb/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: HanaDB
menu:
docs_{{ .version }}:
identifier: hanadb-readme
name: HanaDB
parent: hanadb-guides
weight: 10
menu_name: docs_{{ .version }}
section_menu_id: guides
url: /docs/{{ .version }}/guides/hanadb/
aliases:
- /docs/{{ .version }}/guides/hanadb/README/
---

> New to KubeDB? Please start [here](/docs/README.md).

# Overview

KubeDB supports SAP HANA through the `HanaDB` CRD. You can provision standalone SAP HANA instances or system replication clusters from Kubernetes.

## Supported HanaDB Features

| Features | Availability |
|---------------------------------------------------------------|:------------:|
| Provisioning in Standalone mode | ✓ |
| Provisioning in System Replication mode | ✓ |
| Custom configuration and auth secret | ✓ |
| Custom pod template and service account | ✓ |
| Private registry images | ✓ |
| Built-in Prometheus discovery | ✓ |
| Prometheus Operator monitoring | ✓ |

## Supported HanaDB Versions

KubeDB supports the following SAP HANA version:

- `2.0.82`

## Example HanaDB Manifest

```yaml
apiVersion: kubedb.com/v1alpha2
kind: HanaDB
metadata:
name: hana-cluster
namespace: demo
spec:
version: "2.0.82"
replicas: 3
storageType: "Durable"
topology:
mode: SystemReplication
systemReplication:
replicationMode: fullsync
operationMode: logreplay_readaccess
storage:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 64Gi
storageClassName: local-path
```

## User Guide

- [HanaDB Quickstart](/docs/guides/hanadb/quickstart/quickstart.md) with KubeDB operator.
- [HanaDB CRD](/docs/guides/hanadb/concepts/hanadb.md).
- [HanaDBVersion CRD](/docs/guides/hanadb/concepts/catalog.md).
- [AppBinding](/docs/guides/hanadb/concepts/appbinding.md).
- [Standalone and System Replication](/docs/guides/hanadb/clustering/system-replication.md).
- [Custom Configuration](/docs/guides/hanadb/configuration/using-config-file.md).
- [Private Registry](/docs/guides/hanadb/private-registry/using-private-registry.md).
- [Monitoring](/docs/guides/hanadb/monitoring/overview.md) for metrics collection guidance.
Loading