apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbcredentials.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBCredential listKind: CouchDBCredentialList plural: couchdbcredentials singular: couchdbcredential scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object description: https://docs.couchdb.org/en/stable/intro/security.html#users-documents properties: name: type: string type: type: string secretRef: type: object description: SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. id: type: string roles: type: array items: type: string status: type: object properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbdatabases.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBDatabase listKind: CouchDBDatabaseList plural: couchdbdatabases singular: couchdbdatabase scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object description: https://docs.couchdb.org/en/stable/ddocs/ddocs.html#creation-and-structure properties: name: type: string interval: type: string description: Interval is how often the object will be reconciled, in order to prevent drift. retryInterval: type: string description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. security: type: object properties: admins: type: object properties: names: type: array items: type: string roles: type: array items: type: string members: type: object properties: names: type: array items: type: string roles: type: array items: type: string serverRef: type: object properties: name: type: string namespace: type: string required: - name - namespace required: - name - serverRef status: type: object default: observedGeneration: -1 properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type observedGeneration: type: integer format: int64 served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbdesigndocs.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBDesignDoc listKind: CouchDBDesignDocList plural: couchdbdesigndocs singular: couchdbdesigndoc scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object description: https://docs.couchdb.org/en/stable/ddocs/ddocs.html#creation-and-structure properties: filters: type: object additionalProperties: type: object additionalProperties: type: string id: type: string language: type: string updates: type: object additionalProperties: type: object additionalProperties: type: string validateDocUpdate: type: string views: type: object additionalProperties: type: object additionalProperties: type: string status: type: object properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbreplicationdocs.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBReplicationDoc listKind: CouchDBReplicationDocList plural: couchdbreplicationdocs singular: couchdbreplicationdoc scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object description: https://docs.couchdb.org/en/stable/replication/replicator.html#documents-describing-the-same-replication properties: continuous: type: boolean createTarget: type: boolean id: type: string source: type: string target: type: string status: type: object properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbreplicationsets.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBReplicationSet listKind: CouchDBReplicationSetList plural: couchdbreplicationsets singular: couchdbreplicationset scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object properties: datasets: type: array items: type: object description: Dataset represents a database and associated configuration properties: name: type: string config: type: object description: ReplConfig CouchDB replication settings from https://docs.couchdb.org/en/stable/json-structure.html?highlight=checkpoint_interval#replication-settings properties: selector: type: string cancel: type: boolean continuous: type: boolean create_target: type: boolean doc_ids: type: array items: type: string filter: type: string interval: type: string query_params: type: string since_seq: type: string source_proxy: type: string target_proxy: type: string use_checkpoints: type: boolean required: - cancel - continuous - create_target - doc_ids - filter - interval - query_params - selector - since_seq - source_proxy - target_proxy - use_checkpoints enterprise_unit_id: type: string provider: type: object description: Provider information about the data provider properties: name: type: string required: - name stores: type: array items: type: string touchpoints: type: array items: type: string required: - config - name interval: type: string description: Interval is how often the object will be reconciled, in order to prevent drift. retryInterval: type: string description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. source: type: object description: 'Note: must be a ReplicationCredentials (username, password, dbname, uri)' properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. target: type: object properties: name: type: string namespace: type: string required: - name - namespace required: - datasets - source - target status: type: object default: observedGeneration: -1 properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type inventory: type: array description: Inventory contains a list of database names associated with the replication set items: type: string observedGeneration: type: integer format: int64 replications: type: array description: Replications contains a list of replication details items: type: object properties: status: type: string dbname: type: string message: type: string required: - dbname - message - status served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbservers.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBServer listKind: CouchDBServerList plural: couchdbservers singular: couchdbserver scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object properties: type: type: string admin: type: object description: Admin contains configuration that controls how the admin user is setup properties: secretRef: type: object description: SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. cookie: type: object description: SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. replicationSecret: type: object description: ReplicationSecret configures how the GCP Secret Manager Secret for replicators is created. It is always created in the server's GCP Project properties: fromSecret: type: object description: Reference to a secret to get the replication auth from. Defaults to the value of Admin.Credentials. Allows using different auth for replication and admin properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. target: type: string description: The name of the Secret Manager Secret to create required: - target admins: type: object additionalProperties: type: string attachments: type: object description: AttachmentConfig is the configuration for attachment storage properties: compressibleTypes: type: array description: specifies by their MIME type which types of attachments to compress items: type: string compressionLevel: type: integer description: Defines zlib compression level for the attachments backgroundIndex: type: object description: BackgroundIndexConfig Secondary indexes in CouchDB properties: batch_channels: type: integer description: BatchChannels Controls number of background view builds that can be running in parallel ignoreShards: type: object additionalProperties: type: boolean description: IgnoreShardsIgnoreShards tell the background indexer to skip over specific database shard files incremental_channels: type: integer description: IncrementalChannels Controls number of additional short jobs allowed to run concurrently with main jobs max_incremental_updates: type: integer description: MaxIncrementalUpdates Controls whether an indexing job is "incremental" or not by looking at the difference in sequence numbers between the current index and the main database base: type: object description: 'BaseConfig contains all configuration related CouchDB specific functionality Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/couchdb.html' properties: bufferSize: type: integer description: BufferSize Higher values may result in better read performance due to fewer read operations and/or more OS page cache hits. However, they can also increase overall response time for writes when there are many attachment write requests in parallel. compression: type: string description: 'Compression is the method used to compress everything that is appended to database and view index files, except for attachments. Immutable. Available methods are: - `none`: no compressions - `snappy`: use Google Snappy, a very fast compressor/decompressor - `deflate_N`: use zlib’s deflate; N is the compression level which ranges from 1 (fastest, lowest compression ratio) to 9 (slowest, highest compression ratio)' databaseDir: type: string description: DatabaseDir location of CouchDB database files (*.couch). This location should be writable and readable for the user the CouchDB service runs as (couchdb by default). databaseRecovery: type: boolean description: DatabaseRecovery Enable this to only “soft-delete” databases. defaultSecurity: type: string description: DefaultSecurity for access to databases. By default `admin_only` is set so only admins can read and write. When set to `admin_local`, sharded databases can be read and written by anyone but the shareds can only be read and written by admins. When set to `everyone`, anyone can perform reads and writes. Immutable. driverDir: type: string description: DriverDir Specifies location of binary drivers (icu, ejson, etc.). This location and its contents should be readable for the user that runs the CouchDB service. maintenance_mode: type: string description: 'MaintenanceMode A CouchDB node may be put into distinct maintenance modes: Modes: - true: The node will not respond to clustered requests from other nodes and the /_up endpoint will return a 404 response. - nolb: The /_up endpoint will return a 404 response. - false: The node responds normally, /_up returns a 200 response.' maxDBsOpen: type: integer description: MaxDBsOpen is the upper found on the number of databases that can be open at once. Requires restart of CouchDB to take effect. Immutable. maxDocSize: type: integer description: TODO(help_wanted) - add others, maintenance mode and lifecyle actions will need investigation processTimeout: type: integer description: ProcessTimeout If an external process, such as a query server or external process, runs for this amount of milliseconds without returning any results, it will be terminated. securityEditable: type: boolean description: SecurityEditable When this configuration setting is set to false, users_db_checkpoint is checked for corruption when opened. singleNode: type: boolean description: SingleNode automatically creates the system databases on startup. Must be `false` for a clustered installation. Immutable. uriFile: type: string description: URIFile This file contains the full URI that can be used to access this instance of CouchDB. usersDBSuffix: type: string description: UsersDBSuffix Specifies the suffix (last component of a name) of the system database for storing CouchDB users. uuid: type: string description: Unique identifier for the server instance. Immutable. viewIndexDir: type: string description: ViewIndexDir Specifies location of CouchDB view index files. cluster: type: object description: Cluster is the configuration for clustered couchdb servers properties: autoFinish: type: boolean description: If true, finish_cluster will be sent to a random node within the cluster, completing the clustered server setup nodes: type: integer description: Unused. Number of couch servers in the cluster clustering: type: object description: 'ClusterConfig contains all configuration options for running a multi-node clustered instance. Immutable. Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/cluster.html' properties: nodes: type: integer description: Nodes is the number of nodes in a clustered install. Sets the number of replicas of each document in a cluster with only one replica per node. Immutable. placement: type: string description: Sets the cluster-wide replica placement policy when creating new databases. The value must be a comma-delimited list of strings of the format zone_name:# reconnect_interval_sec: type: integer description: Period in seconds specifying how often to attempt reconnecting to disconnected nodes. There is a 25% random jitter applied to this value. seedList: type: array description: SeedList is an optional list of node names used when joining nodes in a cluster. Immutable. items: type: string shards: type: integer description: Shards is the default number of shards for newly created databases (default value is 2). Immutable. csp: type: object description: CSPConfig is the configuration for Content Security Policy properties: attachmentsEnable: type: boolean description: specifies whether to enable the sending of the CSP header for attachments attachmentsHeaderValue: type: string description: specifies the exact header value to send for attachments enable: type: boolean description: specifies whether to enable the sending of the CSP header headerValue: type: string description: specifies the default header value to send showListEnable: type: boolean description: specifies whether to enable the sending of the CSP header for show list showlistHeaderValue: type: string description: specifies the exact header value to send for show list utilsEnable: type: boolean description: specifies whether to enable the sending of the CSP header for _utils utilsHeaderValue: type: string description: specifies the exact header value to send for _utils deletionPolicy: type: string description: 'DeletionPolicy determines what happens to the CouchDB instance when this resource is deleted. Immutable. Available options are: - `abandon`: all CouchDB resources are left alone (default) - `purge`: all CouchDB resources will also be removed' ingress: type: object properties: certificate: type: object description: Certificate is a reference to a ManagedCertificate to create, or use if it exists properties: name: type: string description: 'NOTE: An Ingress will reference this ManagedCertificate, so this value must match the networking.gke.io/managed-certificates annotation on the Ingress. Refer to config/anthos/manifests/namespaces/edge/couchdb/ingress-tls.yaml' required: - name interval: type: string description: Interval is how often the object will be reconciled, in order to prevent drift. ioq: type: object description: IOQConfig config from https://docs.couchdb.org/en/stable/config/ioq.html properties: bypass: type: object description: Bypass ioq bypass config belows properties: compaction: type: boolean description: Disk IO issued by compaction jobs. osProcess: type: boolean description: Messages on their way to an external process (e.g., couchjs). read: type: boolean description: Disk IO fulfilling interactive read requests. reshard: type: boolean description: Disk IO issued by resharding jobs. shardSync: type: boolean description: Disk IO issued by the background replication processes that fix any inconsistencies between shard copies. viewUpdate: type: boolean description: Disk IO required to update views and other secondary indexes. write: type: boolean description: Disk IO required to update a database. concurrency: type: integer description: 'Specifies the maximum number of concurrent in-flight IO requests that the queueing system will submit:' ratio: type: number description: 'The fraction of the time that a background IO request will be selected over an interactive IO request when both queues are non-empty:' log: type: object description: LogConfig from https://docs.couchdb.org/en/stable/config/logging.html properties: file: type: string description: 'Specifies the location of file for logging output. Only used by the file writer:' includeSASL: type: boolean description: Includes SASL information in logs level: type: string description: Logging level defines how verbose and detailed logging will be syslogAppid: type: string description: 'Specifies application name to the syslog writer:' syslogFacility: type: string description: 'Specifies the syslog facility to use with the syslog writer:' syslogHost: type: string description: 'Specifies the syslog host to send logs to. Only used by the syslog writer:' syslogPort: type: integer description: 'Specifies the syslog port to connect to when sending logs. Only used by the syslog writer:' writeBuffer: type: string description: Specifies the size of the file log write buffer in bytes, to enable delayed log writes Only used by the file writer writeDelay: type: string description: 'Specifies the wait in milliseconds before committing logs to disk, to enable delayed log writes. Only used by the file writer:' writer: type: string description: 'Where to send logs: stderr, file, syslog, journald or your implementation' metrics: type: object description: 'MetricsConfig contains all configuration options for managing Prometheus integration. Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/misc.html#configuration-of-prometheus-endpoint' properties: port: type: integer description: Port on which client can query Prometheus endpoint data without auth. Immutable. additionalPort: type: boolean description: AdditionalPort sets whether or not to create a separate, non-authenticated port (default is `false``) bindAddress: type: string description: BindAddress is the IP address to bind. Immutable. nativeQuery: type: object description: NativeQueryConfig CouchDB has a native Erlang query server, allowing you to write your map/reduce functions in Erlang. properties: enable: type: boolean description: Enables or disables the Native Erlang Query Server. purge: type: object description: PurgeConfig is the configuration for database purge properties: indexLagWarnSeconds: type: integer description: allowed duration when index is not updated for local purge checkpoint document maxDocumentIdNumber: type: integer description: maximum number of documents allowed in a single purge request maxRevisionsNumber: type: integer description: maximum number of accumulated revisions allowed in a single purge request query: type: object description: QueryServerConfig The external query server is a special OS process which communicates with CouchDB over standard input/output using a very simple line-based protocol with JSON messages. properties: commit_freq: type: integer description: Specifies the delay in seconds before view index changes are committed to disk. processLimit: type: integer description: Hard limit on the number of OS processes usable by Query Servers. processTimeout: type: integer description: The timeout for a process used by Query Servers. reduceLimit: type: boolean description: Controls Reduce overflow error that raises when output of reduce functions. softLimit: type: integer description: Soft limit on the number of OS processes usable by Query Servers. reSharding: type: object description: ReShardingConfig options for re sharding nodes properties: deleteSource: type: boolean description: DeleteSource Indicates if the source shard should be deleted after resharding has finished. By default, it is true maxHistory: type: integer description: MaxHistory Each resharding job maintains a timestamped event log. This setting limits the maximum size of that log maxJobs: type: integer description: MaxJobs Maximum number of resharding jobs per cluster node maxRetries: type: integer description: MaxRetries How many times to retry shard splitting steps if they fail. For example, if indexing or topping off fails, it will be retried up to this many times before the whole resharding job fails requireNodeParam: type: boolean description: RequireNodeParam Require users to specify a node requireRangeParam: type: boolean description: RequireRangeParam Require users to specify a range retryInterval: type: integer description: RetryInterval How long to wait between subsequent retries sourceCloseTimeout: type: integer description: SourceCloseTimeout How many seconds to wait for the source shard to close. “Close” in this context means that client requests which keep the database open have all finished updateTimeout: type: integer description: UpdateTimeout How many seconds to wait for the shard map update operation to complete. If there is a large number of shard db changes waiting to finish replicating, it might be beneficial to increase this timeout replicator: type: object description: 'ReplicatorConfig contains all configuration options for managing replication for this instance. Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/replicator.html' properties: authPlugins: type: string description: 'AuthPlugins list of replicator client authentication plugin: couch_replicator_auth_session,couch_replicator_auth_noop. For backwards compatibility, the no-op plugin should be used at the end of the plugin list. Immutable.' certFile: type: string description: CertFile Path to a file containing the user’s certificate. Immutable. certMaxDepth: type: integer description: CertMaxDepth Maximum peer certificate depth (must be set even if certificate validation is off). Immutable. checkpointInterval: type: integer description: CheckpointInterval replicator will request from the Source database at the specified interval in milliseconds. Immutable. connectionTimeout: type: integer description: ConnectionTimeout is the http connection timeout per replication in ms. This is divided by 3 when the replicator makes changes feed requests. Immutable. httpConnections: type: integer description: HTTPConnections Maximum number of HTTP connections per replication. Immutable. interval: type: integer description: Interval is the scheduling interval in milliseconds. Immutable. maxChurn: type: integer description: MaxChurn is the number of replication jobs to start and stop during rescheduling. Immutable. maxHistory: type: integer description: MaxHistory is the number of events recorded for each job. Immutable. maxJobs: type: integer description: MaxJobs is the number of actively running replications. Immutable. password: type: string description: Password the user’s password, only used if the private key file is password protected. Immutable. priorityCoeff: type: number description: PriorityCoeff Priority coefficient decays all the job priorities such that they slowly drift towards the front of the run queue. The value must be between 0.0 and 1.0. Immutable. replicatorShares: type: object additionalProperties: type: integer description: Fair share configuration section. Higher share values results in a higher chance that jobs from that db get to run. The default value is 100, minimum is 1 and maximum is 1000. The configuration may be set even if the database does not exist. retriesPerRequest: type: integer description: TODO(help_wanted) - handle http_connections in separate PR RetriesPerRequest if a request fails, the replicator will retry it up to N times. Immutable. socketOptions: type: string description: SocketOptions socket options that might boost performance in some scenarios. trustedCertFile: type: string description: TrustedCertFile File containing a list of peer trusted certificates (in the PEM format). Immutable. updateDocs: type: boolean description: UpdateDocs when true, replicator will update replication document with error and triggered states. Immutable. usageCoeff: type: number description: UsageCoeff Usage coefficient decays historic fair share usage every scheduling cycle. The value must be between 0.0 and 1.0. Immutable. useBulkGet: type: boolean description: UseBulkGet CouchDB will attempt to use the _bulk_get HTTP API endpoint to fetch documents from the source. Immutable. useCheckpoints: type: boolean description: UseCheckpoints CouchDB will make checkpoints during replication and at the completion of replication. Immutable. validEndpointProtocols: type: string description: ValidEndpointProtocols replication jobs with endpoint urls not in this list will fail to run. Immutable. validProxyProtocols: type: string description: ValidProxyProtocols replication jobs with proxy urls not in this list will fail to run. Immutable. validSocketOptions: type: string description: 'ValidSocketOptions valid socket options: buffer,keepalive,nodelay,priority,recbuf,sndbuf, etc... Immutable.' workerBatchSize: type: integer description: WorkerBatchSize with lower batch sizes checkpoints are done more frequently. Immutable. workerProcesses: type: integer description: WorkerProcesses More worker processes can give higher network throughput but can also imply more disk and network IO. Immutable. retryInterval: type: string description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. rpc: type: object properties: bufferCount: type: integer description: The local RPC server will buffer messages if a remote node goes unavailable. This flag determines how many messages will be buffered before the local server starts dropping messages. Default value is 2000. server_per_node: type: boolean description: By default, rexi will spawn one local gen_server process for each node in the cluster. Disabling this flag will cause CouchDB to use a single process for all RPC communication, which is not recommended in high throughput deployments. stream_limit: type: integer description: This flag comes into play during streaming operations like views and change feeds. It controls how many messages a remote worker process can send to a coordinator without waiting for an acknowledgement from the coordinator process. If this value is too large the coordinator can become overwhelmed by messages from the worker processes and actually deliver lower overall throughput to the client. search: type: object description: SearchConfig CouchDB’s search subsystem can be configured via the dreyfus configuration section. properties: name: type: string description: The name and location of the Clouseau Java service required to enable Search functionality. limit: type: integer description: The number of results returned from a global search query if no limit is specified. limitPartitions: type: integer description: The number of results returned from a search on a partition of a database if no limit is specified. maxLimit: type: integer description: The maximum number of results that can be returned from a global search query. maxLimitPartitions: type: integer description: The maximum number of results that can be returned when searching a partition of a database. retryLimit: type: integer description: The number of times CouchDB will try to reconnect to Clouseau. server: type: object description: ServerConfig contains all server configuration options properties: auth: type: object description: 'AuthConfig contains all auth related configuration options. Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/auth.html#chttpd_auth' properties: XAuthRoles: type: string description: The HTTP header name (X-Auth-CouchDB-Roles by default) that contains the list of a user’s roles, separated by a comma. Used for Proxy Authentication. XAuthToken: type: string description: The HTTP header name (X-Auth-CouchDB-Token by default) containing the token used to authenticate the authorization. This token is an HMAC-SHA1 created from the chttpd_auth/secret and chttpd_auth/x_auth_username. The secret key should be the same on the client and the CouchDB node. This token is optional if the value of the chttpd_auth/proxy_use_secret option is not true. Used for Proxy Authentication. XAuthUsername: type: string description: The HTTP header name (X-Auth-CouchDB-UserName by default) containing the username. Used for Proxy Authentication. allowPersistentCookies: type: boolean description: When set to true, CouchDB will set the Max-Age and Expires attributes on the cookie, which causes user agents (like browsers) to preserve the cookie over restarts. authCacheSize: type: integer description: Number of User Context Object to cache in memory, to reduce disk lookups. authenticationRedirect: type: string description: Specifies the location for redirection on successful authentication if a text/html response is accepted by the client (via an Accept header). cookieDomain: type: string description: Configures the domain attribute of the AuthSession cookie. By default the domain attribute is empty, resulting in the cookie being set on CouchDB’s domain. hashAlgorithms: type: string description: Sets the HMAC hash algorithm used for cookie and proxy authentication. You can provide a comma-separated list of hash algorithms. iterations: type: integer description: The number of iterations for password hashing by the PBKDF2 algorithm. maxIterations: type: integer description: The maximum number of iterations allowed for passwords hashed by the PBKDF2 algorithm. Any user with greater iterations is forbidden. minIterations: type: integer description: The minimum number of iterations allowed for passwords hashed by the PBKDF2 algorithm. Any user with fewer iterations is forbidden. passwordRegexp: type: string description: A list of Regular Expressions to check new/changed passwords. When set, new user passwords must match all RegExp in this list. proxyUseSecret: type: boolean description: When this option is set to true, the chttpd_auth/secret option is required for Proxy Authentication. publicFields: type: string description: A comma-separated list of field names in user documents (in couchdb/users_db_suffix) that can be read by any user. If unset or not specified, authenticated users can only retrieve their own document. sameSite: type: string description: When this option is set to a non-empty value, a SameSite attribute is added to the AuthSession cookie. Valid values are none, lax or strict. secret: type: string description: The secret token is used for Proxy Authentication and for Cookie Authentication. timeout: type: integer description: Number of seconds since the last request before sessions will be expired. usersDbPublic: type: boolean description: Allow all users to view user documents. By default, only admins may browse all users documents, while users may browse only their own document. cors: type: object properties: credentials: type: boolean description: Credentials CouchDB will respond to a credentials-enabled CORS request with an additional header, Access-Control-Allow-Credentials=true. headers: type: array description: Headers List of accepted headers separated by a comma items: type: string maxAge: type: integer description: MaxAge Sets the Access-Control-Max-Age header in seconds. Use it to avoid repeated OPTIONS requests. methods: type: array description: Methods List of accepted methods separated by a comma items: type: string origins: type: array description: 'Origins List of origins separated by a comma, * means accept all. You can’t set origins = * and credentials = true option at the same time:' items: type: string required: - credentials - headers - maxAge - methods - origins http: type: object description: 'HTTPConfig contains all basic http configuration options. Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/http.html' properties: port: type: integer description: Defines the port number to listen XForwardedHost: type: string description: The x_forwarded_host header (X-Forwarded-Host) XForwardedProto: type: string description: The x_forwarded_proto header (X-Forwarder-Proto) XForwardedSSL: type: string description: The x_forwarded_ssl header (X-Forwarded-Ssl) adminOnlyAllDbs: type: boolean description: Whether to restrict _all_dbs to admins only allowJsonp: type: boolean description: JSONP support authenticationHandlers: type: string description: List of authentication handlers used by CouchDB bindAddress: type: string description: BindAddress is the IP by which clusterd port is available. Default value is "::" for any available. Immutable. bufferResponse: type: boolean description: Whether to buffer response bulkGetUseBatches: type: boolean description: Whether to use batches for bulk_get changesTimeout: type: integer description: ChangesTimeout is the default timeout value for changes feed in ms (default value is 60000). Immutable. configWhitelist: type: string description: Whitelist of configuration modifications enableCORS: type: boolean description: EnableCors by supporting CORS functionality, a CouchDB instance can accept direct connections to protected databases and instances, without the browser functionality being blocked due to same-origin constraints enableXframeOptions: type: boolean description: Whether to enable X-Frame-Options maxHttpRequestSize: type: integer description: Maximum size of the HTTP request body preferMinimal: type: string description: 'If a request has the header "Prefer": "return=minimal"' requireValidUser: type: boolean description: RequireValidUser is when no requests are allowed from anonymous users. Everyone must be authenticated. Immutable. requireValidUserExceptUp: type: boolean description: RequireValidUserExceptUp same behavior as RequireValidUser with the `/_up` endpoint being except. Immutable. secureRewrites: type: boolean description: Whether to isolate databases via subdomains httpd: type: object description: HTTPDConfig options properties: serverOptions: type: string description: Server options for the MochiWeb component of CouchDB can be added to the configuration files. socketOptions: type: string description: The socket options for the listening socket in CouchDB, as set at the beginning of every request, can be specified as a list of tuples. Supported options are a subset of full options supported by the TCP/IP stack. ssl: type: object description: 'SSLConfig contains all ssl related configuration options. Official CouchDB documentation: https://docs.couchdb.org/en/stable/config/http.html#https-ssl-tls-options' properties: ' cacertFile': type: string description: CacertFile Path to a file containing PEM encoded CA certificates. Immutable. certFile: type: string description: CertFile Path to a file containing the couchdb’s certificate. Immutable. certMaxDepth: type: integer description: CertMaxDepth Maximum peer certificate depth (must be set even if certificate validation is off). Immutable. ciphers: type: string description: Ciphers Set to the cipher suites that should be supported which can be specified in erlang format or in OpenSSL format. Immutable. enable: type: boolean description: Enable indicates whether to enable ssl failIfNoPeerCert: type: boolean description: FailIfNoPeerCert if set to false it will only fail if the client sends an invalid certificate (an empty certificate is considered valid) keyFile: type: string description: KeyFile Path to a file containing the couchdb’s certificate. Immutable. password: type: string description: Password the user’s password, only used if the private key file is password protected. Immutable. secureRenegotiate: type: boolean description: SecureRenegotiate Set to true to reject renegotiation attempt that does not live up to RFC 5746 tls_versions: type: string description: TLSVersions Set to a list of permitted SSL/TLS protocol versions. Immutable. verifyCertificates: type: string description: VerifyCertificates Set to true to validate peer certificates:. Immutable. verifyFun: type: string description: VerifyFun The verification fun (optional) if not specified, the default verification fun will be used. Immutable. smoosh: type: object properties: capacity: type: boolean description: If set to true, the compaction daemon will delete the files for indexes that are no longer associated with any design document channels: type: object additionalProperties: type: object properties: priority: type: string description: The method used to calculate priority. Can be ratio (calculated as sizes.file/sizes.active) or slack (calculated as sizes.file - sizes.active). Defaults to ratio. capacity: type: integer description: The maximum number of items the channel can hold (lowest priority item is removed to make room for new items). Defaults to 9999 concurrency: type: integer description: The maximum number of jobs that can run concurrently in this channel. Defaults to 1. from: type: string description: The time period during which this channel is allowed to execute compactions The value for each of these parameters must obey the format HH:MM with HH in [0..23] and MM in [0..59] maxPriority: type: number description: Each item must have a priority lower than this to be enqueued. Defaults to infinity. maxSize: type: number description: The item must be no larger than this many bytes in length to be enqueued. Defaults to infinity. minChanges: type: number description: The minimum number of changes since last compaction before the item will be enqueued. Defaults to 0. Currently only works for databases. minPriority: type: number description: The item must have a priority at least this high to be enqueued. Defaults to 5.0 for ratio and 16 MB for slack. minSize: type: number description: The item must be at least this many bytes in length to be enqueued. Defaults to 1mb (1048576 bytes). strictWindow: type: boolean description: If set to true, any compaction that is still running after the end of the allowed perio will be suspended, and then resumed during the next window to: type: string description: These settings control the resource allocation for a given compaction channel. cleanupChannels: type: array description: 'Special channel for compaction cleanup: index_cleanup, from https://docs.couchdb.org/en/stable/maintenance/compaction.html#channel-configuration' items: type: string compactionLogLevel: type: string description: Log level of compaction dbChannels: type: array description: A comma-delimited list of channels that are sent the names of database files when those files are updated. items: type: string staleness: type: integer description: The number of minutes that the (expensive) priority calculation on an individual can be stale for before it is recalculated. Defaults to 5. viewChannels: type: array description: A comma-delimited list of channels that are sent the names of secondary index files when those files are updated items: type: string stats: type: object description: StatisticsConfig is the configuration for statistics calculation properties: interval: type: integer description: Interval between gathering statistics in seconds uri: type: string userDB: type: object properties: deleteDBs: type: boolean description: DeleteDBs If set to true and a user is deleted, the respective database gets deleted as well. enable: type: boolean description: Enable indicates whether to enable per-user databases shards: type: integer description: Shards specifies the sharding value for per-user databases uuids: type: object description: UUIDConfig is the UUIDs configuration properties: algorithm: type: string description: algorithm to generate UUIDs maxCount: type: integer description: maximum number of UUIDs that will be sent in a single request utcIDSuffix: type: string description: UUID suffix vendor: type: object description: VendorConfig is the configuration for vendor information properties: name: type: string description: distributor name version: type: string description: distributer version required: - uri status: type: object default: observedGeneration: -1 properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type observedGeneration: type: integer format: int64 served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: couchdbusers.datasync.edge.ncr.com annotations: controller-gen.kubebuilder.io/version: (unknown) pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z" pallet.edge.ncr.com/name: couchctl-crds pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1 pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/edge-data-sync' pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a labels: {} spec: group: datasync.edge.ncr.com names: kind: CouchDBUser listKind: CouchDBUserList plural: couchdbusers singular: couchdbuser scope: Namespaced versions: - name: v1alpha1 additionalPrinterColumns: - name: Ready type: string jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Status type: string jsonPath: .status.conditions[?(@.type=="Ready")].message schema: openAPIV3Schema: type: object properties: apiVersion: type: string description: '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: type: string description: '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: type: object spec: type: object description: https://docs.couchdb.org/en/3.2.0/intro/security.html?highlight=user#users-documents properties: type: type: string interval: type: string description: Interval is how often the object will be reconciled, in order to prevent drift. provider: type: object description: Provider information about the data provider properties: name: type: string required: - name retryInterval: type: string description: RetryInterval is how often to retry previously failed reconciliations. Defaults to Interval if not provided. serverRef: type: object properties: name: type: string namespace: type: string required: - name - namespace user: type: object properties: name: type: string secretRef: type: object description: SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace properties: name: type: string description: name is unique within a namespace to reference a secret resource. namespace: type: string description: namespace defines the space within which the secret name must be unique. roles: type: array items: type: string required: - serverRef status: type: object default: observedGeneration: -1 properties: conditions: type: array items: type: object description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: type: type: string description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 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])$ status: type: string description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown lastTransitionTime: type: string description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time message: type: string description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 observedGeneration: type: integer description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 reason: type: string description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ required: - lastTransitionTime - message - reason - status - type observedGeneration: type: integer format: int64 served: true storage: true subresources: status: {}