Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📖 Add dead link linter github workflow #5409

Merged
merged 2 commits into from
Oct 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/workflows/lint-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Check Markdown links

on:
push:
branches:
- main
paths:
- '**.md'
pull_request:
paths:
- '**.md'

jobs:
markdown-link-check:
name: Broken Links
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: .markdownlinkcheck.json
12 changes: 12 additions & 0 deletions .markdownlinkcheck.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"ignorePatterns": [
{
"pattern": "^http://localhost"
}
],
"timeout": "5s",
"retryOn429": true,
"retryCount": 5,
"fallbackRetryDelay": "30s",
"aliveStatusCodes": [200, 206]
}
2 changes: 1 addition & 1 deletion docs/book/src/clusterctl/provider-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ While defining the Deployment Spec, the container that executes the controller b

The manager MUST support a `--namespace` flag for specifying the namespace where the controller
will look for objects to reconcile; however, clusterctl will always install providers watching for all namespaces
(`--namespace=""`); for more details see [support for multiple instances](../../developer/architecture/controllers/support-multiple-instances.md)
(`--namespace=""`); for more details see [support for multiple instances](../developer/architecture/controllers/support-multiple-instances.md)
for more context.

#### Variables
Expand Down
2 changes: 1 addition & 1 deletion docs/book/src/developer/e2e.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ defined in the [Cluster API test framework] to check if the operation completed

### Naming the test spec

You can categorize the test with a custom label that can be used to filter a category of E2E tests to be run. Currently, the cluster-api codebase has [these labels](./testing.html#running-specific-tests) which are used to run a focused subset of tests.
You can categorize the test with a custom label that can be used to filter a category of E2E tests to be run. Currently, the cluster-api codebase has [these labels](./testing.md#running-specific-tests) which are used to run a focused subset of tests.

## Tear down

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ make manifests
```

[status]: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#status-subresource
[rbac]: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#customresourcesubresources-v1beta1-apiextensions-k8s-io
[rbac]: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#customresourcesubresources-v1beta1-apiextensions-k8s-io
[kbstatus]: https://book.kubebuilder.io/reference/generating-crd.html?highlight=status#status

### Apply further customizations
Expand Down
10 changes: 5 additions & 5 deletions docs/book/src/tasks/experimental-features/cluster-classes.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ The ClusterClass - first in the yaml below - contains references to the template
* DockerMachineTemplate
* KubeadmConfigTemplate

The full ClusterClass definition can also be found in the [CAPI repo](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/yamls/clusterclass.yaml).
The full ClusterClass definition can also be found in the [CAPI repo](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/experimental-features/yamls/clusterclass.yaml).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Links in this page are also being fixed in #5390, which is stuck due to CLA issues

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to let #5390 merge first if we can resolve the CLA issue. I had to fix all of them in here to get the test green.


<details><summary>ClusterClass</summary>

Expand All @@ -75,14 +75,14 @@ The full ClusterClass definition can also be found in the [CAPI repo](https://ra
To create the objects on your local cluster run:

```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/yamls/clusterclass.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/experimental-features/yamls/clusterclass.yaml
```

#### Enable networking for workload clusters

To make sure workload clusters come up with a functioning network a Kindnet ConfigMap with a Kindnet ClusterResourceSet is required. Kindnet only offers networking for Clusters built with Kind and CAPD. This can be substituted for any other networking solution for Kubernetes e.g. Calico as used in the Quickstart guide.

The kindnet configuration file can be found in the [CAPI repo](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/yamls/clusterclass.yaml).
The kindnet configuration file can be found in the [CAPI repo](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/experimental-features/yamls/clusterclass.yaml).

To create the resources run:
```bash
Expand All @@ -100,10 +100,10 @@ This is a Cluster definition that leverages the ClusterClass created above to de
```
</details>

Create the Cluster object from the file in [the CAPI repo](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/yamls/clusterclass-quickstart.yaml) with:
Create the Cluster object from the file in [the CAPI repo](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/experimental-features/yamls/clusterclass-quickstart.yaml) with:

```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/yamls/clusterclass-quickstart.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/book/src/tasks/experimental-features/yamls/clusterclass-quickstart.yaml
```

#### Verify the workload cluster is running
Expand Down
4 changes: 2 additions & 2 deletions docs/proposals/20191017-kubeadm-based-control-plane.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ Non-Goals listed in this document are intended to scope bound the current v1alph
- To manage etcd clusters in any topology other than stacked etcd (externally managed etcd clusters can still be leveraged).
- To address disaster recovery constraints, e.g. restoring a control plane from 0 replicas using a filesystem or volume snapshot copy of data persisted in etcd.
- To support rollbacks, as there is no data store rollback guarantee for Kubernetes. Consumers should perform backups of the cluster prior to performing potentially destructive operations.
- To mutate the configuration of live, running clusters (e.g. changing api-server flags), as this is the responsibility of the [component configuration working group](https://git.k8s.io/community/wg-component-standard).
- To provide configuration of external cloud providers (i.e. the [cloud-controller-manager](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/)).This is deferred to kubeadm.
- To mutate the configuration of live, running clusters (e.g. changing api-server flags), as this is the responsibility of the [component configuration working group](https://github.com/orgs/kubernetes/projects/26).
- To provide configuration of external cloud providers (i.e. the [cloud-controller-manager](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/)). This is deferred to kubeadm.
- To provide CNI configuration. This is deferred to external, higher level tooling.
- To provide the upgrade logic to handle changes to infrastructure (networks, firewalls etc…) that may need to be done to support a control plane on a newer version of Kubernetes (e.g. a cloud controller manager requires updated permissions against infrastructure APIs). We expect the work on [add-on components](https://git.k8s.io/community/sig-cluster-lifecycle#cluster-addons) to help to resolve some of these issues.
- To provide automation around the horizontal or vertical scaling of control plane components, especially as etcd places hard performance limits beyond 3 nodes (due to latency).
Expand Down
4 changes: 2 additions & 2 deletions docs/proposals/20200804-windows-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ There is prior art for building Windows base images. For example, AKS-Engine has
Another example is the the [sig-windows-tools](https://github.com/kubernetes-sigs/sig-windows-tools) which provide scripts for image configuration when using Kubeadm.

Although the Linux implementation in image-builder uses Ansible for configuration, Windows isn't going to share
the same configuration because [Ansible](https://docs.ansible.com/ansible/latest/user_guide/windows.html) requires [Windows specific modules](https://docs.ansible.com/ansible/latest/modules/list_of_windows_modules.html) to do the configuration.
the same configuration because [Ansible](https://docs.ansible.com/ansible/latest/user_guide/windows.html) requires [Windows specific modules](https://docs.ansible.com/ansible/2.9/modules/list_of_windows_modules.html) to do the configuration.

#### Kubelet and other component configuration

Expand All @@ -144,7 +144,7 @@ The conclusion of the [issue](https://github.com/kubernetes-sigs/cluster-api/iss

By leveraging cloudbase-init, an infrastructure provider implementation will require only a few changes which include:

- Make changes to their provider api to enable Windows OS infra machines ([example](https://github.com/ionutbalutoiu/cluster-api-provider-azure/commit/9c8daedac75959b141fec7ea909c2c1fd0bd484b))
- Make changes to their provider api to enable Windows OS infra machines ([example](https://github.com/kubernetes-sigs/cluster-api-provider-azure/pull/1036/commits/e753a32fccdf6b825b606f12bb1acd6e34a70339#diff-492149096931cdfde8cf61676230879e41cfdb1afeb74784cdf85bca2272a1be))
- Ensuring cloudbase-init is configured properly to read UserData which will contain the cloud-init script. Users must configure
[cloudbase-init with a metadata service](https://cloudbase-init.readthedocs.io/en/latest/services.html#configuring-available-services) that has support for [UserData](https://cloudbase-init.readthedocs.io/en/latest/userdata.html) ([example](https://cloudbase-init.readthedocs.io/en/latest/tutorial.html#configuration-file)).

Expand Down
2 changes: 1 addition & 1 deletion docs/proposals/YYYYMMDD-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ To get started with this template:
Aim for single topic PRs to keep discussions focused.
If you disagree with what is already in a document, open a new PR with suggested changes.

The canonical place for the latest set of instructions (and the likely source of this file) is [here](/docs/proposals/YYYYMMDD-template.md).
The canonical place for the latest set of instructions (and the likely source of this file) is [here](https://raw.githubusercontent.com/kubernetes-sigs/cluster-api/main/docs/proposals/YYYYMMDD-template.md).

The `Metadata` section above is intended to support the creation of tooling around the proposal process.
This will be a YAML section that is fenced as a code block.
Expand Down
2 changes: 1 addition & 1 deletion test/infrastructure/docker/exp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ In short, code in this subrepository is not subject to any compatibility or depr

Experiments follow a strict lifecycle: Alpha -> Beta prior to Graduation.

For more information on graduation criteria, see: [Contributing Guidelines](../CONTRIBUTING.md#experiments)
For more information on graduation criteria, see: [Contributing Guidelines](../../../../CONTRIBUTING.md#experiments)

## Active Features
DockerMachinePool (alpha)
Expand Down