Skip to content

Commit 5c69384

Browse files
author
Cosmin Cojocar
authored
Merge pull request #6 from ccojocar/dex_grpc_client
feat:(dex grpc) add gRPC client for dex server
2 parents e431691 + f54795b commit 5c69384

File tree

11 files changed

+390
-6
lines changed

11 files changed

+390
-6
lines changed

Gopkg.lock

Lines changed: 82 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ codegen:
6363
@echo "GENERATING KUBERNETES CRDs"
6464
hack/update-codegen.sh
6565

66+
linux:
67+
CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=amd64 $(GO) build -ldflags $(BUILDFLAGS) -o bin/$(NAME) $(MAIN_GO)
68+
6669
watch:
6770
reflex -r "\.go$" -R "vendor.*" make skaffold-run
6871

charts/sso-operator/templates/deployment.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,20 @@ spec:
2222
- name: {{ .Chart.Name }}
2323
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
2424
imagePullPolicy: {{ .Values.image.pullPolicy }}
25+
command: ["/sso-operator"]
26+
args:
27+
- "--dex-grpc-host-port={{ .Values.dex.grpcHostAndPort }}"
28+
- "--dex-grpc-ca=/etc/dex/ca/ca.crt"
29+
- "--dex-grpc-client-crt=/etc/dex/tls/tls.crt"
30+
- "--dex-grpc-client-key=/etc/dex/tls/tls.key"
2531
env:
2632
- name: OPERATOR_NAMESPACE
2733
value: {{ .Release.Namespace }}
34+
volumeMounts:
35+
- name: dex-grpc-ca
36+
mountPath: /etc/dex/ca
37+
- name: dex-grpc-client-tls
38+
mountPath: /etc/dex/tls
2839
ports:
2940
- containerPort: {{ .Values.service.internalPort }}
3041
livenessProbe:
@@ -44,4 +55,13 @@ spec:
4455
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
4556
resources:
4657
{{ toYaml .Values.resources | indent 12 }}
58+
volumes:
59+
- name: dex-grpc-ca
60+
configMap:
61+
name: {{ .Values.dex.certs.grpcCA }}
62+
- name: dex-grpc-client-tls
63+
secret:
64+
defaultMode: 420
65+
secretName: {{ .Values.dex.certs.grpcClientTls }}
66+
4767
terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{{- if .Values.dex.certs.install.create }}
2+
{{ $caName := .Values.dex.certs.grpcCA }}
3+
{{ $clientTlsSecretName := .Values.dex.certs.grpcClientTls }}
4+
{{ $sourceNamespace := .Values.dex.certs.install.sourceNamespace }}
5+
apiVersion: batch/v1
6+
kind: Job
7+
metadata:
8+
annotations:
9+
"helm.sh/hook": pre-install
10+
"helm.sh/hook-weight": "4"
11+
"helm.sh/hook-delete-policy": hook-succeeded
12+
name: job-install-grpc-secrets
13+
labels:
14+
draft: {{ default "draft-app" .Values.draft }}
15+
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
16+
spec:
17+
activeDeadlineSeconds: {{ .Values.dex.certs.install.activeDeadlineSeconds }}
18+
template:
19+
metadata:
20+
labels:
21+
release: "{{ .Release.Name }}"
22+
component: "job"
23+
spec:
24+
serviceAccountName: {{ template "fullname" . }}-install-certs
25+
restartPolicy: OnFailure
26+
containers:
27+
- name: main
28+
image: "{{ .Values.dex.certs.install.image }}:{{ .Values.dex.certs.install.imageTag }}"
29+
imagePullPolicy: {{ .Values.dex.certs.install.imagePullPolicy }}
30+
command:
31+
- /bin/bash
32+
- -exc
33+
- |
34+
# Cleanup the existing config map and secrets
35+
kubectl delete configmap {{ $caName }} --namespace {{ .Release.Namespace }} || true
36+
kubectl delete secret {{ $clientTlsSecretName }} --namespace {{ .Release.Namespace }} || true
37+
38+
# Copy the secrts from source namespace
39+
kubectl get secret {{ $clientTlsSecretName }} --namespace={{ $sourceNamespace }} --export -o yaml |\
40+
kubectl apply --namespace={{ .Release.Namespace }} -f -
41+
kubectl get cm {{ $caName }} --namespace={{ $sourceNamespace }} --export -o yaml |\
42+
kubectl apply --namespace={{ .Release.Namespace }} -f -
43+
{{- end }}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- if .Values.dex.certs.install.create }}
2+
kind: ClusterRole
3+
apiVersion: rbac.authorization.k8s.io/v1beta1
4+
metadata:
5+
annotations:
6+
"helm.sh/hook": pre-install
7+
"helm.sh/hook-weight": "2"
8+
"helm.sh/hook-delete-policy": hook-succeeded
9+
labels:
10+
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
11+
name: {{ template "fullname" . }}-install-certs
12+
rules:
13+
- apiGroups: [""]
14+
resources: ["secrets", "configmaps"]
15+
verbs: ["*"]
16+
{{- end }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{- if .Values.dex.certs.install.create }}
2+
apiVersion: rbac.authorization.k8s.io/v1beta1
3+
kind: ClusterRoleBinding
4+
metadata:
5+
annotations:
6+
"helm.sh/hook": pre-install
7+
"helm.sh/hook-weight": "3"
8+
"helm.sh/hook-delete-policy": hook-succeeded
9+
labels:
10+
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
11+
name: {{ template "fullname" . }}-install-certs
12+
namespace: {{ .Values.dex.certs.install.sourceNamespace }}
13+
roleRef:
14+
apiGroup: rbac.authorization.k8s.io
15+
kind: ClusterRole
16+
name: {{ template "fullname" . }}-install-certs
17+
subjects:
18+
- kind: ServiceAccount
19+
name: {{ template "fullname" . }}-install-certs
20+
namespace: {{ .Release.Namespace }}
21+
22+
{{- end }}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{{- if .Values.dex.certs.install.create }}
2+
kind: ServiceAccount
3+
apiVersion: v1
4+
metadata:
5+
annotations:
6+
"helm.sh/hook": pre-install
7+
"helm.sh/hook-weight": "1"
8+
"helm.sh/hook-delete-policy": hook-succeeded
9+
name: {{ template "fullname" . }}-install-certs
10+
namespace: {{ .Release.Namespace }}
11+
labels:
12+
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
13+
{{- end }}
14+

charts/sso-operator/values.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,16 @@ readinessProbe:
3232
successThreshold: 1
3333
timeoutSeconds: 1
3434
terminationGracePeriodSeconds: 10
35+
36+
dex:
37+
grpcHostAndPort: dex:5000
38+
certs:
39+
grpcCA: dex-grpc-ca
40+
grpcClientTls: dex-grpc-client-tls
41+
install:
42+
create: true
43+
image: gcr.io/google_containers/kubernetes-dashboard-init-amd64
44+
imageTag: "v1.0.0"
45+
imagePullPolicy: "IfNotPresent"
46+
sourceNamespace: jx
47+
activeDeadlineSeconds: 300

0 commit comments

Comments
 (0)