Open Telekom Cloud Architecture Center (docs-next) consists of the components listed below:
- docs-next: The documentation site, based on Docusaurus.
- typesense: Typesense is a modern, privacy-friendly, open-source search engine
engineered for performance & ease-of-use. - typesense-scraper: The scraper that crawls the documentation site and feeds typesense.
- typesense-reverse-proxy: The reverse-proxy component to securely publish typesense endpoints externally.
- typesense-dashboard: An unofficial Typesense dashboard to manage and browse collections.
- umami: Umami is a fast, privacy-focused, and open-source alternative to Google Analytics.
and packed in the following charts:
- docs-next: docs-next [
chart/docs-next
] - typesense: typesense, typesense-scraper, typesense-reverse-proxy, typesense-dashboard [
charts/typesense
] - umami: umami [
chart/umami
]
You are going to need:
- Two(3) external-facing Elastic Load Balancers for the Ingress objects of docs-next and typesense-reverse-proxy and umami-web.
- Two(3) FQDN names for the external URLs of those exposed services.
Next you need to:
- Register an A-Record in Open Telekom Cloud DNS service binding the EIP of the load balancer with the FQDN.
- Copy the ID of Elastic Load Balancer because you will need to provide it as a value to each chart.
- Copy the FQDN because you will need to provide it the host value of each Ingress.
Additionally, you are going to need two(2) API keys:
- An admin API key for Typesense
- A search-scoped API key for docs-next (You are going to create this using either curl or the provisioned typesense-dashboard)
Caution
Although you can use the admin key for both Typesense and documentation site it is highly discouraged to share admin keys in a public facing site.
Before installing any of these charts you have to make sure you install in your cluster the following dependencies:
- cert-manager: cert-manager is an open source project that provides X.509 certificate management for Kubernetes and OpenShift workloads.
- cert-manager-webhook-opentelekomcloud: ACME DNS01 solver webhook for Open Telekom Cloud DNS, repo can be found here.
- zalando-postgres-operator: A custom operator that creates and manages PostgreSQL clusters running in Kubernetes, repo can be found here.
- argocd: Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
Note
argocd is optional, if you have other means to automate the provisioning in place. Nevertheless it is strongly advised to use it
helm repo add docs-next https://akyriako.github.io/docs-next-charts
helm repo update
helm upgrade --install \
docs-next docs-next/docs-next \
--set ingress.elbId={value} \
--set ingress.host={value} \
--set environment={value} \
--set env.typesenseHost={value} \
--set env.typesenseSearchApiKey={value} \
--namespace docs-next \
--create-namespace
helm repo add docs-next https://akyriako.github.io/docs-next-charts
helm repo update
helm upgrade --install \
typesense docs-next/typesense \
--set reverseProxy.ingress.elbId={value} \
--set reverseProxy.ingress.host={value} \
--set typesense.apiKey={value} \
--set docusaurus.externalUrl={value} \
--namespace docs-next \
--create-namespace
If you are relying on the automated pipeline that is been built-in as a GitHub Actions Workflow in the docs-next repository, you don't need to provide none of the above variables as values for the Helm charts. The GitHub Action of the other repository will automatically update the values in the Helm charts.
Important
This is the recommended way; use the manual deployment of the charts only for development and testing purposes!
You can find step-by-step deployment and configuration instructions here.