Skip to content

Commit d40ceb6

Browse files
docs: Document compatibility scraping (#431)
* add new page * codegen * update routes * update routes * add content * add docs for observer compatibility updates --------- Co-authored-by: michaeljguarino <[email protected]>
1 parent 5e52511 commit d40ceb6

File tree

6 files changed

+70
-2
lines changed

6 files changed

+70
-2
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ help:
44
@perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
55

66
yarn-install: .PHONY
7-
yarn
7+
yarn --immutable
88

99
web: ## runs the docs site locally
1010
yarn dev

generated/routes.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@
127127
"relPath": "/plural-features/k8s-upgrade-assistant/upgrade-insights.md",
128128
"lastmod": "2025-03-12T14:59:41.000Z"
129129
},
130+
"/plural-features/k8s-upgrade-assistant/addon-compatibilities": {
131+
"relPath": "/plural-features/k8s-upgrade-assistant/addon-compatibilities.md",
132+
"lastmod": "2025-03-13T09:28:46.000Z"
133+
},
130134
"/plural-features/stacks-iac-management": {
131135
"relPath": "/plural-features/stacks-iac-management/index.md",
132136
"lastmod": "2025-03-12T14:59:41.000Z"
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: Add-on compatibilities
3+
description: Keep your add-ons compatible with next Kubernetes version
4+
---
5+
6+
Ensuring add-on compatibility across different Kubernetes versions can be challenging as it requires careful planning,
7+
thorough testing, and continuous maintenance to address the evolving nature of Kubernetes and its ecosystem.
8+
Learn how Plural can assist you in that process.
9+
10+
# Compatibility scraping
11+
Plural helps in ensuring that all known third-party add-ons are compatible with the next Kubernetes version
12+
by systematically scraping multiple sources for compatibility information. This includes gathering data from
13+
official documentations, GitHub repositories, and other relevant sources. By consolidating this information,
14+
we create a comprehensive database of add-on compatibility details.
15+
16+
# Checking add-on compatibilities
17+
Add-on compatibility data is then made accessible through the Plural Console, where you can easily check
18+
the compatibility status of your add-ons with upcoming Kubernetes versions. This proactive approach helps
19+
to avoid potential issues caused by API changes and other version-specific nuances, ensuring a smoother
20+
transition to newer Kubernetes releases.
21+
22+
![addon-compatibilities](/assets/deployments/addon-compatibilities.png)
23+
24+
![addon-compatibilities-details.png](/assets/deployments/addon-compatibilities-details.png)
25+
26+
# Automating Deployments on Newly Discovered Add-On Versions
27+
28+
Plural's [Observer](https://docs.plural.sh/getting-started/how-to-use/pipelines#use-an-observer-to-automate-pipeline-context-creation-extra-credit) has the ability to automatically scrape our compatibility tables and generate PRs or Pipeline Runs whenever a new version is discovered that is compatible with a provided kubernetes version set. It's probably easiest to simply look at an example:
29+
30+
```yaml
31+
apiVersion: deployments.plural.sh/v1alpha1
32+
kind: Observer
33+
metadata:
34+
name: ingress-nginx
35+
spec:
36+
crontab: "*/5 * * * *"
37+
initial: 4.8.0
38+
target:
39+
order: SEMVER
40+
type: ADDON
41+
addon:
42+
name: ingress-nginx
43+
kubernetesVersions:
44+
- "1.28"
45+
- "1.29"
46+
- "1.30"
47+
actions:
48+
- type: PIPELINE
49+
configuration:
50+
pipeline:
51+
pipelineRef:
52+
name: ingress-nginx
53+
namespace: infra
54+
context:
55+
name: ingress-nginx
56+
version: $value
57+
```
58+
59+
This will scrape the tables for (Ingress NGINX)[https://github.com/kubernetes/ingress-nginx] that are compatible with all of kubernetes versions 1.28, 1.29, and 1.30 and create a pipeline context to bounce the pipeline we've defined to deploy it across dev and prod. This makes it very easy to trace an upgrade path across multiple versions with very little manual effort besides at most approving PRs.
60+
61+
Observers are a lot more flexible, and can also call PR automations that can trigger your own deployment automation on merge as well.
444 KB
Loading
579 KB
Loading

src/routing/docs-structure.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@ export const docsStructure: DocSection[] = [
8787
{
8888
path: 'k8s-upgrade-assistant',
8989
title: 'Plural upgrade assistant',
90-
sections: [{ path: 'upgrade-insights', title: 'Upgrade Insights' }],
90+
sections: [
91+
{ path: 'upgrade-insights', title: 'Upgrade insights' },
92+
{ path: 'addon-compatibilities', title: 'Add-on compatibilities' },
93+
],
9194
},
9295
{
9396
path: 'stacks-iac-management',

0 commit comments

Comments
 (0)