diff --git a/knowledge base/ansible.md b/knowledge base/ansible.md
index eef435d..2afffbd 100644
--- a/knowledge base/ansible.md
+++ b/knowledge base/ansible.md
@@ -208,9 +208,9 @@ ansible-playbook 'playbook.yaml' -DCvvv \
Galaxy collections and roles worth a check:
-| ID | Type | Description |
-| ---------------------------------------------- | ---------- | --------------------- |
-| [sivel.toiletwater][galaxy sivel.toiletwater] | collection | Extra filters, mostly |
+| ID | Type | Description |
+| ----------------------------------------------- | ---------- | --------------------- |
+| [sivel.toiletwater][galaxy / sivel.toiletwater] | collection | Extra filters, mostly |
UIs:
@@ -523,7 +523,7 @@ All Jinja2's standard filters and tests can be used, with the addition of:
All templating happens **on the Ansible controller**, **before** the task is sent and executed on the target machine.
-Updated [examples][examples templating] are available.
+Updated [examples][examples / templating] are available.
```yaml
# Remove empty or false values from a list piping it to 'select()'.
@@ -1774,7 +1774,7 @@ Another _better (?)_ solution in playbooks/roles would be to sanitize the input
- [Ansible Navigator documentation]
- [Ansible Runner]
- [Using variables]
-- [Galaxy Community User Guide][galaxy community user guide]
+- [Galaxy Community User Guide][galaxy / community user guide]
### Sources
@@ -1845,7 +1845,7 @@ Another _better (?)_ solution in playbooks/roles would be to sanitize the input
[examples]: ../examples/ansible/
-[examples templating]: ../examples/ansible/templating.yml
+[examples / templating]: ../examples/ansible/templating.yml
[8 ways to speed up your Ansible playbooks]: https://www.redhat.com/sysadmin/faster-ansible-playbook-execution
@@ -1864,8 +1864,8 @@ Another _better (?)_ solution in playbooks/roles would be to sanitize the input
[defining variables at runtime]: https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#defining-variables-at-runtime
[developing and testing ansible roles with molecule and podman - part 1]: https://www.ansible.com/blog/developing-and-testing-ansible-roles-with-molecule-and-podman-part-1/
[Execution environment definition]: https://ansible.readthedocs.io/projects/builder/en/stable/definition/
-[Galaxy Community User Guide]: https://docs.ansible.com/projects/galaxy-ng/en/latest/community/userguide.html
-[Galaxy sivel.toiletwater]: https://galaxy.ansible.com/ui/repo/published/sivel/toiletwater/
+[Galaxy / Community User Guide]: https://docs.ansible.com/projects/galaxy-ng/en/latest/community/userguide.html
+[Galaxy / sivel.toiletwater]: https://galaxy.ansible.com/ui/repo/published/sivel/toiletwater/
[Galaxy]: https://galaxy.ansible.com/
[Getting started with Execution Environments]: https://docs.ansible.com/ansible/latest/getting_started_ee/index.html
[Introduction to Ansible Builder]: https://www.ansible.com/blog/introduction-to-ansible-builder/
diff --git a/knowledge base/cloud computing/aws/README.md b/knowledge base/cloud computing/aws/README.md
index 9229398..b110b0a 100644
--- a/knowledge base/cloud computing/aws/README.md
+++ b/knowledge base/cloud computing/aws/README.md
@@ -1142,7 +1142,7 @@ If one can, prefer just build the image from an EC2 instance.
### Sources
-- [Constraints for tags][constraints tag]
+- [Constraints for tags][constraints / tag]
- [What is Amazon VPC?]
- [Subnets for your VPC]
- [What is AWS Config?]
@@ -1188,6 +1188,7 @@ If one can, prefer just build the image from an EC2 instance.
[config]: #config
[detective]: #detective
[direct connect]: #direct-connect
+[ElastiCache]: #elasticache
[ELB]: #load-balancing
[enterprise discount program]: #enterprise-discount-program
[eventbridge]: #eventbridge
@@ -1237,7 +1238,7 @@ If one can, prefer just build the image from an EC2 instance.
[boto3 resources]: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html
[boto3 sessions]: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/session.html
[connect to the internet using an internet gateway]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html
-[constraints tag]: https://docs.aws.amazon.com/directoryservice/latest/devguide/API_Tag.html
+[constraints / tag]: https://docs.aws.amazon.com/directoryservice/latest/devguide/API_Tag.html
[creating organization policies with aws organizations]: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_create.html
[elastic ip addresses]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
[enable or disable aws regions in your account]: https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html
diff --git a/knowledge base/cloud computing/aws/ecs.md b/knowledge base/cloud computing/aws/ecs.md
index f6dfc80..975ae93 100644
--- a/knowledge base/cloud computing/aws/ecs.md
+++ b/knowledge base/cloud computing/aws/ecs.md
@@ -425,7 +425,7 @@ deployments.
## Capacity providers
-Refer [Capacity providers][upstream capacity providers].
+Refer [Capacity providers][documentation / capacity providers].
Clusters can contain a mix of tasks that are hosted on Fargate, Amazon EC2 instances, or external instances.
Tasks can run on Fargate or EC2 infrastructure, as defined by their [launch type] or a capacity provider strategy.
@@ -2416,6 +2416,7 @@ ECS will eventually stop the Task, then launch a replacement to maintain the des
[AWS Fargate Pricing]: https://aws.amazon.com/fargate/pricing/
[AWS Fargate Spot Now Generally Available]: https://aws.amazon.com/blogs/aws/aws-fargate-spot-now-generally-available/
[Centralized Container Logging with Fluent Bit]: https://aws.amazon.com/blogs/opensource/centralized-container-logging-fluent-bit/
+[Documentation / capacity providers]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html#capacity-providers
[ecs execute-command proposal]: https://github.com/aws/containers-roadmap/issues/1050
[Effectively Using Spot Instances in AWS ECS for Production Workloads]: https://medium.com/@ankur.ecb/effectively-using-spot-instances-in-aws-ecs-for-production-workloads-d46985d0ae2d
[EventBridge Scheduler]: https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html
@@ -2437,7 +2438,6 @@ ECS will eventually stop the Task, then launch a replacement to maintain the des
[troubleshoot amazon ecs deployment issues]: https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-ecs.html
[troubleshoot amazon ecs task definition invalid cpu or memory errors]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
[Under the hood: FireLens for Amazon ECS Tasks]: https://aws.amazon.com/blogs/containers/under-the-hood-firelens-for-amazon-ecs-tasks/
-[upstream capacity providers]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html#capacity-providers
[use amazon ebs volumes with amazon ecs]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html
[use amazon efs volumes with amazon ecs]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html
[use bind mounts with amazon ecs]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bind-mounts.html
diff --git a/knowledge base/cloud computing/aws/opensearch.md b/knowledge base/cloud computing/aws/opensearch.md
index f79e726..88c691e 100644
--- a/knowledge base/cloud computing/aws/opensearch.md
+++ b/knowledge base/cloud computing/aws/opensearch.md
@@ -165,7 +165,7 @@ POST _cold/migration/my-index/_cancel
## Index state management plugin
-Refer [OpenSearch's Index State Management plugin][opensearch index state management] and
+Refer [OpenSearch's Index State Management plugin][opensearch / index state management] and
[Index State Management in Amazon OpenSearch Service].
Compared to [OpenSearch] and [ElasticSearch], ISM for Amazon's managed OpenSearch service has several differences:
@@ -206,7 +206,7 @@ Compared to [OpenSearch] and [ElasticSearch], ISM for Amazon's managed OpenSearc
## Snapshots
-Refer [Snapshots][opensearch snapshots] and [Creating index snapshots in Amazon OpenSearch Service].
+Refer [Snapshots][opensearch / snapshots] and [Creating index snapshots in Amazon OpenSearch Service].
AWS-managed OpenSearch Service snapshots come in the following forms:
@@ -446,8 +446,8 @@ can manage.
[Hot-warm architecture]: ../../opensearch.md#hot-warm-architecture
[ElasticSearch]: ../../elasticsearch.md
[OpenSearch]: ../../opensearch.md
-[OpenSearch index state management]: ../../opensearch.md#index-state-management-plugin
-[OpenSearch snapshots]: ../../opensearch.md#snapshots
+[OpenSearch / index state management]: ../../opensearch.md#index-state-management-plugin
+[OpenSearch / snapshots]: ../../opensearch.md#snapshots
[S3]: s3.md
diff --git a/knowledge base/cloud computing/aws/s3.md b/knowledge base/cloud computing/aws/s3.md
index 888d6fd..5634ad1 100644
--- a/knowledge base/cloud computing/aws/s3.md
+++ b/knowledge base/cloud computing/aws/s3.md
@@ -198,7 +198,7 @@ Objects in need to be moved to a higher storage class need to be **_recreated_**
they will take new metadata.
Other constraints apply, e.g., objects smaller than 128KiB are not usually transitioned in tier.
-See [General considerations for transitions][lifecycle general considerations for transitions].
+See [General considerations for transitions][lifecycle / general considerations for transitions].
When multiple rules are applied through Lifecycle configurations, objects can become eligible for multiple Lifecycle
actions. In such cases:
@@ -214,7 +214,7 @@ actions. In such cases:
> Expect a delay of a few minutes before any change in configuration starts taking effect. This includes configuration
> deletions.
-Examples: [1][lifecycle configuration examples], [2][s3 lifecycle rules examples]
+Examples: [1][lifecycle / configuration examples], [2][s3 lifecycle rules examples]
## Cost-saving measures
@@ -230,7 +230,7 @@ Examples: [1][lifecycle configuration examples], [2][s3 lifecycle rules example
## Further readings
- [Amazon Web Services]
-- [Configure notification for lifecycle rules][lifecycle configure notification]
+- [Configure notification for lifecycle rules][lifecycle / configure notification]
- AWS' [CLI]
- [Expiring Amazon S3 objects based on last accessed date to decrease costs]
- [Understanding and managing Amazon S3 storage classes]
@@ -245,8 +245,8 @@ Examples: [1][lifecycle configuration examples], [2][s3 lifecycle rules example
### Sources
- [Amazon S3 Storage Classes]
-- [General considerations for transitions][lifecycle general considerations for transitions]
-- [Lifecycle configuration examples][lifecycle configuration examples]
+- [General considerations for transitions][lifecycle / general considerations for transitions]
+- [Lifecycle configuration examples][lifecycle / configuration examples]
- [CLI subcommand reference]
- [Find out the size of your Amazon S3 buckets]
- [How S3 Intelligent-Tiering works]
@@ -277,9 +277,9 @@ Examples: [1][lifecycle configuration examples], [2][s3 lifecycle rules example
[expiring amazon s3 objects based on last accessed date to decrease costs]: https://aws.amazon.com/blogs/architecture/expiring-amazon-s3-objects-based-on-last-accessed-date-to-decrease-costs/
[find out the size of your amazon s3 buckets]: https://aws.amazon.com/blogs/storage/find-out-the-size-of-your-amazon-s3-buckets/
[how s3 intelligent-tiering works]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html
-[lifecycle configuration examples]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html
-[lifecycle configure notification]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configure-notification.html
-[lifecycle general considerations for transitions]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html
+[lifecycle / configuration examples]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html
+[lifecycle / configure notification]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configure-notification.html
+[lifecycle / general considerations for transitions]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html
[Understanding and managing Amazon S3 storage classes]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
[Understanding your AWS billing and usage reports for Amazon S3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/aws-usage-report-understand.html
[Using S3 Intelligent-Tiering]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-intelligent-tiering.html
diff --git a/knowledge base/diy nas/v1.md b/knowledge base/diy nas/v1.md
index 7f8168c..cf26bfc 100644
--- a/knowledge base/diy nas/v1.md
+++ b/knowledge base/diy nas/v1.md
@@ -12,15 +12,15 @@
## Hardware
-| Component | Choice | Price |
-| ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------ |
-| Case | [Fractal Design Node 304] | [€99][amazon fractal design node 304] |
-| CPU | [Intel Celeron N5105] | Included in the motherboard |
-| Hard disks | [Seagate IronWolf ST4000VN008 4TB] | €556,00 (4x [€139,00][coolblue seagate ironwolf st4000vn008 4tb]) |
-| Motherboard | Mini ITX NAS motherboard with Intel N5105 CPU and I226-V network chip | [€175,28][amazon nas motherboard] |
-| Power supply | [Corsair RM850e] fully modular | [€117,90][amazon corsair rm850e 2023] |
-| RAM | [Crucial CT2K16G4SFRA32A] 32GB kit (2x16GB) | [€67,95][amazon crucial ct2k16g4sfra32a] |
-| SATA cables | Cable Matters 6.0Gbps SATA III cable with 90 degrees angle, black, 45cm | €11,98 (2x [€5,99][amazon cable matters sata cables]) |
+| Component | Choice | Price |
+| ------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| Case | [Fractal Design Node 304] | [€99][amazon / fractal design node 304] |
+| CPU | [Intel Celeron N5105] | Included in the motherboard |
+| Hard disks | [Seagate IronWolf ST4000VN008 4TB] | €556,00 (4x [€139,00][coolblue / seagate ironwolf st4000vn008 4tb]) |
+| Motherboard | Mini ITX NAS motherboard with Intel N5105 CPU and I226-V network chip | [€175,28][amazon / nas motherboard] |
+| Power supply | [Corsair RM850e] fully modular | [€117,90][amazon / corsair rm850e 2023] |
+| RAM | [Crucial CT2K16G4SFRA32A] 32GB kit (2x16GB) | [€67,95][amazon / crucial ct2k16g4sfra32a] |
+| SATA cables | Cable Matters 6.0Gbps SATA III cable with 90 degrees angle, black, 45cm | €11,98 (2x [€5,99][amazon / cable matters sata cables]) |
## BIOS
@@ -99,11 +99,11 @@ The ZFS pool and datasets used as shared folders shall have the following proper
[seagate ironwolf st4000vn008 4tb]: https://www.seagate.com/products/nas-drives/ironwolf-hard-drive/
-[amazon cable matters sata cables]: https://www.amazon.nl/dp/B018Y2LEBE/
-[amazon corsair rm850e 2023]: https://www.amazon.nl/dp/B0BVL17341/
-[amazon crucial ct2k16g4sfra32a]: https://www.amazon.nl/dp/B08C4X9VR5/
-[amazon fractal design node 304]: https://www.amazon.nl/dp/B009PIEMUC/
-[amazon nas motherboard]: https://www.amazon.nl/dp/B0BYVNZDGS/
-[coolblue seagate ironwolf st4000vn008 4tb]: https://www.coolblue.nl/en/product/750006/seagate-ironwolf-st4000vn008-4tb.html
+[amazon / cable matters sata cables]: https://www.amazon.nl/dp/B018Y2LEBE/
+[amazon / corsair rm850e 2023]: https://www.amazon.nl/dp/B0BVL17341/
+[amazon / crucial ct2k16g4sfra32a]: https://www.amazon.nl/dp/B08C4X9VR5/
+[amazon / fractal design node 304]: https://www.amazon.nl/dp/B009PIEMUC/
+[amazon / nas motherboard]: https://www.amazon.nl/dp/B0BYVNZDGS/
+[coolblue / seagate ironwolf st4000vn008 4tb]: https://www.coolblue.nl/en/product/750006/seagate-ironwolf-st4000vn008-4tb.html
[the perfect home server 2023]: https://www.youtube.com/watch?v=vjDoQA4C22c
[what's the best psu for your low idle home server?]: https://www.youtube.com/watch?v=TPSuCbS-4P0
diff --git a/knowledge base/docker.md b/knowledge base/docker.md
index 9228f01..2a7c729 100644
--- a/knowledge base/docker.md
+++ b/knowledge base/docker.md
@@ -305,7 +305,7 @@ To solve this, use a different network mode and **explicitly publish** the ports
Docker Desktop runs the Engine in a virtual machine, not natively; hence, ports are exposed on the VM and not of the
host running Docker Desktop.
- Refer [I cannot ping my containers][docker docs i cannot ping my containers].
+ Refer [I cannot ping my containers][documentation / i cannot ping my containers].
One can go around this limitation by:
@@ -676,7 +676,7 @@ Alternatively, keep the exec form but force invoking a shell in it:
## Further readings
-- [GitHub]
+- [Codebase]
- [Podman]
- [Dive]
- [Testcontainers]
@@ -721,12 +721,12 @@ Alternatively, keep the exec form but force invoking a shell in it:
[building multi-arch images for arm and x86 with docker desktop]: https://www.docker.com/blog/multi-arch-images/
+[Codebase]: https://github.com/docker
[docker compose]: https://github.com/docker/compose
-[docker docs I cannot ping my containers]: https://docs.docker.com/desktop/features/networking/#i-cannot-ping-my-containers
[Docker Model Runner]: https://docs.docker.com/ai/model-runner/
[dockerfile reference]: https://docs.docker.com/reference/dockerfile/
+[Documentation / I cannot ping my containers]: https://docs.docker.com/desktop/features/networking/#i-cannot-ping-my-containers
[Exec form ENTRYPOINT example]: https://docs.docker.com/reference/dockerfile/#exec-form-entrypoint-example
-[github]: https://github.com/docker
[Multi-stage builds]: https://docs.docker.com/build/building/multi-stage/
[Run LLMs Locally with Docker: A Quickstart Guide to Model Runner]: https://www.docker.com/blog/run-llms-locally/
diff --git a/knowledge base/kubernetes/keda.md b/knowledge base/kubernetes/keda.md
index 02b322c..5b71d13 100644
--- a/knowledge base/kubernetes/keda.md
+++ b/knowledge base/kubernetes/keda.md
@@ -273,7 +273,7 @@ spec:
- name: rabbitmq-client
image: tsuyoshiushio/rabbitmq-client:dev3
imagePullPolicy: Always
- command: ["receive", "amqp://user:PASSWORD@rabbitmq.default.svc.cluster.local:5672", "job"]
+ command: ["receive", "amqp://user:PASSWORD@rabbitmq.default.svc.cluster.local:5672", "job"]
envFrom:
- secretRef:
name: rabbitmq-consumer
diff --git a/knowledge base/linux/lower the power consumption.md b/knowledge base/linux/lower the power consumption.md
index ae548f9..9d6f980 100644
--- a/knowledge base/linux/lower the power consumption.md
+++ b/knowledge base/linux/lower the power consumption.md
@@ -93,8 +93,8 @@ sudo powertop --auto-tune
- [PowerTOP]
- [Laptop Mode Tools: Extend Your Laptop Battery Life]
-- [`laptop-mode-tools` article in the Arch Wiki][arch wiki laptop-mode-tools]
-- [Power management article in the Arch Wiki][arch wiki power management]
+- [`laptop-mode-tools` article in the Arch Wiki][arch wiki / laptop-mode-tools]
+- [Power management article in the Arch Wiki][arch wiki / power management]
+[arch wiki / laptop-mode-tools]: https://wiki.archlinux.org/title/Laptop_Mode_Tools
+[arch wiki / power management]: https://wiki.archlinux.org/title/Power_management
[Laptop Mode Tools: Extend Your Laptop Battery Life]: https://www.unixmen.com/laptop-mode-tools-extend-laptop-battery-life/
-[arch wiki laptop-mode-tools]: https://wiki.archlinux.org/title/Laptop_Mode_Tools
-[arch wiki power management]: https://wiki.archlinux.org/title/Power_management
diff --git a/knowledge base/markdown.md b/knowledge base/markdown.md
index a10b043..2b2d226 100644
--- a/knowledge base/markdown.md
+++ b/knowledge base/markdown.md
@@ -152,7 +152,7 @@ They are extensions that the most famous flavours introduced or adopted, each wi
GitHub formatting
-Refer [GitHub's alert formatting][github formatting alerts].
+Refer [GitHub's alert formatting][github formatting / alerts].
```md
> [!NOTE]
@@ -201,7 +201,7 @@ Refer [GitHub's alert formatting][github formatting alerts].
GitLab formatting
-Refer [GitLab Flavored Markdown][gitlab flavored markdown alerts].
+Refer [GitLab Flavored Markdown][gitlab flavored markdown / alerts].
```md
> [!note]
@@ -290,7 +290,7 @@ Install and enable [`bierner.markdown-mermaid`][bierner.markdown-mermaid]'s exte
- Official [documentation]
- [Extended syntax]
- [Linguist supported language syntax list]
-- [Github's alert formatting][github formatting alerts]
+- [Github's alert formatting][github formatting / alerts]
- [Live editor]
- [Mermaid.js]
- [MyST] extension for technical, scientific communication and publication
@@ -326,8 +326,8 @@ Install and enable [`bierner.markdown-mermaid`][bierner.markdown-mermaid]'s exte
[bierner.markdown-mermaid]: https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid
[escaping backtick in markdown]: https://www.growingwiththeweb.com/2015/06/escaping-backtick-in-markdown.html
[escaping backticks]: https://www.markdownguide.org/basic-syntax/#escaping-backticks
-[github formatting alerts]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts
-[GitLab Flavored Markdown alerts]: https://docs.gitlab.com/user/markdown/#alerts
+[github formatting / alerts]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts
+[GitLab Flavored Markdown / alerts]: https://docs.gitlab.com/user/markdown/#alerts
[GitLab Flavored Markdown]: https://docs.gitlab.com/user/markdown/
[linguist supported language syntax list]: https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
[live editor]: https://mermaid.live/edit
diff --git a/knowledge base/opensearch.md b/knowledge base/opensearch.md
index 96660fa..858245d 100644
--- a/knowledge base/opensearch.md
+++ b/knowledge base/opensearch.md
@@ -447,7 +447,7 @@ lower storage states after they meet specific conditions.
## Index templates
-Refer [Index templates][documentation index templates].
+Refer [Index templates][documentation / index templates].
Index templates allow to initialize new indices with predefined mappings and settings.
@@ -905,7 +905,7 @@ They require data to be indexed before creation.
Requires the cluster to use the [hot-warm architecture].
-Refer [Index State Management][documentation index state management].
+Refer [Index State Management][documentation / index state management].
## Snapshots
@@ -1385,7 +1385,7 @@ DELETE _snapshot/repository-name/snapshot-name
- [Stepping up for a truly open source Elasticsearch]
- [Managing indices]
- [Reindex data]
-- [Index templates][documentation index templates]
+- [Index templates][documentation / index templates]
- [OpenSearch Data Streams]
- [OpenSearch Indices and Data streams]
- [Snapshot Operations in OpenSearch]
@@ -1411,12 +1411,12 @@ DELETE _snapshot/repository-name/snapshot-name
-[codebase]: https://github.com/opensearch-project
+[Codebase]: https://github.com/opensearch-project
[creating a cluster]: https://opensearch.org/docs/latest/tuning-your-cluster/
[data prepper]: https://opensearch.org/docs/latest/data-prepper/
-[Documentation Index State Management]: https://docs.opensearch.org/docs/latest/im-plugin/ism/index/
-[documentation index templates]: https://opensearch.org/docs/latest/im-plugin/index-templates/
-[documentation]: https://opensearch.org/docs/latest/
+[Documentation / Index State Management]: https://docs.opensearch.org/docs/latest/im-plugin/ism/index/
+[Documentation / index templates]: https://opensearch.org/docs/latest/im-plugin/index-templates/
+[Documentation]: https://opensearch.org/docs/latest/
[index management]: https://opensearch.org/docs/latest/dashboards/im-dashboards/index-management/
[index settings]: https://opensearch.org/docs/latest/install-and-configure/configuring-opensearch/index-settings/
[managing indices]: https://opensearch.org/docs/latest/im-plugin/
diff --git a/knowledge base/tailscale.md b/knowledge base/tailscale.md
index 9cb36b5..fd9ac0e 100644
--- a/knowledge base/tailscale.md
+++ b/knowledge base/tailscale.md
@@ -97,7 +97,7 @@ Configure one or more machines in that network to act as [subnet routers].
## Subnet routers
-Refer [Subnet routers][tailscale subnet routers].
+Refer [Subnet routers][documentation / subnet routers].
Subnet routers allow extending tailnets to include devices that don't or can't run the Tailscale client.
They act as gateways between the tailnet and physical subnets, enabling access and relaying traffic to and from devices,
@@ -195,7 +195,7 @@ Subnet routers need to be configured to allow IP forwarding as follows:
## Exit nodes
-Refer [Exit nodes][tailscale exit nodes].
+Refer [Exit nodes][documentation / exit nodes].
Needed to route _outbound_ public Internet traffic.
@@ -280,8 +280,8 @@ setting up conditional forwarding on one's private DNS service, and only using t
### Sources
- [Documentation]
-- [Subnet routers][tailscale subnet routers]
-- [Exit nodes][tailscale exit nodes]
+- [Subnet routers][documentation / subnet routers]
+- [Exit nodes][documentation / exit nodes]
[Codebase]: https://github.com/tailscale/tailscale
+[Documentation / exit nodes]: https://tailscale.com/kb/1103/exit-nodes
+[Documentation / subnet routers]: https://tailscale.com/kb/1019/subnets
[Documentation]: https://tailscale.com/kb
[Mullvad exit nodes]: https://tailscale.com/kb/1258/mullvad-exit-nodes
[Set up a subnet router]: https://tailscale.com/kb/1019/subnets#set-up-a-subnet-router
-[tailscale exit nodes]: https://tailscale.com/kb/1103/exit-nodes
-[tailscale subnet routers]: https://tailscale.com/kb/1019/subnets
[Website]: https://tailscale.com/