Skip to content

Commit 541307c

Browse files
authored
[CI & docs] Set up link checker + GH action + fix en links (cncf#3188)
Signed-off-by: Patrice Chalin <[email protected]>
1 parent 2f38957 commit 541307c

12 files changed

+144
-32617
lines changed

.github/workflows/check-links.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Links
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
build-and-check-links:
8+
name: CHECK LINKS
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-node@v4
13+
with:
14+
node-version-file: .nvmrc
15+
cache: npm
16+
cache-dependency-path: package.json
17+
- run: npm install --omit=optional
18+
- run: npm run check:links

.gitignore

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11

2-
public/
3-
resources/
4-
node_modules/
5-
.hugo_build.lock
62
.DS_Store
3+
.hugo_build.lock
4+
/public
5+
/resources
6+
node_modules/
7+
package-lock.json
78
pagefind
9+
tmp/
810

911
# Local Netlify folder
1012
.netlify

.htmltest.yml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# cSpell:ignore pagefind regexs
2+
DirectoryPath: public
3+
# IgnoreDirectoryMissingTrailingSlash: true # FIXME
4+
IgnoreInternalEmptyHash: true # FIXME
5+
IgnoreDirs:
6+
- ^(bn|de|es|fr|hi|it|ja|ko|pt.*?|ru|tr|ur|zh.*?)/
7+
IgnoreURLs: # list of regexs of paths or URLs to be ignored
8+
- ^/pagefind

.nvmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lts/*

Makefile

+27-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
1+
HTMLTEST_DIR=tmp
2+
HTMLTEST?=htmltest # Specify as make arg if different
3+
HTMLTEST_ARGS?=--skip-external
4+
5+
# Use $(HTMLTEST) in PATH, if available; otherwise, we'll get a copy
6+
ifeq (, $(shell which $(HTMLTEST)))
7+
override HTMLTEST=$(HTMLTEST_DIR)/bin/htmltest
8+
ifeq (, $(shell which $(HTMLTEST)))
9+
GET_LINK_CHECKER_IF_NEEDED=get-link-checker
10+
endif
11+
endif
12+
13+
check-links: $(GET_LINK_CHECKER_IF_NEEDED)
14+
$(HTMLTEST) $(HTMLTEST_ARGS)
15+
16+
clean:
17+
rm -rf $(HTMLTEST_DIR) public/* resources
18+
19+
get-link-checker:
20+
rm -Rf $(HTMLTEST_DIR)/bin
21+
curl https://htmltest.wjdp.uk | bash -s -- -b $(HTMLTEST_DIR)/bin
22+
123
serve:
2-
hugo server \
24+
npx hugo server \
325
--disableFastRender \
426
--buildDrafts \
527
--buildFuture \
@@ -13,16 +35,15 @@ serve:
1335
--gc
1436

1537
production-build:
16-
git submodule update --init --recursive
17-
hugo \
18-
--minify
38+
npm run get:submodule
39+
npx hugo --minify
1940
npx -y pagefind --site public
2041

2142
preview-build:
2243
git submodule update --init --recursive
23-
hugo \
44+
npx hugo \
2445
--baseURL $(DEPLOY_PRIME_URL) \
2546
--buildDrafts \
2647
--buildFuture \
2748
--minify
28-
npx -y pagefind --site public
49+
npx -y pagefind --site public

README.md

+11-13
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@ If you'd like to help with the glossary we'd love to have your contributions! Pl
1313
## Acknowledgements
1414

1515
The Cloud Native Glossary was initiated by the CNCF Marketing Committee
16-
(Business Value Subcommittee) and includes contributions from
17-
[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/),
18-
[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/),
19-
[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk),
20-
[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/),
21-
[Katelin Ramer](https://www.linkedin.com/in/katelinramer/),
22-
[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca),
23-
and many more contributors.
16+
(Business Value Subcommittee) and includes contributions from
17+
[Catherine Paganini](https://www.linkedin.com/in/catherinepaganini/en/),
18+
[Chris Aniszczyk](https://www.linkedin.com/in/caniszczyk/),
19+
[Daniel Jones](https://www.linkedin.com/in/danieljoneseb/?originalSubdomain=uk),
20+
[Jason Morgan](https://www.linkedin.com/in/jasonmorgan2/),
21+
[Katelin Ramer](https://www.linkedin.com/in/katelinramer/),
22+
[Mike Foster](https://www.linkedin.com/in/mfosterche/?originalSubdomain=ca),
23+
and many more contributors.
2424
For a complete contributor list, please refer to [this GitHub page](https://github.com/cncf/glossary/graphs/contributors).
2525

26-
The Glossary is maintained by
26+
The Glossary is maintained by
2727
[Seokho Son](https://www.linkedin.com/in/seokho-son/),
28-
[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/),
28+
[Noah Ispas](https://www.linkedin.com/in/noah-ispas-0665b42a/),
2929
[Jihoon Seo](https://www.linkedin.com/in/jihoon-seo/),
3030
[Nate W.](https://www.linkedin.com/in/nate-double-u/),
3131
and [Jorge Castro](https://www.linkedin.com/in/jorge-castro2112/).
@@ -43,10 +43,8 @@ All code contributions are under the Apache 2.0 license. Documentation is distri
4343

4444
To improve the Cloud Native Glossary site itself, install a local copy with these instructions. Note you must have [npm](https://www.npmjs.com/) and [Hugo](https://gohugo.io/) installed.
4545

46-
```
46+
```sh
4747
git clone https://github.com/cncf/glossary.git
48-
cd glossary
49-
git submodule update --init --recursive
5048
npm install
5149
```
5250

content/en/container-orchestration.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ status: Completed
44
category: Concept
55
---
66

7-
[Container](/container/) orchestration refers to managing and automating the lifecycle of [containerized](/containerization/) applications in dynamic environments.
8-
It's executed through a container orchestrator (in most cases, [Kubernetes](/kubernetes)), which enables deployments, (auto)scaling, auto-healing, and monitoring.
7+
[Container](/container/) orchestration refers to managing and automating the lifecycle of [containerized](/containerization/) applications in dynamic environments.
8+
It's executed through a container orchestrator (in most cases, [Kubernetes](/kubernetes/)), which enables deployments, (auto)scaling, auto-healing, and monitoring.
99
Orchestration is a metaphor:
10-
The orchestration tool conducts containers like a music conductor, ensuring every container (or musician) does what it should.
10+
The orchestration tool conducts containers like a music conductor, ensuring every container (or musician) does what it should.
1111

12-
## Problem it addresses
12+
## Problem it addresses
1313

14-
Managing [microservices](/microservices), security, and network communication at scale — and [distributed systems](/distributed-systems) in general — is hard, if not impossible, to manage manually.
15-
Container orchestration allows users to automate all these management tasks.
14+
Managing [microservices](/microservices-architecture/), security, and network communication at scale — and [distributed systems](/distributed-systems/) in general — is hard, if not impossible, to manage manually.
15+
Container orchestration allows users to automate all these management tasks.
1616

1717
## How it helps
1818

19-
Container orchestration tools allow users to determine a system's state.
19+
Container orchestration tools allow users to determine a system's state.
2020
First, they declare how it should look like (e.g., x containers, y pods, etc.).
21-
The orchestration tool will then automatically monitor the infrastructure and correct it if its state deviates from the declared one (e.g., spin up a new container if one crashes).
21+
The orchestration tool will then automatically monitor the infrastructure and correct it if its state deviates from the declared one (e.g., spin up a new container if one crashes).
2222
This automation simplifies many of the engineering teams' otherwise highly manual and complex operational tasks, including provisioning, deployment, scaling (up and down), networking, load balancing, and other activities.

content/en/loosely-coupled-architecture.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ category: Property
55
tags: ["fundamental", "architecture", "property"]
66
---
77

8-
Loosely coupled architecture is an architectural style
9-
where the individual components of an application are built independently from one another
10-
(the opposite paradigm of [tightly coupled architectures](/tightly-coupled-architectures/)).
11-
Each component, sometimes referred to as a [microservice](/microservices-architecture/), is built to perform a specific function
12-
in a way that can be used by any number of other services.
13-
This pattern is generally slower to implement than tightly coupled architecture
8+
Loosely coupled architecture is an architectural style
9+
where the individual components of an application are built independently from one another
10+
(the opposite paradigm of [tightly coupled architectures](/tightly-coupled-architecture/)).
11+
Each component, sometimes referred to as a [microservice](/microservices-architecture/), is built to perform a specific function
12+
in a way that can be used by any number of other services.
13+
This pattern is generally slower to implement than tightly coupled architecture
1414
but has a number of benefits, particularly as applications scale.
1515

16-
Loosely coupled applications allow teams to develop features, deploy, and scale independently,
17-
which allows organizations to iterate quickly on individual components.
18-
Application development is faster and teams can be structured around their competency,
19-
focusing on their specific application.
16+
Loosely coupled applications allow teams to develop features, deploy, and scale independently,
17+
which allows organizations to iterate quickly on individual components.
18+
Application development is faster and teams can be structured around their competency,
19+
focusing on their specific application.

content/en/microservices-architecture.md

+16-16
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,31 @@ tags: ["architecture", "fundamental", ""]
55
---
66

77
A microservices architecture is an architectural approach that breaks applications into individual independent (micro)[services](/service/), with each service focused on a specific functionality.
8-
These services work together closely, appearing to the end user as a single entity.
9-
Take Netflix as an example.
10-
Its interface allows you to access, search, and preview videos.
8+
These services work together closely, appearing to the end user as a single entity.
9+
Take Netflix as an example.
10+
Its interface allows you to access, search, and preview videos.
1111
These capabilities are likely powered by smaller services that each handle one functionality, e.g., authentication, search, and running previews in your browser.
1212

1313
This architectural approach allows developers to push out new features or update functionality much faster than if they were all tightly coupled, such as in a [monolithic application](/monolithic-apps/) (more to that below).
1414

1515
## Problem it addresses
1616

17-
Applications are made up of different parts, each responsible for a specific capability.
18-
Demand for a particular functionality will not necessarily increase or decrease with demand for other app parts.
19-
Going back to our Netflix example.
20-
Let's say that after a big marketing campaign, Netflix experiences a big spike in signups, but streaming has remained more or less stable in the early hours of the day.
21-
The surge in signups demands more signup capacity.
22-
Traditionally (monolithic approach), the entire app would have to be [scaled](/scalability/) to accommodate the increase — a very inefficient use of resources.
17+
Applications are made up of different parts, each responsible for a specific capability.
18+
Demand for a particular functionality will not necessarily increase or decrease with demand for other app parts.
19+
Going back to our Netflix example.
20+
Let's say that after a big marketing campaign, Netflix experiences a big spike in signups, but streaming has remained more or less stable in the early hours of the day.
21+
The surge in signups demands more signup capacity.
22+
Traditionally (monolithic approach), the entire app would have to be [scaled](/scalability/) to accommodate the increase — a very inefficient use of resources.
2323

24-
Monolithic architectures also make it easy for developers to succumb to design pitfalls.
25-
Because all the code is in one place, it is easier to make that code [tightly coupled](/tightly-coupled-architectures/) and harder to enforce the principle of separation of concerns.
26-
Monoliths also often require developers to understand the entire codebase before deploying any changes.
27-
Microservices architecture is a response to these challenges.
24+
Monolithic architectures also make it easy for developers to succumb to design pitfalls.
25+
Because all the code is in one place, it is easier to make that code [tightly coupled](/tightly-coupled-architecture/) and harder to enforce the principle of separation of concerns.
26+
Monoliths also often require developers to understand the entire codebase before deploying any changes.
27+
Microservices architecture is a response to these challenges.
2828

2929

3030
## How it helps
3131

32-
Separating functionality into different microservices makes them easier to deploy, update, and scale independently.
33-
It also allows different teams to work simultaneously on a small part of a bigger application without inadvertently negatively impacting the rest of the app.
34-
While a microservices architecture solves many problems, it also creates operational overhead — the things you need to deploy and keep track of increase by order of magnitude.
32+
Separating functionality into different microservices makes them easier to deploy, update, and scale independently.
33+
It also allows different teams to work simultaneously on a small part of a bigger application without inadvertently negatively impacting the rest of the app.
34+
While a microservices architecture solves many problems, it also creates operational overhead — the things you need to deploy and keep track of increase by order of magnitude.
3535
Many [cloud-native technologies](/cloud-native-tech/) aim to make microservices easier to deploy and manage.

content/en/stateful-apps.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ category: Property
55
tags: ["fundamental", "application", "property"]
66
---
77

8-
When we speak of stateful (and [stateless](/stateless-apps/)) apps,
9-
state refers to any data the app needs to store to function as designed.
10-
Any kind of online shop that remembers your cart is a stateful app for example.
8+
When we speak of stateful (and [stateless](/stateless-apps/)) apps,
9+
state refers to any data the app needs to store to function as designed.
10+
Any kind of online shop that remembers your cart is a stateful app for example.
1111

12-
Today, most applications we use are at least partly stateful. In cloud native environments though,
13-
stateful apps are a challenge. This is because [cloud native apps](/cloud-native-apps) are very dynamic.
12+
Today, most applications we use are at least partly stateful. In cloud native environments though,
13+
stateful apps are a challenge. This is because [cloud native apps](/cloud-native-apps/) are very dynamic.
1414
They can be scaled up and down, restarted, and moved around but still need to be able to access their state.
1515

1616
Therefore, stateful apps needs some kind of storage that is accessible from anywhere, like databases.

0 commit comments

Comments
 (0)