1---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: (unknown)
7 name: couchdbservers.datasync.edge.ncr.com
8spec:
9 group: datasync.edge.ncr.com
10 names:
11 kind: CouchDBServer
12 listKind: CouchDBServerList
13 plural: couchdbservers
14 singular: couchdbserver
15 scope: Namespaced
16 versions:
17 - additionalPrinterColumns:
18 - jsonPath: .status.conditions[?(@.type=="Ready")].status
19 name: Ready
20 type: string
21 - jsonPath: .status.conditions[?(@.type=="Ready")].message
22 name: Status
23 type: string
24 name: v1alpha1
25 schema:
26 openAPIV3Schema:
27 properties:
28 apiVersion:
29 description: |-
30 APIVersion defines the versioned schema of this representation of an object.
31 Servers should convert recognized schemas to the latest internal value, and
32 may reject unrecognized values.
33 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
34 type: string
35 kind:
36 description: |-
37 Kind is a string value representing the REST resource this object represents.
38 Servers may infer this from the endpoint the client submits requests to.
39 Cannot be updated.
40 In CamelCase.
41 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
42 type: string
43 metadata:
44 type: object
45 spec:
46 properties:
47 admin:
48 description: Admin contains configuration that controls how the admin
49 user is setup
50 properties:
51 cookie:
52 description: |-
53 SecretReference represents a Secret Reference. It has enough information to retrieve secret
54 in any namespace
55 properties:
56 name:
57 description: name is unique within a namespace to reference
58 a secret resource.
59 type: string
60 namespace:
61 description: namespace defines the space within which the
62 secret name must be unique.
63 type: string
64 type: object
65 x-kubernetes-map-type: atomic
66 replicationSecret:
67 description: |-
68 ReplicationSecret configures how the GCP Secret Manager Secret for
69 replicators is created. It is always created in the server's GCP Project
70 properties:
71 fromSecret:
72 description: |-
73 Reference to a secret to get the replication auth from. Defaults to the value
74 of Admin.Credentials. Allows using different auth for replication and admin
75 properties:
76 name:
77 description: name is unique within a namespace to reference
78 a secret resource.
79 type: string
80 namespace:
81 description: namespace defines the space within which
82 the secret name must be unique.
83 type: string
84 type: object
85 x-kubernetes-map-type: atomic
86 target:
87 description: The name of the Secret Manager Secret to create
88 type: string
89 required:
90 - target
91 type: object
92 secretRef:
93 description: |-
94 SecretReference represents a Secret Reference. It has enough information to retrieve secret
95 in any namespace
96 properties:
97 name:
98 description: name is unique within a namespace to reference
99 a secret resource.
100 type: string
101 namespace:
102 description: namespace defines the space within which the
103 secret name must be unique.
104 type: string
105 type: object
106 x-kubernetes-map-type: atomic
107 type: object
108 admins:
109 additionalProperties:
110 type: string
111 type: object
112 attachments:
113 description: AttachmentConfig is the configuration for attachment
114 storage
115 properties:
116 compressibleTypes:
117 description: specifies by their MIME type which types of attachments
118 to compress
119 items:
120 type: string
121 type: array
122 compressionLevel:
123 description: Defines zlib compression level for the attachments
124 type: integer
125 type: object
126 backgroundIndex:
127 description: BackgroundIndexConfig Secondary indexes in CouchDB
128 properties:
129 batch_channels:
130 description: BatchChannels Controls number of background view
131 builds that can be running in parallel
132 type: integer
133 ignoreShards:
134 additionalProperties:
135 type: boolean
136 description: IgnoreShardsIgnoreShards tell the background indexer
137 to skip over specific database shard files
138 type: object
139 incremental_channels:
140 description: IncrementalChannels Controls number of additional
141 short jobs allowed to run concurrently with main jobs
142 type: integer
143 max_incremental_updates:
144 description: MaxIncrementalUpdates Controls whether an indexing
145 job is "incremental" or not by looking at the difference in
146 sequence numbers between the current index and the main database
147 type: integer
148 type: object
149 base:
150 description: |-
151 BaseConfig contains all configuration related CouchDB specific functionality
152 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/couchdb.html
153 properties:
154 bufferSize:
155 description: |-
156 BufferSize Higher values may result in better read performance due to fewer read operations and/or more OS page cache hits.
157 However, they can also increase overall response time for writes when there are many attachment write requests in parallel.
158 type: integer
159 compression:
160 description: |-
161 Compression is the method used to compress everything that is appended
162 to database and view index files, except for attachments. Immutable.
163 Available methods are:
164 - `none`: no compressions
165 - `snappy`: use Google Snappy, a very fast compressor/decompressor
166 - `deflate_N`: use zlib’s deflate; N is the compression level which
167 ranges from 1 (fastest, lowest compression ratio) to 9 (slowest,
168 highest compression ratio)
169 type: string
170 databaseDir:
171 description: |-
172 DatabaseDir location of CouchDB database files (*.couch).
173 This location should be writable and readable for the user the CouchDB service runs as (couchdb by default).
174 type: string
175 databaseRecovery:
176 description: DatabaseRecovery Enable this to only “soft-delete”
177 databases.
178 type: boolean
179 defaultSecurity:
180 description: |-
181 DefaultSecurity for access to databases. By default `admin_only` is set
182 so only admins can read and write. When set to `admin_local`, sharded
183 databases can be read and written by anyone but the shareds can only be
184 read and written by admins. When set to `everyone`, anyone can perform
185 reads and writes. Immutable.
186 type: string
187 driverDir:
188 description: |-
189 DriverDir Specifies location of binary drivers (icu, ejson, etc.).
190 This location and its contents should be readable for the user that runs the CouchDB service.
191 type: string
192 maintenance_mode:
193 description: |-
194 MaintenanceMode A CouchDB node may be put into distinct maintenance modes:
195 Modes:
196 - true: The node will not respond to clustered requests from other nodes and the /_up endpoint will return a 404 response.
197 - nolb: The /_up endpoint will return a 404 response.
198 - false: The node responds normally, /_up returns a 200 response.
199 type: string
200 maxDBsOpen:
201 description: |-
202 MaxDBsOpen is the upper found on the number of databases that can be open
203 at once. Requires restart of CouchDB to take effect. Immutable.
204 type: integer
205 maxDocSize:
206 description: TODO(help_wanted) - add others, maintenance mode
207 and lifecyle actions will need investigation
208 type: integer
209 processTimeout:
210 description: |-
211 ProcessTimeout If an external process, such as a query server or external process,
212 runs for this amount of milliseconds without returning any results, it will be terminated.
213 type: integer
214 securityEditable:
215 description: SecurityEditable When this configuration setting
216 is set to false, users_db_checkpoint is checked for corruption
217 when opened.
218 type: boolean
219 singleNode:
220 description: |-
221 SingleNode automatically creates the system databases on startup. Must
222 be `false` for a clustered installation. Immutable.
223 type: boolean
224 uriFile:
225 description: URIFile This file contains the full URI that can
226 be used to access this instance of CouchDB.
227 type: string
228 usersDBSuffix:
229 description: UsersDBSuffix Specifies the suffix (last component
230 of a name) of the system database for storing CouchDB users.
231 type: string
232 uuid:
233 description: Unique identifier for the server instance. Immutable.
234 type: string
235 viewIndexDir:
236 description: ViewIndexDir Specifies location of CouchDB view index
237 files.
238 type: string
239 type: object
240 cluster:
241 description: Cluster is the configuration for clustered couchdb servers
242 properties:
243 autoFinish:
244 description: |-
245 If true, finish_cluster will be sent to a random node within the cluster,
246 completing the clustered server setup
247 type: boolean
248 nodes:
249 description: Unused. Number of couch servers in the cluster
250 type: integer
251 type: object
252 clustering:
253 description: |-
254 ClusterConfig contains all configuration options for running a multi-node
255 clustered instance. Immutable.
256 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/cluster.html
257 properties:
258 nodes:
259 description: |-
260 Nodes is the number of nodes in a clustered install. Sets the number of
261 replicas of each document in a cluster with only one replica per node.
262 Immutable.
263 type: integer
264 placement:
265 description: |-
266 Sets the cluster-wide replica placement policy when creating new
267 databases. The value must be a comma-delimited list
268 of strings of the format zone_name:#
269 type: string
270 reconnect_interval_sec:
271 description: Period in seconds specifying how often to attempt
272 reconnecting to disconnected nodes. There is a 25% random jitter
273 applied to this value.
274 type: integer
275 seedList:
276 description: |-
277 SeedList is an optional list of node names used when joining nodes in a
278 cluster. Immutable.
279 items:
280 type: string
281 type: array
282 shards:
283 description: |-
284 Shards is the default number of shards for newly created databases
285 (default value is 2). Immutable.
286 type: integer
287 type: object
288 csp:
289 description: CSPConfig is the configuration for Content Security Policy
290 properties:
291 attachmentsEnable:
292 description: specifies whether to enable the sending of the CSP
293 header for attachments
294 type: boolean
295 attachmentsHeaderValue:
296 description: specifies the exact header value to send for attachments
297 type: string
298 enable:
299 description: specifies whether to enable the sending of the CSP
300 header
301 type: boolean
302 headerValue:
303 description: specifies the default header value to send
304 type: string
305 showListEnable:
306 description: specifies whether to enable the sending of the CSP
307 header for show list
308 type: boolean
309 showlistHeaderValue:
310 description: specifies the exact header value to send for show
311 list
312 type: string
313 utilsEnable:
314 description: specifies whether to enable the sending of the CSP
315 header for _utils
316 type: boolean
317 utilsHeaderValue:
318 description: specifies the exact header value to send for _utils
319 type: string
320 type: object
321 deletionPolicy:
322 description: |-
323 DeletionPolicy determines what happens to the CouchDB instance when this
324 resource is deleted. Immutable.
325 Available options are:
326 - `abandon`: all CouchDB resources are left alone (default)
327 - `purge`: all CouchDB resources will also be removed
328 type: string
329 disk_monitor:
330 description: |-
331 DiskMonitor Disk Monitor Options
332 Apache CouchDB can react proactively when disk space gets low.
333 properties:
334 backgroundViewIndexingThreshold:
335 description: |-
336 BackgroundViewIndexingThreshold The percentage of used disk space on the `view_index_dir` above which CouchDB
337 will no longer start background view indexing jobs. Defaults to 80.
338 type: integer
339 enable:
340 description: Enable enable disk monitoring subsystem. Defaults
341 to false.
342 type: boolean
343 interactiveDatabaseWritesThreshold:
344 description: |-
345 InteractiveDatabaseWritesThreshold The percentage of used disk space on the database_dir above which CouchDB
346 will no longer allow interactive document updates (writes or deletes).
347 Replicated updates and database deletions are still permitted.
348 In a clustered write an error will be returned if enough nodes are above the `interactive_database_writes_threshold`.
349 Defaults to 90.
350 type: integer
351 interactiveViewIndexingThreshold:
352 description: |-
353 InteractiveViewIndexingThreshold The percentage of used disk space on the view_index_dir above which CouchDB
354 will no longer update stale view indexes when queried.
355 View indexes that are already up to date can still be queried,
356 and stale view indexes can be queried if either stale=ok or update=false are set.
357 Attempts to query a stale index without either parameter will yield a 507 Insufficient Storage error. Defaults to 90.
358 type: integer
359 type: object
360 ingress:
361 properties:
362 certificate:
363 description: Certificate is a reference to a ManagedCertificate
364 to create, or use if it exists
365 properties:
366 name:
367 description: |-
368 NOTE: An Ingress will reference this ManagedCertificate, so this value must match
369 the networking.gke.io/managed-certificates annotation on the Ingress.
370 type: string
371 required:
372 - name
373 type: object
374 type: object
375 interval:
376 description: |-
377 Interval is how often the object will be reconciled, in order to prevent
378 drift.
379 type: string
380 ioq:
381 description: IOQConfig config from https://docs.couchdb.org/en/stable/config/ioq.html
382 properties:
383 bypass:
384 description: Bypass ioq bypass config belows
385 properties:
386 compaction:
387 description: Disk IO issued by compaction jobs.
388 type: boolean
389 osProcess:
390 description: Messages on their way to an external process
391 (e.g., couchjs).
392 type: boolean
393 read:
394 description: Disk IO fulfilling interactive read requests.
395 type: boolean
396 reshard:
397 description: Disk IO issued by resharding jobs.
398 type: boolean
399 shardSync:
400 description: Disk IO issued by the background replication
401 processes that fix any inconsistencies between shard copies.
402 type: boolean
403 viewUpdate:
404 description: Disk IO required to update views and other secondary
405 indexes.
406 type: boolean
407 write:
408 description: Disk IO required to update a database.
409 type: boolean
410 type: object
411 concurrency:
412 description: 'Specifies the maximum number of concurrent in-flight
413 IO requests that the queueing system will submit:'
414 type: integer
415 ratio:
416 description: 'The fraction of the time that a background IO request
417 will be selected over an interactive IO request when both queues
418 are non-empty:'
419 type: number
420 type: object
421 log:
422 description: LogConfig from https://docs.couchdb.org/en/stable/config/logging.html
423 properties:
424 file:
425 description: 'Specifies the location of file for logging output.
426 Only used by the file writer:'
427 type: string
428 includeSASL:
429 description: Includes SASL information in logs
430 type: boolean
431 level:
432 description: Logging level defines how verbose and detailed logging
433 will be
434 type: string
435 syslogAppid:
436 description: 'Specifies application name to the syslog writer:'
437 type: string
438 syslogFacility:
439 description: 'Specifies the syslog facility to use with the syslog
440 writer:'
441 type: string
442 syslogHost:
443 description: 'Specifies the syslog host to send logs to. Only
444 used by the syslog writer:'
445 type: string
446 syslogPort:
447 description: 'Specifies the syslog port to connect to when sending
448 logs. Only used by the syslog writer:'
449 type: integer
450 writeBuffer:
451 description: |-
452 Specifies the size of the file log write buffer in bytes, to enable delayed log writes
453 Only used by the file writer
454 type: string
455 writeDelay:
456 description: |-
457 Specifies the wait in milliseconds before committing logs to disk, to enable delayed log writes.
458 Only used by the file writer:
459 type: string
460 writer:
461 description: 'Where to send logs: stderr, file, syslog, journald
462 or your implementation'
463 type: string
464 type: object
465 metrics:
466 description: |-
467 MetricsConfig contains all configuration options for managing Prometheus
468 integration.
469 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/misc.html#configuration-of-prometheus-endpoint
470 properties:
471 additionalPort:
472 description: |-
473 AdditionalPort sets whether or not to create a separate,
474 non-authenticated port (default is `false``)
475 type: boolean
476 bindAddress:
477 description: BindAddress is the IP address to bind. Immutable.
478 type: string
479 port:
480 description: |-
481 Port on which client can query Prometheus endpoint data without auth.
482 Immutable.
483 type: integer
484 type: object
485 nativeQuery:
486 description: NativeQueryConfig CouchDB has a native Erlang query server,
487 allowing you to write your map/reduce functions in Erlang.
488 properties:
489 enable:
490 description: Enables or disables the Native Erlang Query Server.
491 type: boolean
492 type: object
493 purge:
494 description: PurgeConfig is the configuration for database purge
495 properties:
496 indexLagWarnSeconds:
497 description: allowed duration when index is not updated for local
498 purge checkpoint document
499 type: integer
500 maxDocumentIdNumber:
501 description: maximum number of documents allowed in a single purge
502 request
503 type: integer
504 maxRevisionsNumber:
505 description: maximum number of accumulated revisions allowed in
506 a single purge request
507 type: integer
508 type: object
509 query:
510 description: QueryServerConfig The external query server is a special
511 OS process which communicates with CouchDB over standard input/output
512 using a very simple line-based protocol with JSON messages.
513 properties:
514 commit_freq:
515 description: Specifies the delay in seconds before view index
516 changes are committed to disk.
517 type: integer
518 processLimit:
519 description: Hard limit on the number of OS processes usable by
520 Query Servers.
521 type: integer
522 processTimeout:
523 description: The timeout for a process used by Query Servers.
524 type: integer
525 reduceLimit:
526 description: Controls Reduce overflow error that raises when output
527 of reduce functions.
528 type: boolean
529 softLimit:
530 description: Soft limit on the number of OS processes usable by
531 Query Servers.
532 type: integer
533 type: object
534 reSharding:
535 description: ReShardingConfig options for re sharding nodes
536 properties:
537 deleteSource:
538 description: ' DeleteSource Indicates if the source shard should
539 be deleted after resharding has finished. By default, it is
540 true'
541 type: boolean
542 maxHistory:
543 description: ' MaxHistory Each resharding job maintains a timestamped
544 event log. This setting limits the maximum size of that log'
545 type: integer
546 maxJobs:
547 description: ' MaxJobs Maximum number of resharding jobs per cluster
548 node'
549 type: integer
550 maxRetries:
551 description: ' MaxRetries How many times to retry shard splitting
552 steps if they fail. For example, if indexing or topping off
553 fails, it will be retried up to this many times before the whole
554 resharding job fails'
555 type: integer
556 requireNodeParam:
557 description: ' RequireNodeParam Require users to specify a node'
558 type: boolean
559 requireRangeParam:
560 description: ' RequireRangeParam Require users to specify a range'
561 type: boolean
562 retryInterval:
563 description: RetryInterval How long to wait between subsequent
564 retries
565 type: integer
566 sourceCloseTimeout:
567 description: ' SourceCloseTimeout How many seconds to wait for
568 the source shard to close. “Close” in this context means that
569 client requests which keep the database open have all finished'
570 type: integer
571 updateTimeout:
572 description: ' UpdateTimeout How many seconds to wait for the
573 shard map update operation to complete. If there is a large
574 number of shard db changes waiting to finish replicating, it
575 might be beneficial to increase this timeout'
576 type: integer
577 type: object
578 replicator:
579 description: |-
580 ReplicatorConfig contains all configuration options for managing
581 replication for this instance.
582 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/replicator.html
583 properties:
584 authPlugins:
585 description: |-
586 AuthPlugins list of replicator client authentication plugin: couch_replicator_auth_session,couch_replicator_auth_noop.
587 For backwards compatibility, the no-op plugin should be used at the end of the plugin list.
588 Immutable.
589 type: string
590 certFile:
591 description: CertFile Path to a file containing the user’s certificate.
592 Immutable.
593 type: string
594 certMaxDepth:
595 description: CertMaxDepth Maximum peer certificate depth (must
596 be set even if certificate validation is off). Immutable.
597 type: integer
598 checkpointInterval:
599 description: CheckpointInterval replicator will request from
600 the Source database at the specified interval in milliseconds.
601 Immutable.
602 type: integer
603 connectionTimeout:
604 description: |-
605 ConnectionTimeout is the http connection timeout per replication in ms.
606 This is divided by 3 when the replicator makes changes feed requests.
607 Immutable.
608 type: integer
609 httpConnections:
610 description: HTTPConnections Maximum number of HTTP connections
611 per replication. Immutable.
612 type: integer
613 interval:
614 description: Interval is the scheduling interval in milliseconds.
615 Immutable.
616 type: integer
617 maxChurn:
618 description: MaxChurn is the number of replication jobs to start
619 and stop during rescheduling. Immutable.
620 type: integer
621 maxHistory:
622 description: MaxHistory is the number of events recorded for each
623 job. Immutable.
624 type: integer
625 maxJobs:
626 description: MaxJobs is the number of actively running replications.
627 Immutable.
628 type: integer
629 password:
630 description: Password the user’s password, only used if the private
631 key file is password protected. Immutable.
632 type: string
633 priorityCoeff:
634 description: |-
635 PriorityCoeff Priority coefficient decays all the job priorities such that they slowly drift towards the front of the run queue.
636 The value must be between 0.0 and 1.0.
637 Immutable.
638 type: number
639 replicatorShares:
640 additionalProperties:
641 type: integer
642 description: |-
643 Fair share configuration section. Higher share values results in a higher chance that jobs from that db get to run.
644 The default value is 100, minimum is 1 and maximum is 1000.
645 The configuration may be set even if the database does not exist.
646 type: object
647 retriesPerRequest:
648 description: |-
649 TODO(help_wanted) - handle http_connections in separate PR
650 RetriesPerRequest if a request fails, the replicator will retry it up to N times. Immutable.
651 type: integer
652 socketOptions:
653 description: SocketOptions socket options that might boost performance
654 in some scenarios.
655 type: string
656 trustedCertFile:
657 description: TrustedCertFile File containing a list of peer trusted
658 certificates (in the PEM format). Immutable.
659 type: string
660 updateDocs:
661 description: UpdateDocs when true, replicator will update replication
662 document with error and triggered states. Immutable.
663 type: boolean
664 usageCoeff:
665 description: |-
666 UsageCoeff Usage coefficient decays historic fair share usage every scheduling cycle.
667 The value must be between 0.0 and 1.0.
668 Immutable.
669 type: number
670 useBulkGet:
671 description: UseBulkGet CouchDB will attempt to use the _bulk_get
672 HTTP API endpoint to fetch documents from the source. Immutable.
673 type: boolean
674 useCheckpoints:
675 description: UseCheckpoints CouchDB will make checkpoints during
676 replication and at the completion of replication. Immutable.
677 type: boolean
678 validEndpointProtocols:
679 description: ValidEndpointProtocols replication jobs with endpoint
680 urls not in this list will fail to run. Immutable.
681 type: string
682 validProxyProtocols:
683 description: ValidProxyProtocols replication jobs with proxy urls
684 not in this list will fail to run. Immutable.
685 type: string
686 validSocketOptions:
687 description: 'ValidSocketOptions valid socket options: buffer,keepalive,nodelay,priority,recbuf,sndbuf,
688 etc... Immutable.'
689 type: string
690 workerBatchSize:
691 description: WorkerBatchSize with lower batch sizes checkpoints
692 are done more frequently. Immutable.
693 type: integer
694 workerProcesses:
695 description: WorkerProcesses More worker processes can give higher
696 network throughput but can also imply more disk and network
697 IO. Immutable.
698 type: integer
699 type: object
700 retryInterval:
701 description: |-
702 RetryInterval is how often to retry previously failed reconciliations. Defaults
703 to Interval if not provided.
704 type: string
705 rpc:
706 properties:
707 bufferCount:
708 description: |-
709 The local RPC server will buffer messages if a remote node goes unavailable.
710 This flag determines how many messages will be buffered before the local
711 server starts dropping messages. Default value is 2000.
712 type: integer
713 server_per_node:
714 description: |-
715 By default, rexi will spawn one local gen_server process for each node in
716 the cluster. Disabling this flag will cause CouchDB to use a single process
717 for all RPC communication, which is not recommended in high throughput
718 deployments.
719 type: boolean
720 stream_limit:
721 description: |-
722 This flag comes into play during streaming operations like views and change
723 feeds. It controls how many messages a remote worker process can send to a
724 coordinator without waiting for an acknowledgement from the coordinator
725 process. If this value is too large the coordinator can become overwhelmed
726 by messages from the worker processes and actually deliver lower overall
727 throughput to the client.
728 type: integer
729 type: object
730 search:
731 description: SearchConfig CouchDB’s search subsystem can be configured
732 via the dreyfus configuration section.
733 properties:
734 limit:
735 description: The number of results returned from a global search
736 query if no limit is specified.
737 type: integer
738 limitPartitions:
739 description: The number of results returned from a search on a
740 partition of a database if no limit is specified.
741 type: integer
742 maxLimit:
743 description: The maximum number of results that can be returned
744 from a global search query.
745 type: integer
746 maxLimitPartitions:
747 description: The maximum number of results that can be returned
748 when searching a partition of a database.
749 type: integer
750 name:
751 description: The name and location of the Clouseau Java service
752 required to enable Search functionality.
753 type: string
754 retryLimit:
755 description: The number of times CouchDB will try to reconnect
756 to Clouseau.
757 type: integer
758 type: object
759 server:
760 description: ServerConfig contains all server configuration options
761 properties:
762 auth:
763 description: |-
764 AuthConfig contains all auth related configuration options.
765 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/auth.html#chttpd_auth
766 properties:
767 XAuthRoles:
768 description: |-
769 The HTTP header name (X-Auth-CouchDB-Roles by default) that contains the list of a user’s roles, separated by a comma.
770 Used for Proxy Authentication.
771 type: string
772 XAuthToken:
773 description: |-
774 The HTTP header name (X-Auth-CouchDB-Token by default) containing the token used to authenticate the authorization.
775 This token is an HMAC-SHA1 created from the chttpd_auth/secret and chttpd_auth/x_auth_username.
776 The secret key should be the same on the client and the CouchDB node.
777 This token is optional if the value of the chttpd_auth/proxy_use_secret option is not true.
778 Used for Proxy Authentication.
779 type: string
780 XAuthUsername:
781 description: The HTTP header name (X-Auth-CouchDB-UserName
782 by default) containing the username. Used for Proxy Authentication.
783 type: string
784 allowPersistentCookies:
785 description: When set to true, CouchDB will set the Max-Age
786 and Expires attributes on the cookie, which causes user
787 agents (like browsers) to preserve the cookie over restarts.
788 type: boolean
789 authCacheSize:
790 description: Number of User Context Object to cache in memory,
791 to reduce disk lookups.
792 type: integer
793 authenticationRedirect:
794 description: Specifies the location for redirection on successful
795 authentication if a text/html response is accepted by the
796 client (via an Accept header).
797 type: string
798 cookieDomain:
799 description: Configures the domain attribute of the AuthSession
800 cookie. By default the domain attribute is empty, resulting
801 in the cookie being set on CouchDB’s domain.
802 type: string
803 hashAlgorithms:
804 description: Sets the HMAC hash algorithm used for cookie
805 and proxy authentication. You can provide a comma-separated
806 list of hash algorithms.
807 type: string
808 iterations:
809 description: The number of iterations for password hashing
810 by the PBKDF2 algorithm.
811 type: integer
812 maxIterations:
813 description: The maximum number of iterations allowed for
814 passwords hashed by the PBKDF2 algorithm. Any user with
815 greater iterations is forbidden.
816 type: integer
817 minIterations:
818 description: The minimum number of iterations allowed for
819 passwords hashed by the PBKDF2 algorithm. Any user with
820 fewer iterations is forbidden.
821 type: integer
822 passwordRegexp:
823 description: A list of Regular Expressions to check new/changed
824 passwords. When set, new user passwords must match all RegExp
825 in this list.
826 type: string
827 proxyUseSecret:
828 description: When this option is set to true, the chttpd_auth/secret
829 option is required for Proxy Authentication.
830 type: boolean
831 publicFields:
832 description: |-
833 A comma-separated list of field names in user documents (in couchdb/users_db_suffix) that can be read by any user.
834 If unset or not specified, authenticated users can only retrieve their own document.
835 type: string
836 sameSite:
837 description: When this option is set to a non-empty value,
838 a SameSite attribute is added to the AuthSession cookie.
839 Valid values are none, lax or strict.
840 type: string
841 secret:
842 description: The secret token is used for Proxy Authentication
843 and for Cookie Authentication.
844 type: string
845 timeout:
846 description: Number of seconds since the last request before
847 sessions will be expired.
848 type: integer
849 usersDbPublic:
850 description: Allow all users to view user documents. By default,
851 only admins may browse all users documents, while users
852 may browse only their own document.
853 type: boolean
854 type: object
855 cors:
856 properties:
857 credentials:
858 description: |2-
859 Credentials CouchDB will respond to a credentials-enabled CORS request with an additional header,
860 Access-Control-Allow-Credentials=true.
861 type: boolean
862 headers:
863 description: Headers List of accepted headers separated by
864 a comma
865 items:
866 type: string
867 type: array
868 maxAge:
869 description: MaxAge Sets the Access-Control-Max-Age header
870 in seconds. Use it to avoid repeated OPTIONS requests.
871 type: integer
872 methods:
873 description: Methods List of accepted methods separated by
874 a comma
875 items:
876 type: string
877 type: array
878 origins:
879 description: |-
880 Origins List of origins separated by a comma, * means accept all.
881 You can’t set origins = * and credentials = true option at the same time:
882 items:
883 type: string
884 type: array
885 required:
886 - credentials
887 - headers
888 - maxAge
889 - methods
890 - origins
891 type: object
892 http:
893 description: |-
894 HTTPConfig contains all basic http configuration options.
895 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/http.html
896 properties:
897 XForwardedHost:
898 description: The x_forwarded_host header (X-Forwarded-Host)
899 type: string
900 XForwardedProto:
901 description: The x_forwarded_proto header (X-Forwarder-Proto)
902 type: string
903 XForwardedSSL:
904 description: The x_forwarded_ssl header (X-Forwarded-Ssl)
905 type: string
906 adminOnlyAllDbs:
907 description: Whether to restrict _all_dbs to admins only
908 type: boolean
909 allowJsonp:
910 description: JSONP support
911 type: boolean
912 authenticationHandlers:
913 description: List of authentication handlers used by CouchDB
914 type: string
915 bindAddress:
916 description: |-
917 BindAddress is the IP by which clusterd port is available. Default value
918 is "::" for any available. Immutable.
919 type: string
920 bufferResponse:
921 description: Whether to buffer response
922 type: boolean
923 bulkGetUseBatches:
924 description: Whether to use batches for bulk_get
925 type: boolean
926 changesTimeout:
927 description: |-
928 ChangesTimeout is the default timeout value for changes feed in ms
929 (default value is 60000). Immutable.
930 type: integer
931 configWhitelist:
932 description: Whitelist of configuration modifications
933 type: string
934 enableCORS:
935 description: |-
936 EnableCors by supporting CORS functionality, a CouchDB instance can accept direct connections to protected databases
937 and instances, without the browser functionality being blocked due to same-origin constraints
938 type: boolean
939 enableXframeOptions:
940 description: Whether to enable X-Frame-Options
941 type: boolean
942 maxHttpRequestSize:
943 description: Maximum size of the HTTP request body
944 type: integer
945 port:
946 description: Defines the port number to listen
947 type: integer
948 preferMinimal:
949 description: 'If a request has the header "Prefer": "return=minimal"'
950 type: string
951 requireValidUser:
952 description: |-
953 RequireValidUser is when no requests are allowed from anonymous users.
954 Everyone must be authenticated. Immutable.
955 type: boolean
956 requireValidUserExceptUp:
957 description: |-
958 RequireValidUserExceptUp same behavior as RequireValidUser with the
959 `/_up` endpoint being except. Immutable.
960 type: boolean
961 secureRewrites:
962 description: Whether to isolate databases via subdomains
963 type: boolean
964 type: object
965 httpd:
966 description: HTTPDConfig options
967 properties:
968 serverOptions:
969 description: Server options for the MochiWeb component of
970 CouchDB can be added to the configuration files.
971 type: string
972 socketOptions:
973 description: |-
974 The socket options for the listening socket in CouchDB,
975 as set at the beginning of every request, can be specified as a list of tuples.
976 Supported options are a subset of full options supported by the TCP/IP stack.
977 type: string
978 type: object
979 ssl:
980 description: |-
981 SSLConfig contains all ssl related configuration options.
982 Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/http.html#https-ssl-tls-options
983 properties:
984 ' cacertFile':
985 description: CacertFile Path to a file containing PEM encoded
986 CA certificates. Immutable.
987 type: string
988 certFile:
989 description: CertFile Path to a file containing the couchdb’s
990 certificate. Immutable.
991 type: string
992 certMaxDepth:
993 description: CertMaxDepth Maximum peer certificate depth (must
994 be set even if certificate validation is off). Immutable.
995 type: integer
996 ciphers:
997 description: Ciphers Set to the cipher suites that should
998 be supported which can be specified in erlang format or
999 in OpenSSL format. Immutable.
1000 type: string
1001 enable:
1002 description: Enable indicates whether to enable ssl
1003 type: boolean
1004 failIfNoPeerCert:
1005 description: FailIfNoPeerCert if set to false it will only
1006 fail if the client sends an invalid certificate (an empty
1007 certificate is considered valid)
1008 type: boolean
1009 keyFile:
1010 description: KeyFile Path to a file containing the couchdb’s
1011 certificate. Immutable.
1012 type: string
1013 password:
1014 description: Password the user’s password, only used if the
1015 private key file is password protected. Immutable.
1016 type: string
1017 secureRenegotiate:
1018 description: SecureRenegotiate Set to true to reject renegotiation
1019 attempt that does not live up to RFC 5746
1020 type: boolean
1021 tls_versions:
1022 description: TLSVersions Set to a list of permitted SSL/TLS
1023 protocol versions. Immutable.
1024 type: string
1025 verifyCertificates:
1026 description: VerifyCertificates Set to true to validate peer
1027 certificates:. Immutable.
1028 type: string
1029 verifyFun:
1030 description: VerifyFun The verification fun (optional) if
1031 not specified, the default verification fun will be used.
1032 Immutable.
1033 type: string
1034 type: object
1035 type: object
1036 smoosh:
1037 properties:
1038 capacity:
1039 description: If set to true, the compaction daemon will delete
1040 the files for indexes that are no longer associated with any
1041 design document
1042 type: boolean
1043 channels:
1044 additionalProperties:
1045 properties:
1046 capacity:
1047 description: The maximum number of items the channel can
1048 hold (lowest priority item is removed to make room for
1049 new items). Defaults to 9999
1050 type: integer
1051 concurrency:
1052 description: The maximum number of jobs that can run concurrently
1053 in this channel. Defaults to 1.
1054 type: integer
1055 from:
1056 description: |-
1057 The time period during which this channel is allowed to execute compactions
1058 The value for each of these parameters must obey the format HH:MM with HH in [0..23] and MM in [0..59]
1059 type: string
1060 maxPriority:
1061 description: Each item must have a priority lower than this
1062 to be enqueued. Defaults to infinity.
1063 type: number
1064 maxSize:
1065 description: The item must be no larger than this many bytes
1066 in length to be enqueued. Defaults to infinity.
1067 type: number
1068 minChanges:
1069 description: The minimum number of changes since last compaction
1070 before the item will be enqueued. Defaults to 0. Currently
1071 only works for databases.
1072 type: number
1073 minPriority:
1074 description: The item must have a priority at least this
1075 high to be enqueued. Defaults to 5.0 for ratio and 16
1076 MB for slack.
1077 type: number
1078 minSize:
1079 description: The item must be at least this many bytes in
1080 length to be enqueued. Defaults to 1mb (1048576 bytes).
1081 type: number
1082 priority:
1083 description: The method used to calculate priority. Can
1084 be ratio (calculated as sizes.file/sizes.active) or slack
1085 (calculated as sizes.file - sizes.active). Defaults to
1086 ratio.
1087 type: string
1088 strictWindow:
1089 description: If set to true, any compaction that is still
1090 running after the end of the allowed perio will be suspended,
1091 and then resumed during the next window
1092 type: boolean
1093 to:
1094 type: string
1095 type: object
1096 description: These settings control the resource allocation for
1097 a given compaction channel.
1098 type: object
1099 cleanupChannels:
1100 description: 'Special channel for compaction cleanup: index_cleanup,
1101 from https://docs.couchdb.org/en/stable/maintenance/compaction.html#channel-configuration'
1102 items:
1103 type: string
1104 type: array
1105 compactionLogLevel:
1106 description: Log level of compaction
1107 type: string
1108 dbChannels:
1109 description: A comma-delimited list of channels that are sent
1110 the names of database files when those files are updated.
1111 items:
1112 type: string
1113 type: array
1114 persist:
1115 description: 'Smoosh queue persistence. This allows resuming smoosh
1116 operations after a node restart. from: https://docs.couchdb.org/en/stable/whatsnew/3.3.html#id3,
1117 https://github.com/apache/couchdb/blob/dce6769edf141c36d408bddcd48082e91ae2f7ab/rel/overlay/etc/default.ini#L793'
1118 type: boolean
1119 staleness:
1120 description: The number of minutes that the (expensive) priority
1121 calculation on an individual can be stale for before it is recalculated.
1122 Defaults to 5.
1123 type: integer
1124 viewChannels:
1125 description: A comma-delimited list of channels that are sent
1126 the names of secondary index files when those files are updated
1127 items:
1128 type: string
1129 type: array
1130 type: object
1131 stats:
1132 description: StatisticsConfig is the configuration for statistics
1133 calculation
1134 properties:
1135 interval:
1136 description: Interval between gathering statistics in seconds
1137 type: integer
1138 type: object
1139 type:
1140 type: string
1141 uri:
1142 type: string
1143 userDB:
1144 properties:
1145 deleteDBs:
1146 description: DeleteDBs If set to true and a user is deleted, the
1147 respective database gets deleted as well.
1148 type: boolean
1149 enable:
1150 description: Enable indicates whether to enable per-user databases
1151 type: boolean
1152 shards:
1153 description: Shards specifies the sharding value for per-user
1154 databases
1155 type: integer
1156 type: object
1157 uuids:
1158 description: UUIDConfig is the UUIDs configuration
1159 properties:
1160 algorithm:
1161 description: algorithm to generate UUIDs
1162 type: string
1163 maxCount:
1164 description: maximum number of UUIDs that will be sent in a single
1165 request
1166 type: integer
1167 utcIDSuffix:
1168 description: UUID suffix
1169 type: string
1170 type: object
1171 vendor:
1172 description: VendorConfig is the configuration for vendor information
1173 properties:
1174 name:
1175 description: distributor name
1176 type: string
1177 version:
1178 description: distributer version
1179 type: string
1180 type: object
1181 required:
1182 - uri
1183 type: object
1184 status:
1185 default:
1186 observedGeneration: -1
1187 properties:
1188 conditions:
1189 items:
1190 description: "Condition contains details for one aspect of the current
1191 state of this API Resource.\n---\nThis struct is intended for
1192 direct use as an array at the field path .status.conditions. For
1193 example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
1194 observations of a foo's current state.\n\t // Known .status.conditions.type
1195 are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
1196 +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
1197 \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
1198 patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
1199 \ // other fields\n\t}"
1200 properties:
1201 lastTransitionTime:
1202 description: |-
1203 lastTransitionTime is the last time the condition transitioned from one status to another.
1204 This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
1205 format: date-time
1206 type: string
1207 message:
1208 description: |-
1209 message is a human readable message indicating details about the transition.
1210 This may be an empty string.
1211 maxLength: 32768
1212 type: string
1213 observedGeneration:
1214 description: |-
1215 observedGeneration represents the .metadata.generation that the condition was set based upon.
1216 For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
1217 with respect to the current state of the instance.
1218 format: int64
1219 minimum: 0
1220 type: integer
1221 reason:
1222 description: |-
1223 reason contains a programmatic identifier indicating the reason for the condition's last transition.
1224 Producers of specific condition types may define expected values and meanings for this field,
1225 and whether the values are considered a guaranteed API.
1226 The value should be a CamelCase string.
1227 This field may not be empty.
1228 maxLength: 1024
1229 minLength: 1
1230 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
1231 type: string
1232 status:
1233 description: status of the condition, one of True, False, Unknown.
1234 enum:
1235 - "True"
1236 - "False"
1237 - Unknown
1238 type: string
1239 type:
1240 description: |-
1241 type of condition in CamelCase or in foo.example.com/CamelCase.
1242 ---
1243 Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
1244 useful (see .node.status.conditions), the ability to deconflict is important.
1245 The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
1246 maxLength: 316
1247 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
1248 type: string
1249 required:
1250 - lastTransitionTime
1251 - message
1252 - reason
1253 - status
1254 - type
1255 type: object
1256 type: array
1257 inventory:
1258 description: |-
1259 ResourceInventory contains a list of Kubernetes resource object references
1260 that have been applied.
1261 properties:
1262 entries:
1263 description: Entries of Kubernetes resource object references.
1264 items:
1265 description: ResourceRef contains the information necessary
1266 to locate a resource within a cluster.
1267 properties:
1268 id:
1269 description: |-
1270 ID is the string representation of the Kubernetes resource object's metadata,
1271 in the format '<namespace>_<name>_<group>_<kind>'.
1272 type: string
1273 v:
1274 description: Version is the API version of the Kubernetes
1275 resource object's kind.
1276 type: string
1277 required:
1278 - id
1279 - v
1280 type: object
1281 type: array
1282 type: object
1283 observedGeneration:
1284 format: int64
1285 type: integer
1286 type: object
1287 type: object
1288 served: true
1289 storage: true
1290 subresources:
1291 status: {}
View as plain text