Skip to content

Commit a0fdf7e

Browse files
feat: add support for custom registry on 1.28 and prepare v1.28.4 release (#259)
* feat: add support for custom registry on 1.28 * docs: add 1.27.9 release docs * docs: change upgrade docs link * feat: prepare v1.28.4 release * docs: apply suggestions * docs(schemas): add description for grafana's advanced configuration * docs(schema): improve Pomerium documentation * chore(ci/linting): allow bare URLs in markdown * chore: add missing new line * tests: use latest fury --------- Co-authored-by: Ramiro Algozino <ramiro@sighup.io>
1 parent 1daa8b8 commit a0fdf7e

24 files changed

+1631
-332
lines changed

.drone.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ steps:
157157
environment:
158158
CLUSTER_NAME: ${DRONE_REPO_NAME}-${DRONE_BUILD_NUMBER}
159159
KUBECONFIG: /drone/src/kubeconfig
160-
FURYCTL_VERSION: v0.29.5-rc.2
160+
FURYCTL_VERSION: v0.29.7-rc.0
161161
depends_on: [create Kind cluster]
162162
commands:
163163
- export KUBECONFIG=/drone/src/kubeconfig
@@ -196,7 +196,7 @@ volumes:
196196
host:
197197
path: /var/run/docker.sock
198198
---
199-
name: e2e-kubernetes-1.28.0-1.28.1-1.28.2-1.28.3
199+
name: e2e-kubernetes-1.28.0-1.28.1-1.28.2-1.28.3-1.28.4
200200
kind: pipeline
201201
type: docker
202202

@@ -261,7 +261,7 @@ steps:
261261
environment:
262262
CLUSTER_NAME: ${DRONE_REPO_NAME}-${DRONE_BUILD_NUMBER}-upgrades
263263
KUBECONFIG: /drone/src/kubeconfig-upgrades
264-
FURYCTL_VERSION: v0.29.5-rc.2
264+
FURYCTL_VERSION: v0.29.7-rc.0
265265
depends_on: [create Kind cluster]
266266
commands:
267267
- export KUBECONFIG=/drone/src/kubeconfig-upgrades
@@ -306,7 +306,7 @@ type: docker
306306

307307
depends_on:
308308
- e2e-kubernetes-1.28
309-
- e2e-kubernetes-1.28.0-1.28.1-1.28.2-1.28.3
309+
- e2e-kubernetes-1.28.0-1.28.1-1.28.2-1.28.3-1.28.4
310310

311311
platform:
312312
os: linux

.rules/.markdown-lint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ MD026:
3232
punctuation: ".,;:!。,;:" # List of not allowed
3333
MD029: false # Ordered list item prefix
3434
MD033: false # Allow inline HTML
35+
MD034: false # Allow bare-URLs in Markdown, GitHub and Docusaurus support them
3536
MD036: false # Emphasis used instead of a heading
3637
MD041: false
3738

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<p align="center">Kubernetes Fury Distribution (KFD) is a certified battle-tested Kubernetes distribution based purely on upstream Kubernetes.</p>
88
<!-- markdownlint-enable MD033 MD045 -->
99

10-
[![Build Status](http://ci.sighup.io/api/badges/sighupio/fury-distribution/status.svg?ref=refs/tags/v1.28.3)](http://ci.sighup.io/sighupio/fury-distribution)
11-
[![Release](https://img.shields.io/badge/release-v1.28.3-blue?label=FuryDistributionRelease)](https://github.com/sighupio/fury-distribution/releases/latest)
10+
[![Build Status](http://ci.sighup.io/api/badges/sighupio/fury-distribution/status.svg?ref=refs/tags/v1.28.4)](http://ci.sighup.io/sighupio/fury-distribution)
11+
[![Release](https://img.shields.io/badge/release-v1.28.4-blue?label=FuryDistributionRelease)](https://github.com/sighupio/fury-distribution/releases/latest)
1212
[![Slack](https://img.shields.io/badge/slack-@kubernetes/fury-yellow.svg?logo=slack)](https://kubernetes.slack.com/archives/C0154HYTAQH)
1313
[![License](https://img.shields.io/github/license/sighupio/fury-distribution)](https://github.com/sighupio/fury-distribution/blob/main/LICENSE)
1414

@@ -131,7 +131,7 @@ Current supported versions of KFD are:
131131
| KFD Version | Kubernetes Version |
132132
| :----------------------------------------------------------------------------: | :----------------: |
133133
| [`1.29.3`](https://github.com/sighupio/fury-distribution/releases/tag/v1.29.3) | `1.29.x` |
134-
| [`1.28.3`](https://github.com/sighupio/fury-distribution/releases/tag/v1.28.3) | `1.28.x` |
134+
| [`1.28.4`](https://github.com/sighupio/fury-distribution/releases/tag/v1.28.3) | `1.28.x` |
135135
| [`1.27.8`](https://github.com/sighupio/fury-distribution/releases/tag/v1.27.8) | `1.27.x` |
136136

137137
Check the [compatibility matrix][compatibility-matrix] for additional information about previous releases of the Distribution and the compatibility with `furyctl`.

docs/COMPATIBILITY_MATRIX.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ For a complete list of all KFD releases and their compatibility with Kubernetes
1010

1111
| KFD / Kubernetes Version | v1.28.X | v1.27.X |
1212
| ----------------------------------------------------------------------------- | ------------------ | ------------------ |
13+
| [v1.28.4](https://github.com/sighupio/fury-distribution/releases/tag/v1.28.4) | :white_check_mark: | |
1314
| [v1.28.3](https://github.com/sighupio/fury-distribution/releases/tag/v1.28.3) | :white_check_mark: | |
1415
| [v1.28.2](https://github.com/sighupio/fury-distribution/releases/tag/v1.28.2) | :white_check_mark: | |
1516
| [v1.28.1](https://github.com/sighupio/fury-distribution/releases/tag/v1.28.1) | :white_check_mark: | |

docs/releases/v1.27.9.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Kubernetes Fury Distribution Release v1.27.9
2+
3+
Welcome to KFD release `v1.27.9`.
4+
5+
The distribution is maintained with ❤️ by the team [SIGHUP](https://sighup.io/) it is battle tested in production environments.
6+
7+
## New Features since `v1.27.8`
8+
9+
### Installer Updates
10+
11+
No changes
12+
13+
### Module updates
14+
15+
No changes
16+
17+
## New features 🌟
18+
19+
- **Configurable distribution registry**: Now the registry used by the distribution can be configured. An example configuration:
20+
21+
```yaml
22+
spec:
23+
distribution:
24+
common:
25+
registry: myregistry.mydomain.ext
26+
```
27+
28+
- **Configurable on-premises registry**: Now the registry used by the on-premises kind can be configured. An example configuration:
29+
30+
```yaml
31+
spec:
32+
kubernetes:
33+
advanced:
34+
registry: myregistry.mydomain.ext
35+
```
36+
37+
## Fixes 🐞
38+
39+
No changes
40+
41+
## Upgrade procedure
42+
43+
Check the [upgrade docs](https://docs.kubernetesfury.com/docs/upgrades/upgrades) for the detailed procedure.

docs/releases/v1.28.4.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Kubernetes Fury Distribution Release v1.28.4
2+
3+
Welcome to KFD release `v1.28.4`.
4+
5+
The distribution is maintained with ❤️ by the team [SIGHUP](https://sighup.io/) it is battle tested in production environments.
6+
7+
## New Features since `v1.28.3`
8+
9+
### Installer Updates
10+
11+
No changes
12+
13+
### Module updates
14+
15+
No changes
16+
17+
## New features 🌟
18+
19+
- **Configurable distribution registry**: Now the registry used by the distribution can be configured. An example configuration:
20+
21+
```yaml
22+
spec:
23+
distribution:
24+
common:
25+
registry: myregistry.mydomain.ext
26+
```
27+
28+
- **Configurable on-premises registry**: Now the registry used by the on-premises kind can be configured. An example configuration:
29+
30+
```yaml
31+
spec:
32+
kubernetes:
33+
advanced:
34+
registry: myregistry.mydomain.ext
35+
```
36+
37+
## Fixes 🐞
38+
39+
No changes
40+
41+
## Upgrade procedure
42+
43+
Check the [upgrade docs](https://docs.kubernetesfury.com/docs/upgrades/upgrades) for the detailed procedure.

docs/schemas/ekscluster-kfd-v1alpha2.md

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ A Fury Cluster deployed through AWS's Elastic Kubernetes Service
8888
|:----------------------------------------------------------------|:---------|:---------|
8989
| [nodeSelector](#specdistributioncommonnodeselector) | `object` | Optional |
9090
| [provider](#specdistributioncommonprovider) | `object` | Optional |
91+
| [registry](#specdistributioncommonregistry) | `string` | Optional |
9192
| [relativeVendorPath](#specdistributioncommonrelativevendorpath) | `string` | Optional |
9293
| [tolerations](#specdistributioncommontolerations) | `array` | Optional |
9394

@@ -111,6 +112,14 @@ The node selector to use to place the pods for all the KFD modules
111112

112113
The type of the provider, must be EKS if specified
113114

115+
## .spec.distribution.common.registry
116+
117+
### Description
118+
119+
URL of the registry where to pull images from for the Distribution phase. (Default is registry.sighup.io/fury).
120+
121+
NOTE: If plugins are pulling from the default registry, the registry will be replaced for these plugins too.
122+
114123
## .spec.distribution.common.relativeVendorPath
115124

116125
### Description
@@ -711,6 +720,10 @@ The value of the toleration
711720
| [routes](#specdistributionmodulesauthpomeriumroutes) | `array` | Optional |
712721
| [secrets](#specdistributionmodulesauthpomeriumsecrets) | `object` | Required |
713722

723+
### Description
724+
725+
Configuration for Pomerium, an identity-aware reverse proxy used for SSO.
726+
714727
## .spec.distribution.modules.auth.pomerium.defaultRoutesPolicy
715728

716729
### Properties
@@ -728,6 +741,10 @@ The value of the toleration
728741
| [monitoringPrometheus](#specdistributionmodulesauthpomeriumdefaultroutespolicymonitoringprometheus) | `array` | Optional |
729742
| [tracingMinioConsole](#specdistributionmodulesauthpomeriumdefaultroutespolicytracingminioconsole) | `array` | Optional |
730743

744+
### Description
745+
746+
override default routes for KFD components
747+
731748
## .spec.distribution.modules.auth.pomerium.defaultRoutesPolicy.gatekeeperPolicyManager
732749

733750
## .spec.distribution.modules.auth.pomerium.defaultRoutesPolicy.hubbleUi
@@ -807,7 +824,7 @@ DEPRECATED: Use defaultRoutesPolicy and/or routes
807824

808825
### Description
809826

810-
Routes configuration for pomerium
827+
Additional routes configuration for Pomerium. Follows Pomerium's route format: https://www.pomerium.com/docs/reference/routes
811828

812829
## .spec.distribution.modules.auth.pomerium.secrets
813830

@@ -820,29 +837,45 @@ Routes configuration for pomerium
820837
| [SHARED_SECRET](#specdistributionmodulesauthpomeriumsecretsshared_secret) | `string` | Required |
821838
| [SIGNING_KEY](#specdistributionmodulesauthpomeriumsecretssigning_key) | `string` | Required |
822839

840+
### Description
841+
842+
Pomerium needs some user-provided secrets to be fully configured. These secrets should be unique between clusters.
843+
823844
## .spec.distribution.modules.auth.pomerium.secrets.COOKIE_SECRET
824845

825846
### Description
826847

827848
Cookie Secret is the secret used to encrypt and sign session cookies.
828849

850+
To generate a random key, run the following command: `head -c32 /dev/urandom | base64`
851+
829852
## .spec.distribution.modules.auth.pomerium.secrets.IDP_CLIENT_SECRET
830853

831854
### Description
832855

833-
Identity Provider Client Secret is the OAuth 2.0 Secret Identifier retrieved from your identity provider.
856+
Identity Provider Client Secret is the OAuth 2.0 Secret Identifier. When auth type is SSO, this value will be the secret used to authenticate Pomerium with Dex, **use a strong random value**.
834857

835858
## .spec.distribution.modules.auth.pomerium.secrets.SHARED_SECRET
836859

837860
### Description
838861

839862
Shared Secret is the base64-encoded, 256-bit key used to mutually authenticate requests between Pomerium services. It's critical that secret keys are random, and stored safely.
840863

864+
To generate a key, run the following command: `head -c32 /dev/urandom | base64`
865+
841866
## .spec.distribution.modules.auth.pomerium.secrets.SIGNING_KEY
842867

843868
### Description
844869

845-
Signing Key is one or more PEM-encoded private keys used to sign a user's attestation JWT, which can be consumed by upstream applications to pass along identifying user information like username, id, and groups.
870+
Signing Key is the base64 representation of one or more PEM-encoded private keys used to sign a user's attestation JWT, which can be consumed by upstream applications to pass along identifying user information like username, id, and groups.
871+
872+
To generates an P-256 (ES256) signing key:
873+
874+
```bash
875+
openssl ecparam -genkey -name prime256v1 -noout -out ec_private.pem
876+
# careful! this will output your private key in terminal
877+
cat ec_private.pem | base64
878+
```
846879

847880
## .spec.distribution.modules.auth.provider
848881

@@ -2906,6 +2939,12 @@ The value of the toleration
29062939

29072940
## .spec.distribution.modules.monitoring.grafana.basicAuthIngress
29082941

2942+
### Description
2943+
2944+
Setting this to true will deploy an additional `grafana-basic-auth` ingress protected with Grafana's basic auth instead of SSO. It's intended use is as a temporary ingress for when there are problems with the SSO login flow.
2945+
2946+
Notice that by default anonymous access is enabled.
2947+
29092948
## .spec.distribution.modules.monitoring.grafana.overrides
29102949

29112950
### Properties
@@ -2973,6 +3012,16 @@ The value of the toleration
29733012

29743013
## .spec.distribution.modules.monitoring.grafana.usersRoleAttributePath
29753014

3015+
### Description
3016+
3017+
[JMESPath](http://jmespath.org/examples.html) expression to retrieve the user's role. Example:
3018+
3019+
```yaml
3020+
usersRoleAttributePath: "contains(groups[*], 'beta') && 'Admin' || contains(groups[*], 'gamma') && 'Editor' || contains(groups[*], 'delta') && 'Viewer'
3021+
```
3022+
3023+
More details in [Grafana's documentation](https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/generic-oauth/#configure-role-mapping).
3024+
29763025
## .spec.distribution.modules.monitoring.kubeStateMetrics
29773026
29783027
### Properties

0 commit comments

Comments
 (0)