-
Notifications
You must be signed in to change notification settings - Fork 65
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
Refactor Keycloak #502
Refactor Keycloak #502
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,13 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
apiVersion: rbac.authorization.k8s.io/v1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
kind: Role | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
name: {{ include "tenant.name" . }}-dashboard-resources | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
namespace: {{ .Release.namespace }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
rules: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
- apiGroups: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
- "" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
resources: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
- secrets | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
resourceNames: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
- kubeconfig-{{ include "tenant.name" . }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
verbs: ["get", "list", "watch"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+1
to
+13
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix YAML Syntax Error in Role Definition A YAML syntax error is reported at line 4: "expected Apply this diff to fix the syntax error: apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
- name: {{ include "tenant.name" . }}-dashboard-resources
+ name: "{{ include "tenant.name" . }}-dashboard-resources"
namespace: {{ .Release.namespace }}
rules: Wrapping the 📝 Committable suggestion
Suggested change
🧰 Tools🪛 yamllint (1.35.1)[error] 4-4: syntax error: expected , but found '' (syntax) |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,3 +1,6 @@ | ||||||||||||||||||||
{{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} | ||||||||||||||||||||
{{- $oidcEnabled := index $cozyConfig.data "oidc-enabled" }} | ||||||||||||||||||||
{{- if $oidcEnabled }} | ||||||||||||||||||||
Comment on lines
+1
to
+3
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add error handling for missing ConfigMap The ConfigMap lookup could fail if {{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }}
+{{- if not $cozyConfig }}
+ {{- fail "Required ConfigMap 'cozystack' not found in 'cozy-system' namespace" }}
+{{- end }}
{{- $oidcEnabled := index $cozyConfig.data "oidc-enabled" }}
{{- if $oidcEnabled }} 📝 Committable suggestion
Suggested change
🧰 Tools🪛 yamllint (1.35.1)[error] 1-1: syntax error: expected the node content, but found '-' (syntax) |
||||||||||||||||||||
apiVersion: v1.edp.epam.com/v1 | ||||||||||||||||||||
kind: KeycloakRealmGroup | ||||||||||||||||||||
metadata: | ||||||||||||||||||||
|
@@ -47,3 +50,4 @@ spec: | |||||||||||||||||||
realmRef: | ||||||||||||||||||||
name: keycloakrealm-cozy | ||||||||||||||||||||
kind: ClusterKeycloakRealm | ||||||||||||||||||||
{{- end }} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,28 +1,13 @@ | ||||||||||||||||||||||||||||||||
{{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} | ||||||||||||||||||||||||||||||||
{{- $host := index $cozyConfig.data "root-host" }} | ||||||||||||||||||||||||||||||||
{{- $apiServerAdress := index $cozyConfig.data "api-server-adress" }} | ||||||||||||||||||||||||||||||||
{{- $k8sClientSecret := lookup "v1" "Secret" "cozy-keycloak" "k8s-client" }} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
{{- if $k8sClientSecret }} | ||||||||||||||||||||||||||||||||
{{- $apiServerEndpoint := index $cozyConfig.data "api-server-endpoint" }} | ||||||||||||||||||||||||||||||||
{{- $k8sClient := index $k8sClientSecret.data "client-secret-key" | b64dec }} | ||||||||||||||||||||||||||||||||
{{- $rootSaConfigMap := lookup "v1" "ConfigMap" "kube-system" "kube-root-ca.crt" }} | ||||||||||||||||||||||||||||||||
Comment on lines
+4
to
8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Add validation for required configuration values The template assumes all required values exist in ConfigMaps/Secrets. Add validation to ensure required values are present and valid. {{- if $k8sClientSecret }}
+{{- if not (index $cozyConfig.data "api-server-endpoint") }}
+ {{- fail "Required value 'api-server-endpoint' not found in cozystack ConfigMap" }}
+{{- end }}
{{- $apiServerEndpoint := index $cozyConfig.data "api-server-endpoint" }}
{{- $k8sClient := index $k8sClientSecret.data "client-secret-key" | b64dec }}
+{{- if not $k8sClient }}
+ {{- fail "Empty client secret found in k8s-client Secret" }}
+{{- end }} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||
{{- $k8sCa := index $rootSaConfigMap.data "ca.crt" | b64enc }} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
apiVersion: rbac.authorization.k8s.io/v1 | ||||||||||||||||||||||||||||||||
kind: Role | ||||||||||||||||||||||||||||||||
metadata: | ||||||||||||||||||||||||||||||||
name: {{ include "tenant.name" . }}-dashboard-resources | ||||||||||||||||||||||||||||||||
namespace: {{ .Release.namespace }} | ||||||||||||||||||||||||||||||||
rules: | ||||||||||||||||||||||||||||||||
- apiGroups: | ||||||||||||||||||||||||||||||||
- "" | ||||||||||||||||||||||||||||||||
resources: | ||||||||||||||||||||||||||||||||
- secrets | ||||||||||||||||||||||||||||||||
resourceNames: | ||||||||||||||||||||||||||||||||
- kubeconfig-{{ include "tenant.name" . }} | ||||||||||||||||||||||||||||||||
verbs: ["get", "list", "watch"] | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
--- | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
apiVersion: v1 | ||||||||||||||||||||||||||||||||
kind: Secret | ||||||||||||||||||||||||||||||||
metadata: | ||||||||||||||||||||||||||||||||
|
@@ -33,7 +18,7 @@ stringData: | |||||||||||||||||||||||||||||||
apiVersion: v1 | ||||||||||||||||||||||||||||||||
clusters: | ||||||||||||||||||||||||||||||||
- cluster: | ||||||||||||||||||||||||||||||||
server: https://{{ $apiServerAdress }}:6443 | ||||||||||||||||||||||||||||||||
server: {{ $apiServerEndpoint }} | ||||||||||||||||||||||||||||||||
certificate-authority-data: {{ $k8sCa }} | ||||||||||||||||||||||||||||||||
name: cluster | ||||||||||||||||||||||||||||||||
contexts: | ||||||||||||||||||||||||||||||||
|
@@ -57,3 +42,4 @@ stringData: | |||||||||||||||||||||||||||||||
- --skip-open-browser | ||||||||||||||||||||||||||||||||
- --grant-type=password | ||||||||||||||||||||||||||||||||
command: kubectl | ||||||||||||||||||||||||||||||||
{{- end }} |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,8 +1,13 @@ | ||||||||||||||||||||||||||||||||||||||
{{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} | ||||||||||||||||||||||||||||||||||||||
{{- $oidcEnabled := index $cozyConfig.data "oidc-enabled" }} | ||||||||||||||||||||||||||||||||||||||
{{- $host := index $cozyConfig.data "root-host" }} | ||||||||||||||||||||||||||||||||||||||
{{- if not $host }} | ||||||||||||||||||||||||||||||||||||||
{{- fail "ERROR need root-host in cozystack ConfigMap" }} | ||||||||||||||||||||||||||||||||||||||
{{- end }} | ||||||||||||||||||||||||||||||||||||||
{{- $apiServerEndpoint := index $cozyConfig.data "api-server-endpoint" }} | ||||||||||||||||||||||||||||||||||||||
{{- if not $apiServerEndpoint }} | ||||||||||||||||||||||||||||||||||||||
{{- fail "ERROR need api-server-endpoint in cozystack ConfigMap" }} | ||||||||||||||||||||||||||||||||||||||
{{- end }} | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
releases: | ||||||||||||||||||||||||||||||||||||||
- name: fluxcd-operator | ||||||||||||||||||||||||||||||||||||||
|
@@ -205,10 +210,6 @@ releases: | |||||||||||||||||||||||||||||||||||||
chart: cozy-dashboard | ||||||||||||||||||||||||||||||||||||||
namespace: cozy-dashboard | ||||||||||||||||||||||||||||||||||||||
dependsOn: [cilium,kubeovn,keycloak-configure] | ||||||||||||||||||||||||||||||||||||||
valuesFrom: | ||||||||||||||||||||||||||||||||||||||
- kind: ConfigMap | ||||||||||||||||||||||||||||||||||||||
name: kubeapps-auth-config | ||||||||||||||||||||||||||||||||||||||
valuesKey: values.yaml | ||||||||||||||||||||||||||||||||||||||
{{- if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }} | ||||||||||||||||||||||||||||||||||||||
{{- with (lookup "source.toolkit.fluxcd.io/v1" "HelmRepository" "cozy-public" "").items }} | ||||||||||||||||||||||||||||||||||||||
values: | ||||||||||||||||||||||||||||||||||||||
|
@@ -222,6 +223,15 @@ releases: | |||||||||||||||||||||||||||||||||||||
{{- end }} | ||||||||||||||||||||||||||||||||||||||
{{- end }} | ||||||||||||||||||||||||||||||||||||||
{{- end }} | ||||||||||||||||||||||||||||||||||||||
{{- if $oidcEnabled }} | ||||||||||||||||||||||||||||||||||||||
dependsOn: [keycloak-configure] | ||||||||||||||||||||||||||||||||||||||
valuesFrom: | ||||||||||||||||||||||||||||||||||||||
- kind: ConfigMap | ||||||||||||||||||||||||||||||||||||||
name: kubeapps-auth-config | ||||||||||||||||||||||||||||||||||||||
valuesKey: values.yaml | ||||||||||||||||||||||||||||||||||||||
{{- else }} | ||||||||||||||||||||||||||||||||||||||
dependsOn: [] | ||||||||||||||||||||||||||||||||||||||
{{- end }} | ||||||||||||||||||||||||||||||||||||||
Comment on lines
+226
to
+234
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix conflicting dependsOn declarations There's a conflict between the initial dependsOn list Suggested fix: {{- if $oidcEnabled }}
- dependsOn: [keycloak-configure]
+ dependsOn: [cilium,kubeovn,keycloak-configure]
valuesFrom:
- kind: ConfigMap
name: kubeapps-auth-config
valuesKey: values.yaml
{{- else }}
- dependsOn: []
+ dependsOn: [cilium,kubeovn]
{{- end }} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
- name: kamaji | ||||||||||||||||||||||||||||||||||||||
releaseName: kamaji | ||||||||||||||||||||||||||||||||||||||
|
@@ -257,6 +267,7 @@ releases: | |||||||||||||||||||||||||||||||||||||
optional: true | ||||||||||||||||||||||||||||||||||||||
dependsOn: [cilium,kubeovn] | ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
{{- if $oidcEnabled }} | ||||||||||||||||||||||||||||||||||||||
- name: keycloak | ||||||||||||||||||||||||||||||||||||||
releaseName: keycloak | ||||||||||||||||||||||||||||||||||||||
chart: cozy-keycloak | ||||||||||||||||||||||||||||||||||||||
|
@@ -274,3 +285,4 @@ releases: | |||||||||||||||||||||||||||||||||||||
chart: cozy-keycloak-configure | ||||||||||||||||||||||||||||||||||||||
namespace: cozy-keycloak | ||||||||||||||||||||||||||||||||||||||
dependsOn: [keycloak-operator] | ||||||||||||||||||||||||||||||||||||||
{{- end }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verify YAML Indentation for
apiServer
ConfigurationThe indentation of the
apiServer
block in thepatch.yaml
file may be incorrect, which can lead to YAML parsing errors. Ensure that theapiServer
key is properly indented under thecluster
key.Apply this diff to correct the indentation: