-
-
Save TheHunter/1aae94c66cd745b0aeca87588c054bef to your computer and use it in GitHub Desktop.
An sample about couchbase cluster installation with helm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Select what to install | |
install: | |
# couchbaseOperator is the couchbase-operator deployment | |
couchbaseOperator: false | |
# admissionController enforces validation | |
admissionController: false | |
# couchbase cluster | |
couchbaseCluster: true | |
# sync gateway | |
syncGateway: false | |
# couchbaseOperator is the controller for couchbase cluster | |
couchbaseOperator: | |
# name of the couchbase operator | |
name: "couchbase-operator" | |
# image config | |
image: | |
repository: couchbase/operator | |
tag: 2.1.0 | |
imagePullPolicy: IfNotPresent | |
# imagePullSecrets is an optional list of references to secrets to use for pulling images | |
imagePullSecrets: [] | |
# additional command arguments will be translated to `--key=value` | |
commandArgs: | |
# pod creation timeout | |
pod-create-timeout: 10m | |
# resources of couchbase-operator | |
resources: {} | |
# nodeSelector for couchbase-operator pod assignment | |
# Ref: https://kubernetes.io/docs/user-guide/node-selection/ | |
nodeSelector: { | |
appTarget: couch.data.dev | |
} | |
# tolerations of pod match nodes with corresponding taints | |
tolerations: [] | |
# admissionController is the controller for couchbase admission controller | |
# name is derived from chart | |
admissionController: | |
name: "couchbase-admission-controller-dev" | |
image: | |
repository: couchbase/admission-controller | |
tag: 2.1.0 | |
imagePullPolicy: IfNotPresent | |
# imagePullSecrets is an optional list of references to secrets to use for pulling images | |
imagePullSecrets: [] | |
verboseLogging: true | |
# nodeSelector for couchbase-operator pod assignment | |
# Ref: https://kubernetes.io/docs/user-guide/node-selection/ | |
nodeSelector: { | |
appTarget: couch.data.dev | |
} | |
# tolerations of pod match nodes with corresponding taints | |
tolerations: [] | |
# admissionService exposes validation to cluster. This service | |
# is over https and certs are auto-generated based on serviceName. | |
admissionService: | |
# name of the service (auto-generated) | |
name: | |
# port service exposes | |
port: 443 | |
targetPort: 8443 | |
# admissionCA can be used to override the Certs that will be used | |
# to sign the keys used by the admsission operator. | |
admissionCA: | |
# A base64 encoded PEM format certificate | |
cert: | |
# A base64 encoded PEM format private key | |
key: | |
# Expiry time of CA in days for generated certs | |
expiration: 365 | |
# secret with client certs mounted within the admission controller. | |
admissionSecret: | |
# name of the secret (auto-generated) | |
name: | |
# PEM format certificate (auto-generated) | |
# override via --set-file | |
cert: | |
# PEM format certificate (auto-generated) | |
# override via --set-file | |
key: | |
# Default values for couchbase-cluster | |
cluster: | |
# name of the cluster. defaults to name of chart release | |
name: | |
# image is the base couchbase image and version of the couchbase cluster | |
image: "couchbase/server:6.6.0" | |
# guarantees that the pods in the same cluster are unable to be scheduled on the same node | |
antiAffinity: false | |
upgradeStrategy: RollingUpgrade | |
hibernate: false | |
hibernationStrategy: Immediate | |
recoveryPolicy: PrioritizeDataIntegrity | |
security: | |
# username of the cluster admin. | |
username: Administrator | |
# password of the cluster admin. | |
# auto-generated when empty | |
password: my-password | |
# adminSecret is name of secret to use instead of using | |
# the default secret with username and password specified above | |
adminSecret: | |
rbac: | |
managed: true | |
ldap: {} | |
# networking options | |
networking: | |
# Option to expose admin console | |
exposeAdminConsole: true | |
# Option to expose admin console | |
adminConsoleServices: | |
- data | |
# Specific services to use when exposing ui | |
exposedFeatures: | |
- client | |
- xdcr | |
# Defines how the admin console service is exposed. | |
# Allowed values are NodePort and LoadBalancer. | |
# If this field is LoadBalancer then you must also define a spec.dns.domain. | |
adminConsoleServiceType: NodePort | |
# Defines how the per Couchbase node ports are exposed. | |
# Allowed values are NodePort and LoadBalancer. | |
# If this field is LoadBalancer then you must also define a spec.dns.domain. | |
exposedFeatureServiceType: NodePort | |
# This controls routing to external services. | |
exposedFeatureTrafficPolicy: Local | |
# This field allows the definition of a base Service resource. | |
# When set, the Operator will generate a service that exposes Couchbase services per-pod. | |
exposedFeatureServiceTemplate: {} | |
# The dynamic DNS configuration to use when exposing services | |
dns: | |
# Custom map of annotations to be added to console and per-pod (exposed feature) services | |
serviceAnnotations: {} | |
# The Couchbase cluster tls configuration (auto-generated) | |
tls: | |
# The underlying network platform in use (when set, must be 'Istio') | |
networkPlatform: | |
# The retention period that log volumes are kept for after their associated pods have been deleted. | |
logRetentionTime: 604800s | |
# The maximum number of log volumes that can be kept after their associated pods have been deleted. | |
logRetentionCount: 20 | |
# xdcr defines remote clusters and replications to them. | |
xdcr: | |
# managed defines whether the Operator should manage XDCR remote clusters | |
managed: false | |
# remoteClusters contains references to any remote clusters to replicate to | |
remoteClusters: | |
# backup defines values for automated backup. | |
backup: | |
# managed determines whether Automated Backup is enabled | |
managed: true | |
# image used by the Operator to perform backup or restore | |
image: couchbase/operator-backup:6.6.0-100 | |
# optional service account to use when performing backups | |
# service account will be created if it does not exist | |
serviceAccountName: | |
# defines integration with third party monitoring sofware | |
monitoring: | |
prometheus: | |
# defines whether Prometheus metric collection is enabled | |
enabled: false | |
# image used by the Operator to perform metric collection | |
# (injected as a "sidecar" in each Couchbase Server Pod) | |
image: couchbase/exporter:1.0.3 | |
# Optional Kubernetes secret that clients use to access Prometheus metrics | |
authorizationSecret: | |
# Cluster wide settings for nodes and services | |
cluster: | |
# The amount of memory that should be allocated to the data service | |
dataServiceMemoryQuota: 1Gi | |
# The amount of memory that should be allocated to the index service | |
indexServiceMemoryQuota: 2Gi | |
# The amount of memory that should be allocated to the search service | |
searchServiceMemoryQuota: 512Mi | |
# The amount of memory that should be allocated to the eventing service | |
eventingServiceMemoryQuota: 256Mi | |
# The amount of memory that should be allocated to the analytics service | |
analyticsServiceMemoryQuota: 1Gi | |
# The index storage mode to use for secondary indexing | |
indexStorageSetting: memory_optimized | |
# Timeout that expires to trigger the auto failover. | |
autoFailoverTimeout: 120s | |
# The number of failover events we can tolerate | |
autoFailoverMaxCount: 3 | |
# Whether to auto failover if disk issues are detected | |
autoFailoverOnDataDiskIssues: true | |
# How long to wait for transient errors before failing over a faulty disk | |
autoFailoverOnDataDiskIssuesTimePeriod: 120s | |
# configuration of global Couchbase auto-compaction settings. | |
autoCompaction: | |
# amount of fragmentation allowed in persistent database [2-100] | |
databaseFragmentationThreshold: | |
percent: 30 | |
size: 1Gi | |
# amount of fragmentation allowed in persistent view files [2-100] | |
viewFragmentationThreshold: | |
percent: 30 | |
size: 1Gi | |
# whether auto-compaction should be performed in parallel | |
parallelCompaction: false | |
# how frequently tombstones may be purged | |
tombstonePurgeInterval: 72h | |
# optional window when an auto-compaction may start (uncomment below) | |
timeWindow: {} | |
# start: 02:00 | |
# end: 06:00 | |
# abortCompactionOutsideWindow: true | |
# configuration of logging functionality | |
# for use in conjuction with logs persistent volume mount | |
logging: | |
# retention period that log volumes are kept after pods have been deleted | |
logRetentionTime: 604800s | |
# the maximum number of log volumes that can be kept after pods have been deleted | |
logRetentionCount: 20 | |
# kubernetes security context applied to pods | |
securityContext: | |
# fsGroup of persistent volume mount | |
fsGroup: 1000 | |
runAsUser: 1000 | |
runAsNonRoot: true | |
# cluster buckets | |
buckets: | |
# Managed defines whether buckets are managed by us or the clients. | |
managed: true | |
enablePreviewScaling: false | |
#serverGroups: [] | |
servers: | |
# Name for the server configuration. It must be unique. | |
default: | |
size: 3 | |
services: | |
- data | |
- index | |
# Defines whether Autoscale is permitted for this specific server configuration. | |
# Only `query` service is allowed to be defined unless `enablePreviewScaling` is set. | |
autoscaleEnabled: false | |
# volume claims to use for persistent storage | |
volumeMounts: | |
default: couchbase | |
data: couchbase | |
# ServerGroups define the set of availability zones we want to distribute pods over. | |
#serverGroups: [] | |
# Pod defines the policy to create pod for the couchbase pod. | |
pod: | |
metadata: | |
labels: | |
target: couch.data | |
spec: | |
nodeSelector: | |
appTarget: couch.data.dev | |
affinity: | |
podAntiAffinity: | |
preferredDuringSchedulingIgnoredDuringExecution: | |
- weight: 100 | |
podAffinityTerm: | |
labelSelector: | |
matchExpressions: | |
- key: target | |
operator: In | |
values: | |
- couch.data | |
topologyKey: kubernetes.io/hostname | |
query: | |
size: 1 | |
services: | |
- query | |
## volume claims to use for persistent storage | |
volumeMounts: {} | |
## ServerGroups define the set of availability zones we want to distribute pods over. | |
#serverGroups: [] | |
# Pod defines the policy to create pod for the couchbase pod. | |
pod: | |
metadata: | |
labels: | |
target: couch.query | |
spec: | |
nodeSelector: | |
appTarget: couch.data.dev | |
affinity: | |
podAntiAffinity: | |
preferredDuringSchedulingIgnoredDuringExecution: | |
- weight: 100 | |
podAffinityTerm: | |
labelSelector: | |
matchExpressions: | |
- key: target | |
operator: In | |
values: | |
- couch.query | |
topologyKey: kubernetes.io/hostname | |
search: | |
size: 1 | |
services: | |
- search | |
## volume claims to use for persistent storage | |
volumeMounts: {} | |
## Pod defines the policy to create pod for the couchbase pod. | |
pod: | |
metadata: | |
labels: | |
target: couch.query | |
spec: | |
nodeSelector: | |
appTarget: couch.data.dev | |
affinity: | |
podAntiAffinity: | |
preferredDuringSchedulingIgnoredDuringExecution: | |
- weight: 100 | |
podAffinityTerm: | |
labelSelector: | |
matchExpressions: | |
- key: target | |
operator: In | |
values: | |
- couch.query | |
topologyKey: kubernetes.io/hostname | |
#analytics: | |
# size: 1 | |
# services: | |
# - analytics | |
# | |
#eventing: | |
# size: 1 | |
# services: | |
# - eventing | |
# VolumeClaimTemplates define the desired characteristics of a volume | |
# that can be requested and claimed by a pod. | |
volumeClaimTemplates: | |
- metadata: | |
name: couchbase | |
spec: | |
storageClassName: "default" | |
resources: | |
requests: | |
storage: 64Gi | |
- metadata: | |
name: store-data | |
spec: | |
storageClassName: "default" | |
resources: | |
requests: | |
storage: 64Gi | |
- metadata: | |
name: store-index | |
spec: | |
storageClassName: "default" | |
resources: | |
requests: | |
storage: 64Gi | |
# couchbase buckets to create | |
# disable default bucket creation by setting | |
# couchbaseBuckets.default: null | |
buckets: | |
# A bucket to create by default | |
default: | |
# Kind of bucket | |
kind: CouchbaseBucket | |
# Name of the bucket | |
name: semantic | |
# The amount of memory that should be allocated to the bucket | |
memoryQuota: 384Mi | |
# The number of bucket replicates | |
replicas: 1 | |
# The priority when compared to other buckets | |
ioPriority: high | |
# The bucket eviction policy which determines behavior during expire and high mem usage | |
evictionPolicy: fullEviction | |
# The bucket's conflict resolution mechanism; which is to be used if a conflict occurs during Cross Data-Center Replication (XDCR). Sequence-based and timestamp-based mechanisms are supported. | |
conflictResolution: seqno | |
# The enable flush option denotes wether the data in the bucket can be flushed | |
enableFlush: true | |
# Enable Index replica specifies whether or not to enable view index replicas for this bucket. | |
enableIndexReplica: false | |
# data compression mode for the bucket to run in [off, passive, active] | |
compressionMode: "passive" | |
# CouchbaseBackups runs a job which preserves data into backups | |
backups: {} | |
# | |
# Uncomment to create an backup restore named 'my-restore' | |
# | |
# default-backup: | |
# name: my-backup | |
# strategy: full_incremental | |
# full: | |
# schedule: "0 3 * * 0" | |
# incremental: | |
# schedule: "0 3 * * 1-6" | |
# successfulJobsHistoryLimit: 1 | |
# failedJobsHistoryLimit: 3 | |
# backOffLimit: 2 | |
# backupRetention: 24h | |
# logRetention: 24h | |
# size: 5Gi | |
# CouchbaseBackupRestore restores data from backups | |
backuprestores: {} | |
# | |
# Uncomment to create an backup restore named 'my-restore' | |
# | |
# default-restore: | |
# name: my-restore | |
# backup: my-backup | |
# repo: cb-example-2020-11-12T19_00_03 | |
# start: | |
# int: 1 | |
# str: oldest | |
# end: | |
# int: 1 | |
# str: latest | |
# backOffLimit: 2 | |
# logRetention: 24h | |
# RBAC users to create | |
# (requires couchbase server 6.5.0 and higher) | |
users: {} | |
# | |
# Uncomment to create an example user named 'developer' | |
# | |
# developer: | |
# # password to use for user authentication | |
# # (alternatively use authSecret) | |
# password: password | |
# # optional secret to use containing user password | |
# authSecret: | |
# # domain of user authentication | |
# authDomain: local | |
# # roles attributed to group | |
# roles: | |
# - name: bucket_admin | |
# bucket: default | |
# TLS Certs that will be used to encrypt traffic between operator and couchbase | |
tls: | |
# enable to auto create certs | |
generate: false | |
# Expiry time of CA in days for generated certs | |
expiration: 365 | |
# This field defines whether node-to-node encryption is enabled. | |
# Must be either 'All' or 'ControlPlaneOnly'. | |
# If not specified, data between Couchbase Server nodes is not encrypted. | |
nodeToNodeEncryption: | |
# syncGateway configuration | |
syncGateway: | |
# name of the sync gatway pod. | |
# defaults to name of chart | |
name: | |
# database config | |
config: | |
logging: | |
console: | |
enabled: true | |
log_level: "debug" | |
log_keys: | |
- "*" | |
# databases is a list containing | |
# bucket replication configs | |
databases: | |
db: | |
# bucket replicated to sync gateway | |
bucket: default | |
# guest user config | |
users: | |
GUEST: | |
# disable creation of guest user | |
disabled: false | |
# channels guest user may access. | |
# defaults to all channels | |
admin_channels: ["*"] | |
# server to connect db to, defaults to cluster server | |
server: | |
# username of db admin, defaults to cluster admin username | |
username: | |
# password of db admin, defaults to cluster admin password | |
password: | |
allow_conflicts: false | |
revs_limit: 20 | |
enable_shared_bucket_access: true | |
# optional ca.cert for tls connection | |
# (auto-generated when tls.generate true) | |
cacert: | |
# Type of service to use for exposing Sync Gateway | |
# Set as empty string to prevent service creation | |
exposeServiceType: ClusterIP | |
# image of the sync gateway container | |
image: | |
repository: couchbase/sync-gateway | |
tag: 2.8.0-enterprise | |
imagePullPolicy: IfNotPresent | |
# Optional secret to use with prepoulated database config | |
configSecret: | |
# coredns service config to be applied to | |
# pods for cross-cluster deployments | |
coredns: | |
# name kubernete service which exposes nameserver (ie coredns) | |
service: | |
# search list for host-name lookup | |
searches: | |
- default.svc.cluster.local | |
- svc.cluster.local | |
- cluster.local |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In order to test this file, please change the nodeSelector value in accordance with the labels of your Node