From 5938740544d8a091f287499f82b284fb5d88be3b Mon Sep 17 00:00:00 2001 From: Karl Cardenas Date: Sun, 14 Apr 2024 15:15:19 -0700 Subject: [PATCH] chore: fix broken URLs (#2631) * chore: fix broken URLs * chore: broken URL --- Makefile | 19 +++++++++---- .../public-cloud/gcp/required-permissions.md | 2 +- .../devx/services/service-listings/mysql.md | 14 ++++------ .../devx/services/service-listings/vault.md | 4 +-- docs/docs-content/integrations/citrix-ipam.md | 4 +-- docs/docs-content/integrations/cloudanix.md | 2 +- docs/docs-content/integrations/falco.md | 2 +- docs/docs-content/integrations/longhorn.md | 28 ++++++++++++++++--- docs/docs-content/integrations/portworx.md | 6 ++-- .../integrations/portworx_operator.md | 8 +++--- .../integrations/prometheus-operator.md | 4 +-- 11 files changed, 58 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index bb4e3891a7..a538d34346 100644 --- a/Makefile +++ b/Makefile @@ -155,7 +155,7 @@ pdf-local: ## Generate PDF from local docs verify-url-links: @echo "Checking for broken external URLs in markdown files..." rm link_report.csv || echo "No report exists. Proceeding to scan step" - @npx linkinator "docs/**/*.md" --markdown --recurse --timeout 60000 --retry --retry-errors-count 3 \ + @npx linkinator "docs/**/*.md" --markdown --recurse --timeout 60000 --retry --retry-errors-jitter --retry-errors-count 3 \ --skip "^https:\/\/docs\.spectrocloud\.com.*$$" \ --skip "^https:\/\/docs\.spectrocloud\.com\/.*\/supplemental\-packs$$" \ --skip "^http:\/\/docs\.spectrocloud\.com.*$$" \ @@ -163,6 +163,9 @@ verify-url-links: --skip "^\/.*\.md$$" \ --skip "!\[.*\]\(.*\)$$" \ --skip "\.(jpg|jpeg|png|gif|webp)$$" \ + --skip "https:\/\/linux\.die\.net\/man\/.*$$" \ + --skip "https:\/\/mysql\.com\/.*\.*$$" \ + --skip "https:\/\/dev\.mysql\.com\/doc/\.*$$" \ --format csv > temp_report.csv && sleep 2 @grep -E 'https?://' temp_report.csv > filtered_report.csv @grep -E ',[[:space:]]*([4-9][0-9]{2}|[0-9]{4,}),' filtered_report.csv > link_report.csv && rm temp_report.csv filtered_report.csv @@ -171,10 +174,16 @@ verify-url-links-ci: ## Check for broken URLs in production in a GitHub Actions @echo "Checking for broken external URLs in CI environment..." rm link_report.json || echo "No report exists. Proceeding to scan step" @npx linkinator "docs/**/*.md" --markdown --recurse --timeout 60000 --retry --retry-errors-count 3 \ - --skip '^https:\/\/docs\.spectrocloud\.com.*' \ - --skip '^https:\/\/docs\.spectrocloud\.com\/.*\/supplemental\-packs' \ - --skip '^http:\/\/docs\.spectrocloud\.com.*' \ - --skip '^https:\/\/software-private\.spectrocloud\.com.*' \ + --skip "^https:\/\/docs\.spectrocloud\.com.*$$" \ + --skip "^https:\/\/docs\.spectrocloud\.com\/.*\/supplemental\-packs$$" \ + --skip "^http:\/\/docs\.spectrocloud\.com.*$$" \ + --skip "^https:\/\/software-private\.spectrocloud\.com.*$$" \ + --skip "^\/.*\.md$$" \ + --skip "!\[.*\]\(.*\)$$" \ + --skip "\.(jpg|jpeg|png|gif|webp)$$" \ + --skip "https:\/\/linux\.die\.net\/man\/.*$$" \ + --skip "https:\/\/mysql\.com\/.*\.*$$" \ + --skip "https:\/\/dev\.mysql\.com\/doc/\.*$$" \ --format json > temp_report.json @# Use jq to filter out links that do not start with http or https and keep only broken links @jq '[.links[] | select(.url | test("^https?://")) | select(.status >= 400)]' temp_report.json > filtered_report.json diff --git a/docs/docs-content/clusters/public-cloud/gcp/required-permissions.md b/docs/docs-content/clusters/public-cloud/gcp/required-permissions.md index 4bdc24c3be..e18b68dc0e 100644 --- a/docs/docs-content/clusters/public-cloud/gcp/required-permissions.md +++ b/docs/docs-content/clusters/public-cloud/gcp/required-permissions.md @@ -13,7 +13,7 @@ Ensure the following Google Cloud Platform (GCP) API services are enabled in you - [Cloud Resource Manager API](https://cloud.google.com/resource-manager/reference/rest) - [Compute Engine API](https://cloud.google.com/compute/docs/reference/rest/v1) -- [Kubernetes Engine API](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1) +- [Kubernetes Engine API](https://cloud.google.com/kubernetes-engine/docs/reference/rest) :::tip diff --git a/docs/docs-content/devx/services/service-listings/mysql.md b/docs/docs-content/devx/services/service-listings/mysql.md index 59705f2ab4..514e503f84 100644 --- a/docs/docs-content/devx/services/service-listings/mysql.md +++ b/docs/docs-content/devx/services/service-listings/mysql.md @@ -10,10 +10,9 @@ logoUrl: "https://registry.dev.spectrocloud.com/v1/mysql-operator/blobs/sha256:2 tags: ["devx", "app mode", "pde", "databases"] --- -[MySQL](https://www.mysql.com/) is an open-source relational database management system commonly used in web -applications and other software that requires a database. It is known for its reliability, ease of use, and flexibility. -MySQL is covered under the GNU license and uses structured query language (SQL) to manage data with the following -properties: +[MySQL](https://mysql.com/) is an open-source relational database management system commonly used in web applications +and other software that requires a database. It is known for its reliability, ease of use, and flexibility. MySQL is +covered under the GNU license and uses structured query language (SQL) to manage data with the following properties: - Creates a database for storing and manipulating data and defining the relationship of each table. @@ -120,17 +119,14 @@ kubectl get secret app-tarfful-mysql-2-user \ #### Output ```shell hideClipboard -,U31nQ@T2tN4uM +**************** ``` ## Next Steps You can add MySQL to your application profile and start integrating MySQL with your applications. To learn more about -integrating MySQL with your applications, check out the [MySQL](https://redis.io/docs/manual/) documentation from -Oracle. +integrating MySQL with your applications, check out the [MySQL](https://dev.mysql.com/doc/) documentation from Oracle. ## Resources - [MySQL Documentation](https://dev.mysql.com/doc/) - -- [MySQL Tutorial](https://dev.mysql.com/doc/refman/8.0/en/tutorial.html) diff --git a/docs/docs-content/devx/services/service-listings/vault.md b/docs/docs-content/devx/services/service-listings/vault.md index 82eb8c2957..2859d3bedc 100644 --- a/docs/docs-content/devx/services/service-listings/vault.md +++ b/docs/docs-content/devx/services/service-listings/vault.md @@ -22,7 +22,7 @@ Vault also tracks who has accessed which secrets and when, making it easier to m govern access to secrets, automate application delivery, and consume secrets programmatically. Vault is deployed behind the scenes through the use of the -[Bank-Vaults Vault Operator Helm Chart](https://github.com/banzaicloud/bank-vaults/tree/main/charts/vault-operator). +[Bank-Vaults Vault Operator Helm Chart](https://github.com/bank-vaults/bank-vaults).
@@ -200,4 +200,4 @@ integrating Vault with your applications, check out the - [HashiCorp Vault Tutorial](https://developer.hashicorp.com/vault/tutorials) -- [Bank-Vaults Vault Operator Helm Chart](https://github.com/banzaicloud/bank-vaults/tree/main/charts/vault-operator) +- [Bank-Vaults Vault Operator Helm Chart](https://github.com/bank-vaults/vault-helm-chart) diff --git a/docs/docs-content/integrations/citrix-ipam.md b/docs/docs-content/integrations/citrix-ipam.md index 27302359d9..fe2fdc0d4c 100644 --- a/docs/docs-content/integrations/citrix-ipam.md +++ b/docs/docs-content/integrations/citrix-ipam.md @@ -46,6 +46,6 @@ Integration deploys the following components: ## References -- [Citrix IPAM Controller](https://developer-docs.citrix.com/projects/citrix-k8s-ingress-controller/en/latest/crds/vip) +- [Citrix IPAM Controller](https://docs.netscaler.com/en-us/netscaler-k8s-ingress-controller/configure/ipam-for-ingress.html) -- [Citrix Ingress controller](https://developer-docs.citrix.com/projects/citrix-k8s-ingress-controller/en/latest/network/type_loadbalancer/#expose-services-of-type-loadbalancer-using-an-ip-address-from-the-citrix-ipam-controller) +- [Citrix Ingress controller](https://docs.netscaler.com/en-us/netscaler-k8s-ingress-controller/#expose-services-of-type-loadbalancer-using-an-ip-address-from-the-citrix-ipam-controller) diff --git a/docs/docs-content/integrations/cloudanix.md b/docs/docs-content/integrations/cloudanix.md index 2af09cdb3a..c827ef97f0 100644 --- a/docs/docs-content/integrations/cloudanix.md +++ b/docs/docs-content/integrations/cloudanix.md @@ -130,4 +130,4 @@ data "spectrocloud_pack_simple" "cloudanix" { ## References -- [Cloudanix Documentation](https://docs.cloudanix.com/introduction) +- [Cloudanix Documentation](https://www.cloudanix.com/docs/introduction) diff --git a/docs/docs-content/integrations/falco.md b/docs/docs-content/integrations/falco.md index 49e59820ac..15787d9a98 100644 --- a/docs/docs-content/integrations/falco.md +++ b/docs/docs-content/integrations/falco.md @@ -39,4 +39,4 @@ use Falco to monitor the run-time security of your Kubernetes applications and i ## References -- [Falco Helm Chart GitHub](https://github.com/falcosecurity/charts/tree/master/falco) +- [Falco Helm Chart GitHub](https://github.com/falcosecurity/charts/tree/master/charts/falco) diff --git a/docs/docs-content/integrations/longhorn.md b/docs/docs-content/integrations/longhorn.md index 95b7aa559c..09376891c4 100644 --- a/docs/docs-content/integrations/longhorn.md +++ b/docs/docs-content/integrations/longhorn.md @@ -50,8 +50,18 @@ Longhorn provides these features: - Backup to secondary storage (NFSv4 or S3-compatible object storage) built on change block detection. - Recurring snapshot and backup. -For more information, check out Longhorn guide on -[How to Create Volumes](https://longhorn.io/docs/1.4.0/volumes-and-nodes/create-volumes/). +- [Access the Longhorn UI](https://longhorn.io/docs/latest/deploy/accessing-the-ui/#accessing-the-longhorn-ui) + +- [Longhorn Networking](https://longhorn.io/docs/1.4.4/references/networking/) + +- [Node Maintenance and Kubernetes Upgrade Guide](https://longhorn.io/docs/1.4.4/volumes-and-nodes/maintenance/) + +- [Storage Tags](https://longhorn.io/docs/1.4.4/volumes-and-nodes/storage-tags/) + +- [Important Notes](https://longhorn.io/docs/1.4.4/deploy/important-notes/) + +We also recommend you check out the [Examples](https://longhorn.io/docs/1.4.4/references/examples/) section of the +Longhorn documentation. The examples section contains several use cases of how to configure Longhorn. @@ -84,8 +94,18 @@ Longhorn provides these features: - Backup to secondary storage (NFSv4 or S3-compatible object storage) built on change block detection. - Recurring snapshot and backup. -For more information, check out Longhorn guide on -[How to Create Volumes](https://longhorn.io/docs/1.4.0/volumes-and-nodes/create-volumes/). +- [Access the Longhorn UI](https://longhorn.io/docs/latest/deploy/accessing-the-ui/#accessing-the-longhorn-ui) + +- [Longhorn Networking](https://longhorn.io/docs/1.4.4/references/networking/) + +- [Node Maintenance and Kubernetes Upgrade Guide](https://longhorn.io/docs/1.4.4/volumes-and-nodes/maintenance/) + +- [Storage Tags](https://longhorn.io/docs/1.4.4/volumes-and-nodes/storage-tags/) + +- [Important Notes](https://longhorn.io/docs/1.4.4/deploy/important-notes/) + +We also recommend you check out the [Examples](https://longhorn.io/docs/1.4.4/references/examples/) section of the +Longhorn documentation. The examples section contains several use cases of how to configure Longhorn. diff --git a/docs/docs-content/integrations/portworx.md b/docs/docs-content/integrations/portworx.md index bf57c1918f..49f6a2aa5b 100644 --- a/docs/docs-content/integrations/portworx.md +++ b/docs/docs-content/integrations/portworx.md @@ -72,7 +72,7 @@ The default installation of Portworx will deploy the following components in the - [Lighthouse](https://legacy-docs.portworx.com/enterprise/lighthouse-new) - [Stork](https://github.com/libopenstorage/stork) and - [Stork on Portworx](https://docs.portworx.com/portworx-install-with-kubernetes/storage-operations/stork/) + [Stork on Portworx](https://docs.portworx.com/portworx-enterprise/platform/openshift/ocp-gcp/operations/storage-operations/stork.html) - Storage class making use of portworx-volume provisioner. @@ -527,8 +527,6 @@ manifests: - [Portworx Install with Kubernetes](https://docs.portworx.com/portworx-install-with-kubernetes/) -- [Lighthouse](https://legacy-docs.portworx.com/enterprise/lighthouse-new.html) - - [Installation Prerequisites](https://docs.portworx.com/install-portworx/prerequisites/) -- [Install Portworx on AWS ASG using the DaemonSet](https://docs.portworx.com/install-portworx/cloud/aws/aws-asg/daemonset/) +- [Install Portworx on AWS ASG](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/aws/aws-asg) diff --git a/docs/docs-content/integrations/portworx_operator.md b/docs/docs-content/integrations/portworx_operator.md index a7f20102cc..70b38b161f 100644 --- a/docs/docs-content/integrations/portworx_operator.md +++ b/docs/docs-content/integrations/portworx_operator.md @@ -533,7 +533,7 @@ vsphereSecret: To activate the Pure Flash Array integration, you will need to create a Kubernetes secret named `px-pure-secret` on your cluster containing your -[Flash Array license JSON](https://docs.portworx.com/portworx-enterprise/cloud-references/auto-disk-provisioning/pure-flash-array.html#deploy-portworx). +[Flash Array license JSON](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/install-flasharray.html#create-a-json-configuration-file). The secret must be created in the namespace that contains the `StorageCluster` resource. The namespace is `portworx` by default. @@ -1142,7 +1142,7 @@ vsphereSecret: To activate the Pure Flash Array integration, you will need to create a Kubernetes secret named `px-pure-secret` on your cluster containing your -[Flash Array license JSON](https://docs.portworx.com/portworx-enterprise/cloud-references/auto-disk-provisioning/pure-flash-array.html#deploy-portworx). +[Flash Array license JSON](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/install-flasharray.html#create-a-json-configuration-file). The secret must be created in the namespace that contains the `StorageCluster` resource. The namespace is `kube-system` by default. @@ -1733,7 +1733,7 @@ vsphereSecret: To activate the Pure Flash Array integration, you will need to create a Kubernetes secret named `px-pure-secret` on your cluster containing your -[Flash Array license JSON](https://docs.portworx.com/portworx-enterprise/cloud-references/auto-disk-provisioning/pure-flash-array.html#deploy-portworx). +[Flash Array license JSON](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/install-flasharray.html#create-a-json-configuration-file). The secret must be created in the namespace that contains the `StorageCluster` resource. The namespace is `kube-system` by default. @@ -1916,4 +1916,4 @@ data "spectrocloud_pack_simple" "portworx-operator" { - [Portworx Central](https://docs.portworx.com/portworx-central-on-prem/install/px-central.html) -- [Flash Array License JSON](https://docs.portworx.com/portworx-enterprise/cloud-references/auto-disk-provisioning/pure-flash-array.html#deploy-portworx) +- [Flash Array License JSON](https://docs.portworx.com/portworx-enterprise/install-portworx/kubernetes/install-flasharray.html#create-a-json-configuration-file) diff --git a/docs/docs-content/integrations/prometheus-operator.md b/docs/docs-content/integrations/prometheus-operator.md index 866e205839..0b0c16e044 100644 --- a/docs/docs-content/integrations/prometheus-operator.md +++ b/docs/docs-content/integrations/prometheus-operator.md @@ -906,7 +906,7 @@ The Prometheus Operator pack installs the following dependencies: ## Parameters The Prometheus operator supports all the parameters exposed by the kube-prometheus-stack Helm Chart. Refer to the -[kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stackn) +[kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) documentation for details. The Prometheus Operator pack has one parameter you must initialize `grafana.adminPassword`: @@ -1055,7 +1055,7 @@ The Prometheus Operator pack installs the following dependencies: ## Parameters The Prometheus operator supports all the parameters exposed by the kube-prometheus-stack Helm Chart. Refer to the -[kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stackn) +[kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) documentation for details. The Prometheus Operator pack has one parameter you must initialize `grafana.adminPassword`: