mirror of
				https://github.com/optim-enterprises-bv/homelab.git
				synced 2025-10-31 01:47:53 +00:00 
			
		
		
		
	feat(netbird): use built-in mechanism for jwk sign key refresh
https://github.com/netbirdio/netbird/pull/808
This commit is contained in:
		| @@ -1,40 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| OIDC_ENDPOINT=$(jq -r '.HttpConfig.OIDCConfigEndpoint' /etc/netbird/management.json) |  | ||||||
| KEY_CHECK_INTERVAL_SECONDS="${KEY_CHECK_INTERVAL_SECONDS:-3600}" |  | ||||||
| KEYS_FILE="/data/oidc_keys.json" |  | ||||||
|  |  | ||||||
| fetch_keys() { |  | ||||||
|   config=$(curl -s "$OIDC_ENDPOINT") |  | ||||||
|   jwks_uri=$(echo "$config" | jq -r '.jwks_uri') |  | ||||||
|   curl -s "$jwks_uri" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| keys_changed() { |  | ||||||
|   local new_keys="$1" |  | ||||||
|   if [ ! -f "$KEYS_FILE" ]; then |  | ||||||
|     return 0 |  | ||||||
|   fi |  | ||||||
|   local old_keys=$(cat "$KEYS_FILE") |  | ||||||
|   [ "$new_keys" != "$old_keys" ] |  | ||||||
| } |  | ||||||
|  |  | ||||||
| restart_pod() { |  | ||||||
|   echo "Restarting pod..." |  | ||||||
|   kill 1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| while true; do |  | ||||||
|   echo "Fetching OIDC keys..." |  | ||||||
|   new_keys=$(fetch_keys) |  | ||||||
|  |  | ||||||
|   if keys_changed "$new_keys"; then |  | ||||||
|     echo "Keys have changed. Updating stored keys..." |  | ||||||
|     echo "$new_keys" > "$KEYS_FILE" |  | ||||||
|     restart_pod |  | ||||||
|   else |  | ||||||
|     echo "Keys have not changed. No action required." |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   echo "Sleeping for $KEY_CHECK_INTERVAL_SECONDS seconds..." |  | ||||||
|   sleep "$KEY_CHECK_INTERVAL_SECONDS" |  | ||||||
| done |  | ||||||
| @@ -55,38 +55,9 @@ spec: | |||||||
|             - name: config-template |             - name: config-template | ||||||
|               mountPath: /tmp/netbird |               mountPath: /tmp/netbird | ||||||
|       containers: |       containers: | ||||||
|         - name: oidc-key-checker |  | ||||||
|           image: registry.gitlab.com/gitlab-ci-utils/curl-jq:3.1.0 # renovate: docker=registry.gitlab.com/gitlab-ci-utils/curl-jq |  | ||||||
|           command: [ /bin/bash, -c ] |  | ||||||
|           args: [ /opt/bin/check-oidc-keys.sh ] |  | ||||||
|           securityContext: |  | ||||||
|             allowPrivilegeEscalation: false |  | ||||||
|             readOnlyRootFilesystem: true |  | ||||||
|             runAsNonRoot: false |  | ||||||
|             capabilities: |  | ||||||
|               drop: [ ALL ] |  | ||||||
|           envFrom: |  | ||||||
|             - configMapRef: |  | ||||||
|                 name: management-oidc-key-check-config |  | ||||||
|                 optional: true |  | ||||||
|           volumeMounts: |  | ||||||
|             - name: check-oidc-keys |  | ||||||
|               mountPath: /opt/bin/check-oidc-keys.sh |  | ||||||
|               subPath: check-oidc-keys.sh |  | ||||||
|             - name: config |  | ||||||
|               mountPath: /etc/netbird |  | ||||||
|             - name: data |  | ||||||
|               mountPath: /data |  | ||||||
|           resources: |  | ||||||
|             requests: |  | ||||||
|               memory: 16Mi |  | ||||||
|               cpu: 10m |  | ||||||
|             limits: |  | ||||||
|               memory: 64Mi |  | ||||||
|               cpu: 200m |  | ||||||
|         - name: management |         - name: management | ||||||
|           image: docker.io/netbirdio/management:0.35.2 # renovate: docker=docker.io/netbirdio/management |           image: docker.io/netbirdio/management:0.35.2 # renovate: docker=docker.io/netbirdio/management | ||||||
|           args: [ --dns-domain, $(DNS_DOMAIN), --log-level, $(LOG_LEVEL), --log-file, console ] |           args: [ --dns-domain, $(DNS_DOMAIN), --log-level, $(LOG_LEVEL), --log-file, console, --idp-sign-key-refresh-enabled ] | ||||||
|           securityContext: |           securityContext: | ||||||
|             allowPrivilegeEscalation: false |             allowPrivilegeEscalation: false | ||||||
|             readOnlyRootFilesystem: false |             readOnlyRootFilesystem: false | ||||||
| @@ -113,8 +84,6 @@ spec: | |||||||
|               memory: 512Mi |               memory: 512Mi | ||||||
|               cpu: 4000m |               cpu: 4000m | ||||||
|       volumes: |       volumes: | ||||||
|         - name: data |  | ||||||
|           emptyDir: { } |  | ||||||
|         - name: config |         - name: config | ||||||
|           emptyDir: |           emptyDir: | ||||||
|             medium: Memory |             medium: Memory | ||||||
| @@ -122,10 +91,6 @@ spec: | |||||||
|           configMap: |           configMap: | ||||||
|             defaultMode: 0644 |             defaultMode: 0644 | ||||||
|             name: management-config-template |             name: management-config-template | ||||||
|         - name: check-oidc-keys |  | ||||||
|           configMap: |  | ||||||
|             defaultMode: 0744 |  | ||||||
|             name: check-oidc-keys |  | ||||||
|         - name: management |         - name: management | ||||||
|           persistentVolumeClaim: |           persistentVolumeClaim: | ||||||
|             claimName: management |             claimName: management | ||||||
| @@ -2,10 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 | |||||||
| kind: Kustomization | kind: Kustomization | ||||||
|  |  | ||||||
| configMapGenerator: | configMapGenerator: | ||||||
|   - name: check-oidc-keys |  | ||||||
|     namespace: netbird |  | ||||||
|     files: |  | ||||||
|       - config/check-oidc-keys.sh |  | ||||||
|   - name: management-config-template |   - name: management-config-template | ||||||
|     namespace: netbird |     namespace: netbird | ||||||
|     files: |     files: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Vegard Hagen
					Vegard Hagen