Parameterize the dex server

This commit is contained in:
Liviu Costea 2019-02-06 21:59:26 +02:00
parent 2d1905c807
commit 5320ac33c6
6 changed files with 173 additions and 49 deletions

View file

@ -0,0 +1,48 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: argocd-dex-server
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "argo-cd.name" . }}
app.kubernetes.io/component: dex-server
spec:
selector:
matchLabels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "argo-cd.name" . }}
app.kubernetes.io/component: dex-server
spec:
serviceAccountName: argocd-dex-server
initContainers:
- name: copyutil
image: {{ .Values.dexServer.initImage.repository }}:{{ .Values.dexServer.initImage.tag }}
imagePullPolicy: {{ .Values.dexServer.initImage.pullPolicy }}
command: [cp, /usr/local/bin/argocd-util, /shared]
volumeMounts:
- mountPath: /shared
name: static-files
containers:
- name: dex
image: {{ .Values.dexServer.image.repository }}:{{ .Values.dexServer.image.tag }}
imagePullPolicy: {{ .Values.dexServer.image.pullPolicy }}
command: [/shared/argocd-util, rundex]
ports:
- containerPort: {{ .Values.dexServer.containerPortHttp }}
- containerPort: {{ .Values.dexServer.containerPortGrpc }}
volumeMounts:
- mountPath: /shared
name: static-files
volumes:
- emptyDir: {}
name: static-files

View file

@ -0,0 +1,21 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: argocd-dex-server
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "argo-cd.name" . }}
app.kubernetes.io/component: dex-server
rules:
- apiGroups:
- ""
resources:
- secrets
- configmaps
verbs:
- get
- list
- watch

View file

@ -0,0 +1,18 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: argocd-dex-server
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "argo-cd.name" . }}
app.kubernetes.io/component: dex-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: argocd-dex-server
subjects:
- kind: ServiceAccount
name: argocd-dex-server

View file

@ -0,0 +1,11 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: argocd-dex-server
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "argo-cd.name" . }}
app.kubernetes.io/component: dex-server

View file

@ -0,0 +1,23 @@
apiVersion: v1
kind: Service
metadata:
name: argocd-dex-server
labels:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server
helm.sh/chart: {{ include "argo-cd.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/part-of: {{ include "argo-cd.name" . }}
app.kubernetes.io/component: dex-server
spec:
ports:
- name: http
protocol: TCP
port: {{ .Values.dexServer.servicePortHttp }}
targetPort: {{ .Values.dexServer.containerPortHttp }}
- name: grpc
protocol: TCP
port: {{ .Values.dexServer.servicePortGrpc }}
targetPort: {{ .Values.dexServer.containerPortGrpc }}
selector:
app.kubernetes.io/name: {{ include "argo-cd.name" . }}-dex-server

View file

@ -29,6 +29,20 @@ repoServer:
tag: v0.11.0 tag: v0.11.0
pullPolicy: Always pullPolicy: Always
dexServer:
containerPortHttp: 5556
containerPortGrpc: 5557
servicePortHttp: 5556
servicePortGrpc: 5557
image:
repository: quay.io/dexidp/dex
tag: v2.12.0
pullPolicy: Always
initImage:
repository: argoproj/argocd
tag: v0.11.0
pullPolicy: Always
# Standard Argo CD installation with cluster-admin access. # Standard Argo CD installation with cluster-admin access.
# Set this true if you plan to use Argo CD to deploy applications in the same cluster that # Set this true if you plan to use Argo CD to deploy applications in the same cluster that
# Argo CD runs in (i.e. kubernetes.svc.default). # Argo CD runs in (i.e. kubernetes.svc.default).
@ -39,42 +53,42 @@ clusterAdminAccess:
config: config:
helmRepositories: helmRepositories:
- name: privateRepo # - name: privateRepo
url: http://chartmuseum.privatecloud.com # url: http://chartmuseum.privatecloud.com
usernameSecret: # usernameSecret:
name: private-chartmuseum # name: private-chartmuseum
key: username # key: username
passwordSecret: # passwordSecret:
name: private-chartmuseum # name: private-chartmuseum
key: password # key: password
- name: incubator # - name: incubator
url: https://kubernetes-charts-incubator.storage.googleapis.com/ # url: https://kubernetes-charts-incubator.storage.googleapis.com/
repositories: repositories:
- url: git@gitlab.com:usersprivategroup/users-gitops-config.git # - url: git@gitlab.com:usersprivategroup/users-gitops-config.git
sshPrivateKeySecret: # sshPrivateKeySecret:
key: privateKey # key: privateKey
name: argocd-dev-key # name: argocd-dev-key
- url: git@gitlab.com:accountingprivategroup/accounting-gitops-config.git # - url: git@gitlab.com:accountingprivategroup/accounting-gitops-config.git
sshPrivateKeySecret: # sshPrivateKeySecret:
key: privateKey # key: privateKey
name: argocd-dev-key # name: argocd-dev-key
dexConfig: dexConfig:
# # Argo CD's externally facing base URL. Required for configuring SSO # # Argo CD's externally facing base URL. Required for configuring SSO
# # url: https://argo-cd-demo.argoproj.io # # url: https://argo-cd-demo.argoproj.io
# #
# # A dex connector configuration. See documentation on how to configure SSO: # # A dex connector configuration. See documentation on how to configure SSO:
# # https://github.com/argoproj/argo-cd/blob/master/docs/sso.md#2-configure-argocd-for-sso # # https://github.com/argoproj/argo-cd/blob/master/docs/sso.md#2-configure-argocd-for-sso
connectors: # connectors:
# GitHub example # # GitHub example
- type: github # - type: github
id: github # id: github
name: GitHub # name: GitHub
config: # config:
clientID: aabbccddeeff00112233 # clientID: aabbccddeeff00112233
clientSecret: $dex.github.clientSecret # clientSecret: $dex.github.clientSecret
orgs: # orgs:
- name: your-github-org # - name: your-github-org
teams: # teams:
# The following keys hold the shared secret for authenticating GitHub/GitLab/BitBucket webhook # The following keys hold the shared secret for authenticating GitHub/GitLab/BitBucket webhook
# events. To enable webhooks, configure one or more of the following keys with the shared git # events. To enable webhooks, configure one or more of the following keys with the shared git
# provider webhook secret. The payload URL configured in the git provider should use the # provider webhook secret. The payload URL configured in the git provider should use the
@ -91,24 +105,13 @@ rbac:
# p, my-org:team-alpha, applications, sync, my-project/*, allow # p, my-org:team-alpha, applications, sync, my-project/*, allow
# # Make all members of "my-org:team-beta" admins # # Make all members of "my-org:team-beta" admins
# g, my-org:team-beta, role:admin # g, my-org:team-beta, role:admin
policyCsv: | policyCsv: #|
p, role:org-admin, applications, *, */*, allow # p, role:org-admin, applications, *, */*, allow
p, role:org-admin, clusters, get, *, allow # p, role:org-admin, clusters, get, *, allow
p, role:org-admin, repositories, get, *, allow # p, role:org-admin, repositories, get, *, allow
p, role:org-admin, repositories, create, *, allow # p, role:org-admin, repositories, create, *, allow
p, role:org-admin, repositories, update, *, allow # p, role:org-admin, repositories, update, *, allow
p, role:org-admin, repositories, delete, *, allow # p, role:org-admin, repositories, delete, *, allow
g, your-github-org:your-team, role:org-admin # g, your-github-org:your-team, role:org-admin
# The default role Argo CD will fall back to, when authorizing API requests # The default role Argo CD will fall back to, when authorizing API requests
policyDefault: role:readonly policyDefault: #role:readonly
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi