diff --git a/content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-2/index.md b/content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-2/index.md
index 3b2afbd8f..f8597433c 100644
--- a/content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-2/index.md
+++ b/content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-2/index.md
@@ -36,7 +36,7 @@ project and development team.
Virtual machines are the primary means of isolating tenants from each other in a cloud environment.
In virtual machines, users can execute code and programs with administrative privilege, but this
doesn't affect other tenants or the environment itself. In other words, virtual machines allow to
-achieve [hard multi-tenancy isolation]({{% ref "/docs/v1.0/guides/concepts#tenant-system" %}}), and run
+achieve [hard multi-tenancy isolation]({{% ref "/docs/v1.0/guides/concepts#tenant" %}}), and run
in environments where tenants do not trust each other.
## Virtualization technologies in Kubernetes
diff --git a/content/en/docs/next/development.md b/content/en/docs/next/development.md
index ae6559031..cd53620a6 100644
--- a/content/en/docs/next/development.md
+++ b/content/en/docs/next/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/next/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/next/getting-started/create-tenant.md b/content/en/docs/next/getting-started/create-tenant.md
index 774d2a2b0..fd088c3ef 100644
--- a/content/en/docs/next/getting-started/create-tenant.md
+++ b/content/en/docs/next/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/next/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/next/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/next/install/how-to/single-disk.md b/content/en/docs/next/install/how-to/single-disk.md
index 683bc57c5..b1fb9ab52 100644
--- a/content/en/docs/next/install/how-to/single-disk.md
+++ b/content/en/docs/next/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/next/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/next/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/next/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/next/introduction/_index.md b/content/en/docs/next/introduction/_index.md
index 38c33cb0e..2ee7fea95 100644
--- a/content/en/docs/next/introduction/_index.md
+++ b/content/en/docs/next/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/next/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/next/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/next/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/next/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/next/operations/configuration/variants.md b/content/en/docs/next/operations/configuration/variants.md
index 82ac58da6..7879e9be0 100644
--- a/content/en/docs/next/operations/configuration/variants.md
+++ b/content/en/docs/next/operations/configuration/variants.md
@@ -48,13 +48,13 @@ or need full manual control over installed packages.
[vm]: {{% ref "/docs/next/virtualization" %}}
[k8s]: {{% ref "/docs/next/kubernetes" %}}
[api]: {{% ref "/docs/next/cozystack-api" %}}
-[monitoring subsystem]: {{% ref "/docs/next/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/next/guides/platform-stack#drbd" %}}
-[kube-ovn]: {{% ref "/docs/next/guides/platform-stack#kube-ovn" %}}
-[cilium]: {{% ref "/docs/next/guides/platform-stack#cilium" %}}
-[kubevirt]: {{% ref "/docs/next/guides/platform-stack#kubevirt" %}}
-[talos linux]: {{% ref "/docs/next/guides/platform-stack#talos-linux" %}}
-[kubernetes]: {{% ref "/docs/next/guides/platform-stack#kubernetes" %}}
+[monitoring subsystem]: {{% ref "/docs/next/guides/platform-stack#observability" %}}
+[linstor]: {{% ref "/docs/next/guides/platform-stack#storage-and-backup" %}}
+[kube-ovn]: {{% ref "/docs/next/guides/platform-stack#networking" %}}
+[cilium]: {{% ref "/docs/next/guides/platform-stack#networking" %}}
+[kubevirt]: {{% ref "/docs/next/guides/platform-stack#cluster-provisioning-and-virtualization" %}}
+[talos linux]: {{% ref "/docs/next/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
+[kubernetes]: {{% ref "/docs/next/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
[kubernetes operators]: https://github.com/cozystack/cozystack/blob/main/packages/core/platform/templates/bundles/paas.yaml
[default]: {{% ref "/docs/next/operations/configuration/variants#default" %}}
diff --git a/content/en/docs/next/operations/faq/_index.md b/content/en/docs/next/operations/faq/_index.md
index 1b7578165..29479ae02 100644
--- a/content/en/docs/next/operations/faq/_index.md
+++ b/content/en/docs/next/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/next/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/next/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/next/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v0/development.md b/content/en/docs/v0/development.md
index dbd7492a3..39872bb37 100644
--- a/content/en/docs/v0/development.md
+++ b/content/en/docs/v0/development.md
@@ -95,7 +95,7 @@ They should not contain business logic, because they are managed by operators in
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/v0/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System](/docs/v0/guides/concepts/#tenant) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v0/getting-started/create-tenant.md b/content/en/docs/v0/getting-started/create-tenant.md
index 5a71e7576..f143ba504 100644
--- a/content/en/docs/v0/getting-started/create-tenant.md
+++ b/content/en/docs/v0/getting-started/create-tenant.md
@@ -41,7 +41,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v0/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v0/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v0/install/how-to/single-disk.md b/content/en/docs/v0/install/how-to/single-disk.md
index 1267b9b6c..fddd05e58 100644
--- a/content/en/docs/v0/install/how-to/single-disk.md
+++ b/content/en/docs/v0/install/how-to/single-disk.md
@@ -13,7 +13,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v0/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v0/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v0/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v0/install/providers/hetzner.md b/content/en/docs/v0/install/providers/hetzner.md
index cf24b61b2..64800f19e 100644
--- a/content/en/docs/v0/install/providers/hetzner.md
+++ b/content/en/docs/v0/install/providers/hetzner.md
@@ -165,7 +165,7 @@ but has instructions and examples specific to Hetzner.
A bunch of files is now created in the `hetzner-cluster` directory.
To learn more about the role of each file, refer to the
- [Talm guide]({{% ref "/docs/v0/install/kubernetes/talm#1-initialize-cluster-configuration" %}}).
+ [Talm guide]({{% ref "/docs/v0/install/kubernetes/talm#2-initialize-cluster-configuration" %}}).
1. Edit `values.yaml`, modifying the following values:
diff --git a/content/en/docs/v0/introduction/_index.md b/content/en/docs/v0/introduction/_index.md
index 2164b7986..55a8ea4e6 100644
--- a/content/en/docs/v0/introduction/_index.md
+++ b/content/en/docs/v0/introduction/_index.md
@@ -26,7 +26,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v0/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v0/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -38,7 +38,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v0/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v0/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v0/operations/configuration/bundles.md b/content/en/docs/v0/operations/configuration/bundles.md
index 3dc49723b..1e1e609fc 100644
--- a/content/en/docs/v0/operations/configuration/bundles.md
+++ b/content/en/docs/v0/operations/configuration/bundles.md
@@ -55,7 +55,7 @@ or just need a minimal Kubernetes cluster.
[k8s]: {{% ref "/docs/v0/kubernetes" %}}
[api]: {{% ref "/docs/v0/cozystack-api" %}}
[monitoring subsystem]: {{% ref "/docs/v0/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v0/guides/platform-stack#drbd" %}}
+[linstor]: {{% ref "/docs/v0/guides/platform-stack#drbd-and-linstor" %}}
[kube-ovn]: {{% ref "/docs/v0/guides/platform-stack#kube-ovn" %}}
[cilium]: {{% ref "/docs/v0/guides/platform-stack#cilium" %}}
[kubevirt]: {{% ref "/docs/v0/guides/platform-stack#kubevirt" %}}
diff --git a/content/en/docs/v0/operations/faq/_index.md b/content/en/docs/v0/operations/faq/_index.md
index 6f8dec7d6..d8a742a3c 100644
--- a/content/en/docs/v0/operations/faq/_index.md
+++ b/content/en/docs/v0/operations/faq/_index.md
@@ -49,7 +49,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v0/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v0/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v0/install/cozystack#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.0/development.md b/content/en/docs/v1.0/development.md
index f284509c7..0b811987a 100644
--- a/content/en/docs/v1.0/development.md
+++ b/content/en/docs/v1.0/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.0/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.0/getting-started/create-tenant.md b/content/en/docs/v1.0/getting-started/create-tenant.md
index 60f766f9e..a32bc9216 100644
--- a/content/en/docs/v1.0/getting-started/create-tenant.md
+++ b/content/en/docs/v1.0/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.0/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.0/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.0/install/how-to/single-disk.md b/content/en/docs/v1.0/install/how-to/single-disk.md
index ee62669af..b7475e706 100644
--- a/content/en/docs/v1.0/install/how-to/single-disk.md
+++ b/content/en/docs/v1.0/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.0/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.0/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.0/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.0/install/providers/hetzner.md b/content/en/docs/v1.0/install/providers/hetzner.md
index 4cfe2ace3..bfe1fd983 100644
--- a/content/en/docs/v1.0/install/providers/hetzner.md
+++ b/content/en/docs/v1.0/install/providers/hetzner.md
@@ -161,7 +161,7 @@ but has instructions and examples specific to Hetzner.
A bunch of files is now created in the `hetzner-cluster` directory.
To learn more about the role of each file, refer to the
- [Talm guide]({{% ref "/docs/v1.0/install/kubernetes/talm#1-initialize-cluster-configuration" %}}).
+ [Talm guide]({{% ref "/docs/v1.0/install/kubernetes/talm#2-initialize-cluster-configuration" %}}).
1. Edit `values.yaml`, modifying the following values:
diff --git a/content/en/docs/v1.0/introduction/_index.md b/content/en/docs/v1.0/introduction/_index.md
index 0e919b2ce..295480663 100644
--- a/content/en/docs/v1.0/introduction/_index.md
+++ b/content/en/docs/v1.0/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.0/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.0/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.0/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.0/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.0/operations/configuration/variants.md b/content/en/docs/v1.0/operations/configuration/variants.md
index 4bdc096f6..55b96c06f 100644
--- a/content/en/docs/v1.0/operations/configuration/variants.md
+++ b/content/en/docs/v1.0/operations/configuration/variants.md
@@ -48,7 +48,7 @@ or need full manual control over installed packages.
[k8s]: {{% ref "/docs/v1.0/kubernetes" %}}
[api]: {{% ref "/docs/v1.0/cozystack-api" %}}
[monitoring subsystem]: {{% ref "/docs/v1.0/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.0/guides/platform-stack#drbd" %}}
+[linstor]: {{% ref "/docs/v1.0/guides/platform-stack#drbd-and-linstor" %}}
[kube-ovn]: {{% ref "/docs/v1.0/guides/platform-stack#kube-ovn" %}}
[cilium]: {{% ref "/docs/v1.0/guides/platform-stack#cilium" %}}
[kubevirt]: {{% ref "/docs/v1.0/guides/platform-stack#kubevirt" %}}
diff --git a/content/en/docs/v1.0/operations/faq/_index.md b/content/en/docs/v1.0/operations/faq/_index.md
index bc830ef9c..0092ae01b 100644
--- a/content/en/docs/v1.0/operations/faq/_index.md
+++ b/content/en/docs/v1.0/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.0/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.0/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.0/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.1/development.md b/content/en/docs/v1.1/development.md
index 4978b59e8..19ca0bd18 100644
--- a/content/en/docs/v1.1/development.md
+++ b/content/en/docs/v1.1/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.1/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.1/getting-started/create-tenant.md b/content/en/docs/v1.1/getting-started/create-tenant.md
index 3f75c3fec..9a14f74f2 100644
--- a/content/en/docs/v1.1/getting-started/create-tenant.md
+++ b/content/en/docs/v1.1/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.1/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.1/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.1/install/how-to/single-disk.md b/content/en/docs/v1.1/install/how-to/single-disk.md
index 6bee25728..bc590f90a 100644
--- a/content/en/docs/v1.1/install/how-to/single-disk.md
+++ b/content/en/docs/v1.1/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.1/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.1/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.1/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.1/install/providers/hetzner.md b/content/en/docs/v1.1/install/providers/hetzner.md
index 17948983e..6b8650212 100644
--- a/content/en/docs/v1.1/install/providers/hetzner.md
+++ b/content/en/docs/v1.1/install/providers/hetzner.md
@@ -161,7 +161,7 @@ but has instructions and examples specific to Hetzner.
A bunch of files is now created in the `hetzner-cluster` directory.
To learn more about the role of each file, refer to the
- [Talm guide]({{% ref "/docs/v1.1/install/kubernetes/talm#1-initialize-cluster-configuration" %}}).
+ [Talm guide]({{% ref "/docs/v1.1/install/kubernetes/talm#2-initialize-cluster-configuration" %}}).
1. Edit `values.yaml`, modifying the following values:
diff --git a/content/en/docs/v1.1/introduction/_index.md b/content/en/docs/v1.1/introduction/_index.md
index 4f59376bf..e28115c5c 100644
--- a/content/en/docs/v1.1/introduction/_index.md
+++ b/content/en/docs/v1.1/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.1/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.1/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.1/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.1/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.1/operations/configuration/variants.md b/content/en/docs/v1.1/operations/configuration/variants.md
index 2016cb4c1..bd1b7df02 100644
--- a/content/en/docs/v1.1/operations/configuration/variants.md
+++ b/content/en/docs/v1.1/operations/configuration/variants.md
@@ -48,7 +48,7 @@ or need full manual control over installed packages.
[k8s]: {{% ref "/docs/v1.1/kubernetes" %}}
[api]: {{% ref "/docs/v1.1/cozystack-api" %}}
[monitoring subsystem]: {{% ref "/docs/v1.1/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.1/guides/platform-stack#drbd" %}}
+[linstor]: {{% ref "/docs/v1.1/guides/platform-stack#drbd-and-linstor" %}}
[kube-ovn]: {{% ref "/docs/v1.1/guides/platform-stack#kube-ovn" %}}
[cilium]: {{% ref "/docs/v1.1/guides/platform-stack#cilium" %}}
[kubevirt]: {{% ref "/docs/v1.1/guides/platform-stack#kubevirt" %}}
diff --git a/content/en/docs/v1.1/operations/faq/_index.md b/content/en/docs/v1.1/operations/faq/_index.md
index 639cd20bc..20dd88882 100644
--- a/content/en/docs/v1.1/operations/faq/_index.md
+++ b/content/en/docs/v1.1/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.1/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.1/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.1/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.2/development.md b/content/en/docs/v1.2/development.md
index bf8c37c1a..1dcdaf718 100644
--- a/content/en/docs/v1.2/development.md
+++ b/content/en/docs/v1.2/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.2/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.2/getting-started/create-tenant.md b/content/en/docs/v1.2/getting-started/create-tenant.md
index b3d87458d..267549367 100644
--- a/content/en/docs/v1.2/getting-started/create-tenant.md
+++ b/content/en/docs/v1.2/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.2/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.2/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.2/install/how-to/single-disk.md b/content/en/docs/v1.2/install/how-to/single-disk.md
index 24dfa3691..a25126d10 100644
--- a/content/en/docs/v1.2/install/how-to/single-disk.md
+++ b/content/en/docs/v1.2/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.2/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.2/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.2/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.2/introduction/_index.md b/content/en/docs/v1.2/introduction/_index.md
index 769068f5b..bbdeeeb58 100644
--- a/content/en/docs/v1.2/introduction/_index.md
+++ b/content/en/docs/v1.2/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.2/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.2/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.2/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.2/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.2/operations/configuration/variants.md b/content/en/docs/v1.2/operations/configuration/variants.md
index 8bb9f205e..943d58c6b 100644
--- a/content/en/docs/v1.2/operations/configuration/variants.md
+++ b/content/en/docs/v1.2/operations/configuration/variants.md
@@ -48,7 +48,7 @@ or need full manual control over installed packages.
[k8s]: {{% ref "/docs/v1.2/kubernetes" %}}
[api]: {{% ref "/docs/v1.2/cozystack-api" %}}
[monitoring subsystem]: {{% ref "/docs/v1.2/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.2/guides/platform-stack#drbd" %}}
+[linstor]: {{% ref "/docs/v1.2/guides/platform-stack#drbd-and-linstor" %}}
[kube-ovn]: {{% ref "/docs/v1.2/guides/platform-stack#kube-ovn" %}}
[cilium]: {{% ref "/docs/v1.2/guides/platform-stack#cilium" %}}
[kubevirt]: {{% ref "/docs/v1.2/guides/platform-stack#kubevirt" %}}
diff --git a/content/en/docs/v1.2/operations/faq/_index.md b/content/en/docs/v1.2/operations/faq/_index.md
index 3ba39ecab..0bbccd38c 100644
--- a/content/en/docs/v1.2/operations/faq/_index.md
+++ b/content/en/docs/v1.2/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.2/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.2/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.2/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.3/development.md b/content/en/docs/v1.3/development.md
index 734fd0a8e..d9e920312 100644
--- a/content/en/docs/v1.3/development.md
+++ b/content/en/docs/v1.3/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.3/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.3/getting-started/create-tenant.md b/content/en/docs/v1.3/getting-started/create-tenant.md
index e3889538c..eb02a9eff 100644
--- a/content/en/docs/v1.3/getting-started/create-tenant.md
+++ b/content/en/docs/v1.3/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.3/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.3/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.3/install/how-to/single-disk.md b/content/en/docs/v1.3/install/how-to/single-disk.md
index c726fcf0a..c633bb926 100644
--- a/content/en/docs/v1.3/install/how-to/single-disk.md
+++ b/content/en/docs/v1.3/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.3/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.3/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.3/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.3/introduction/_index.md b/content/en/docs/v1.3/introduction/_index.md
index e665a9e7d..abfd318e3 100644
--- a/content/en/docs/v1.3/introduction/_index.md
+++ b/content/en/docs/v1.3/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.3/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.3/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.3/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.3/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.3/operations/configuration/variants.md b/content/en/docs/v1.3/operations/configuration/variants.md
index 8f6d3be98..9ac16ed20 100644
--- a/content/en/docs/v1.3/operations/configuration/variants.md
+++ b/content/en/docs/v1.3/operations/configuration/variants.md
@@ -47,13 +47,13 @@ or need full manual control over installed packages.
[vm]: {{% ref "/docs/v1.3/virtualization" %}}
[k8s]: {{% ref "/docs/v1.3/kubernetes" %}}
[api]: {{% ref "/docs/v1.3/cozystack-api" %}}
-[monitoring subsystem]: {{% ref "/docs/v1.3/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.3/guides/platform-stack#drbd" %}}
-[kube-ovn]: {{% ref "/docs/v1.3/guides/platform-stack#kube-ovn" %}}
-[cilium]: {{% ref "/docs/v1.3/guides/platform-stack#cilium" %}}
-[kubevirt]: {{% ref "/docs/v1.3/guides/platform-stack#kubevirt" %}}
-[talos linux]: {{% ref "/docs/v1.3/guides/platform-stack#talos-linux" %}}
-[kubernetes]: {{% ref "/docs/v1.3/guides/platform-stack#kubernetes" %}}
+[monitoring subsystem]: {{% ref "/docs/v1.3/guides/platform-stack#observability" %}}
+[linstor]: {{% ref "/docs/v1.3/guides/platform-stack#storage-and-backup" %}}
+[kube-ovn]: {{% ref "/docs/v1.3/guides/platform-stack#networking" %}}
+[cilium]: {{% ref "/docs/v1.3/guides/platform-stack#networking" %}}
+[kubevirt]: {{% ref "/docs/v1.3/guides/platform-stack#cluster-provisioning-and-virtualization" %}}
+[talos linux]: {{% ref "/docs/v1.3/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
+[kubernetes]: {{% ref "/docs/v1.3/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
[kubernetes operators]: https://github.com/cozystack/cozystack/blob/main/packages/core/platform/templates/bundles/paas.yaml
[default]: {{% ref "/docs/v1.3/operations/configuration/variants#default" %}}
diff --git a/content/en/docs/v1.3/operations/faq/_index.md b/content/en/docs/v1.3/operations/faq/_index.md
index 0497dce46..6fb5e4705 100644
--- a/content/en/docs/v1.3/operations/faq/_index.md
+++ b/content/en/docs/v1.3/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.3/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.3/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.3/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.4/development.md b/content/en/docs/v1.4/development.md
index e5e6bb224..f4ad911fd 100644
--- a/content/en/docs/v1.4/development.md
+++ b/content/en/docs/v1.4/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.4/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.4/getting-started/create-tenant.md b/content/en/docs/v1.4/getting-started/create-tenant.md
index e6d580737..0c3dfc2fd 100644
--- a/content/en/docs/v1.4/getting-started/create-tenant.md
+++ b/content/en/docs/v1.4/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.4/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.4/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.4/install/how-to/single-disk.md b/content/en/docs/v1.4/install/how-to/single-disk.md
index 6b5931362..98a56bd9d 100644
--- a/content/en/docs/v1.4/install/how-to/single-disk.md
+++ b/content/en/docs/v1.4/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.4/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.4/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.4/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.4/introduction/_index.md b/content/en/docs/v1.4/introduction/_index.md
index fa7956057..7b344da6c 100644
--- a/content/en/docs/v1.4/introduction/_index.md
+++ b/content/en/docs/v1.4/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.4/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.4/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.4/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.4/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.4/operations/configuration/variants.md b/content/en/docs/v1.4/operations/configuration/variants.md
index 31e437dad..0b2f41e93 100644
--- a/content/en/docs/v1.4/operations/configuration/variants.md
+++ b/content/en/docs/v1.4/operations/configuration/variants.md
@@ -47,13 +47,13 @@ or need full manual control over installed packages.
[vm]: {{% ref "/docs/v1.4/virtualization" %}}
[k8s]: {{% ref "/docs/v1.4/kubernetes" %}}
[api]: {{% ref "/docs/v1.4/cozystack-api" %}}
-[monitoring subsystem]: {{% ref "/docs/v1.4/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.4/guides/platform-stack#drbd" %}}
-[kube-ovn]: {{% ref "/docs/v1.4/guides/platform-stack#kube-ovn" %}}
-[cilium]: {{% ref "/docs/v1.4/guides/platform-stack#cilium" %}}
-[kubevirt]: {{% ref "/docs/v1.4/guides/platform-stack#kubevirt" %}}
-[talos linux]: {{% ref "/docs/v1.4/guides/platform-stack#talos-linux" %}}
-[kubernetes]: {{% ref "/docs/v1.4/guides/platform-stack#kubernetes" %}}
+[monitoring subsystem]: {{% ref "/docs/v1.4/guides/platform-stack#observability" %}}
+[linstor]: {{% ref "/docs/v1.4/guides/platform-stack#storage-and-backup" %}}
+[kube-ovn]: {{% ref "/docs/v1.4/guides/platform-stack#networking" %}}
+[cilium]: {{% ref "/docs/v1.4/guides/platform-stack#networking" %}}
+[kubevirt]: {{% ref "/docs/v1.4/guides/platform-stack#cluster-provisioning-and-virtualization" %}}
+[talos linux]: {{% ref "/docs/v1.4/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
+[kubernetes]: {{% ref "/docs/v1.4/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
[kubernetes operators]: https://github.com/cozystack/cozystack/blob/main/packages/core/platform/templates/bundles/paas.yaml
[default]: {{% ref "/docs/v1.4/operations/configuration/variants#default" %}}
diff --git a/content/en/docs/v1.4/operations/faq/_index.md b/content/en/docs/v1.4/operations/faq/_index.md
index 7f6c21e22..5b4b94da0 100644
--- a/content/en/docs/v1.4/operations/faq/_index.md
+++ b/content/en/docs/v1.4/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.4/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.4/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.4/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.5/development.md b/content/en/docs/v1.5/development.md
index c42ebb9d2..45603f4ad 100644
--- a/content/en/docs/v1.5/development.md
+++ b/content/en/docs/v1.5/development.md
@@ -267,7 +267,7 @@ supply tenant-wide infrastructure rather than orderable services: `extra/ingress
`extra/gateway` (per-tenant Gateway API backed by Cilium; toggle-only — it has no
dashboard presence and is enabled automatically for tenants with a derived apex domain).
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.5/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.5/getting-started/create-tenant.md b/content/en/docs/v1.5/getting-started/create-tenant.md
index 39de42f8d..0dfccfcb8 100644
--- a/content/en/docs/v1.5/getting-started/create-tenant.md
+++ b/content/en/docs/v1.5/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.5/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.5/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.5/install/how-to/single-disk.md b/content/en/docs/v1.5/install/how-to/single-disk.md
index 293601b5f..6115e6df1 100644
--- a/content/en/docs/v1.5/install/how-to/single-disk.md
+++ b/content/en/docs/v1.5/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.5/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.5/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.5/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.5/introduction/_index.md b/content/en/docs/v1.5/introduction/_index.md
index 4d358ae59..3ce5b7570 100644
--- a/content/en/docs/v1.5/introduction/_index.md
+++ b/content/en/docs/v1.5/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.5/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.5/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.5/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.5/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.5/operations/configuration/variants.md b/content/en/docs/v1.5/operations/configuration/variants.md
index 62b8b68a6..7e6d859c0 100644
--- a/content/en/docs/v1.5/operations/configuration/variants.md
+++ b/content/en/docs/v1.5/operations/configuration/variants.md
@@ -47,13 +47,13 @@ or need full manual control over installed packages.
[vm]: {{% ref "/docs/v1.5/virtualization" %}}
[k8s]: {{% ref "/docs/v1.5/kubernetes" %}}
[api]: {{% ref "/docs/v1.5/cozystack-api" %}}
-[monitoring subsystem]: {{% ref "/docs/v1.5/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.5/guides/platform-stack#drbd" %}}
-[kube-ovn]: {{% ref "/docs/v1.5/guides/platform-stack#kube-ovn" %}}
-[cilium]: {{% ref "/docs/v1.5/guides/platform-stack#cilium" %}}
-[kubevirt]: {{% ref "/docs/v1.5/guides/platform-stack#kubevirt" %}}
-[talos linux]: {{% ref "/docs/v1.5/guides/platform-stack#talos-linux" %}}
-[kubernetes]: {{% ref "/docs/v1.5/guides/platform-stack#kubernetes" %}}
+[monitoring subsystem]: {{% ref "/docs/v1.5/guides/platform-stack#observability" %}}
+[linstor]: {{% ref "/docs/v1.5/guides/platform-stack#storage-and-backup" %}}
+[kube-ovn]: {{% ref "/docs/v1.5/guides/platform-stack#networking" %}}
+[cilium]: {{% ref "/docs/v1.5/guides/platform-stack#networking" %}}
+[kubevirt]: {{% ref "/docs/v1.5/guides/platform-stack#cluster-provisioning-and-virtualization" %}}
+[talos linux]: {{% ref "/docs/v1.5/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
+[kubernetes]: {{% ref "/docs/v1.5/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
[kubernetes operators]: https://github.com/cozystack/cozystack/blob/main/packages/core/platform/templates/bundles/paas.yaml
[default]: {{% ref "/docs/v1.5/operations/configuration/variants#default" %}}
diff --git a/content/en/docs/v1.5/operations/faq/_index.md b/content/en/docs/v1.5/operations/faq/_index.md
index 03e25df3e..b55efb76d 100644
--- a/content/en/docs/v1.5/operations/faq/_index.md
+++ b/content/en/docs/v1.5/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.5/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.5/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.5/install/cozystack/platform#4b-node-public-ip-setup" %}}).
diff --git a/content/en/docs/v1.6/development.md b/content/en/docs/v1.6/development.md
index 966d84b2d..44676e5bd 100644
--- a/content/en/docs/v1.6/development.md
+++ b/content/en/docs/v1.6/development.md
@@ -217,7 +217,7 @@ Other examples of this pattern: `extra/ingress`, `extra/seaweedfs`, `extra/monit
Similar to `apps` but not shown in the application catalog. They can only be installed as part of a tenant.
They are allowed to use by bottom tenants installed in current tenant namespace.
-Read more about [Tenant System](/docs/guides/concepts/#tenant-system) on the Core Concepts page.
+Read more about [Tenant System]({{% ref "/docs/v1.6/guides/concepts#tenant" %}}) on the Core Concepts page.
It is possible to use only one application type within a single tenant namespace.
diff --git a/content/en/docs/v1.6/getting-started/create-tenant.md b/content/en/docs/v1.6/getting-started/create-tenant.md
index d626c4276..eea3b3434 100644
--- a/content/en/docs/v1.6/getting-started/create-tenant.md
+++ b/content/en/docs/v1.6/getting-started/create-tenant.md
@@ -39,7 +39,7 @@ Each tenant has its own set of applications and one or more nested Kubernetes cl
Tenant users have full access to their clusters.
Optionally, you can configure quotas for each tenant to limit resource usage and prevent overconsumption.
-To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.6/guides/concepts#tenant-system" %}}) guide.
+To learn more about tenants, read the [Core Concepts]({{% ref "/docs/v1.6/guides/concepts#tenant" %}}) guide.
## Create a Tenant
diff --git a/content/en/docs/v1.6/install/how-to/single-disk.md b/content/en/docs/v1.6/install/how-to/single-disk.md
index 3f3567537..f584b17ae 100644
--- a/content/en/docs/v1.6/install/how-to/single-disk.md
+++ b/content/en/docs/v1.6/install/how-to/single-disk.md
@@ -11,7 +11,7 @@ Default Talos setup assumes that each node has a primary and secondary disks, us
However, it's possible to use a single disk, allocating space for user storage.
This configuration must be applied with the first [`talosctl apply`]({{% ref "/docs/v1.6/install/kubernetes/talosctl#3-apply-node-configuration" %}})
-or [`talm apply`]({{% ref "/docs/v1.6/install/kubernetes/talm#3-apply-node-configuration" %}})
+or [`talm apply`]({{% ref "/docs/v1.6/install/kubernetes/talm#41-apply-configuration-files" %}})
— the one with the `-i` (`--insecure`) flag.
Applying changes after initialization will not have any effect.
diff --git a/content/en/docs/v1.6/introduction/_index.md b/content/en/docs/v1.6/introduction/_index.md
index 87915a60e..7c03ed9cf 100644
--- a/content/en/docs/v1.6/introduction/_index.md
+++ b/content/en/docs/v1.6/introduction/_index.md
@@ -24,7 +24,7 @@ Here they're bundled and tested to work together seamlessly.
The virtualization platform is also built-in and does not require additional hardware.
Instead, virtual machines run directly inside Kubernetes.
-Another powerful feature is the [tenant system]({{% ref "/docs/v1.6/guides/concepts#tenant-system" %}}).
+Another powerful feature is the [tenant system]({{% ref "/docs/v1.6/guides/concepts#tenant" %}}).
It allows you to isolate individual developers, teams, or even entire companies in their own fully functional spaces—all on the same hardware.
## Key features
@@ -36,7 +36,7 @@ The traditional approach of assigning each team a dedicated namespace can be too
Teams may need multiple environments with identical namespace names,
or they may lack the root permissions required to manage their own access models.
-Cozystack's [tenant system]({{% ref "/docs/v1.6/guides/concepts#tenant-system" %}}) solves these issues
+Cozystack's [tenant system]({{% ref "/docs/v1.6/guides/concepts#tenant" %}}) solves these issues
by allowing users to deploy a Kubernetes-in-Kubernetes environment with a single app.
Users of nested Kubernetes clusters have full access and control.
The quota system ensures optimal hardware utilization while isolating resources to prevent the “noisy neighbor” problem.
diff --git a/content/en/docs/v1.6/operations/configuration/variants.md b/content/en/docs/v1.6/operations/configuration/variants.md
index 11db28758..7b26a9c66 100644
--- a/content/en/docs/v1.6/operations/configuration/variants.md
+++ b/content/en/docs/v1.6/operations/configuration/variants.md
@@ -47,13 +47,13 @@ or need full manual control over installed packages.
[vm]: {{% ref "/docs/v1.6/virtualization" %}}
[k8s]: {{% ref "/docs/v1.6/kubernetes" %}}
[api]: {{% ref "/docs/v1.6/cozystack-api" %}}
-[monitoring subsystem]: {{% ref "/docs/v1.6/guides/platform-stack#victoria-metrics" %}}
-[linstor]: {{% ref "/docs/v1.6/guides/platform-stack#drbd" %}}
-[kube-ovn]: {{% ref "/docs/v1.6/guides/platform-stack#kube-ovn" %}}
-[cilium]: {{% ref "/docs/v1.6/guides/platform-stack#cilium" %}}
-[kubevirt]: {{% ref "/docs/v1.6/guides/platform-stack#kubevirt" %}}
-[talos linux]: {{% ref "/docs/v1.6/guides/platform-stack#talos-linux" %}}
-[kubernetes]: {{% ref "/docs/v1.6/guides/platform-stack#kubernetes" %}}
+[monitoring subsystem]: {{% ref "/docs/v1.6/guides/platform-stack#observability" %}}
+[linstor]: {{% ref "/docs/v1.6/guides/platform-stack#storage-and-backup" %}}
+[kube-ovn]: {{% ref "/docs/v1.6/guides/platform-stack#networking" %}}
+[cilium]: {{% ref "/docs/v1.6/guides/platform-stack#networking" %}}
+[kubevirt]: {{% ref "/docs/v1.6/guides/platform-stack#cluster-provisioning-and-virtualization" %}}
+[talos linux]: {{% ref "/docs/v1.6/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
+[kubernetes]: {{% ref "/docs/v1.6/guides/platform-stack#operating-system-and-kubernetes-runtime" %}}
[kubernetes operators]: https://github.com/cozystack/cozystack/blob/main/packages/core/platform/templates/bundles/paas.yaml
[default]: {{% ref "/docs/v1.6/operations/configuration/variants#default" %}}
diff --git a/content/en/docs/v1.6/operations/faq/_index.md b/content/en/docs/v1.6/operations/faq/_index.md
index b9b78b65e..75625c113 100644
--- a/content/en/docs/v1.6/operations/faq/_index.md
+++ b/content/en/docs/v1.6/operations/faq/_index.md
@@ -46,7 +46,7 @@ Most cloud providers don't support MetalLB.
Instead of using it, you can expose the main ingress controller using the external IPs method.
For deploying on Hetzner, follow the specialized [Hetzner installation guide]({{% ref "/docs/v1.6/install/providers/hetzner" %}}).
-For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.6/install/cozystack#4b-public-ip-setup" %}}).
+For other providers, follow the [Cozystack installation guide, Public IP Setup]({{% ref "/docs/v1.6/install/cozystack/platform#4b-node-public-ip-setup" %}}).