diff --git a/.github/workflows/pages.yaml b/.github/workflows/pages.yaml
index b921f5f1..fb780c27 100644
--- a/.github/workflows/pages.yaml
+++ b/.github/workflows/pages.yaml
@@ -11,43 +11,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Fetch Hugo theme
+ - name: Checkout
uses: actions/checkout@v3
- with:
- submodules: recursive
- fetch-depth: 0
-
- - name: Setup Go
- uses: actions/setup-go@v2
- with:
- go-version: '1.18'
-
- - name: Setup Hugo
- uses: peaceiris/actions-hugo@v2
- with:
- hugo-version: '0.110.0'
- extended: true
-
- - name: Setup Node
- uses: actions/setup-node@v3
- with:
- node-version: '18'
-
- - name: Install npm deps
- uses: actions/cache@v1
- with:
- path: ~/.npm
- key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
- restore-keys: |
- ${{ runner.os }}-node-
- name: Generate docs
- run: |
- npm ci --prefix ./docs
- make generate-docs
+ uses: addnab/docker-run-action@v3
+ with:
+ image: squidfunk/mkdocs-material:latest
+ options: -v ${{ github.workspace }}/docs/:/docs
+ run: mkdocs build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./docs/public
+ publish_dir: ./docs/site
diff --git a/.gitignore b/.gitignore
index 3d6f9714..40d425e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,10 +35,7 @@ bundle-*
hack/tools/bin/*
# Docs
-docs/node_modules
-docs/public
-docs/resources
-docs/content/en/docs/api-reference/_index.md
+docs/site
# Distribution
dist
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 7d0d0d43..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "docs/themes/docsy"]
- path = docs/themes/docsy
- url = https://github.com/google/docsy.git
diff --git a/Makefile b/Makefile
index 714852bf..67aad4ec 100644
--- a/Makefile
+++ b/Makefile
@@ -173,14 +173,17 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi
##@ Docs
+.PHONY: generate-api-reference
+generate-api-reference: gen-crd-api-ref-docs ## Generate CRDS api-reference
+ go run hack/genrefs/main.go
+
.PHONY: serve-docs
-serve-docs: hugo ## Run Hugo live preview.
- $(HUGO) serve docs -s docs
+serve-docs: ## Run live preview.
+ docker run --rm -it -p 8000:8000 -v ${PWD}/docs:/docs squidfunk/mkdocs-material
.PHONY: generate-docs
-generate-docs: hugo gen-crd-api-ref-docs ## Generate the documentation website locally.
- go run hack/genrefs/main.go
- cd docs && $(HUGO) --minify -s .
+generate-docs: ## Generate the documentation website locally.
+ docker run --rm -it -v ${PWD}/docs:/docs squidfunk/mkdocs-material build
##@ Build Dependencies
@@ -195,7 +198,6 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize
CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen
ENVTEST ?= $(LOCALBIN)/setup-envtest
GINKGO=$(LOCALBIN)/ginkgo
-HUGO=$(LOCALBIN)/hugo
GOLANGCILINT=$(LOCALBIN)/golangci-lint
GEN_CRD_API_REF_DOCS=$(LOCALBIN)/gen-crd-api-reference-docs
@@ -203,7 +205,6 @@ GEN_CRD_API_REF_DOCS=$(LOCALBIN)/gen-crd-api-reference-docs
## Tool Versions
KUSTOMIZE_VERSION ?= v4.2.0
CONTROLLER_TOOLS_VERSION ?= v0.9.2
-HUGO_VERSION ?= v0.110.0
GINKGO_VERSION ?= v2.3.1
KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
@@ -222,13 +223,8 @@ envtest: $(ENVTEST) ## Download envtest-setup locally if necessary.
$(ENVTEST): $(LOCALBIN)
test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest
-.PHONY: hugo
-hugo: $(HUGO) ## Download hugo locally if necessary.
-$(HUGO): $(LOCALBIN)
- test -s $(LOCALBIN)/hugo || GOBIN=$(LOCALBIN) go install --tags extended github.com/gohugoio/hugo@$(HUGO_VERSION)
-
.PHONY: gen-crd-api-ref-docs
-gen-crd-api-ref-docs: $(GEN_CRD_API_REF_DOCS) ## Download gen-crd-api-ref-docs hugo locally if necessary.
+gen-crd-api-ref-docs: $(GEN_CRD_API_REF_DOCS) ## Download gen-crd-api-ref-docs locally if necessary.
$(GEN_CRD_API_REF_DOCS): $(LOCALBIN)
test -s $(LOCALBIN)/gen-crd-api-reference-docs || GOBIN=$(LOCALBIN) go install github.com/ahmetb/gen-crd-api-reference-docs@latest
diff --git a/docs/.hugo_build.lock b/docs/.hugo_build.lock
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/assets/icons/logo.svg b/docs/assets/icons/logo.svg
deleted file mode 100644
index 19ce7b8b..00000000
--- a/docs/assets/icons/logo.svg
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
diff --git a/docs/assets/scss/_variables_project.scss b/docs/assets/scss/_variables_project.scss
deleted file mode 100644
index 576adf16..00000000
--- a/docs/assets/scss/_variables_project.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-$primary: #F7F7FA;
-$secondary: #c60443;
-
-$blue: #c60443;
-$link-color: #c60443;
-$link-hover-color: #a70045;
-
-$navbar-dark-brand-color: #000000;
-$navbar-dark-brand-hover-color: #a70045;
diff --git a/docs/config.toml b/docs/config.toml
deleted file mode 100644
index 3148ef27..00000000
--- a/docs/config.toml
+++ /dev/null
@@ -1,60 +0,0 @@
-baseURL = "https://aiven.github.io/aiven-operator/"
-title = "Aiven Operator"
-
-theme = "docsy"
-
-languageCode = "en-us"
-contentDir = "content/en"
-defaultContentLanguage = "en"
-defaultContentLanguageInSubdir = false
-
-[languages]
-[languages.en]
-title = "Aiven Operator"
-description = "Aiven Operator"
-languageName = "English"
-
-[services]
-[services.googleAnalytics]
-# TODO: Configure Google Analytics
-id = ""
-
-[params]
-copyright = "Aiven Team, "
-
-# Repository configuration (URLs for in-page links to opening issues and suggesting changes)
-github_repo = ""
-
-# Search
-# TODO: Configure search
-gcs_engine_id = ""
-
-[params.ui]
-breadcrumb_disable = true
-navbar_logo = true
-
-
-[params.links]
-[[params.links.user]]
- name = "Aiven Website"
- url = "https://aiven.io"
- # TODO: Add crab logo
- icon = "fa fa-globe"
- desc = "Aiven website"
-[[params.links.user]]
- name ="Twitter"
- url = "https://twitter.com/aiven_io"
- icon = "fab fa-twitter"
- desc = "Follow us on Twitter"
-[[params.links.user]]
- name = "GitHub"
- url = "https://github.com/aiven/aiven-operator"
- icon = "fab fa-github"
- desc = "Find us on GitHub"
-
-[markup]
- defaultMarkdownHandler = "goldmark"
-
- [markup.goldmark]
- [markup.goldmark.renderer]
- unsafe = true
diff --git a/docs/content/en/docs/api-reference/.gitkeep b/docs/content/en/docs/api-reference/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/content/en/docs/api-reference/_index.md b/docs/content/en/docs/api-reference/_index.md
deleted file mode 100755
index a6d0bb86..00000000
--- a/docs/content/en/docs/api-reference/_index.md
+++ /dev/null
@@ -1,839 +0,0 @@
----
-title: "API Reference"
-linkTitle: "API Reference"
-weight: 90
----
-## aiven.io/v1alpha1
-### AuthSecretReference
-AuthSecretReference references a Secret containing an Aiven authentication token
-| Field | Description|
-|---|---|
-|`name` string|N/A|
-|`key` string|N/A|
-### Clickhouse
-Clickhouse is the Schema for the clickhouses API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ClickhouseSpec](#clickhousespec)|N/A|
-|`status` [ServiceStatus](#servicestatus)|N/A|
-### ClickhouseSpec
-ClickhouseSpec defines the desired state of Clickhouse
-| Field | Description|
-|---|---|
-|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`userConfig` [ClickhouseUserConfig](#clickhouseuserconfig)|OpenSearch specific user configuration options|
-### ClickhouseUser
-ClickhouseUser is the Schema for the clickhouseusers API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ClickhouseUserSpec](#clickhouseuserspec)|N/A|
-|`status` [ClickhouseUserStatus](#clickhouseuserstatus)|N/A|
-### ClickhouseUserConfig
-| Field | Description|
-|---|---|
-|`ip_filter` []string|Glob pattern and number of indexes matching that pattern to be kept Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored.IP filter Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
-|`project_to_fork_from` string|Name of another project to fork a service from. This has effect only when a new service is being created.|
-|`service_to_fork_from` string|Name of another service to fork from. This has effect only when a new service is being created.|
-### ClickhouseUserSpec
-ClickhouseUserSpec defines the desired state of ClickhouseUser
-| Field | Description|
-|---|---|
-|`project` string|Project to link the user to|
-|`serviceName` string|Service to link the user to|
-|`authentication` string|Authentication details|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### ClickhouseUserStatus
-ClickhouseUserStatus defines the observed state of ClickhouseUser
-| Field | Description|
-|---|---|
-|`uuid` string|Clickhouse user UUID|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ClickhouseUser state|
-### ConnInfoSecretTarget
-ConnInfoSecretTarget contains information secret name
-| Field | Description|
-|---|---|
-|`name` string|Name of the Secret resource to be created|
-### ConnectionPool
-ConnectionPool is the Schema for the connectionpools API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ConnectionPoolSpec](#connectionpoolspec)|N/A|
-|`status` [ConnectionPoolStatus](#connectionpoolstatus)|N/A|
-### ConnectionPoolSpec
-ConnectionPoolSpec defines the desired state of ConnectionPool
-| Field | Description|
-|---|---|
-|`project` string|Target project.|
-|`serviceName` string|Service name.|
-|`databaseName` string|Name of the database the pool connects to|
-|`username` string|Name of the service user used to connect to the database|
-|`poolSize` int|Number of connections the pool may create towards the backend server|
-|`poolMode` string|Mode the pool operates in (session, transaction, statement)|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### ConnectionPoolStatus
-ConnectionPoolStatus defines the observed state of ConnectionPool
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ConnectionPool state|
-### Database
-Database is the Schema for the databases API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [DatabaseSpec](#databasespec)|N/A|
-|`status` [DatabaseStatus](#databasestatus)|N/A|
-### DatabaseSpec
-DatabaseSpec defines the desired state of Database
-| Field | Description|
-|---|---|
-|`project` string|Project to link the database to|
-|`serviceName` string|PostgreSQL service to link the database to|
-|`lcCollate` string|Default string sort order (LC_COLLATE) of the database. Default value: en_US.UTF-8|
-|`lcCtype` string|Default character classification (LC_CTYPE) of the database. Default value: en_US.UTF-8|
-|`terminationProtection` bool|It is a Kubernetes side deletion protections, which prevents the databasefrom being deleted by Kubernetes. It is recommended to enable this for any production databases containing critical data. |
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### DatabaseStatus
-DatabaseStatus defines the observed state of Database
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an Database state|
-### KafkServiceKafkaConnectUserConfig
-| Field | Description|
-|---|---|
-|`consumer_max_poll_records` int64|The maximum number of records returned by a single poll The maximum number of records returned in a single call to poll() (defaults to 500).|
-|`offset_flush_timeout_ms` int64|Offset flush timeout Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt (defaults to 5000).|
-|`connector_client_config_override_policy` string|Client config override policy Defines what client configurations can be overridden by the connector. Default is None|
-|`consumer_fetch_max_bytes` int64|The maximum amount of data the server should return for a fetch request Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress. As such, this is not a absolute maximum.|
-|`consumer_max_poll_interval_ms` int64|The maximum delay between polls when using consumer group management The maximum delay in milliseconds between invocations of poll() when using consumer group management (defaults to 300000).|
-|`offset_flush_interval_ms` int64|The interval at which to try committing offsets for tasks The interval at which to try committing offsets for tasks (defaults to 60000).|
-|`producer_max_request_size` int64|The maximum size of a request in bytes This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.|
-|`session_timeout_ms` int64|The timeout used to detect failures when using Kafka’s group management facilities The timeout in milliseconds used to detect failures when using Kafka’s group management facilities (defaults to 10000).|
-|`consumer_auto_offset_reset` string|Consumer auto offset reset What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server. Default is earliest|
-|`consumer_isolation_level` string|Consumer isolation level Transaction read isolation level. read_uncommitted is the default, but read_committed can be used if consume-exactly-once behavior is desired.|
-|`consumer_max_partition_fetch_bytes` int64|The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer.If the first record batch in the first non-empty partition of the fetch is larger than this limit, the batch will still be returned to ensure that the consumer can make progress.|
-### Kafka
-Kafka is the Schema for the kafkas API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [KafkaSpec](#kafkaspec)|N/A|
-|`status` [ServiceStatus](#servicestatus)|N/A|
-### KafkaACL
-KafkaACL is the Schema for the kafkaacls API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [KafkaACLSpec](#kafkaaclspec)|N/A|
-|`status` [KafkaACLStatus](#kafkaaclstatus)|N/A|
-### KafkaACLSpec
-KafkaACLSpec defines the desired state of KafkaACL
-| Field | Description|
-|---|---|
-|`project` string|Project to link the Kafka ACL to|
-|`serviceName` string|Service to link the Kafka ACL to|
-|`permission` string|Kafka permission to grant (admin, read, readwrite, write)|
-|`topic` string|Topic name pattern for the ACL entry|
-|`username` string|Username pattern for the ACL entry|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### KafkaACLStatus
-KafkaACLStatus defines the observed state of KafkaACL
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an KafkaACL state|
-|`id` string|Kafka ACL ID|
-### KafkaAuthenticationMethodsUserConfig
-| Field | Description|
-|---|---|
-|`certificate` bool|Enable certificate/SSL authentication|
-|`sasl` bool|Enable SASL authentication|
-### KafkaConnect
-KafkaConnect is the Schema for the kafkaconnects API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [KafkaConnectSpec](#kafkaconnectspec)|N/A|
-|`status` [ServiceStatus](#servicestatus)|N/A|
-### KafkaConnectPrivateAccessUserConfig
-| Field | Description|
-|---|---|
-|`kafka_connect` bool|Allow clients to connect to kafka_connect with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-|`prometheus` bool|Allow clients to connect to prometheus with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-### KafkaConnectPublicAccessUserConfig
-| Field | Description|
-|---|---|
-|`kafka_connect` bool|Allow clients to connect to kafka_connect from the public internet for service nodes that are in a project VPC or another type of private network|
-|`prometheus` bool|Allow clients to connect to prometheus from the public internet for service nodes that are in a project VPC or another type of private network|
-### KafkaConnectSpec
-KafkaConnectSpec defines the desired state of KafkaConnect
-| Field | Description|
-|---|---|
-|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`userConfig` [KafkaConnectUserConfig](#kafkaconnectuserconfig)|PostgreSQL specific user configuration options|
-### KafkaConnectUserConfig
-| Field | Description|
-|---|---|
-|`connector_client_config_override_policy` string|Defines what client configurations can be overridden by the connector. Default is None|
-|`consumer_auto_offset_reset` string|What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server. Default is earliest|
-|`consumer_fetch_max_bytes` int64|Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress. As such, this is not a absolute maximum.|
-|`consumer_isolation_level` string|Transaction read isolation level. read_uncommitted is the default, but read_committed can be used if consume-exactly-once behavior is desired.|
-|`consumer_max_partition_fetch_bytes` int64|Records are fetched in batches by the consumer.If the first record batch in the first non-empty partition of the fetch is larger than this limit, the batch will still be returned to ensure that the consumer can make progress.|
-|`consumer_max_poll_interval_ms` int64|The maximum delay in milliseconds between invocations of poll() when using consumer group management (defaults to 300000).|
-|`consumer_max_poll_records` int64|The maximum number of records returned in a single call to poll() (defaults to 500).|
-|`offset_flush_interval_ms` int64|The interval at which to try committing offsets for tasks (defaults to 60000).|
-|`producer_max_request_size` int64|This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.|
-|`session_timeout_ms` int64|The timeout in milliseconds used to detect failures when using Kafka’s group management facilities (defaults to 10000).|
-|`private_access` [KafkaConnectPrivateAccessUserConfig](#kafkaconnectprivateaccessuserconfig)|Allow access to selected service ports from private networks|
-|`public_access` [KafkaConnectPublicAccessUserConfig](#kafkaconnectpublicaccessuserconfig)|Allow access to selected service ports from the public Internet|
-### KafkaConnector
-KafkaConnector is the Schema for the kafkaconnectors API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [KafkaConnectorSpec](#kafkaconnectorspec)|N/A|
-|`status` [KafkaConnectorStatus](#kafkaconnectorstatus)|N/A|
-### KafkaConnectorPluginStatus
-KafkaConnectorPluginStatus describes the observed state of a Kafka Connector Plugin
-| Field | Description|
-|---|---|
-|`author` string|N/A|
-|`class` string|N/A|
-|`docUrl` string|N/A|
-|`title` string|N/A|
-|`type` string|N/A|
-|`version` string|N/A|
-### KafkaConnectorSpec
-KafkaConnectorSpec defines the desired state of KafkaConnector
-| Field | Description|
-|---|---|
-|`project` string|Target project.|
-|`serviceName` string|Service name.|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`connectorClass` string|The Java class of the connector.|
-|`userConfig` map[string]string|The connector specific configurationTo build config values from secret the template function `{{ fromSecret "name" "key" }}` is provided when interpreting the keys |
-### KafkaConnectorStatus
-KafkaConnectorStatus defines the observed state of KafkaConnector
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an kafka connector state|
-|`state` string|Connector state|
-|`pluginStatus` [KafkaConnectorPluginStatus](#kafkaconnectorpluginstatus)|PluginStatus contains metadata about the configured connector plugin|
-|`tasksStatus` [KafkaConnectorTasksStatus](#kafkaconnectortasksstatus)|TasksStatus contains metadata about the running tasks|
-### KafkaConnectorTasksStatus
-KafkaConnectorTasksStatus describes the observed state of the Kafka Connector Tasks
-| Field | Description|
-|---|---|
-|`total` uint|N/A|
-|`running` uint|N/A|
-|`failed` uint|N/A|
-|`paused` uint|N/A|
-|`unassigned` uint|N/A|
-|`unknown` uint|N/A|
-|`stackTrace` string|N/A|
-### KafkaPrivateAccessUserConfig
-| Field | Description|
-|---|---|
-|`prometheus` bool|Allow clients to connect to prometheus with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-### KafkaPublicAccessUserConfig
-| Field | Description|
-|---|---|
-|`prometheus` bool|Allow clients to connect to prometheus from the public internet for service nodes that are in a project VPC or another type of private network|
-|`schema_registry` bool|Allow clients to connect to schema_registry from the public internet for service nodes that are in a project VPC or another type of private network|
-|`kafka` bool|Allow clients to connect to kafka from the public internet for service nodes that are in a project VPC or another type of private network|
-|`kafka_connect` bool|Allow clients to connect to kafka_connect from the public internet for service nodes that are in a project VPC or another type of private network|
-|`kafka_rest` bool|Allow clients to connect to kafka_rest from the public internet for service nodes that are in a project VPC or another type of private network|
-### KafkaRestUserConfig
-| Field | Description|
-|---|---|
-|`consumer_request_max_bytes` int64|consumer.request.max.bytes Maximum number of bytes in unencoded message keys and values by a single request|
-|`consumer_request_timeout_ms` int64|consumer.request.timeout.ms The maximum total time to wait for messages for a request if the maximum number of messages has not yet been reached|
-|`producer_acks` string|producer.acks The number of acknowledgments the producer requires the leader to have received before considering a request complete. If set to 'all' or '-1', the leader will wait for the full set of in-sync replicas to acknowledge the record.|
-|`producer_linger_ms` int64|producer.linger.ms Wait for up to the given delay to allow batching records together|
-|`simpleconsumer_pool_size_max` int64|simpleconsumer.pool.size.max Maximum number of SimpleConsumers that can be instantiated per broker|
-|`consumer_enable_auto_commit` bool|consumer.enable.auto.commit If true the consumer's offset will be periodically committed to Kafka in the background|
-|`public_access` [KafkaPublicAccessUserConfig](#kafkapublicaccessuserconfig)|Allow access to selected service ports from the public Internet|
-|`custom_domain` string|Custom domain Serve the web frontend using a custom CNAME pointing to the Aiven DNS name|
-### KafkaSchema
-KafkaSchema is the Schema for the kafkaschemas API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [KafkaSchemaSpec](#kafkaschemaspec)|N/A|
-|`status` [KafkaSchemaStatus](#kafkaschemastatus)|N/A|
-### KafkaSchemaRegistryConfig
-| Field | Description|
-|---|---|
-|`leader_eligibility` bool|leader_eligibility If true, Karapace / Schema Registry on the service nodes can participate in leader election. It might be needed to disable this when the schemas topic is replicated to a secondary cluster and Karapace / Schema Registry there must not participate in leader election. Defaults to 'true'.|
-|`topic_name` string|topic_name The durable single partition topic that acts as the durable log for the data. This topic must be compacted to avoid losing data due to retention policy. Please note that changing this configuration in an existing Schema Registry / Karapace setup leads to previous schemas being inaccessible, data encoded with them potentially unreadable and schema ID sequence put out of order. It's only possible to do the switch while Schema Registry / Karapace is disabled. Defaults to '_schemas'.|
-### KafkaSchemaSpec
-KafkaSchemaSpec defines the desired state of KafkaSchema
-| Field | Description|
-|---|---|
-|`project` string|Project to link the Kafka Schema to|
-|`serviceName` string|Service to link the Kafka Schema to|
-|`subjectName` string|Kafka Schema Subject name|
-|`schema` string|Kafka Schema configuration should be a valid Avro Schema JSON format|
-|`compatibilityLevel` string|Kafka Schemas compatibility level|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### KafkaSchemaStatus
-KafkaSchemaStatus defines the observed state of KafkaSchema
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an KafkaSchema state|
-|`version` int|Kafka Schema configuration version|
-### KafkaSpec
-KafkaSpec defines the desired state of Kafka
-| Field | Description|
-|---|---|
-|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
-|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`karapace` bool|Switch the service to use Karapace for schema registry and REST proxy|
-|`userConfig` [KafkaUserConfig](#kafkauserconfig)|Kafka specific user configuration options|
-### KafkaSubKafkaUserConfig
-| Field | Description|
-|---|---|
-|`message_max_bytes` int64|message.max.bytes The maximum size of message that the server can receive.|
-|`default_replication_factor` int64|default.replication.factor Replication factor for autocreated topics|
-|`log_cleaner_min_cleanable_ratio` int64|log.cleaner.min.cleanable.ratio Controls log compactor frequency. Larger value means more frequent compactions but also more space wasted for logs. Consider setting log.cleaner.max.compaction.lag.ms to enforce compactions sooner, instead of setting a very high value for this option.|
-|`log_index_interval_bytes` int64|log.index.interval.bytes The interval with which Kafka adds an entry to the offset index|
-|`log_segment_delete_delay_ms` int64|log.segment.delete.delay.ms The amount of time to wait before deleting a file from the filesystem|
-|`max_incremental_fetch_session_cache_slots` int64|max.incremental.fetch.session.cache.slots The maximum number of incremental fetch sessions that the broker will maintain.|
-|`socket_request_max_bytes` int64|socket.request.max.bytes The maximum number of bytes in a socket request (defaults to 104857600).|
-|`log_cleaner_delete_retention_ms` int64|log.cleaner.delete.retention.ms How long are delete records retained?|
-|`log_index_size_max_bytes` int64|log.index.size.max.bytes The maximum size in bytes of the offset index|
-|`log_roll_jitter_ms` int64|log.roll.jitter.ms The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used|
-|`max_connections_per_ip` int64|max.connections.per.ip The maximum number of connections allowed from each ip address (defaults to 2147483647).|
-|`replica_fetch_response_max_bytes` int64|replica.fetch.response.max.bytes Maximum bytes expected for the entire fetch response (defaults to 10485760). Records are fetched in batches, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made. As such, this is not an absolute maximum.|
-|`auto_create_topics_enable` bool|auto.create.topics.enable Enable auto creation of topics|
-|`log_flush_interval_ms` int64|log.flush.interval.ms The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used|
-|`log_message_downconversion_enable` bool|log.message.downconversion.enable This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.|
-|`log_roll_ms` int64|log.roll.ms The maximum time before a new log segment is rolled out (in milliseconds).|
-|`log_cleaner_min_compaction_lag_ms` int64|log.cleaner.min.compaction.lag.ms The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.|
-|`log_message_timestamp_difference_max_ms` int64|log.message.timestamp.difference.max.ms The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message|
-|`log_message_timestamp_type` string|log.message.timestamp.type Define whether the timestamp in the message is message create time or log append time.|
-|`log_retention_ms` int64|log.retention.ms The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.|
-|`group_min_session_timeout_ms` int64|group.min.session.timeout.ms The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.|
-|`log_segment_bytes` int64|log.segment.bytes The maximum size of a single log file|
-|`compression_type` string|compression.type Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.|
-|`group_max_session_timeout_ms` int64|group.max.session.timeout.ms The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.|
-|`log_flush_interval_messages` int64|log.flush.interval.messages The number of messages accumulated on a log partition before messages are flushed to disk|
-|`log_preallocate` bool|log.preallocate Should pre allocate file when create new segment?|
-|`log_retention_bytes` int64|log.retention.bytes The maximum size of the log before deleting messages|
-|`log_cleaner_max_compaction_lag_ms` int64|log.cleaner.max.compaction.lag.ms The maximum amount of time message will remain uncompacted. Only applicable for logs that are being compacted|
-|`log_retention_hours` int64|log.retention.hours The number of hours to keep a log file before deleting it|
-|`min_insync_replicas` int64|min.insync.replicas When a producer sets acks to 'all' (or '-1'), min.insync.replicas specifies the minimum number of replicas that must acknowledge a write for the write to be considered successful.|
-|`num_partitions` int64|num.partitions Number of partitions for autocreated topics|
-|`offsets_retention_minutes` int64|offsets.retention.minutes Log retention window in minutes for offsets topic|
-|`connections_max_idle_ms` int64|connections.max.idle.ms Idle connections timeout: the server socket processor threads close the connections that idle for longer than this.|
-|`log_cleanup_policy` string|log.cleanup.policy The default cleanup policy for segments beyond the retention window|
-|`producer_purgatory_purge_interval_requests` int64|producer.purgatory.purge.interval.requests The purge interval (in number of requests) of the producer request purgatory(defaults to 1000).|
-|`replica_fetch_max_bytes` int64|replica.fetch.max.bytes The number of bytes of messages to attempt to fetch for each partition (defaults to 1048576). This is not an absolute maximum, if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made.|
-### KafkaTopic
-KafkaTopic is the Schema for the kafkatopics API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [KafkaTopicSpec](#kafkatopicspec)|N/A|
-|`status` [KafkaTopicStatus](#kafkatopicstatus)|N/A|
-### KafkaTopicConfig
-| Field | Description|
-|---|---|
-|`cleanup_policy` string|cleanup.policy value|
-|`compression_type` string|compression.type value|
-|`delete_retention_ms` int64|delete.retention.ms value|
-|`file_delete_delay_ms` int64|file.delete.delay.ms value|
-|`flush_messages` int64|flush.messages value|
-|`flush_ms` int64|flush.ms value|
-|`index_interval_bytes` int64|index.interval.bytes value|
-|`max_compaction_lag_ms` int64|max.compaction.lag.ms value|
-|`max_message_bytes` int64|max.message.bytes value|
-|`message_downconversion_enable` bool|message.downconversion.enable value|
-|`message_format_version` string|message.format.version value|
-|`message_timestamp_difference_max_ms` int64|message.timestamp.difference.max.ms value|
-|`message_timestamp_type` string|message.timestamp.type value|
-|`min_compaction_lag_ms` int64|min.compaction.lag.ms value|
-|`min_insync_replicas` int64|min.insync.replicas value|
-|`preallocate` bool|preallocate value|
-|`retention_bytes` int64|retention.bytes value|
-|`retention_ms` int64|retention.ms value|
-|`segment_bytes` int64|segment.bytes value|
-|`segment_index_bytes` int64|segment.index.bytes value|
-|`segment_jitter_ms` int64|segment.jitter.ms value|
-|`segment_ms` int64|segment.ms value|
-|`unclean_leader_election_enable` bool|unclean.leader.election.enable value|
-### KafkaTopicSpec
-KafkaTopicSpec defines the desired state of KafkaTopic
-| Field | Description|
-|---|---|
-|`project` string|Target project.|
-|`serviceName` string|Service name.|
-|`partitions` int|Number of partitions to create in the topic|
-|`replication` int|Replication factor for the topic|
-|`tags` [[]KafkaTopicTag](#kafkatopictag)|Kafka topic tags|
-|`config` [KafkaTopicConfig](#kafkatopicconfig)|Kafka topic configuration|
-|`termination_protection` bool|It is a Kubernetes side deletion protections, which prevents the kafka topicfrom being deleted by Kubernetes. It is recommended to enable this for any production databases containing critical data. |
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### KafkaTopicStatus
-KafkaTopicStatus defines the observed state of KafkaTopic
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an KafkaTopic state|
-|`state` string|State represents the state of the kafka topic|
-### KafkaTopicTag
-| Field | Description|
-|---|---|
-|`key` string|N/A|
-|`value` string|N/A|
-### KafkaUserConfig
-| Field | Description|
-|---|---|
-|`kafka_version` string|Kafka major version|
-|`schema_registry` bool|Enable Schema-Registry service|
-|`kafka` [KafkaSubKafkaUserConfig](#kafkasubkafkauserconfig)|Kafka broker configuration values|
-|`kafka_connect_user_config` [KafkServiceKafkaConnectUserConfig](#kafkservicekafkaconnectuserconfig)|Kafka Connect configuration values|
-|`private_access` [KafkaPrivateAccessUserConfig](#kafkaprivateaccessuserconfig)|Allow access to selected service ports from private networks|
-|`schema_registry_config` [KafkaSchemaRegistryConfig](#kafkaschemaregistryconfig)|Schema Registry configuration|
-|`ip_filter` []string|IP filter Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16'|
-|`kafka_authentication_methods` [KafkaAuthenticationMethodsUserConfig](#kafkaauthenticationmethodsuserconfig)|Kafka authentication methods|
-|`kafka_connect` bool|Enable Kafka Connect service|
-|`kafka_rest` bool|Enable Kafka-REST service|
-|`kafka_rest_config` [KafkaRestUserConfig](#kafkarestuserconfig)|Kafka REST configuration|
-### MigrationUserConfig
-| Field | Description|
-|---|---|
-|`host` string|Hostname or IP address of the server where to migrate data from|
-|`password` string|Password for authentication with the server where to migrate data from|
-|`port` int64|Port number of the server where to migrate data from|
-|`ssl` bool|The server where to migrate data from is secured with SSL|
-|`username` string|User name for authentication with the server where to migrate data from|
-|`dbname` string|Database name for bootstrapping the initial connection|
-### OpenSearch
-OpenSearch is the Schema for the opensearches API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [OpenSearchSpec](#opensearchspec)|N/A|
-|`status` [ServiceStatus](#servicestatus)|N/A|
-### OpenSearchIndexPatterns
-| Field | Description|
-|---|---|
-|`max_index_count` int64|Maximum number of indexes to keep|
-|`pattern` string|Must consist of alpha-numeric characters, dashes, underscores, dots and glob characters (* and ?)|
-### OpenSearchIndexTemplate
-| Field | Description|
-|---|---|
-|`number_of_replicas` int64|index.number_of_replicas The number of replicas each primary shard has.|
-|`number_of_shards` int64|index.number_of_shards The number of primary shards that an index should have.|
-|`mapping_nested_objects_limit` int64|index.mapping.nested_objects.limit The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. Default is 10000.|
-### OpenSearchPrivateAccess
-| Field | Description|
-|---|---|
-|`opensearch` bool|Allow clients to connect to opensearch with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-|`opensearch_dashboards` bool|Allow clients to connect to opensearch_dashboards with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-|`prometheus` bool|Allow clients to connect to prometheus with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-### OpenSearchPrivatelinkAccess
-| Field | Description|
-|---|---|
-|`opensearch` bool|Enable opensearch|
-|`opensearch_dashboards` bool|Enable opensearch_dashboards|
-### OpenSearchPublicAccess
-| Field | Description|
-|---|---|
-|`opensearch_dashboards` bool|Allow clients to connect to opensearch_dashboards from the public internet for service nodes that are in a project VPC or another type of private network|
-|`prometheus` bool|Allow clients to connect to prometheus from the public internet for service nodes that are in a project VPC or another type of private network|
-|`opensearch` bool|Allow clients to connect to opensearch from the public internet for service nodes that are in a project VPC or another type of private network|
-### OpenSearchSpec
-OpenSearchSpec defines the desired state of OpenSearch
-| Field | Description|
-|---|---|
-|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
-|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`userConfig` [OpenSearchUserConfig](#opensearchuserconfig)|OpenSearch specific user configuration options|
-### OpenSearchUserConfig
-| Field | Description|
-|---|---|
-|`opensearch_version` string|OpenSearch major version|
-|`opensearch_dashboards` [OpensearchDashboards](#opensearchdashboards)|OpenSearch Dashboards settings|
-|`recovery_basebackup_name` string|Name of the basebackup to restore in forked service|
-|`privatelink_access` [OpenSearchPrivatelinkAccess](#opensearchprivatelinkaccess)|Allow access to selected service components through Privatelink|
-|`static_ips` bool|Static IP addresses Use static public IP addresses|
-|`public_access` [OpenSearchPublicAccess](#opensearchpublicaccess)|Allow access to selected service ports from the public Internet|
-|`custom_domain` string|Custom domain Serve the web frontend using a custom CNAME pointing to the Aiven DNS name|
-|`index_patterns` [[]OpenSearchIndexPatterns](#opensearchindexpatterns)|Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored.|
-|`ip_filter` []string|Glob pattern and number of indexes matching that pattern to be kept Allows you to create glob style patterns and set a max number of indexes matching this pattern you want to keep. Creating indexes exceeding this value will cause the oldest one to get deleted. You could for example create a pattern looking like 'logs.?' and then create index logs.1, logs.2 etc, it will delete logs.1 once you create logs.6. Do note 'logs.?' does not apply to logs.10. Note: Setting max_index_count to 0 will do nothing and the pattern gets ignored.IP filter Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16' |
-|`private_access` [OpenSearchPrivateAccess](#opensearchprivateaccess)|Allow access to selected service ports from private networks|
-|`index_template` [OpenSearchIndexTemplate](#opensearchindextemplate)|Template settings for all new indexes|
-|`opensearch` [OpenSearchUserConfigOpenSearch](#opensearchuserconfigopensearch)|OpenSearch settings|
-|`max_index_count` int64|Maximum index count Maximum number of indexes to keep before deleting the oldest one|
-|`project_to_fork_from` string|Name of another project to fork a service from. This has effect only when a new service is being created.|
-|`service_to_fork_from` string|Name of another service to fork from. This has effect only when a new service is being created.|
-|`disable_replication_factor_adjustment` bool|Disable replication factor adjustment DEPRECATED: Disable automatic replication factor adjustment for multi-node services. By default, Aiven ensures all indexes are replicated at least to two nodes. Note: Due to potential data loss in case of losing a service node, this setting can no longer be activated.|
-|`keep_index_refresh_interval` bool|Don't reset index.refresh_interval to the default value Aiven automation resets index.refresh_interval to default value for every index to be sure that indices are always visible to search. If it doesn't fit your case, you can disable this by setting up this flag to true.|
-### OpenSearchUserConfigOpenSearch
-| Field | Description|
-|---|---|
-|`thread_pool_analyze_queue_size` int64|analyze thread pool queue size for the thread pool queue. See documentation for exact details.|
-|`thread_pool_analyze_size` int64|analyze thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`thread_pool_force_merge_size` int64|force_merge thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`thread_pool_get_size` int64|get thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`thread_pool_search_throttled_queue_size` int64|search_throttled thread pool queue size for the thread pool queue. See documentation for exact details.|
-|`thread_pool_write_queue_size` int64|write thread pool queue size for the thread pool queue. See documentation for exact details.|
-|`reindex_remote_whitelist` []string|reindex_remote_whitelist Whitelisted addresses for reindexing. Changing this value will cause all OpenSearch instances to restart.Address (hostname:port or IP:port) |
-|`indices_fielddata_cache_size` int64|indices.fielddata.cache.size Relative amount. Maximum amount of heap memory used for field data cache. This is an expert setting; decreasing the value too much will increase overhead of loading field data; too much memory used for field data cache will decrease amount of heap available for other operations.|
-|`indices_query_bool_max_clause_count` int64|indices.query.bool.max_clause_count Maximum number of clauses Lucene BooleanQuery can have. The default value (1024) is relatively high, and increasing it may cause performance issues. Investigate other approaches first before increasing this value.|
-|`thread_pool_get_queue_size` int64|get thread pool queue size for the thread pool queue. See documentation for exact details.|
-|`thread_pool_index_size` int64|index thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`thread_pool_search_queue_size` int64|search thread pool queue size for the thread pool queue. See documentation for exact details.|
-|`thread_pool_write_size` int64|write thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`http_max_header_size` int64|http.max_header_size The max size of allowed headers, in bytes|
-|`indices_memory_index_buffer_size` int64|indices.memory.index_buffer_size Percentage value. Default is 10%. Total amount of heap used for indexing buffer, before writing segments to disk. This is an expert setting. Too low value will slow down indexing; too high value will increase indexing performance but causes performance issues for query performance.|
-|`indices_queries_cache_size` int64|indices.queries.cache.size Percentage value. Default is 10%. Maximum amount of heap used for query cache. This is an expert setting. Too low value will decrease query performance and increase performance for other operations; too high value will cause issues with other OpenSearch functionality.|
-|`thread_pool_search_size` int64|search thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`thread_pool_search_throttled_size` int64|search_throttled thread pool size for the thread pool. See documentation for exact details. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.|
-|`http_max_initial_line_length` int64|http.max_initial_line_length The max length of an HTTP URL, in bytes|
-|`action_destructive_requires_name` bool|Require explicit index names when deleting|
-|`cluster_max_shards_per_node` int64|cluster.max_shards_per_node Controls the number of shards allowed in the cluster per data node|
-|`http_max_content_length` int64|http.max_content_length Maximum content length for HTTP requests to the OpenSearch HTTP API, in bytes.|
-|`search_max_buckets` int64|search.max_buckets Maximum number of aggregation buckets allowed in a single response. OpenSearch default value is used when this is not defined.|
-|`action_auto_create_index_enabled` bool|action.auto_create_index Explicitly allow or block automatic creation of indices. Defaults to true|
-### OpensearchDashboards
-| Field | Description|
-|---|---|
-|`enabled` bool|Enable or disable OpenSearch Dashboards|
-|`max_old_space_size` int64|max_old_space_size Limits the maximum amount of memory (in MiB) the OpenSearch Dashboards process can use. This sets the max_old_space_size option of the nodejs running the OpenSearch Dashboards. Note: the memory reserved by OpenSearch Dashboards is not available for OpenSearch.|
-|`opensearch_request_timeout` int64|Timeout in milliseconds for requests made by OpenSearch Dashboards towards OpenSearch|
-### PgLookoutUserConfig
-| Field | Description|
-|---|---|
-|`max_failover_replication_time_lag` int64|max_failover_replication_time_lag Number of seconds of master unavailability before triggering database failover to standby|
-### PgbouncerUserConfig
-| Field | Description|
-|---|---|
-|`ignore_startup_parameters` []string|List of parameters to ignore when given in startup packet|
-|`server_reset_query_always` bool|Run server_reset_query (DISCARD ALL) in all pooling modes|
-### PostgreSQL
-PostgreSQL is the Schema for the postgresql API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [PostgreSQLSpec](#postgresqlspec)|N/A|
-|`status` [ServiceStatus](#servicestatus)|N/A|
-### PostgreSQLSpec
-PostgreSQLSpec defines the desired state of postgres instance
-| Field | Description|
-|---|---|
-|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
-|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`userConfig` [PostgreSQLUserconfig](#postgresqluserconfig)|PostgreSQL specific user configuration options|
-### PostgreSQLSubUserConfig
-| Field | Description|
-|---|---|
-|`log_min_duration_statement` int64|log_min_duration_statement Log statements that take more than this number of milliseconds to run, -1 disables|
-|`max_replication_slots` int64|max_replication_slots PostgreSQL maximum replication slots|
-|`max_standby_streaming_delay` int64|max_standby_streaming_delay Max standby streaming delay in milliseconds|
-|`pg_partman_bgw.interval` int64|pg_partman_bgw.interval Sets the time interval to run pg_partman's scheduled tasks|
-|`pg_stat_statements.track` string|pg_stat_statements.track Controls which statements are counted. Specify top to track top-level statements (those issued directly by clients), all to also track nested statements (such as statements invoked within functions), or none to disable statement statistics collection. The default value is top.|
-|`autovacuum_vacuum_threshold` int64|autovacuum_vacuum_threshold Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples|
-|`jit` bool|jit Controls system-wide use of Just-in-Time Compilation (JIT).|
-|`max_prepared_transactions` int64|max_prepared_transactions PostgreSQL maximum prepared transactions|
-|`autovacuum_freeze_max_age` int64|autovacuum_freeze_max_age Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. This parameter will cause the server to be restarted.|
-|`idle_in_transaction_session_timeout` int64|idle_in_transaction_session_timeout Time out sessions with open transactions after this number of milliseconds|
-|`wal_sender_timeout` int64|wal_sender_timeout Terminate replication connections that are inactive for longer than this amount of time, in milliseconds.|
-|`max_pred_locks_per_transaction` int64|max_pred_locks_per_transaction PostgreSQL maximum predicate locks per transaction|
-|`timezone` string|timezone PostgreSQL service timezone|
-|`max_wal_senders` int64|max_wal_senders PostgreSQL maximum WAL senders|
-|`track_activity_query_size` int64|track_activity_query_size Specifies the number of bytes reserved to track the currently executing command for each active session.|
-|`max_files_per_process` int64|max_files_per_process PostgreSQL maximum number of files that can be open per process|
-|`max_parallel_workers_per_gather` int64|max_parallel_workers_per_gather Sets the maximum number of workers that can be started by a single Gather or Gather Merge node|
-|`autovacuum_vacuum_scale_factor` int64|autovacuum_vacuum_scale_factor Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size)|
-|`log_autovacuum_min_duration` int64|log_autovacuum_min_duration Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one (the default) disables logging autovacuum actions.|
-|`max_locks_per_transaction` int64|max_locks_per_transaction PostgreSQL maximum locks per transaction|
-|`max_stack_depth` int64|max_stack_depth Maximum depth of the stack in bytes|
-|`max_worker_processes` int64|max_worker_processes Sets the maximum number of background processes that the system can support|
-|`pg_partman_bgw.role` string|pg_partman_bgw.role Controls which role to use for pg_partman's scheduled background tasks.|
-|`autovacuum_analyze_scale_factor` int64|autovacuum_analyze_scale_factor Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2 (20% of table size)|
-|`autovacuum_vacuum_cost_limit` int64|autovacuum_vacuum_cost_limit Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used.|
-|`temp_file_limit` int64|temp_file_limit PostgreSQL temporary file limit in KiB, -1 for unlimited|
-|`track_functions` string|track_functions Enables tracking of function call counts and time used.|
-|`max_parallel_workers` int64|max_parallel_workers Sets the maximum number of workers that the system can support for parallel queries|
-|`track_commit_timestamp` string|track_commit_timestamp Record commit time of transactions.|
-|`max_standby_archive_delay` int64|max_standby_archive_delay Max standby archive delay in milliseconds|
-|`wal_writer_delay` int64|wal_writer_delay WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance|
-|`autovacuum_analyze_threshold` int64|autovacuum_analyze_threshold Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.|
-|`autovacuum_naptime` int64|autovacuum_naptime Specifies the minimum delay between autovacuum runs on any given database. The delay is measured in seconds, and the default is one minute|
-|`deadlock_timeout` int64|deadlock_timeout This is the amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.|
-|`log_error_verbosity` string|log_error_verbosity Controls the amount of detail written in the server log for each message that is logged.|
-|`max_logical_replication_workers` int64|max_logical_replication_workers PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers)|
-|`autovacuum_max_workers` int64|autovacuum_max_workers Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is three. This parameter can only be set at server start.|
-|`autovacuum_vacuum_cost_delay` int64|autovacuum_vacuum_cost_delay Specifies the cost delay value that will be used in automatic VACUUM operations. If -1 is specified, the regular vacuum_cost_delay value will be used. The default value is 20 milliseconds|
-### PostgreSQLUserconfig
-| Field | Description|
-|---|---|
-|`pg_version` string|PostgreSQL major version|
-|`backup_minute` int64|The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.|
-|`pg_service_to_fork_from` string|Name of the PostgreSQL Service from which to fork (deprecated, use service_to_fork_from). This has effect only when a new service is being created.|
-|`backup_hour` int64|The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.|
-|`pglookout` [PgLookoutUserConfig](#pglookoutuserconfig)|PGLookout settings|
-|`shared_buffers_percentage` int64|shared_buffers_percentage Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value. The absolute maximum is 12 GB.|
-|`synchronous_replication` string|Synchronous replication type. Note that the service plan also needs to support synchronous replication.|
-|`timescaledb` [TimescaledbUserConfig](#timescaledbuserconfig)|TimescaleDB extension configuration values|
-|`admin_password` string|Custom password for admin user. Defaults to random string. This must be set only when a new service is being created.|
-|`ip_filter` []string|IP filter Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16'|
-|`pgbouncer` [PgbouncerUserConfig](#pgbounceruserconfig)|PGBouncer connection pooling settings|
-|`recovery_target_time` string|Recovery target time when forking a service. This has effect only when a new service is being created.|
-|`admin_username` string|Custom username for admin user. This must be set only when a new service is being created.|
-|`migration` [MigrationUserConfig](#migrationuserconfig)|Migrate data from existing server|
-|`private_access` [PrivateAccessUserConfig](#privateaccessuserconfig)|Allow access to selected service ports from private networks|
-|`public_access` [PublicAccessUserConfig](#publicaccessuserconfig)|Allow access to selected service ports from the public Internet|
-|`service_to_fork_from` string|Name of another service to fork from. This has effect only when a new service is being created.|
-|`variant` string|Variant of the PostgreSQL service, may affect the features that are exposed by default|
-|`work_mem` int64|work_mem Sets the maximum amount of memory to be used by a query operation (such as a sort or hash table) before writing to temporary disk files, in MB. Default is 1MB + 0.075% of total RAM (up to 32MB).|
-|`pg` [PostgreSQLSubUserConfig](#postgresqlsubuserconfig)|postgresql.conf configuration values|
-### PrivateAccessUserConfig
-| Field | Description|
-|---|---|
-|`pg` bool|Allow clients to connect to pg with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-|`pgbouncer` bool|Allow clients to connect to pgbouncer with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-|`prometheus` bool|Allow clients to connect to prometheus with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-### Project
-Project is the Schema for the projects API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ProjectSpec](#projectspec)|N/A|
-|`status` [ProjectStatus](#projectstatus)|N/A|
-### ProjectSpec
-ProjectSpec defines the desired state of Project
-| Field | Description|
-|---|---|
-|`cardId` string|Credit card ID; The ID may be either last 4 digits of the card or the actual ID|
-|`accountId` string|Account ID|
-|`billingAddress` string|Billing name and address of the project|
-|`billingEmails` []string|Billing contact emails of the project|
-|`billingCurrency` string|Billing currency|
-|`billingExtraText` string|Extra text to be included in all project invoices, e.g. purchase order or cost center number|
-|`billingGroupId` string|BillingGroup ID|
-|`countryCode` string|Billing country code of the project|
-|`cloud` string|Target cloud, example: aws-eu-central-1|
-|`copyFromProject` string|Project name from which to copy settings to the new project|
-|`technicalEmails` []string|Technical contact emails of the project|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`tags` map[string]string|Tags are key-value pairs that allow you to categorize projects|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### ProjectStatus
-ProjectStatus defines the observed state of Project
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an Project state|
-|`vatId` string|EU VAT Identification Number|
-|`availableCredits` string|Available credirs|
-|`country` string|Country name|
-|`estimatedBalance` string|Estimated balance|
-|`paymentMethod` string|Payment method name|
-### ProjectVPC
-ProjectVPC is the Schema for the projectvpcs API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ProjectVPCSpec](#projectvpcspec)|N/A|
-|`status` [ProjectVPCStatus](#projectvpcstatus)|N/A|
-### ProjectVPCSpec
-ProjectVPCSpec defines the desired state of ProjectVPC
-| Field | Description|
-|---|---|
-|`project` string|The project the VPC belongs to|
-|`cloudName` string|Cloud the VPC is in|
-|`networkCidr` string|Network address range used by the VPC like 192.168.0.0/24|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### ProjectVPCStatus
-ProjectVPCStatus defines the observed state of ProjectVPC
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ProjectVPC state|
-|`state` string|State of VPC|
-|`id` string|Project VPC id|
-### PublicAccessUserConfig
-| Field | Description|
-|---|---|
-|`pg` bool|Allow clients to connect to pg from the public internet for service nodes that are in a project VPC or another type of private network|
-|`pgbouncer` bool|Allow clients to connect to pgbouncer from the public internet for service nodes that are in a project VPC or another type of private network|
-|`prometheus` bool|Allow clients to connect to prometheus from the public internet for service nodes that are in a project VPC or another type of private network|
-### Redis
-Redis is the Schema for the redis API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [RedisSpec](#redisspec)|N/A|
-|`status` [ServiceStatus](#servicestatus)|N/A|
-### RedisMigration
-| Field | Description|
-|---|---|
-|`ignore_dbs` string|Comma-separated list of databases, which should be ignored during migration (supported by MySQL only at the moment)|
-|`password` string|Password for authentication with the server where to migrate data from|
-|`port` int64|Port number of the server where to migrate data from|
-|`ssl` bool|The server where to migrate data from is secured with SSL|
-|`username` string|User name for authentication with the server where to migrate data from|
-|`dbname` string|Database name for bootstrapping the initial connection|
-|`host` string|Hostname or IP address of the server where to migrate data from|
-### RedisPrivateAccess
-| Field | Description|
-|---|---|
-|`prometheus` bool|Allow clients to connect to prometheus with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-|`redis` bool|Allow clients to connect to redis with a DNS name that always resolves to the service's private IP addresses. Only available in certain network locations|
-### RedisPrivatelinkAccess
-| Field | Description|
-|---|---|
-|`redis` bool|Enable redis|
-### RedisPublicAccess
-| Field | Description|
-|---|---|
-|`prometheus` bool|Allow clients to connect to prometheus from the public internet for service nodes that are in a project VPC or another type of private network|
-|`redis` bool|Allow clients to connect to redis from the public internet for service nodes that are in a project VPC or another type of private network|
-### RedisSpec
-RedisSpec defines the desired state of Redis
-| Field | Description|
-|---|---|
-|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
-|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`userConfig` [RedisUserConfig](#redisuserconfig)|Redis specific user configuration options|
-### RedisUserConfig
-| Field | Description|
-|---|---|
-|`migration` [RedisMigration](#redismigration)|Migrate data from existing server|
-|`public_access` [RedisPublicAccess](#redispublicaccess)|Allow access to selected service ports from the public internet|
-|`private_access` [RedisPrivateAccess](#redisprivateaccess)|Allow access to selected service ports from private networks|
-|`privatelink_access` [RedisPrivatelinkAccess](#redisprivatelinkaccess)|Allow access to selected service components through Privatelink|
-|`service_to_fork_from` string|Name of another service to fork from. This has effect only when a new service is being created.|
-|`ip_filter` []string|IP filter Allow incoming connections from CIDR address block, e.g. '10.20.0.0/16'|
-|`project_to_fork_from` string|Name of another project to fork a service from. This has effect only when a new service is being created.|
-|`redis_acl_channels_default` string|Default ACL for pub/sub channels used when Redis user is created Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Redis configuration acl-pubsub-default.|
-|`redis_lfu_decay_time` int64|LFU maxmemory-policy counter decay time in minutes|
-|`redis_lfu_log_factor` int64|Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies|
-|`redis_persistence` string|Redis persistence When persistence is 'rdb', Redis does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is 'off', no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.|
-|`redis_pubsub_client_output_buffer_limit` int64|Pub/sub client output buffer hard limit in MB Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.|
-|`static_ips` bool|Static IP addresses Use static public IP addresses|
-|`redis_io_threads` int64|Redis IO thread count|
-|`redis_timeout` int64|Redis idle connection timeout|
-|`recovery_basebackup_name` string|Name of the basebackup to restore in forked service|
-|`redis_maxmemory_policy` string|Redis maxmemory-policy|
-|`redis_notify_keyspace_events` string|Set notify-keyspace-events option|
-|`redis_number_of_databases` int64|Number of redis databases Set number of redis databases. Changing this will cause a restart of redis service.|
-|`redis_ssl` bool|Require SSL to access Redis|
-### ServiceCommonSpec
-| Field | Description|
-|---|---|
-|`project` string|Target project.|
-|`plan` string|Subscription plan.|
-|`cloudName` string|Cloud the service runs in.|
-|`projectVpcId` string|Identifier of the VPC the service should be in, if any.|
-|`maintenanceWindowDow` string|Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.|
-|`maintenanceWindowTime` string|Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.|
-|`terminationProtection` bool|Prevent service from being deleted. It is recommended to have this enabled for all services.|
-|`tags` map[string]string|Tags are key-value pairs that allow you to categorize services.|
-### ServiceIntegration
-ServiceIntegration is the Schema for the serviceintegrations API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ServiceIntegrationSpec](#serviceintegrationspec)|N/A|
-|`status` [ServiceIntegrationStatus](#serviceintegrationstatus)|N/A|
-### ServiceIntegrationDatadogUserConfig
-| Field | Description|
-|---|---|
-|`exclude_consumer_groups` []string|Consumer groups to exclude|
-|`exclude_topics` []string|List of topics to exclude|
-|`include_consumer_groups` []string|Consumer groups to include|
-|`include_topics` []string|Topics to include|
-|`kafka_custom_metrics` []string|List of custom metrics|
-### ServiceIntegrationKafkaConnect
-| Field | Description|
-|---|---|
-|`config_storage_topic` string|The name of the topic where connector and task configuration data are stored. This must be the same for all workers with the same group_id.|
-|`group_id` string|A unique string that identifies the Connect cluster group this worker belongs to.|
-|`offset_storage_topic` string|The name of the topic where connector and task configuration offsets are stored. This must be the same for all workers with the same group_id.|
-|`status_storage_topic` string|The name of the topic where connector and task configuration status updates are stored.This must be the same for all workers with the same group_id.|
-### ServiceIntegrationKafkaConnectUserConfig
-| Field | Description|
-|---|---|
-|`kafka_connect` [ServiceIntegrationKafkaConnect](#serviceintegrationkafkaconnect)|N/A|
-### ServiceIntegrationKafkaLogsUserConfig
-| Field | Description|
-|---|---|
-|`kafka_topic` string|Topic name|
-### ServiceIntegrationMetricsUserConfig
-| Field | Description|
-|---|---|
-|`database` string|Name of the database where to store metric datapoints. Only affects PostgreSQL destinations|
-|`retention_days` int|Number of days to keep old metrics. Only affects PostgreSQL destinations. Set to 0 for no automatic cleanup. Defaults to 30 days.|
-|`ro_username` string|Name of a user that can be used to read metrics. This will be used for Grafana integration (if enabled) to prevent Grafana users from making undesired changes. Only affects PostgreSQL destinations. Defaults to 'metrics_reader'. Note that this must be the same for all metrics integrations that write data to the same PostgreSQL service.|
-|`username` string|Name of the user used to write metrics. Only affects PostgreSQL destinations. Defaults to 'metrics_writer'. Note that this must be the same for all metrics integrations that write data to the same PostgreSQL service.|
-### ServiceIntegrationSpec
-ServiceIntegrationSpec defines the desired state of ServiceIntegration
-| Field | Description|
-|---|---|
-|`project` string|Project the integration belongs to|
-|`integrationType` string|Type of the service integration|
-|`sourceEndpointID` string|Source endpoint for the integration (if any)|
-|`sourceServiceName` string|Source service for the integration (if any)|
-|`destinationEndpointId` string|Destination endpoint for the integration (if any)|
-|`destinationServiceName` string|Destination service for the integration (if any)|
-|`datadog` [ServiceIntegrationDatadogUserConfig](#serviceintegrationdatadoguserconfig)|Datadog specific user configuration options|
-|`kafkaConnect` [ServiceIntegrationKafkaConnectUserConfig](#serviceintegrationkafkaconnectuserconfig)|Kafka Connect service configuration values|
-|`kafkaLogs` [ServiceIntegrationKafkaLogsUserConfig](#serviceintegrationkafkalogsuserconfig)|Kafka logs configuration values|
-|`metrics` [ServiceIntegrationMetricsUserConfig](#serviceintegrationmetricsuserconfig)|Metrics configuration values|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### ServiceIntegrationStatus
-ServiceIntegrationStatus defines the observed state of ServiceIntegration
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ServiceIntegration state|
-|`id` string|Service integration ID|
-### ServiceStatus
-ServiceStatus defines the observed state of service
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of a service state|
-|`state` string|Service state|
-### ServiceUser
-ServiceUser is the Schema for the serviceusers API
-| Field | Description|
-|---|---|
-|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
-|`spec` [ServiceUserSpec](#serviceuserspec)|N/A|
-|`status` [ServiceUserStatus](#serviceuserstatus)|N/A|
-### ServiceUserSpec
-ServiceUserSpec defines the desired state of ServiceUser
-| Field | Description|
-|---|---|
-|`project` string|Project to link the user to|
-|`serviceName` string|Service to link the user to|
-|`authentication` string|Authentication details|
-|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
-|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
-### ServiceUserStatus
-ServiceUserStatus defines the observed state of ServiceUser
-| Field | Description|
-|---|---|
-|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ServiceUser state|
-|`type` string|Type of the user account|
-### TimescaledbUserConfig
-| Field | Description|
-|---|---|
-|`max_background_workers` int64|timescaledb.max_background_workers The number of background workers for timescaledb operations. You should configure this setting to the sum of your number of databases and the total number of concurrent background workers you want running at any given point in time.|
-## References
-Generated with [gen-crd-api-reference-docs](https://github.com/ahmetb/gen-crd-api-reference-docs) .
diff --git a/docs/content/en/docs/installation/_index.md b/docs/content/en/docs/installation/_index.md
deleted file mode 100644
index 7435192e..00000000
--- a/docs/content/en/docs/installation/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: "Installation"
-linkTitle: "Installation"
-weight: 1
----
\ No newline at end of file
diff --git a/docs/content/en/docs/resources/_index.md b/docs/content/en/docs/resources/_index.md
deleted file mode 100644
index bc9466e0..00000000
--- a/docs/content/en/docs/resources/_index.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: "Resources"
-linkTitle: "Resources"
-weight: 50
----
\ No newline at end of file
diff --git a/docs/docs/api-reference.md b/docs/docs/api-reference.md
new file mode 100644
index 00000000..950ebe6c
--- /dev/null
+++ b/docs/docs/api-reference.md
@@ -0,0 +1,748 @@
+---
+title: "API Reference"
+linkTitle: "API Reference"
+weight: 90
+---
+
+## aiven.io/v1alpha1
+
+### AuthSecretReference
+
+AuthSecretReference references a Secret containing an Aiven authentication token
+
+| Field | Description|
+|---|---|
+|`name` string|N/A|
+|`key` string|N/A|
+
+### Cassandra
+
+Cassandra is the Schema for the cassandras API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [CassandraSpec](#cassandraspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### CassandraSpec
+
+CassandraSpec defines the desired state of Cassandra
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/cassandra.CassandraUserConfig|Cassandra specific user configuration options|
+
+### Clickhouse
+
+Clickhouse is the Schema for the clickhouses API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ClickhouseSpec](#clickhousespec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### ClickhouseSpec
+
+ClickhouseSpec defines the desired state of Clickhouse
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/clickhouse.ClickhouseUserConfig|OpenSearch specific user configuration options|
+
+### ClickhouseUser
+
+ClickhouseUser is the Schema for the clickhouseusers API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ClickhouseUserSpec](#clickhouseuserspec)|N/A|
+|`status` [ClickhouseUserStatus](#clickhouseuserstatus)|N/A|
+
+### ClickhouseUserSpec
+
+ClickhouseUserSpec defines the desired state of ClickhouseUser
+
+| Field | Description|
+|---|---|
+|`project` string|Project to link the user to|
+|`serviceName` string|Service to link the user to|
+|`authentication` string|Authentication details|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### ClickhouseUserStatus
+
+ClickhouseUserStatus defines the observed state of ClickhouseUser
+
+| Field | Description|
+|---|---|
+|`uuid` string|Clickhouse user UUID|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ClickhouseUser state|
+
+### ConnInfoSecretTarget
+
+ConnInfoSecretTarget contains information secret name
+
+| Field | Description|
+|---|---|
+|`name` string|Name of the Secret resource to be created|
+
+### ConnectionPool
+
+ConnectionPool is the Schema for the connectionpools API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ConnectionPoolSpec](#connectionpoolspec)|N/A|
+|`status` [ConnectionPoolStatus](#connectionpoolstatus)|N/A|
+
+### ConnectionPoolSpec
+
+ConnectionPoolSpec defines the desired state of ConnectionPool
+
+| Field | Description|
+|---|---|
+|`project` string|Target project.|
+|`serviceName` string|Service name.|
+|`databaseName` string|Name of the database the pool connects to|
+|`username` string|Name of the service user used to connect to the database|
+|`poolSize` int|Number of connections the pool may create towards the backend server|
+|`poolMode` string|Mode the pool operates in (session, transaction, statement)|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### ConnectionPoolStatus
+
+ConnectionPoolStatus defines the observed state of ConnectionPool
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ConnectionPool state|
+
+### Database
+
+Database is the Schema for the databases API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [DatabaseSpec](#databasespec)|N/A|
+|`status` [DatabaseStatus](#databasestatus)|N/A|
+
+### DatabaseSpec
+
+DatabaseSpec defines the desired state of Database
+
+| Field | Description|
+|---|---|
+|`project` string|Project to link the database to|
+|`serviceName` string|PostgreSQL service to link the database to|
+|`lcCollate` string|Default string sort order (LC_COLLATE) of the database. Default value: en_US.UTF-8|
+|`lcCtype` string|Default character classification (LC_CTYPE) of the database. Default value: en_US.UTF-8|
+|`terminationProtection` bool|It is a Kubernetes side deletion protections, which prevents the databasefrom being deleted by Kubernetes. It is recommended to enable this for any production databases containing critical data. |
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### DatabaseStatus
+
+DatabaseStatus defines the observed state of Database
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an Database state|
+
+### Grafana
+
+Grafana is the Schema for the grafanas API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [GrafanaSpec](#grafanaspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### GrafanaSpec
+
+GrafanaSpec defines the desired state of Grafana
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/grafana.GrafanaUserConfig|Cassandra specific user configuration options|
+
+### Kafka
+
+Kafka is the Schema for the kafkas API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [KafkaSpec](#kafkaspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### KafkaACL
+
+KafkaACL is the Schema for the kafkaacls API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [KafkaACLSpec](#kafkaaclspec)|N/A|
+|`status` [KafkaACLStatus](#kafkaaclstatus)|N/A|
+
+### KafkaACLSpec
+
+KafkaACLSpec defines the desired state of KafkaACL
+
+| Field | Description|
+|---|---|
+|`project` string|Project to link the Kafka ACL to|
+|`serviceName` string|Service to link the Kafka ACL to|
+|`permission` string|Kafka permission to grant (admin, read, readwrite, write)|
+|`topic` string|Topic name pattern for the ACL entry|
+|`username` string|Username pattern for the ACL entry|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### KafkaACLStatus
+
+KafkaACLStatus defines the observed state of KafkaACL
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an KafkaACL state|
+|`id` string|Kafka ACL ID|
+
+### KafkaConnect
+
+KafkaConnect is the Schema for the kafkaconnects API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [KafkaConnectSpec](#kafkaconnectspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### KafkaConnectSpec
+
+KafkaConnectSpec defines the desired state of KafkaConnect
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/kafka_connect.KafkaConnectUserConfig|PostgreSQL specific user configuration options|
+
+### KafkaConnector
+
+KafkaConnector is the Schema for the kafkaconnectors API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [KafkaConnectorSpec](#kafkaconnectorspec)|N/A|
+|`status` [KafkaConnectorStatus](#kafkaconnectorstatus)|N/A|
+
+### KafkaConnectorPluginStatus
+
+KafkaConnectorPluginStatus describes the observed state of a Kafka Connector Plugin
+
+| Field | Description|
+|---|---|
+|`author` string|N/A|
+|`class` string|N/A|
+|`docUrl` string|N/A|
+|`title` string|N/A|
+|`type` string|N/A|
+|`version` string|N/A|
+
+### KafkaConnectorSpec
+
+KafkaConnectorSpec defines the desired state of KafkaConnector
+
+| Field | Description|
+|---|---|
+|`project` string|Target project.|
+|`serviceName` string|Service name.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connectorClass` string|The Java class of the connector.|
+|`userConfig` map[string]string|The connector specific configurationTo build config values from secret the template function `{{ fromSecret "name" "key" }}` is provided when interpreting the keys |
+
+### KafkaConnectorStatus
+
+KafkaConnectorStatus defines the observed state of KafkaConnector
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an kafka connector state|
+|`state` string|Connector state|
+|`pluginStatus` [KafkaConnectorPluginStatus](#kafkaconnectorpluginstatus)|PluginStatus contains metadata about the configured connector plugin|
+|`tasksStatus` [KafkaConnectorTasksStatus](#kafkaconnectortasksstatus)|TasksStatus contains metadata about the running tasks|
+
+### KafkaConnectorTasksStatus
+
+KafkaConnectorTasksStatus describes the observed state of the Kafka Connector Tasks
+
+| Field | Description|
+|---|---|
+|`total` uint|N/A|
+|`running` uint|N/A|
+|`failed` uint|N/A|
+|`paused` uint|N/A|
+|`unassigned` uint|N/A|
+|`unknown` uint|N/A|
+|`stackTrace` string|N/A|
+
+### KafkaSchema
+
+KafkaSchema is the Schema for the kafkaschemas API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [KafkaSchemaSpec](#kafkaschemaspec)|N/A|
+|`status` [KafkaSchemaStatus](#kafkaschemastatus)|N/A|
+
+### KafkaSchemaSpec
+
+KafkaSchemaSpec defines the desired state of KafkaSchema
+
+| Field | Description|
+|---|---|
+|`project` string|Project to link the Kafka Schema to|
+|`serviceName` string|Service to link the Kafka Schema to|
+|`subjectName` string|Kafka Schema Subject name|
+|`schema` string|Kafka Schema configuration should be a valid Avro Schema JSON format|
+|`compatibilityLevel` string|Kafka Schemas compatibility level|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### KafkaSchemaStatus
+
+KafkaSchemaStatus defines the observed state of KafkaSchema
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an KafkaSchema state|
+|`version` int|Kafka Schema configuration version|
+
+### KafkaSpec
+
+KafkaSpec defines the desired state of Kafka
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`karapace` bool|Switch the service to use Karapace for schema registry and REST proxy|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/kafka.KafkaUserConfig|Kafka specific user configuration options|
+
+### KafkaTopic
+
+KafkaTopic is the Schema for the kafkatopics API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [KafkaTopicSpec](#kafkatopicspec)|N/A|
+|`status` [KafkaTopicStatus](#kafkatopicstatus)|N/A|
+
+### KafkaTopicConfig
+
+| Field | Description|
+|---|---|
+|`cleanup_policy` string|cleanup.policy value|
+|`compression_type` string|compression.type value|
+|`delete_retention_ms` int64|delete.retention.ms value|
+|`file_delete_delay_ms` int64|file.delete.delay.ms value|
+|`flush_messages` int64|flush.messages value|
+|`flush_ms` int64|flush.ms value|
+|`index_interval_bytes` int64|index.interval.bytes value|
+|`max_compaction_lag_ms` int64|max.compaction.lag.ms value|
+|`max_message_bytes` int64|max.message.bytes value|
+|`message_downconversion_enable` bool|message.downconversion.enable value|
+|`message_format_version` string|message.format.version value|
+|`message_timestamp_difference_max_ms` int64|message.timestamp.difference.max.ms value|
+|`message_timestamp_type` string|message.timestamp.type value|
+|`min_cleanable_dirty_ratio` float64|min.cleanable.dirty.ratio value|
+|`min_compaction_lag_ms` int64|min.compaction.lag.ms value|
+|`min_insync_replicas` int64|min.insync.replicas value|
+|`preallocate` bool|preallocate value|
+|`retention_bytes` int64|retention.bytes value|
+|`retention_ms` int64|retention.ms value|
+|`segment_bytes` int64|segment.bytes value|
+|`segment_index_bytes` int64|segment.index.bytes value|
+|`segment_jitter_ms` int64|segment.jitter.ms value|
+|`segment_ms` int64|segment.ms value|
+|`unclean_leader_election_enable` bool|unclean.leader.election.enable value|
+
+### KafkaTopicSpec
+
+KafkaTopicSpec defines the desired state of KafkaTopic
+
+| Field | Description|
+|---|---|
+|`project` string|Target project.|
+|`serviceName` string|Service name.|
+|`partitions` int|Number of partitions to create in the topic|
+|`replication` int|Replication factor for the topic|
+|`tags` [[]KafkaTopicTag](#kafkatopictag)|Kafka topic tags|
+|`config` [KafkaTopicConfig](#kafkatopicconfig)|Kafka topic configuration|
+|`termination_protection` bool|It is a Kubernetes side deletion protections, which prevents the kafka topicfrom being deleted by Kubernetes. It is recommended to enable this for any production databases containing critical data. |
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### KafkaTopicStatus
+
+KafkaTopicStatus defines the observed state of KafkaTopic
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an KafkaTopic state|
+|`state` string|State represents the state of the kafka topic|
+
+### KafkaTopicTag
+
+| Field | Description|
+|---|---|
+|`key` string|N/A|
+|`value` string|N/A|
+
+### MySQL
+
+MySQL is the Schema for the mysqls API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [MySQLSpec](#mysqlspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### MySQLSpec
+
+MySQLSpec defines the desired state of MySQL
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/mysql.MysqlUserConfig|MySQL specific user configuration options|
+
+### OpenSearch
+
+OpenSearch is the Schema for the opensearches API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [OpenSearchSpec](#opensearchspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### OpenSearchSpec
+
+OpenSearchSpec defines the desired state of OpenSearch
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/opensearch.OpensearchUserConfig|OpenSearch specific user configuration options|
+
+### PostgreSQL
+
+PostgreSQL is the Schema for the postgresql API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [PostgreSQLSpec](#postgresqlspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### PostgreSQLSpec
+
+PostgreSQLSpec defines the desired state of postgres instance
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/pg.PgUserConfig|PostgreSQL specific user configuration options|
+
+### Project
+
+Project is the Schema for the projects API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ProjectSpec](#projectspec)|N/A|
+|`status` [ProjectStatus](#projectstatus)|N/A|
+
+### ProjectSpec
+
+ProjectSpec defines the desired state of Project
+
+| Field | Description|
+|---|---|
+|`cardId` string|Credit card ID; The ID may be either last 4 digits of the card or the actual ID|
+|`accountId` string|Account ID|
+|`billingAddress` string|Billing name and address of the project|
+|`billingEmails` []string|Billing contact emails of the project|
+|`billingCurrency` string|Billing currency|
+|`billingExtraText` string|Extra text to be included in all project invoices, e.g. purchase order or cost center number|
+|`billingGroupId` string|BillingGroup ID|
+|`countryCode` string|Billing country code of the project|
+|`cloud` string|Target cloud, example: aws-eu-central-1|
+|`copyFromProject` string|Project name from which to copy settings to the new project|
+|`technicalEmails` []string|Technical contact emails of the project|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`tags` map[string]string|Tags are key-value pairs that allow you to categorize projects|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### ProjectStatus
+
+ProjectStatus defines the observed state of Project
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an Project state|
+|`vatId` string|EU VAT Identification Number|
+|`availableCredits` string|Available credirs|
+|`country` string|Country name|
+|`estimatedBalance` string|Estimated balance|
+|`paymentMethod` string|Payment method name|
+
+### ProjectVPC
+
+ProjectVPC is the Schema for the projectvpcs API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ProjectVPCSpec](#projectvpcspec)|N/A|
+|`status` [ProjectVPCStatus](#projectvpcstatus)|N/A|
+
+### ProjectVPCSpec
+
+ProjectVPCSpec defines the desired state of ProjectVPC
+
+| Field | Description|
+|---|---|
+|`project` string|The project the VPC belongs to|
+|`cloudName` string|Cloud the VPC is in|
+|`networkCidr` string|Network address range used by the VPC like 192.168.0.0/24|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### ProjectVPCStatus
+
+ProjectVPCStatus defines the observed state of ProjectVPC
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ProjectVPC state|
+|`state` string|State of VPC|
+|`id` string|Project VPC id|
+
+### Redis
+
+Redis is the Schema for the redis API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [RedisSpec](#redisspec)|N/A|
+|`status` [ServiceStatus](#servicestatus)|N/A|
+
+### RedisSpec
+
+RedisSpec defines the desired state of Redis
+
+| Field | Description|
+|---|---|
+|`ServiceCommonSpec` [ServiceCommonSpec](#servicecommonspec)|(Members of `ServiceCommonSpec`are embedded into this type.)|
+|`disk_space` string|The disk space of the service, possible values depend on the service type, the cloud provider and the project. Reducing will result in the service re-balancing.|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`userConfig` github.com/aiven/aiven-operator/api/v1alpha1/userconfigs/redis.RedisUserConfig|Redis specific user configuration options|
+
+### ResourceReference
+
+ResourceReference is a generic reference to another resource.Resource referring to another (dependency) won't start reconciliation until dependency is not ready
+
+| Field | Description|
+|---|---|
+|`name` string|N/A|
+|`namespace` string|N/A|
+
+### ResourceReferenceObject
+
+ResourceReferenceObject is a composite "key" to resourceGroupVersionKind is for resource "type": GroupVersionKind{Group: "aiven.io", Version: "v1alpha1", Kind: "Kafka"} NamespacedName is for specific instance: NamespacedName{Name: "my-kafka", Namespace: "default"}
+
+| Field | Description|
+|---|---|
+|`GroupVersionKind` [k8s.io/apimachinery/pkg/runtime/schema.GroupVersionKind](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#groupversionkind-schema-runtime)|N/A|
+|`NamespacedName` [k8s.io/apimachinery/pkg/types.NamespacedName](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#namespacedname-types-pkg)|N/A|
+
+### ServiceCommonSpec
+
+| Field | Description|
+|---|---|
+|`project` string|Target project.|
+|`plan` string|Subscription plan.|
+|`cloudName` string|Cloud the service runs in.|
+|`projectVpcId` string|Identifier of the VPC the service should be in, if any.|
+|`projectVPCRef` [ResourceReference](#resourcereference)|ProjectVPCRef reference to ProjectVPC resource to use its ID as ProjectVPCID automatically|
+|`maintenanceWindowDow` string|Day of week when maintenance operations should be performed. One monday, tuesday, wednesday, etc.|
+|`maintenanceWindowTime` string|Time of day when maintenance operations should be performed. UTC time in HH:mm:ss format.|
+|`terminationProtection` bool|Prevent service from being deleted. It is recommended to have this enabled for all services.|
+|`tags` map[string]string|Tags are key-value pairs that allow you to categorize services.|
+|`serviceIntegrations` [[]*./api/v1alpha1.ServiceIntegrationItem](#aiven.io/v1alpha1.*./api/v1alpha1.ServiceIntegrationItem)|N/A|
+
+### ServiceIntegration
+
+ServiceIntegration is the Schema for the serviceintegrations API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ServiceIntegrationSpec](#serviceintegrationspec)|N/A|
+|`status` [ServiceIntegrationStatus](#serviceintegrationstatus)|N/A|
+
+### ServiceIntegrationDatadogUserConfig
+
+| Field | Description|
+|---|---|
+|`exclude_consumer_groups` []string|Consumer groups to exclude|
+|`exclude_topics` []string|List of topics to exclude|
+|`include_consumer_groups` []string|Consumer groups to include|
+|`include_topics` []string|Topics to include|
+|`kafka_custom_metrics` []string|List of custom metrics|
+
+### ServiceIntegrationItem
+
+ServiceIntegrationItem Service integrations to specify when creating a service. Not applied after initial service creation
+
+| Field | Description|
+|---|---|
+|`integrationType` string|N/A|
+|`sourceServiceName` string|N/A|
+
+### ServiceIntegrationKafkaConnect
+
+| Field | Description|
+|---|---|
+|`config_storage_topic` string|The name of the topic where connector and task configuration data are stored. This must be the same for all workers with the same group_id.|
+|`group_id` string|A unique string that identifies the Connect cluster group this worker belongs to.|
+|`offset_storage_topic` string|The name of the topic where connector and task configuration offsets are stored. This must be the same for all workers with the same group_id.|
+|`status_storage_topic` string|The name of the topic where connector and task configuration status updates are stored.This must be the same for all workers with the same group_id.|
+
+### ServiceIntegrationKafkaConnectUserConfig
+
+| Field | Description|
+|---|---|
+|`kafka_connect` [ServiceIntegrationKafkaConnect](#serviceintegrationkafkaconnect)|N/A|
+
+### ServiceIntegrationKafkaLogsUserConfig
+
+| Field | Description|
+|---|---|
+|`kafka_topic` string|Topic name|
+
+### ServiceIntegrationMetricsUserConfig
+
+| Field | Description|
+|---|---|
+|`database` string|Name of the database where to store metric datapoints. Only affects PostgreSQL destinations|
+|`retention_days` int|Number of days to keep old metrics. Only affects PostgreSQL destinations. Set to 0 for no automatic cleanup. Defaults to 30 days.|
+|`ro_username` string|Name of a user that can be used to read metrics. This will be used for Grafana integration (if enabled) to prevent Grafana users from making undesired changes. Only affects PostgreSQL destinations. Defaults to 'metrics_reader'. Note that this must be the same for all metrics integrations that write data to the same PostgreSQL service.|
+|`username` string|Name of the user used to write metrics. Only affects PostgreSQL destinations. Defaults to 'metrics_writer'. Note that this must be the same for all metrics integrations that write data to the same PostgreSQL service.|
+
+### ServiceIntegrationSpec
+
+ServiceIntegrationSpec defines the desired state of ServiceIntegration
+
+| Field | Description|
+|---|---|
+|`project` string|Project the integration belongs to|
+|`integrationType` string|Type of the service integration|
+|`sourceEndpointID` string|Source endpoint for the integration (if any)|
+|`sourceServiceName` string|Source service for the integration (if any)|
+|`destinationEndpointId` string|Destination endpoint for the integration (if any)|
+|`destinationServiceName` string|Destination service for the integration (if any)|
+|`datadog` [ServiceIntegrationDatadogUserConfig](#serviceintegrationdatadoguserconfig)|Datadog specific user configuration options|
+|`kafkaConnect` [ServiceIntegrationKafkaConnectUserConfig](#serviceintegrationkafkaconnectuserconfig)|Kafka Connect service configuration values|
+|`kafkaLogs` [ServiceIntegrationKafkaLogsUserConfig](#serviceintegrationkafkalogsuserconfig)|Kafka logs configuration values|
+|`metrics` [ServiceIntegrationMetricsUserConfig](#serviceintegrationmetricsuserconfig)|Metrics configuration values|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### ServiceIntegrationStatus
+
+ServiceIntegrationStatus defines the observed state of ServiceIntegration
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ServiceIntegration state|
+|`id` string|Service integration ID|
+
+### ServiceStatus
+
+ServiceStatus defines the observed state of service
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of a service state|
+|`state` string|Service state|
+
+### ServiceUser
+
+ServiceUser is the Schema for the serviceusers API
+
+| Field | Description|
+|---|---|
+|`metadata` [Kubernetes meta/v1.ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#objectmeta-v1-meta)|Refer to the Kubernetes API documentation for the fields of the `metadata` field.|
+|`spec` [ServiceUserSpec](#serviceuserspec)|N/A|
+|`status` [ServiceUserStatus](#serviceuserstatus)|N/A|
+
+### ServiceUserSpec
+
+ServiceUserSpec defines the desired state of ServiceUser
+
+| Field | Description|
+|---|---|
+|`project` string|Project to link the user to|
+|`serviceName` string|Service to link the user to|
+|`authentication` string|Authentication details|
+|`connInfoSecretTarget` [ConnInfoSecretTarget](#conninfosecrettarget)|Information regarding secret creation|
+|`authSecretRef` [AuthSecretReference](#authsecretreference)|Authentication reference to Aiven token in a secret|
+
+### ServiceUserStatus
+
+ServiceUserStatus defines the observed state of ServiceUser
+
+| Field | Description|
+|---|---|
+|`conditions` [[]Kubernetes meta/v1.Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#condition-v1-meta)|Conditions represent the latest available observations of an ServiceUser state|
+|`type` string|Type of the user account|
+
+## References
+
+Generated with [gen-crd-api-reference-docs](https://github.com/ahmetb/gen-crd-api-reference-docs) on git commit `f7e2b8a`.
diff --git a/docs/docs/assets/logo.svg b/docs/docs/assets/logo.svg
new file mode 100644
index 00000000..287b650f
--- /dev/null
+++ b/docs/docs/assets/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/content/en/docs/authentication/_index.md b/docs/docs/authentication.md
similarity index 90%
rename from docs/content/en/docs/authentication/_index.md
rename to docs/docs/authentication.md
index 485ef5b9..e1e9d2e1 100644
--- a/docs/content/en/docs/authentication/_index.md
+++ b/docs/docs/authentication.md
@@ -12,17 +12,17 @@ the `authSecretRef` field.
up [here](https://console.aiven.io/signup?utm_source=github&utm_medium=organic&utm_campaign=k8s-operator&utm_content=signup)
for a free trial. 🦀**
-1. Generate an authentication token
+1\. Generate an authentication token
Refer to [our documentation article](https://help.aiven.io/en/articles/2059201-authentication-tokens) to generate your
authentication token.
-2. Create the Kubernetes Secret
+2\. Create the Kubernetes Secret
The following command creates a secret named `aiven-token` with a `token` field containing the authentication token:
-```bash
-$ kubectl create secret generic aiven-token --from-literal=token=""
+```shell
+kubectl create secret generic aiven-token --from-literal=token=""
```
When managing your Aiven resources, we will be using the created Secret in the `authSecretRef` field. It will look like
diff --git a/docs/content/en/docs/contributing/developer-guide/_index.md b/docs/docs/contributing/developer-guide.md
similarity index 71%
rename from docs/content/en/docs/contributing/developer-guide/_index.md
rename to docs/docs/contributing/developer-guide.md
index 91f006e1..63d65e92 100644
--- a/docs/content/en/docs/contributing/developer-guide/_index.md
+++ b/docs/docs/contributing/developer-guide.md
@@ -8,9 +8,9 @@ weight: 10
You must have a working [Go environment](https://golang.org/doc/install) and then clone the repository:
-```bash
-$ git clone git@github.com:aiven/aiven-operator.git
-$ cd aiven-operator
+```shell
+git clone git@github.com:aiven/aiven-operator.git
+cd aiven-operator
```
## Building
@@ -19,8 +19,8 @@ The project uses the `make` build system.
Building the operator binary:
-```bash
-$ make build
+```shell
+make build
```
## Testing
@@ -29,19 +29,19 @@ As of now, we only support integration tests who interact directly with Aiven. T
an [Aiven account](https://console.aiven.io/signup?utm_source=github&utm_medium=organic&utm_campaign=k8s-operator&utm_content=signup)
and an [Aiven authentication code](https://help.aiven.io/en/articles/2059201-authentication-tokens).
-```bash
-$ make test-acc AIVEN_PROJECT_NAME="" AIVEN_TOKEN=""
+```shell
+make test-acc AIVEN_PROJECT_NAME="" AIVEN_TOKEN=""
```
## Documentation
-The documentation is written in markdown and generated by [Hugo](https://gohugo.io/)
-and [Docsy](https://themes.gohugo.io/docsy/).
+The documentation is written in markdown and generated by [mkdocs](https://www.mkdocs.org/)
+and [mkdocs-material](https://squidfunk.github.io/mkdocs-material/).
To run the documentation live preview:
-```bash
-$ make serve-docs
+```shell
+make serve-docs
```
And open the `http://localhost:1313/aiven-operator/` page in your web browser.
@@ -49,12 +49,12 @@ And open the `http://localhost:1313/aiven-operator/` page in your web browser.
The [API Reference](https://aiven.github.io/aiven-operator/docs/api-reference/) section is generated automatically from
the source code during the documentation deployment. To generate it locally, run the following command:
-```bash
-$ make generate-docs
+```shell
+make generate-docs
```
To build the documentation locally (outputs to `docs/public`), run:
-```
-$ make generate-docs
+```shell
+make generate-docs
```
diff --git a/docs/content/en/docs/contributing/_index.md b/docs/docs/contributing/index.md
similarity index 100%
rename from docs/content/en/docs/contributing/_index.md
rename to docs/docs/contributing/index.md
diff --git a/docs/content/en/docs/_index.md b/docs/docs/index.md
similarity index 64%
rename from docs/content/en/docs/_index.md
rename to docs/docs/index.md
index 38138d06..f8f83048 100644
--- a/docs/content/en/docs/_index.md
+++ b/docs/docs/index.md
@@ -5,14 +5,15 @@ url: /
---
# Welcome to Aiven Operator for Kubernetes
+
Provision and manage [Aiven services](https://aiven.io) from your Kubernetes cluster.
-# What is Aiven?
+## What is Aiven?
Aiven offers managed services for the best open source data technologies, on a cloud of your choice.
We offer multiple cloud options because we believe that everyone should have access to great data platforms wherever they host their applications. Our customers tell us they love it because they know that they aren’t locked in to one particular cloud platform for all their data needs.
-# Contributing
+## Contributing
-The [contribution guide]( {{< relref "/docs/contributing" >}} ) covers everything you need to know about how you can contribute to Aiven Operator for Kubernetes. The [developer guide]( {{< relref "/docs/contributing/developer-guide" >}} ) will help you onboard as a developer.
+The [contribution guide](./contributing) covers everything you need to know about how you can contribute to Aiven Operator for Kubernetes. The [developer guide]( ./contributing/developer-guide ) will help you onboard as a developer.
diff --git a/docs/content/en/docs/installation/helm/_index.md b/docs/docs/installation/helm.md
similarity index 72%
rename from docs/content/en/docs/installation/helm/_index.md
rename to docs/docs/installation/helm.md
index 7b93b488..1a92f0d2 100644
--- a/docs/content/en/docs/installation/helm/_index.md
+++ b/docs/docs/installation/helm.md
@@ -10,19 +10,19 @@ The Aiven Operator for Kubernetes can be installed via [Helm](https://helm.sh/).
First add the [Aiven Helm repository](https://github.com/aiven/aiven-charts):
-```bash
-$ helm repo add aiven https://aiven.github.io/aiven-charts && helm repo update
+```shell
+helm repo add aiven https://aiven.github.io/aiven-charts && helm repo update
```
### Installing Custom Resource Definitions
-```bash
-$ helm install aiven-operator-crds aiven/aiven-operator-crds
+```shell
+helm install aiven-operator-crds aiven/aiven-operator-crds
```
Verify the installation:
-```bash
-$ kubectl api-resources --api-group=aiven.io
+```shell
+kubectl api-resources --api-group=aiven.io
NAME SHORTNAMES APIVERSION NAMESPACED KIND
connectionpools aiven.io/v1alpha1 true ConnectionPool
@@ -32,15 +32,16 @@ databases aiven.io/v1alpha1 true Database
### Installing the Operator
-```bash
-$ helm install aiven-operator aiven/aiven-operator
+```shell
+helm install aiven-operator aiven/aiven-operator
```
-> Note: Installation will fail if webhooks are enabled and the CRDs for the cert-manager are not installed.
+!!! note
+ Installation will fail if webhooks are enabled and the CRDs for the cert-manager are not installed.
Verify the installation:
-```bash
-$ helm status aiven-operator
+```shell
+helm status aiven-operator
NAME: aiven-operator
LAST DEPLOYED: Fri Sep 10 15:23:26 2021
@@ -51,8 +52,8 @@ TEST SUITE: None
```
It is also possible to install the operator without webhooks enabled:
-```bash
-$ helm install aiven-operator aiven/aiven-operator --set webhooks.enabled=false
+```shell
+helm install aiven-operator aiven/aiven-operator --set webhooks.enabled=false
```
### Configuration Options
@@ -63,8 +64,8 @@ Please refer to the [values.yaml](https://github.com/aiven/aiven-charts/blob/mai
Find out the name of your deployment:
-```bash
-$ helm list
+```shell
+helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
aiven-operator default 1 2021-09-09 10:56:14.623700249 +0200 CEST deployed aiven-operator-v0.1.0 v0.1.0
@@ -73,16 +74,16 @@ aiven-operator-crds default 1 2021-09-09 10:56:05.736411868 +0200 CEST
Remove the CRDs:
-```bash
-$ helm uninstall aiven-operator-crds
+```shell
+helm uninstall aiven-operator-crds
release "aiven-operator-crds" uninstalled
```
Remove the operator:
-```bash
-$ helm uninstall aiven-operator
+```shell
+helm uninstall aiven-operator
release "aiven-operator" uninstalled
```
diff --git a/docs/content/en/docs/installation/kubectl/_index.md b/docs/docs/installation/kubectl.md
similarity index 65%
rename from docs/content/en/docs/installation/kubectl/_index.md
rename to docs/docs/installation/kubectl.md
index 9d361068..3c54913c 100644
--- a/docs/content/en/docs/installation/kubectl/_index.md
+++ b/docs/docs/installation/kubectl.md
@@ -8,8 +8,8 @@ weight: 15
All Aiven Operator for Kubernetes components can be installed from one YAML file that is uploaded for every release:
-```bash
-$ kubectl apply -f https://github.com/aiven/aiven-operator/releases/latest/download/deployment.yaml
+```shell
+kubectl apply -f https://github.com/aiven/aiven-operator/releases/latest/download/deployment.yaml
```
By default the Deployment is installed into the `aiven-operator-system` namespace.
@@ -18,6 +18,6 @@ By default the Deployment is installed into the `aiven-operator-system` namespac
Assuming you installed version `vX.Y.Z` of the operator it can be uninstalled via
-```bash
-$ kubectl delete -f https://github.com/aiven/aiven-operator/releases/download/vX.Y.Z/deployment.yaml
+```shell
+kubectl delete -f https://github.com/aiven/aiven-operator/releases/download/vX.Y.Z/deployment.yaml
```
diff --git a/docs/content/en/docs/installation/prerequisites/_index.md b/docs/docs/installation/prerequisites.md
similarity index 64%
rename from docs/content/en/docs/installation/prerequisites/_index.md
rename to docs/docs/installation/prerequisites.md
index a0a5182d..d050f699 100644
--- a/docs/content/en/docs/installation/prerequisites/_index.md
+++ b/docs/docs/installation/prerequisites.md
@@ -18,5 +18,10 @@ The Aiven Operator for Kubernetes uses `cert-manager` to configure the [service
Please follow the [installation instructions](https://cert-manager.io/docs/installation/helm/) on their website.
-> Note: this is not required in the Helm installation if you select to [disable webhooks](../helm/_index.md), but that is not recommended outside of playground use. The Aiven Operator for Kubernetes uses webhooks for setting defaults and enforcing invariants that are expected by the aiven API and will lead to errors if ignored. In the future webhooks will also be used for conversion and supporting multiple CRD versions.
+!!! note
+ This is not required in the Helm installation if you select to [disable webhooks](./helm.md),
+ but that is not recommended outside of playground use.
+ The Aiven Operator for Kubernetes uses webhooks for setting defaults
+ and enforcing invariants that are expected by the aiven API and will lead to errors if ignored.
+ In the future webhooks will also be used for conversion and supporting multiple CRD versions.
diff --git a/docs/content/en/docs/installation/uninstalling/_index.md b/docs/docs/installation/uninstalling.md
similarity index 90%
rename from docs/content/en/docs/installation/uninstalling/_index.md
rename to docs/docs/installation/uninstalling.md
index f0874c79..de94e806 100644
--- a/docs/content/en/docs/installation/uninstalling/_index.md
+++ b/docs/docs/installation/uninstalling.md
@@ -4,9 +4,9 @@ linkTitle: "Uninstalling"
weight: 90
---
-## 🚨 Warning 🚨
+!!! danger
-Uninstalling the Aiven Operator for Kubernetes can remove the resources created in Aiven, possibly resulting in data loss.
+ Uninstalling the Aiven Operator for Kubernetes can remove the resources created in Aiven, possibly resulting in data loss.
Depending on your installation, please follow one of:
@@ -26,7 +26,7 @@ This solves a race condition that happens when deleting a namespace, where there
When the controller is deleted it may not cleanup the finalizers from all secrets.
If there is a secret with this finalizer blocking deletion of a namespace, for now please do
-```bash
+```shell
kubectl patch secret -p '{"metadata":{"finalizers":null}}' --type=merge
```
diff --git a/docs/content/en/docs/resources/kafka/connect.md b/docs/docs/resources/kafka/connect.md
similarity index 97%
rename from docs/content/en/docs/resources/kafka/connect.md
rename to docs/docs/resources/kafka/connect.md
index 410872cc..0a4da67b 100644
--- a/docs/content/en/docs/resources/kafka/connect.md
+++ b/docs/docs/resources/kafka/connect.md
@@ -160,12 +160,12 @@ spec:
authSecretRef:
name: aiven-token
key: token
-
+
project:
-
+
# the Kafka cluster name
serviceName: kafka-sample-connect
-
+
# the connector we will be using
connectorClass: io.aiven.connect.jdbc.JdbcSinkConnector
@@ -187,8 +187,8 @@ spec:
With all the files create, let's apply the new Kubernetes resources:
-```bash
-$ kubectl apply \
+```shell
+kubectl apply \
-f kafka-sample-connect.yaml \
-f kafka-connect.yaml \
-f service-integration-connect.yaml \
@@ -198,8 +198,8 @@ $ kubectl apply \
It will take some time for all the services to be up and running. You can check all of them with the command below. The deployment is finished when all services have the state `RUNNING`:
-```bash
-$ kubectl get \
+```shell
+kubectl get \
kafkas.aiven.io/kafka-sample-connect \
kafkaconnects.aiven.io/kafka-connect \
postgresqls.aiven.io/pg-connect \
@@ -266,14 +266,14 @@ spec:
Apply the file with:
-```bash
-$ kubectl apply -f kcat-connect.yaml
+```shell
+kubectl apply -f kcat-connect.yaml
```
The Pod will execute the commands and finish. You can confirm its `Completed` state with:
-```bash
-$ kubectl get pod kafka-message
+```shell
+kubectl get pod kafka-message
NAME READY STATUS RESTARTS AGE
kafka-message 0/1 Completed 0 5m35s
@@ -303,14 +303,14 @@ spec:
Apply the file with:
-```bash
-$ kubectl apply -f psql-connect.yaml
+```shell
+kubectl apply -f psql-connect.yaml
```
After a couple of seconds, inspects its log with the command below. The output should be as follows:
-```bash
-$ kubectl logs psql-connect
+```shell
+kubectl logs psql-connect
text
-------------
@@ -321,8 +321,8 @@ $ kubectl logs psql-connect
## Clean up
To clean up all the created resources, use the command below:
-```bash
-$ kubectl delete \
+```shell
+kubectl delete \
-f kafka-sample-connect.yaml \
-f kafka-connect.yaml \
-f service-integration-connect.yaml \
diff --git a/docs/content/en/docs/resources/kafka/_index.md b/docs/docs/resources/kafka/index.md
similarity index 83%
rename from docs/content/en/docs/resources/kafka/_index.md
rename to docs/docs/resources/kafka/index.md
index d308d927..4c6e925a 100644
--- a/docs/content/en/docs/resources/kafka/_index.md
+++ b/docs/docs/resources/kafka/index.md
@@ -7,11 +7,13 @@ weight: 30
Aiven for Apache Kafka is an excellent option if you need to run Apache Kafka at scale. With Aiven Kubernetes Operator
you can get up and running with a suitably sized Apache Kafka service in a few minutes.
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/) and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/)
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
## Creating a `Kafka` instance
-1. Create a file named `kafka-sample.yaml`, and add the following content:
+1\. Create a file named `kafka-sample.yaml`, and add the following content:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -45,17 +47,17 @@ spec:
kafka_version: '2.7'
```
-2. Create the following resource on Kubernetes:
+2\. Create the following resource on Kubernetes:
-```bash
-$ kubectl apply -f kafka-sample.yaml
+```shell
+kubectl apply -f kafka-sample.yaml
```
-3. Inspect the service created using the command below. After a couple of minutes, the `STATE` field is changed
+3\. Inspect the service created using the command below. After a couple of minutes, the `STATE` field is changed
to `RUNNING`, and is ready to be used.
-```bash
-$ kubectl get kafka.aiven.io kafka-sample
+```shell
+kubectl get kafka.aiven.io kafka-sample
NAME PROJECT REGION PLAN STATE
kafka-sample google-europe-west1 startup-2 RUNNING
@@ -66,8 +68,8 @@ kafka-sample google-europe-west1 startup-2 RUNNING
For your convenience, the operator automatically stores the Kafka connection information in a Secret created with the
name specified on the `connInfoSecretTarget` field.
-```bash
-$ kubectl describe secret kafka-auth
+```shell
+kubectl describe secret kafka-auth
Name: kafka-auth
Namespace: default
@@ -88,7 +90,7 @@ ACCESS_KEY: 2484 bytes
You can use the [jq](https://github.com/stedolan/jq) to quickly decode the Secret:
-```bash
+```shell
kubectl get secret kafka-auth -o json | jq '.data | map_values(@base64d)'
{
"CA_CERT": "",
@@ -105,7 +107,7 @@ kubectl get secret kafka-auth -o json | jq '.data | map_values(@base64d)'
You can verify your access to the Kafka cluster from a Pod using the authentication data from the `kafka-auth` Secret. [kcat](https://github.com/edenhill/kcat) is used for our examples below.
-1. Create a file named `kafka-test-connection.yaml`, and add the following content:
+1\. Create a file named `kafka-test-connection.yaml`, and add the following content:
```yaml
apiVersion: v1
@@ -148,16 +150,16 @@ spec:
secretName: kafka-auth
```
-2. Apply the file.
+2\. Apply the file.
-```bash
-$ kubectl apply -f kafka-test-connection.yaml
+```shell
+kubectl apply -f kafka-test-connection.yaml
```
Once successfully applied, you have a log with the metadata information about the Kafka cluster.
-```bash
-$ kubectl logs kafka-test-connection
+```shell
+kubectl logs kafka-test-connection
Metadata for all topics (from broker -1: ssl://kafka-sample-your-project.aivencloud.com:13041/bootstrap):
3 brokers:
@@ -173,7 +175,7 @@ the `KafkaTopic` and `KafkaACL` resources.
Below, here is how to create a Kafka topic named `random-strings` where random string messages will be sent.
-1. Create a file named `kafka-topic-random-strings.yaml` with the content below:
+1\. Create a file named `kafka-topic-random-strings.yaml` with the content below:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -198,13 +200,13 @@ spec:
flush_ms: 100
```
-2. Create the resource on Kubernetes:
+2\. Create the resource on Kubernetes:
-```bash
-$ kubectl apply -f kafka-topic-random-strings.yaml
+```shell
+kubectl apply -f kafka-topic-random-strings.yaml
```
-3. Create a user and an ACL. To use the Kafka topic, create a new user with the `ServiceUser` resource (in order to
+3\. Create a user and an ACL. To use the Kafka topic, create a new user with the `ServiceUser` resource (in order to
avoid using the `avnadmin` superuser), and the `KafkaACL` to allow the user access to the topic.
In a file named `kafka-acl-user-crab.yaml`, add the following two resources:
@@ -258,8 +260,8 @@ spec:
To create the `crab` user and its permissions, execute the following command:
-```bash
-$ kubectl apply -f kafka-acl-user-crab.yaml
+```shell
+kubectl apply -f kafka-acl-user-crab.yaml
```
## Producing and consuming events
@@ -269,7 +271,7 @@ Using the previously created `KafkaTopic`, `ServiceUser`, `KafkaACL`, you can pr
You can use [kcat](https://github.com/edenhill/kcat) to produce a message into Kafka, and the `-t random-strings` argument to select the desired topic,
and use the content of the `/etc/issue` file as the message's body.
-1. Create a `kafka-crab-produce.yaml` file with the content below:
+1\. Create a `kafka-crab-produce.yaml` file with the content below:
```yaml
apiVersion: v1
@@ -311,10 +313,10 @@ spec:
secretName: kafka-crab-connection
```
-2. Create the Pod with the following content:
+2\. Create the Pod with the following content:
-```bash
-$ kubectl apply -f kafka-crab-produce.yaml
+```shell
+kubectl apply -f kafka-crab-produce.yaml
```
Now your event is stored in Kafka.
@@ -322,7 +324,7 @@ Now your event is stored in Kafka.
To _consume_ a message, you can use a graphical interface called [Kowl](https://github.com/cloudhut/kowl). It allows you
to explore information about our Kafka cluster, such as brokers, topics, or consumer groups.
-1. Create a Kubernetes Pod and service to deploy and access Kowl. Create a file named `kafka-crab-consume.yaml` with the
+1\. Create a Kubernetes Pod and service to deploy and access Kowl. Create a file named `kafka-crab-consume.yaml` with the
content below:
```yaml
@@ -385,23 +387,23 @@ spec:
targetPort: 8080
```
-2. Create the resources with:
+2\. Create the resources with:
-```bash
-$ kubectl apply -f kafka-crab-consume.yaml
+```shell
+kubectl apply -f kafka-crab-consume.yaml
```
-3. In another terminal create a port-forward tunnel to your Pod:
+3\. In another terminal create a port-forward tunnel to your Pod:
-```bash
-$ kubectl port-forward kafka-crab-consume 8080:8080
+```shell
+kubectl port-forward kafka-crab-consume 8080:8080
```
-4. In the browser of your choice, access the [http://localhost:8080]() address. You now see a page with
+4\. In the browser of your choice, access the [http://localhost:8080]() address. You now see a page with
the `random-strings` topic listed:
![Kowl graphical interface on the topic listing page](./kowl-topics.png)
-5. Click the topic name to see the message.
+5\. Click the topic name to see the message.
![Kowl graphical interface on the random-strings topic page](./kowl-random-strings.png)
You have now consumed the message.
diff --git a/docs/content/en/docs/resources/kafka/kowl-random-strings.png b/docs/docs/resources/kafka/kowl-random-strings.png
similarity index 100%
rename from docs/content/en/docs/resources/kafka/kowl-random-strings.png
rename to docs/docs/resources/kafka/kowl-random-strings.png
diff --git a/docs/content/en/docs/resources/kafka/kowl-topics.png b/docs/docs/resources/kafka/kowl-topics.png
similarity index 100%
rename from docs/content/en/docs/resources/kafka/kowl-topics.png
rename to docs/docs/resources/kafka/kowl-topics.png
diff --git a/docs/content/en/docs/resources/kafka/schema.md b/docs/docs/resources/kafka/schema.md
similarity index 80%
rename from docs/content/en/docs/resources/kafka/schema.md
rename to docs/docs/resources/kafka/schema.md
index 0e4b047e..e8c3bbe0 100644
--- a/docs/content/en/docs/resources/kafka/schema.md
+++ b/docs/docs/resources/kafka/schema.md
@@ -12,7 +12,8 @@ and schema registry. Is available out of the box for our managed Kafka service.
First, let's create an Aiven for Apache Kafka service.
-1. Create a file named `kafka-sample-schema.yaml` and add the content below:
+1\. Create a file named `kafka-sample-schema.yaml` and add the content below:
+
```yaml
apiVersion: aiven.io/v1alpha1
kind: Kafka
@@ -39,15 +40,15 @@ spec:
schema_registry: true
```
-2. Apply the changes with the following command:
+2\. Apply the changes with the following command:
-```bash
-$ kubectl apply -f kafka-schema.yaml
+```shell
+kubectl apply -f kafka-schema.yaml
```
Now, let's create the schema itself.
-1. Create a new file named `kafka-sample-schema.yaml` and add the YAML content below:
+1\. Create a new file named `kafka-sample-schema.yaml` and add the YAML content below:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -82,16 +83,16 @@ spec:
compatibilityLevel: BACKWARD
```
-2. Create the schema with the command:
+2\. Create the schema with the command:
-```bash
-$ kubectl apply -f kafka-schema.yaml
+```shell
+kubectl apply -f kafka-schema.yaml
```
-3. Review the resource you created with the following command:
+3\. Review the resource you created with the following command:
-```bash
-$ kubectl get kafkaschemas.aiven.io kafka-schema
+```shell
+kubectl get kafkaschemas.aiven.io kafka-schema
NAME SERVICE NAME PROJECT SUBJECT COMPATIBILITY LEVEL VERSION
kafka-schema kafka-sample MySchema BACKWARD 1
diff --git a/docs/content/en/docs/resources/opensearch/_index.md b/docs/docs/resources/opensearch.md
similarity index 77%
rename from docs/content/en/docs/resources/opensearch/_index.md
rename to docs/docs/resources/opensearch.md
index 9502fd73..195fa7b9 100644
--- a/docs/content/en/docs/resources/opensearch/_index.md
+++ b/docs/docs/resources/opensearch.md
@@ -6,11 +6,13 @@ weight: 45
OpenSearch® is an open source search and analytics suite including search engine, NoSQL document database, and visualization interface. OpenSearch offers a distributed, full-text search engine based on Apache Lucene® with a RESTful API interface and support for JSON documents.
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/) and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/)
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
## Creating an OpenSearch instance
-1. Create a file named `os-sample.yaml`, and add the following content:
+1\. Create a file named `os-sample.yaml`, and add the following content:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -40,21 +42,21 @@ spec:
maintenanceWindowTime: 23:00:00
```
-2. Create the service by applying the configuration:
+2\. Create the service by applying the configuration:
-```bash
-$ kubectl apply -f os-sample.yaml
+```shell
+kubectl apply -f os-sample.yaml
```
-3. Review the resource you created with this command:
+3\. Review the resource you created with this command:
-```bash
-$ kubectl describe opensearch.aiven.io os-sample
+```shell
+kubectl describe opensearch.aiven.io os-sample
```
The output is similar to the following:
-```bash
+```shell
...
Status:
Conditions:
@@ -82,13 +84,13 @@ name specified on the `connInfoSecretTarget` field.
To view the details of the Secret, use the following command:
-```bash
-$ kubectl describe secret os-secret
+```shell
+kubectl describe secret os-secret
```
The output is similar to the following:
-```bash
+```shell
Name: os-secret
Namespace: default
Labels:
@@ -106,8 +108,8 @@ USER: 8 bytes
You can use the [jq](https://github.com/stedolan/jq) to quickly decode the Secret:
-```bash
-$ kubectl get secret os-secret -o json | jq '.data | map_values(@base64d)'
+```shell
+kubectl get secret os-secret -o json | jq '.data | map_values(@base64d)'
```
The output is similar to the following:
@@ -125,7 +127,7 @@ The output is similar to the following:
You can create service users for your instance of Aiven for OpenSearch. Service users are unique to this instance and are not shared with any other services.
-1. Create a file named os-service-user.yaml:
+1\. Create a file named os-service-user.yaml:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -144,18 +146,18 @@ spec:
serviceName: os-sample
```
-2. Create the user by applying the configuration:
+2\. Create the user by applying the configuration:
-```bash
-$ kubectl apply -f os-service-user.yaml
+```shell
+kubectl apply -f os-service-user.yaml
```
-The `ServiceUser` resource generates a Secret with connection information.
+The `ServiceUser` resource generates a Secret with connection information.
-3. View the details of the Secret using the following command:
+3\. View the details of the Secret using the following command:
-```bash
-$ kubectl get secret os-service-user-secret -o json | jq '.data | map_values(@base64d)'
+```shell
+kubectl get secret os-service-user-secret -o json | jq '.data | map_values(@base64d)'
```
The output is similar to the following:
diff --git a/docs/content/en/docs/resources/postgresql/_index.md b/docs/docs/resources/postgresql.md
similarity index 84%
rename from docs/content/en/docs/resources/postgresql/_index.md
rename to docs/docs/resources/postgresql.md
index fd8c1ce6..4798338d 100644
--- a/docs/content/en/docs/resources/postgresql/_index.md
+++ b/docs/docs/resources/postgresql.md
@@ -11,11 +11,13 @@ extender for location queries. Aiven for PostgreSQL is the perfect fit for your
With Aiven Kubernetes Operator, you can manage Aiven for PostgreSQL through the well defined Kubernetes API.
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/), and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/),
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
## Creating a PostgreSQL instance
-1. Create a file named `pg-sample.yaml` with the following content:
+1\. Create a file named `pg-sample.yaml` with the following content:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -50,16 +52,16 @@ spec:
pg_version: '11'
```
-2. Create the service by applying the configuration:
+2\. Create the service by applying the configuration:
-```bash
-$ kubectl apply -f pg-sample.yaml
+```shell
+kubectl apply -f pg-sample.yaml
```
-3. Review the resource you created with the following command:
+3\. Review the resource you created with the following command:
-```bash
-$ kubectl get postgresqls.aiven.io pg-sample
+```shell
+kubectl get postgresqls.aiven.io pg-sample
NAME PROJECT REGION PLAN STATE
pg-sample your-project google-europe-west1 startup-4 RUNNING
@@ -73,8 +75,8 @@ ready to access it.
For your convenience, the operator automatically stores the PostgreSQL connection information in a Secret created with
the name specified on the `connInfoSecretTarget` field.
-```bash
-$ kubectl describe secret pg-connection
+```shell
+kubectl describe secret pg-connection
Name: pg-connection
Namespace: default
@@ -95,8 +97,8 @@ PGUSER: 8 bytes
You can use the [jq](https://github.com/stedolan/jq) to quickly decode the Secret:
-```bash
-$ kubectl get secret pg-connection -o json | jq '.data | map_values(@base64d)'
+```shell
+kubectl get secret pg-connection -o json | jq '.data | map_values(@base64d)'
{
"DATABASE_URI": "postgres://avnadmin:@pg-sample-your-project.aivencloud.com:13039/defaultdb?sslmode=require",
@@ -113,7 +115,7 @@ $ kubectl get secret pg-connection -o json | jq '.data | map_values(@base64d)'
You can verify your PostgreSQL connection from a Kubernetes workload by deploying a Pod that runs the `psql` command.
-1. Create a file named `pod-psql.yaml`
+1\. Create a file named `pod-psql.yaml`
```yaml
apiVersion: v1
@@ -135,10 +137,10 @@ spec:
It runs once and stops, due to the `restartPolicy: Never` flag.
-2. Inspect the log:
+2\. Inspect the log:
-```bash
-$ kubectl logs psql-test-connection
+```shell
+kubectl logs psql-test-connection
version
---------------------------------------------------------------------------------------------
PostgreSQL 11.12 on x86_64-pc-linux-gnu, compiled by gcc, a 68c5366192 p 6b9244f01a, 64-bit
@@ -178,7 +180,7 @@ You can now connect to the `pg-database-sample` using the credentials stored in
Aiven uses the concept of *service user* that allows you to create users for different services. You can create one for
the PostgreSQL instance.
-1. Create a file named `pg-service-user.yaml`.
+1\. Create a file named `pg-service-user.yaml`.
```yaml
apiVersion: aiven.io/v1alpha1
@@ -197,17 +199,17 @@ spec:
serviceName: pg-sample
```
-2. Apply the configuration with the following command.
+2\. Apply the configuration with the following command.
-```bash
-$ kubectl apply -f pg-service-user.yaml
+```shell
+kubectl apply -f pg-service-user.yaml
```
The `ServiceUser` resource generates a Secret with connection information, in this case
named `pg-service-user-connection`:
-```bash
-$ kubectl get secret pg-service-user-connection -o json | jq '.data | map_values(@base64d)'
+```shell
+kubectl get secret pg-service-user-connection -o json | jq '.data | map_values(@base64d)'
{
"PASSWORD": "",
@@ -254,8 +256,8 @@ spec:
The `ConnectionPool` generates a Secret with the connection info using the name from the `connInfoSecretTarget.Name`
field:
-```bash
-$ kubectl get secret pg-connection-pool-connection -o json | jq '.data | map_values(@base64d)'
+```shell
+kubectl get secret pg-connection-pool-connection -o json | jq '.data | map_values(@base64d)'
{
"DATABASE_URI": "postgres://pg-service-user:@pg-sample-you-project.aivencloud.com:13040/pg-connection-pool?sslmode=require",
diff --git a/docs/content/en/docs/resources/project-vpc/_index.md b/docs/docs/resources/project-vpc.md
similarity index 69%
rename from docs/content/en/docs/resources/project-vpc/_index.md
rename to docs/docs/resources/project-vpc.md
index 7e060983..89f52f45 100644
--- a/docs/content/en/docs/resources/project-vpc/_index.md
+++ b/docs/docs/resources/project-vpc.md
@@ -10,11 +10,13 @@ directly without going through the public internet.
Within the Aiven Kubernetes Operator, you can create a `ProjectVPC` on Aiven's side to connect to your cloud provider.
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/), and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/),
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
## Creating an Aiven VPC
-1. Create a file named `vpc-sample.yaml` with the following content:
+1\. Create a file named `vpc-sample.yaml` with the following content:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -36,16 +38,16 @@ spec:
networkCidr: 192.168.0.0/24
```
-2. Create the Project by applying the configuration:
+2\. Create the Project by applying the configuration:
-```bash
-$ kubectl apply -f vpc-sample.yaml
+```shell
+kubectl apply -f vpc-sample.yaml
```
-3. Review the resource you created with the following command:
+3\. Review the resource you created with the following command:
-```bash
-$ kubectl get projects.aiven.io vpc-sample
+```shell
+kubectl get projects.aiven.io vpc-sample
NAME PROJECT CLOUD NETWORK CIDR
vpc-sample aws-af-south-1 192.168.0.0/24
diff --git a/docs/content/en/docs/resources/project/_index.md b/docs/docs/resources/project.md
similarity index 69%
rename from docs/content/en/docs/resources/project/_index.md
rename to docs/docs/resources/project.md
index 06a5a558..24901e18 100644
--- a/docs/content/en/docs/resources/project/_index.md
+++ b/docs/docs/resources/project.md
@@ -4,7 +4,9 @@ linkTitle: "Aiven Project"
weight: 5
---
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/) and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/)
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
The `Project` CRD allows you to create Aiven Projects, where your resources can be located.
@@ -29,13 +31,13 @@ spec:
```
Apply the resource with:
-```bash
-$ kubectl apply -f project-sample.yaml
+```shell
+kubectl apply -f project-sample.yaml
```
Verify the newly created Project:
-```bash
-$ kubectl get projects.aiven.io project-sample
+```shell
+kubectl get projects.aiven.io project-sample
NAME AGE
project-sample 22s
diff --git a/docs/content/en/docs/resources/redis/_index.md b/docs/docs/resources/redis.md
similarity index 78%
rename from docs/content/en/docs/resources/redis/_index.md
rename to docs/docs/resources/redis.md
index 72c417ec..c15de9b7 100644
--- a/docs/content/en/docs/resources/redis/_index.md
+++ b/docs/docs/resources/redis.md
@@ -6,11 +6,13 @@ weight: 50
Aiven for Redis®* is a fully managed in-memory NoSQL database that you can deploy in the cloud of your choice to store and access data quickly and efficiently.
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/) and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/)
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
## Creating a Redis instance
-1. Create a file named `redis-sample.yaml`, and add the following content:
+1\. Create a file named `redis-sample.yaml`, and add the following content:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -44,21 +46,21 @@ spec:
redis_maxmemory_policy: "allkeys-random"
```
-2. Create the service by applying the configuration:
+2\. Create the service by applying the configuration:
-```bash
-$ kubectl apply -f redis-sample.yaml
+```shell
+kubectl apply -f redis-sample.yaml
```
-3. Review the resource you created with this command:
+3\. Review the resource you created with this command:
-```bash
-$ kubectl describe redis.aiven.io redis-sample
+```shell
+kubectl describe redis.aiven.io redis-sample
```
The output is similar to the following:
-```bash
+```shell
...
Status:
Conditions:
@@ -86,13 +88,13 @@ name specified on the `connInfoSecretTarget` field.
To view the details of the Secret, use the following command:
-```bash
-$ kubectl describe secret redis-secret
+```shell
+kubectl describe secret redis-secret
```
The output is similar to the following:
-```bash
+```shell
Name: redis-secret
Namespace: default
Labels:
@@ -111,13 +113,13 @@ PORT: 5 bytes
You can use the [jq](https://github.com/stedolan/jq) to quickly decode the Secret:
-```bash
-$ kubectl get secret redis-secret -o json | jq '.data | map_values(@base64d)'
+```shell
+kubectl get secret redis-secret -o json | jq '.data | map_values(@base64d)'
```
The output is similar to the following:
-```bash
+```shell
{
"HOST": "redis-sample-your-project.aivencloud.com",
"PASSWORD": "",
diff --git a/docs/content/en/docs/resources/service-integrations/_index.md b/docs/docs/resources/service-integrations.md
similarity index 77%
rename from docs/content/en/docs/resources/service-integrations/_index.md
rename to docs/docs/resources/service-integrations.md
index b721c993..fdeba3ff 100644
--- a/docs/content/en/docs/resources/service-integrations/_index.md
+++ b/docs/docs/resources/service-integrations.md
@@ -10,7 +10,9 @@ See
our [Getting Started with Service Integrations guide](https://help.aiven.io/en/articles/1456441-getting-started-with-service-integrations)
for more information.
-> Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/), and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
+!!! note
+ Before going through this guide, make sure you have a [Kubernetes cluster](../../installation/prerequisites/) with the [operator installed](../../installation/),
+ and a [Kubernetes Secret with an Aiven authentication token](../../authentication/).
## Send Kafka logs to a Kafka Topic
@@ -18,7 +20,7 @@ This integration allows you to send Kafka service logs to a specific Kafka Topic
First, let's create a Kafka service and a topic.
-1. Create a new file named `kafka-sample-topic.yaml` with the following content:
+1\. Create a new file named `kafka-sample-topic.yaml` with the following content:
```yaml
apiVersion: aiven.io/v1alpha1
@@ -75,13 +77,13 @@ spec:
flush_ms: 100
```
-2. Create the resource on Kubernetes:
+2\. Create the resource on Kubernetes:
-```bash
-$ kubectl apply -f kafka-sample-topic.yaml
+```shell
+kubectl apply -f kafka-sample-topic.yaml
```
-3. Now, create a `ServiceIntegration` resource to send the Kafka logs to the created topic. In the same file, add the
+3\. Now, create a `ServiceIntegration` resource to send the Kafka logs to the created topic. In the same file, add the
following YAML:
```yaml
@@ -111,16 +113,16 @@ spec:
kafka_topic: logs
```
-4. Reapply the resource on Kubernetes:
+4\. Reapply the resource on Kubernetes:
-```bash
-$ kubectl apply -f kafka-sample-topic.yaml
+```shell
+kubectl apply -f kafka-sample-topic.yaml
```
-5. Let's check the created service integration:
+5\. Let's check the created service integration:
-```bash
-$ kubectl get serviceintegrations.aiven.io service-integration-kafka-logs
+```shell
+kubectl get serviceintegrations.aiven.io service-integration-kafka-logs
NAME PROJECT TYPE SOURCE SERVICE NAME DESTINATION SERVICE NAME SOURCE ENDPOINT ID DESTINATION ENDPOINT ID
service-integration-kafka-logs your-project kafka_logs kafka-sample kafka-sample
diff --git a/docs/content/en/docs/troubleshooting/_index.md b/docs/docs/troubleshooting.md
similarity index 83%
rename from docs/content/en/docs/troubleshooting/_index.md
rename to docs/docs/troubleshooting.md
index c9531d85..f73af78a 100644
--- a/docs/content/en/docs/troubleshooting/_index.md
+++ b/docs/docs/troubleshooting.md
@@ -12,8 +12,8 @@ Use the following checks to help you troubleshoot the Aiven Operator for Kuberne
Verify that all the operator Pods are `READY`, and the `STATUS` is `Running`.
-```bash
-$ kubectl get pod -n aiven-operator-system
+```shell
+kubectl get pod -n aiven-operator-system
NAME READY STATUS RESTARTS AGE
aiven-operator-controller-manager-576d944499-ggttj 1/1 Running 0 12m
@@ -21,8 +21,8 @@ aiven-operator-controller-manager-576d944499-ggttj 1/1 Running 0
Verify that the `cert-manager` Pods are also running.
-```bash
-$ kubectl get pod -n cert-manager
+```shell
+kubectl get pod -n cert-manager
NAME READY STATUS RESTARTS AGE
cert-manager-7dd5854bb4-85cpv 1/1 Running 0 76s
@@ -34,14 +34,14 @@ cert-manager-webhook-6bdffc7c9d-47w6z 1/1 Running 0 76s
Use the following command to visualize all the logs from the operator.
-```bash
-$ kubectl logs -n aiven-operator-system -l control-plane=controller-manager
+```shell
+kubectl logs -n aiven-operator-system -l control-plane=controller-manager
```
### Verifing the operator version
-```bash
-$ kubectl get pod -n aiven-operator-system -l control-plane=controller-manager -o jsonpath="{.items[0].spec.containers[0].image}"
+```shell
+kubectl get pod -n aiven-operator-system -l control-plane=controller-manager -o jsonpath="{.items[0].spec.containers[0].image}"
```
## Known issues and limitations
@@ -55,7 +55,7 @@ it and are working to fix it. If your problem isn't listed below, report it as a
The following event appears on the operator Pod:
-```bash
+```shell
MountVolume.SetUp failed for volume "cert" : secret "webhook-server-cert" not found
```
@@ -67,8 +67,8 @@ You cannot run the operator.
Make sure that cert-manager is up and running.
-```bash
-$ kubectl get pod -n cert-manager
+```shell
+kubectl get pod -n cert-manager
NAME READY STATUS RESTARTS AGE
cert-manager-7dd5854bb4-85cpv 1/1 Running 0 76s
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
new file mode 100644
index 00000000..8fc4f659
--- /dev/null
+++ b/docs/mkdocs.yml
@@ -0,0 +1,67 @@
+# yaml-language-server: $schema=https://squidfunk.github.io/mkdocas-material/schema.json
+site_name: Aiven Operator
+copyright: Aiven Team
+repo_url: https://github.com/aiven/aiven-operator/
+edit_uri: blob/main/docs/
+markdown_extensions:
+ - pymdownx.highlight:
+ anchor_linenums: true
+ - pymdownx.inlinehilite
+ - pymdownx.snippets
+ - pymdownx.superfences
+ - tables
+ - admonition
+ - pymdownx.details
+plugins:
+ - search
+ - offline
+theme:
+ name: material
+ logo: assets/logo.svg
+ features:
+ - navigation.top
+ - navigation.footer
+ - content.code.copy
+ - content.code.annotate
+ palette:
+ # Palette toggle for light mode
+ - media: "(prefers-color-scheme: light)"
+ scheme: slate
+ primary: red
+ accent: deep-orange
+ toggle:
+ icon: material/brightness-7
+ name: Switch to dark mode
+
+ # Palette toggle for dark mode
+ - media: "(prefers-color-scheme: dark)"
+ scheme: default
+ primary: deep-orange
+ accent: red
+ toggle:
+ icon: material/brightness-4
+ name: Switch to light mode
+nav:
+ - Home: index.md
+ - Installation:
+ - installation/prerequisites.md
+ - installation/helm.md
+ - installation/kubectl.md
+ - installation/uninstalling.md
+ - authentication.md
+ - Resources:
+ - resources/project.md
+ - resources/project-vpc.md
+ - Kafka:
+ - resources/kafka/index.md
+ - resources/kafka/schema.md
+ - resources/kafka/connect.md
+ - resources/postgresql.md
+ - resources/opensearch.md
+ - resources/redis.md
+ - resources/service-integrations.md
+ - troubleshooting.md
+ - Contributing:
+ - contributing/index.md
+ - contributing/developer-guide.md
+ - api-reference.md
diff --git a/docs/package-lock.json b/docs/package-lock.json
deleted file mode 100644
index 1a211394..00000000
--- a/docs/package-lock.json
+++ /dev/null
@@ -1,2076 +0,0 @@
-{
- "name": "docs",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "devDependencies": {
- "autoprefixer": "^10.2.6",
- "postcss": "^8.3.0",
- "postcss-cli": "^8.3.1"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
- "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.12.13"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
- "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
- "dev": true
- },
- "node_modules/@babel/highlight": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
- "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.14.0",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
- "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.4",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
- "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
- "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.4",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/autoprefixer": {
- "version": "10.2.6",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
- "integrity": "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.16.6",
- "caniuse-lite": "^1.0.30001230",
- "colorette": "^1.2.2",
- "fraction.js": "^4.1.1",
- "normalize-range": "^0.1.2",
- "postcss-value-parser": "^4.1.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.16.6",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
- "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
- "dev": true,
- "dependencies": {
- "caniuse-lite": "^1.0.30001219",
- "colorette": "^1.2.2",
- "electron-to-chromium": "^1.3.723",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.71"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001233",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001233.tgz",
- "integrity": "sha512-BmkbxLfStqiPA7IEzQpIk0UFZFf3A4E6fzjPJ6OR+bFC2L8ES9J8zGA/asoi47p8XDVkev+WJo2I2Nc8c/34Yg==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.1"
- }
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
- "dev": true
- },
- "node_modules/cosmiconfig": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
- "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
- "dev": true,
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/dependency-graph": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz",
- "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.3.744",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.744.tgz",
- "integrity": "sha512-o/vep/PvSXg+7buwCbVJXHY3zbjYVmFPwnMMnchESXgAzrfcasvbX/hQZHCFGG7YdZgdtwt1KTMyK9CyBxPbLA==",
- "dev": true
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/fast-glob": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
- "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.0",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.2",
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fastq": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
- "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
- "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
- "dev": true,
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://www.patreon.com/infusion"
- }
- },
- "node_modules/fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dev": true,
- "dependencies": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-stdin": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
- "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/globby": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
- "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
- "dev": true,
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.1.1",
- "ignore": "^5.1.4",
- "merge2": "^1.3.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
- "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
- "dev": true
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ignore": {
- "version": "5.1.8",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/import-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
- "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==",
- "dev": true,
- "dependencies": {
- "import-from": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
- "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/import-from/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
- "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
- "dev": true
- },
- "node_modules/lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
- "dev": true
- },
- "node_modules/lodash.forown": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-4.4.0.tgz",
- "integrity": "sha1-hRFc8E9z75ZuztUlEdOJPMRmg68=",
- "dev": true
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
- "dev": true
- },
- "node_modules/lodash.groupby": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
- "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=",
- "dev": true
- },
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
- "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
- "dev": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-releases": {
- "version": "1.1.72",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz",
- "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz",
- "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==",
- "dev": true,
- "dependencies": {
- "colorette": "^1.2.2",
- "nanoid": "^3.1.23",
- "source-map-js": "^0.6.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- }
- },
- "node_modules/postcss-cli": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-8.3.1.tgz",
- "integrity": "sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "chokidar": "^3.3.0",
- "dependency-graph": "^0.9.0",
- "fs-extra": "^9.0.0",
- "get-stdin": "^8.0.0",
- "globby": "^11.0.0",
- "postcss-load-config": "^3.0.0",
- "postcss-reporter": "^7.0.0",
- "pretty-hrtime": "^1.0.3",
- "read-cache": "^1.0.0",
- "slash": "^3.0.0",
- "yargs": "^16.0.0"
- },
- "bin": {
- "postcss": "bin/postcss"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz",
- "integrity": "sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==",
- "dev": true,
- "dependencies": {
- "cosmiconfig": "^7.0.0",
- "import-cwd": "^3.0.0"
- },
- "engines": {
- "node": ">= 10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- }
- },
- "node_modules/postcss-reporter": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.2.tgz",
- "integrity": "sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw==",
- "dev": true,
- "dependencies": {
- "colorette": "^1.2.1",
- "lodash.difference": "^4.5.0",
- "lodash.forown": "^4.4.0",
- "lodash.get": "^4.4.2",
- "lodash.groupby": "^4.6.0",
- "lodash.sortby": "^4.7.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
- "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
- "dev": true
- },
- "node_modules/pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
- "dev": true,
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/source-map-js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
- "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.7",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz",
- "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
- "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.12.13"
- }
- },
- "@babel/helper-validator-identifier": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
- "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
- "dev": true
- },
- "@babel/highlight": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
- "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.14.0",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
- "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.4",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
- "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
- "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.4",
- "fastq": "^1.6.0"
- }
- },
- "@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
- "dev": true
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true
- },
- "autoprefixer": {
- "version": "10.2.6",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz",
- "integrity": "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==",
- "dev": true,
- "requires": {
- "browserslist": "^4.16.6",
- "caniuse-lite": "^1.0.30001230",
- "colorette": "^1.2.2",
- "fraction.js": "^4.1.1",
- "normalize-range": "^0.1.2",
- "postcss-value-parser": "^4.1.0"
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browserslist": {
- "version": "4.16.6",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
- "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001219",
- "colorette": "^1.2.2",
- "electron-to-chromium": "^1.3.723",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.71"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001233",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001233.tgz",
- "integrity": "sha512-BmkbxLfStqiPA7IEzQpIk0UFZFf3A4E6fzjPJ6OR+bFC2L8ES9J8zGA/asoi47p8XDVkev+WJo2I2Nc8c/34Yg==",
- "dev": true
- },
- "chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "fsevents": "~2.3.1",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
- "dev": true
- },
- "cosmiconfig": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
- "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
- "dev": true,
- "requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- }
- },
- "dependency-graph": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz",
- "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==",
- "dev": true
- },
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
- "requires": {
- "path-type": "^4.0.0"
- }
- },
- "electron-to-chromium": {
- "version": "1.3.744",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.744.tgz",
- "integrity": "sha512-o/vep/PvSXg+7buwCbVJXHY3zbjYVmFPwnMMnchESXgAzrfcasvbX/hQZHCFGG7YdZgdtwt1KTMyK9CyBxPbLA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "fast-glob": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
- "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.0",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.2",
- "picomatch": "^2.2.1"
- }
- },
- "fastq": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
- "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "fraction.js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
- "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
- "dev": true
- },
- "fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dev": true,
- "requires": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- }
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-stdin": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
- "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
- "dev": true
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "globby": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
- "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
- "dev": true,
- "requires": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.1.1",
- "ignore": "^5.1.4",
- "merge2": "^1.3.0",
- "slash": "^3.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
- "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "ignore": {
- "version": "5.1.8",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true
- },
- "import-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
- "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==",
- "dev": true,
- "requires": {
- "import-from": "^3.0.0"
- }
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "import-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
- "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
- "dev": true,
- "requires": {
- "resolve-from": "^5.0.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- }
- }
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- }
- },
- "lines-and-columns": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
- "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
- "dev": true
- },
- "lodash.difference": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
- "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=",
- "dev": true
- },
- "lodash.forown": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-4.4.0.tgz",
- "integrity": "sha1-hRFc8E9z75ZuztUlEdOJPMRmg68=",
- "dev": true
- },
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
- "dev": true
- },
- "lodash.groupby": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
- "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=",
- "dev": true
- },
- "lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
- "dev": true
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- }
- },
- "nanoid": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
- "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
- "dev": true
- },
- "node-releases": {
- "version": "1.1.72",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz",
- "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==",
- "dev": true
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
- "dev": true
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- },
- "picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "postcss": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz",
- "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==",
- "dev": true,
- "requires": {
- "colorette": "^1.2.2",
- "nanoid": "^3.1.23",
- "source-map-js": "^0.6.2"
- }
- },
- "postcss-cli": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-8.3.1.tgz",
- "integrity": "sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "chokidar": "^3.3.0",
- "dependency-graph": "^0.9.0",
- "fs-extra": "^9.0.0",
- "get-stdin": "^8.0.0",
- "globby": "^11.0.0",
- "postcss-load-config": "^3.0.0",
- "postcss-reporter": "^7.0.0",
- "pretty-hrtime": "^1.0.3",
- "read-cache": "^1.0.0",
- "slash": "^3.0.0",
- "yargs": "^16.0.0"
- }
- },
- "postcss-load-config": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz",
- "integrity": "sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==",
- "dev": true,
- "requires": {
- "cosmiconfig": "^7.0.0",
- "import-cwd": "^3.0.0"
- }
- },
- "postcss-reporter": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.2.tgz",
- "integrity": "sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw==",
- "dev": true,
- "requires": {
- "colorette": "^1.2.1",
- "lodash.difference": "^4.5.0",
- "lodash.forown": "^4.4.0",
- "lodash.get": "^4.4.2",
- "lodash.groupby": "^4.6.0",
- "lodash.sortby": "^4.7.0"
- }
- },
- "postcss-value-parser": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
- "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
- "dev": true
- },
- "pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
- "dev": true
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
- },
- "read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
- "dev": true,
- "requires": {
- "pify": "^2.3.0"
- }
- },
- "readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
- "dev": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "source-map-js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
- "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.7",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz",
- "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==",
- "dev": true
- }
- }
-}
diff --git a/docs/package.json b/docs/package.json
deleted file mode 100644
index 67a3379e..00000000
--- a/docs/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "devDependencies": {
- "autoprefixer": "^10.2.6",
- "postcss": "^8.3.0",
- "postcss-cli": "^8.3.1"
- }
-}
diff --git a/docs/public/categories/index.xml b/docs/public/categories/index.xml
deleted file mode 100644
index 7c6caef4..00000000
--- a/docs/public/categories/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Categories on Aiven Operatorhttps://aiven.github.io/aiven-operator/categories/Recent content in Categories on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/api-reference/index.xml b/docs/public/docs/api-reference/index.xml
deleted file mode 100644
index c85398aa..00000000
--- a/docs/public/docs/api-reference/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-API Reference on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/api-reference/Recent content in API Reference on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/authentication/index.xml b/docs/public/docs/authentication/index.xml
deleted file mode 100644
index d64f3845..00000000
--- a/docs/public/docs/authentication/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Authenticating on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/authentication/Recent content in Authenticating on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/contributing/developer-guide/index.xml b/docs/public/docs/contributing/developer-guide/index.xml
deleted file mode 100644
index f818aab0..00000000
--- a/docs/public/docs/contributing/developer-guide/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Developer guide on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/contributing/developer-guide/Recent content in Developer guide on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/contributing/index.xml b/docs/public/docs/contributing/index.xml
deleted file mode 100644
index f01b4df1..00000000
--- a/docs/public/docs/contributing/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Contributing on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/contributing/Recent content in Contributing on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/installation/helm/index.xml b/docs/public/docs/installation/helm/index.xml
deleted file mode 100644
index 445f950d..00000000
--- a/docs/public/docs/installation/helm/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Installing with Helm (recommended) on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/installation/helm/Recent content in Installing with Helm (recommended) on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/installation/index.xml b/docs/public/docs/installation/index.xml
deleted file mode 100644
index a1b93132..00000000
--- a/docs/public/docs/installation/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Installation on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/installation/Recent content in Installation on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/installation/kubectl/index.xml b/docs/public/docs/installation/kubectl/index.xml
deleted file mode 100644
index 8d1efabd..00000000
--- a/docs/public/docs/installation/kubectl/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Installing with kubectl on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/installation/kubectl/Recent content in Installing with kubectl on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/installation/prerequisites/index.xml b/docs/public/docs/installation/prerequisites/index.xml
deleted file mode 100644
index 6b885477..00000000
--- a/docs/public/docs/installation/prerequisites/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Prerequisites on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/installation/prerequisites/Recent content in Prerequisites on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/installation/uninstalling/index.xml b/docs/public/docs/installation/uninstalling/index.xml
deleted file mode 100644
index 9a2ed9c3..00000000
--- a/docs/public/docs/installation/uninstalling/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Uninstalling on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/installation/uninstalling/Recent content in Uninstalling on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/resources/index.xml b/docs/public/docs/resources/index.xml
deleted file mode 100644
index 950f7fe0..00000000
--- a/docs/public/docs/resources/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Resources on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/resources/Recent content in Resources on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/resources/kafka/index.xml b/docs/public/docs/resources/kafka/index.xml
deleted file mode 100644
index e46a0d3a..00000000
--- a/docs/public/docs/resources/kafka/index.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-Kafka on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/resources/kafka/Recent content in Kafka on Aiven OperatorHugo -- gohugo.ioen-usKafka Schemahttps://aiven.github.io/aiven-operator/docs/resources/kafka/schema/Mon, 01 Jan 0001 00:00:00 +0000https://aiven.github.io/aiven-operator/docs/resources/kafka/schema/Creating a KafkaSchema Aiven develops and maintain Karapace, an open source implementation of Kafka REST and schema registry. Is available out of the box for our managed Kafka service.
-The schema registry address and authentication is the same as the Kafka broker, the only different is the usage of the port 13044.
-First, let’s create an Aiven for Apache Kafka service.
-Create a file named kafka-sample-schema.yaml and add the content below: apiVersion: aiven.Kafka Connecthttps://aiven.github.io/aiven-operator/docs/resources/kafka/connect/Mon, 01 Jan 0001 00:00:00 +0000https://aiven.github.io/aiven-operator/docs/resources/kafka/connect/Aiven for Apache Kafka Connect is a framework and a runtime for integrating Kafka with other systems. Kafka connectors can either be a source (for pulling data from other systems into Kafka) or sink (for pushing data into other systems from Kafka).
-This section involves a few different Kubernetes CRDs:
-A KafkaService service with a KafkaTopic A KafkaConnect service A ServiceIntegration to integrate the Kafka and KafkaConnect services A PostgreSQL used as a sink to receive messages from Kafka A KafkaConnector to finally connect the Kafka with the PostgreSQL Creating the resources Create a file named kafka-sample-connect.
\ No newline at end of file
diff --git a/docs/public/docs/resources/kafka/kowl-random-strings.png b/docs/public/docs/resources/kafka/kowl-random-strings.png
deleted file mode 100644
index 1afaa62d..00000000
Binary files a/docs/public/docs/resources/kafka/kowl-random-strings.png and /dev/null differ
diff --git a/docs/public/docs/resources/kafka/kowl-topics.png b/docs/public/docs/resources/kafka/kowl-topics.png
deleted file mode 100644
index 3c50fc57..00000000
Binary files a/docs/public/docs/resources/kafka/kowl-topics.png and /dev/null differ
diff --git a/docs/public/docs/resources/postgresql/index.xml b/docs/public/docs/resources/postgresql/index.xml
deleted file mode 100644
index 94bece26..00000000
--- a/docs/public/docs/resources/postgresql/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-PostgreSQL on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/resources/postgresql/Recent content in PostgreSQL on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/resources/project-vpc/index.xml b/docs/public/docs/resources/project-vpc/index.xml
deleted file mode 100644
index dc32d178..00000000
--- a/docs/public/docs/resources/project-vpc/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Aiven Project VPC on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/resources/project-vpc/Recent content in Aiven Project VPC on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/resources/project/index.xml b/docs/public/docs/resources/project/index.xml
deleted file mode 100644
index f16c90c7..00000000
--- a/docs/public/docs/resources/project/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Aiven Project on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/resources/project/Recent content in Aiven Project on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/resources/service-integrations/index.xml b/docs/public/docs/resources/service-integrations/index.xml
deleted file mode 100644
index 1421fef9..00000000
--- a/docs/public/docs/resources/service-integrations/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Service Integrations on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/resources/service-integrations/Recent content in Service Integrations on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/docs/troubleshooting/index.xml b/docs/public/docs/troubleshooting/index.xml
deleted file mode 100644
index 6cd313a5..00000000
--- a/docs/public/docs/troubleshooting/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Troubleshooting on Aiven Operatorhttps://aiven.github.io/aiven-operator/docs/troubleshooting/Recent content in Troubleshooting on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/public/favicons/apple-touch-icon-180x180.png b/docs/public/favicons/apple-touch-icon-180x180.png
deleted file mode 100644
index dacbff9b..00000000
Binary files a/docs/public/favicons/apple-touch-icon-180x180.png and /dev/null differ
diff --git a/docs/public/favicons/browserconfig.xml b/docs/public/favicons/browserconfig.xml
deleted file mode 100644
index db83441d..00000000
--- a/docs/public/favicons/browserconfig.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
- transparent
-
-
-
\ No newline at end of file
diff --git a/docs/public/favicons/favicon-16x16.png b/docs/public/favicons/favicon-16x16.png
deleted file mode 100644
index 7d3ce215..00000000
Binary files a/docs/public/favicons/favicon-16x16.png and /dev/null differ
diff --git a/docs/public/favicons/favicon-32x32.png b/docs/public/favicons/favicon-32x32.png
deleted file mode 100644
index 784c1d56..00000000
Binary files a/docs/public/favicons/favicon-32x32.png and /dev/null differ
diff --git a/docs/public/favicons/favicon.ico b/docs/public/favicons/favicon.ico
deleted file mode 100644
index 1ce5c432..00000000
Binary files a/docs/public/favicons/favicon.ico and /dev/null differ
diff --git a/docs/public/favicons/pwa-192x192.png b/docs/public/favicons/pwa-192x192.png
deleted file mode 100644
index b5555920..00000000
Binary files a/docs/public/favicons/pwa-192x192.png and /dev/null differ
diff --git a/docs/public/favicons/pwa-512x512.png b/docs/public/favicons/pwa-512x512.png
deleted file mode 100644
index 93ee55fc..00000000
Binary files a/docs/public/favicons/pwa-512x512.png and /dev/null differ
diff --git a/docs/public/favicons/tile150x150.png b/docs/public/favicons/tile150x150.png
deleted file mode 100644
index b59d1aa6..00000000
Binary files a/docs/public/favicons/tile150x150.png and /dev/null differ
diff --git a/docs/public/favicons/tile310x150.png b/docs/public/favicons/tile310x150.png
deleted file mode 100644
index 8d169909..00000000
Binary files a/docs/public/favicons/tile310x150.png and /dev/null differ
diff --git a/docs/public/favicons/tile310x310.png b/docs/public/favicons/tile310x310.png
deleted file mode 100644
index 0de59680..00000000
Binary files a/docs/public/favicons/tile310x310.png and /dev/null differ
diff --git a/docs/public/favicons/tile70x70.png b/docs/public/favicons/tile70x70.png
deleted file mode 100644
index 6e2f3f5f..00000000
Binary files a/docs/public/favicons/tile70x70.png and /dev/null differ
diff --git a/docs/public/index.xml b/docs/public/index.xml
deleted file mode 100644
index c74c56f3..00000000
--- a/docs/public/index.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-Aiven Operatorhttps://aiven.github.io/aiven-operator/Recent content on Aiven OperatorHugo -- gohugo.ioen-usKafka Schemahttps://aiven.github.io/aiven-operator/docs/resources/kafka/schema/Mon, 01 Jan 0001 00:00:00 +0000https://aiven.github.io/aiven-operator/docs/resources/kafka/schema/Creating a KafkaSchema Aiven develops and maintain Karapace, an open source implementation of Kafka REST and schema registry. Is available out of the box for our managed Kafka service.
-The schema registry address and authentication is the same as the Kafka broker, the only different is the usage of the port 13044.
-First, let’s create an Aiven for Apache Kafka service.
-Create a file named kafka-sample-schema.yaml and add the content below: apiVersion: aiven.Kafka Connecthttps://aiven.github.io/aiven-operator/docs/resources/kafka/connect/Mon, 01 Jan 0001 00:00:00 +0000https://aiven.github.io/aiven-operator/docs/resources/kafka/connect/Aiven for Apache Kafka Connect is a framework and a runtime for integrating Kafka with other systems. Kafka connectors can either be a source (for pulling data from other systems into Kafka) or sink (for pushing data into other systems from Kafka).
-This section involves a few different Kubernetes CRDs:
-A KafkaService service with a KafkaTopic A KafkaConnect service A ServiceIntegration to integrate the Kafka and KafkaConnect services A PostgreSQL used as a sink to receive messages from Kafka A KafkaConnector to finally connect the Kafka with the PostgreSQL Creating the resources Create a file named kafka-sample-connect.
\ No newline at end of file
diff --git a/docs/public/sitemap.xml b/docs/public/sitemap.xml
deleted file mode 100644
index a7e96756..00000000
--- a/docs/public/sitemap.xml
+++ /dev/null
@@ -1 +0,0 @@
-https://aiven.github.io/aiven-operator/docs/installation/https://aiven.github.io/aiven-operator/docs/installation/prerequisites/https://aiven.github.io/aiven-operator/docs/resources/project/https://aiven.github.io/aiven-operator/docs/resources/project-vpc/https://aiven.github.io/aiven-operator/docs/authentication/https://aiven.github.io/aiven-operator/docs/contributing/developer-guide/https://aiven.github.io/aiven-operator/docs/installation/helm/https://aiven.github.io/aiven-operator/docs/installation/kubectl/https://aiven.github.io/aiven-operator/docs/resources/kafka/https://aiven.github.io/aiven-operator/docs/resources/kafka/schema/https://aiven.github.io/aiven-operator/docs/resources/postgresql/https://aiven.github.io/aiven-operator/docs/resources/kafka/connect/https://aiven.github.io/aiven-operator/docs/resources/https://aiven.github.io/aiven-operator/docs/resources/service-integrations/https://aiven.github.io/aiven-operator/docs/troubleshooting/https://aiven.github.io/aiven-operator/docs/contributing/https://aiven.github.io/aiven-operator/docs/api-reference/https://aiven.github.io/aiven-operator/docs/installation/uninstalling/https://aiven.github.io/aiven-operator/https://aiven.github.io/aiven-operator/https://aiven.github.io/aiven-operator/categories/https://aiven.github.io/aiven-operator/tags/
\ No newline at end of file
diff --git a/docs/public/tags/index.xml b/docs/public/tags/index.xml
deleted file mode 100644
index 6190a6ca..00000000
--- a/docs/public/tags/index.xml
+++ /dev/null
@@ -1 +0,0 @@
-Tags on Aiven Operatorhttps://aiven.github.io/aiven-operator/tags/Recent content in Tags on Aiven OperatorHugo -- gohugo.ioen-us
\ No newline at end of file
diff --git a/docs/static/favicons/apple-touch-icon-180x180.png b/docs/static/favicons/apple-touch-icon-180x180.png
deleted file mode 100644
index dacbff9b..00000000
Binary files a/docs/static/favicons/apple-touch-icon-180x180.png and /dev/null differ
diff --git a/docs/static/favicons/browserconfig.xml b/docs/static/favicons/browserconfig.xml
deleted file mode 100644
index db83441d..00000000
--- a/docs/static/favicons/browserconfig.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
- transparent
-
-
-
\ No newline at end of file
diff --git a/docs/static/favicons/favicon-16x16.png b/docs/static/favicons/favicon-16x16.png
deleted file mode 100644
index 7d3ce215..00000000
Binary files a/docs/static/favicons/favicon-16x16.png and /dev/null differ
diff --git a/docs/static/favicons/favicon-32x32.png b/docs/static/favicons/favicon-32x32.png
deleted file mode 100644
index 784c1d56..00000000
Binary files a/docs/static/favicons/favicon-32x32.png and /dev/null differ
diff --git a/docs/static/favicons/favicon.ico b/docs/static/favicons/favicon.ico
deleted file mode 100644
index 1ce5c432..00000000
Binary files a/docs/static/favicons/favicon.ico and /dev/null differ
diff --git a/docs/static/favicons/pwa-192x192.png b/docs/static/favicons/pwa-192x192.png
deleted file mode 100644
index b5555920..00000000
Binary files a/docs/static/favicons/pwa-192x192.png and /dev/null differ
diff --git a/docs/static/favicons/pwa-512x512.png b/docs/static/favicons/pwa-512x512.png
deleted file mode 100644
index 93ee55fc..00000000
Binary files a/docs/static/favicons/pwa-512x512.png and /dev/null differ
diff --git a/docs/static/favicons/tile150x150.png b/docs/static/favicons/tile150x150.png
deleted file mode 100644
index b59d1aa6..00000000
Binary files a/docs/static/favicons/tile150x150.png and /dev/null differ
diff --git a/docs/static/favicons/tile310x150.png b/docs/static/favicons/tile310x150.png
deleted file mode 100644
index 8d169909..00000000
Binary files a/docs/static/favicons/tile310x150.png and /dev/null differ
diff --git a/docs/static/favicons/tile310x310.png b/docs/static/favicons/tile310x310.png
deleted file mode 100644
index 0de59680..00000000
Binary files a/docs/static/favicons/tile310x310.png and /dev/null differ
diff --git a/docs/static/favicons/tile70x70.png b/docs/static/favicons/tile70x70.png
deleted file mode 100644
index 6e2f3f5f..00000000
Binary files a/docs/static/favicons/tile70x70.png and /dev/null differ
diff --git a/docs/themes/docsy b/docs/themes/docsy
deleted file mode 160000
index 9f55cf34..00000000
--- a/docs/themes/docsy
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9f55cf34808d720bcfff9398c9f9bb7fd8fce4ec
diff --git a/hack/genrefs/main.go b/hack/genrefs/main.go
index 3ac7b75b..247a591a 100644
--- a/hack/genrefs/main.go
+++ b/hack/genrefs/main.go
@@ -8,6 +8,7 @@ import (
"os"
"os/exec"
"regexp"
+ "strings"
)
const (
@@ -17,7 +18,7 @@ const (
func main() {
const (
- apiReferenceTargetFile = "docs/content/en/docs/api-reference/_index.md"
+ apiReferenceTargetFile = "docs/docs/api-reference.md"
)
f, err := os.OpenFile(apiReferenceTargetFile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755)
if err != nil {
@@ -34,6 +35,8 @@ func main() {
log.Fatal("unable to fix anchors: ", err)
}
+ renderedApiDocs = fixPadding(renderedApiDocs)
+
if _, err = f.Write(renderedApiDocs); err != nil {
log.Fatal("unable to write apid docs to file: ", err)
}
@@ -80,3 +83,31 @@ func fixInternalTypeAnchors(renderedApiDocs []byte) ([]byte, error) {
return builder.Bytes()
}), nil
}
+
+// fixPadding headers, tables has to be padded with double new lines
+func fixPadding(src []byte) []byte {
+ isTable := false
+ lines := strings.Split(string(src), "\n")
+ for i, s := range lines {
+ // Headers management
+ if strings.HasPrefix(s, "#") {
+ lines[i] = "\n" + s + "\n"
+ continue
+ }
+
+ // Tables management
+ isRow := strings.HasPrefix(s, "|")
+ if isRow == isTable {
+ // no need extra line between table lines
+ continue
+ }
+
+ isTable = isRow && !isTable
+ lines[i] = "\n" + s
+ }
+
+ // Removes extra newlines
+ result := strings.Join(lines, "\n")
+ result = regexp.MustCompile("\n{2,}").ReplaceAllString(result, "\n\n")
+ return []byte(result)
+}