Skip to content
This repository was archived by the owner on Jun 12, 2024. It is now read-only.

Commit 7c163bd

Browse files
committed
Improve oauth2
1 parent b435aa9 commit 7c163bd

File tree

14 files changed

+139
-47
lines changed

14 files changed

+139
-47
lines changed

.github/workflows/clusters-aws-reusable-workflow.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,13 @@ jobs:
184184
185185
export KUBECONFIG="/tmp/kubeconfig-${CLUSTER_NAME}.conf"
186186
if aws eks update-kubeconfig --name "${CLUSTER_NAME}" --kubeconfig "${KUBECONFIG}" ; then
187-
kubectl patch kustomization -n flux-system external-dns ingress-nginx cert-manager-certificate --type='json' -p='[{"op": "add", "path": "/spec/suspend", "value":true}]'
188-
kubectl delete certificate -n cert-manager --all || true
189-
kubectl delete deployments -n external-dns -l app.kubernetes.io/name=external-dns || true
190-
kubectl delete service -n ingress-nginx -l app.kubernetes.io/component=controller || true
191-
kubectl delete secrets.secretsmanager.aws.crossplane.io -n crossplane-system secretsmanager-kuard-secret || true
187+
(
188+
kubectl patch kustomization -n flux-system external-dns ingress-nginx cert-manager-certificate --type='json' -p='[{"op": "add", "path": "/spec/suspend", "value":true}]'
189+
kubectl delete certificate -n cert-manager --all
190+
kubectl delete deployments -n external-dns -l app.kubernetes.io/name=external-dns
191+
kubectl delete service -n ingress-nginx -l app.kubernetes.io/component=controller
192+
kubectl delete secrets.secretsmanager.aws.crossplane.io -n crossplane-system secretsmanager-kuard-secret
193+
) || true
192194
rm "${KUBECONFIG}"
193195
fi
194196

clusters/aws-dev-mgmt/flux/cluster-apps-secrets/cluster-apps-secrets.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ data:
1818
GOOGLE_CLIENT_SECRET: ENC[AES256_GCM,data:tYvGtANnxyj0Ek+rYx3062uMzKy7wYbgD1PB2zq5cqEPGdJBHvIPIsfvDdeAf849,iv:pr2tMxzcMVX33SMey7C5GX22OCfOfCofKoobpLFedlI=,tag:v7QurU2gfDOP2ctVDmxK+w==,type:str]
1919
KEYCLOAK_ADMIN_USERNAME: ENC[AES256_GCM,data:E2aV6AcQxNg=,iv:mtqtHWEFh+Z8fsSY9bHHSyJwjBmSyviaUN94JhkoR7M=,tag:n5qNcaT2eva0CH2PEGtcxg==,type:str]
2020
KEYCLOAK_ADMIN_PASSWORD: ENC[AES256_GCM,data:lw7IwY0fANGD/2iYeGZmACkbM3TMsDaXjUYpasceTKIGLYGaamKPdw==,iv:YATGDhh5K9LiWQ2Dg81dIEoDUspknKJapYafuNhOQgo=,tag:86GbwBQF6Z7O51X7vDrhfA==,type:str]
21+
KUBERNETES_DASHBOARD_TOKEN: ENC[AES256_GCM,data:sP1D32qThcvFGQiGnKA9INRcZPNhLcYC1n/RbksHMZvdRlSmWDSR8oFAszRtun1RMBAQtgYQLUvWkzEIARHD2BLv7/EdZ/GzlIYr4MY9iwILEfstA0PEHHM5KKHRmA9yrPmhjR9QaEm3X83oDEM2O+RQnpi46PmXLj9W/jy7kuUmlZm3pbTj/B6rrisSAJ81FOV3aGR1ZNbCaspJr4fW4uLPllVK2yKgvxYE0omspnA75KDmAgV8d34V4a0IoLw9vw77b7hQkBmYfo6blf1ITOt8136o5cu7zINkyaGsNTxfeEgr+icrDd8vEDQavbcXR4/qGD+xLi72zOUUQr/PZFpVGosi9CeLPPUuV24AmggHcwyg1CmtNptCgjwmm8w1Ng9ATIZd9ort9fxP9eUphO/N4o+K/y6c02TSmwOYIQe7vEh2/9ITBc9sy/ckfGVZRDmNG41ub4xrAkX1O+DHF8yfCScnzUxZdVHdvdrIHyJQPlcJJQv5KtsST5iV5Guu+hIsbZbPp50/wgaSuLID0krwPuaabuQj1UUizKdI3Qrw0GtU9w3REtucqcU665hUy2rx6gRA15NRBHPrVyTVxt1ijPdxociJODVIh10skdrvRfq2nVw3RFUiJzBfgwPhdMmgczBdP1AcWVaxxOxSNFEccNtiv0pegFfJiwo5dFeR0StI/y6Xcp+eT25UG2UGey1JJcDdnHuZLW/jAE3JVIUwjGEZTY9sOFBkoPol4F17yjExdacc9Io7xMPgB6XdOmmjFVSy74PVBfTy4QVIdNDbf1pL6WICEeAntkYiSk7lnRcMk8Z0tSzjeM6aozk5yjdG2q6dMQW6o8Tu2wwaTr5PEoy7Nx9gdjoWxO5/GrPvhoYyGc6vqyi4QeZHQFGwxtIQi6rsYa+xDrKSU4tom/vXuRI2MeWHqDd7NI6z1RCMxq66GHJbbdZMMoaizP+E9fZtQjoq4wa+4+dz62ScjwdDC2vJHpeC5z7KpzWIa2iuw0R6GLgI6s9NhQaaPUklyjZq6ykrO8xDzN1bZeYiAGYcPAls8d8ksSWYeDMzlVbbd0f+/X4vRq9m+ES1BLBxTEShgda/QhW4It8FUbzbxK8gQFKtjrt9zYMuGJaiWtxt1qxVYWissHr56T0meXhaoD/6x7WMVbsohVbxZStzuV68/v5s7CBiLNAhqixX3YcmSgQvUW0SGW7JUPAOAECAoL5YUrhirWJMroYBjoploFhURIjWghaP4rnMpe2GXdRlAtgcr4RnvmzahItEmBU/ma6IWwx52eO0d6TLdLE/Nm54sEcI2x+2BRPmBLtnOtd6aVvMy1LvMFBj1mwLT9yCeVbeEa65SPJlfonrUZG5ZYO6ul0s+MV3+aECL1GyVt6of4iiOTbR8NzAa7RrJ4obolVLTw+XA8BnmPKt11O3ZsCG7th+LdUyh9wSWdPrmVRekIxltDxeoBA5ZLPurP8prFZZOBJEfN0NG/7PU3LlGYBXTJqXPQcfPguRpRRMN2nzrpuSiUxmTzZdpwOJKv4QbmkzNTvNzZ+qAkN3KKq3syA1myBnAjVb1dsdjsWkr3m2bVG6w9Pn3rNLsXkwAy7uSz/lf803y/kUoaRZA16PbO8OUKiDsUZSoDdhPUwWfAYjOVjC5Bi0+/s4mYBXA4bpQEdAf8FY1d8FIkcLuQV3yc6l6tKfYBCJjR7tcnbwMLlUeStKwYNCYsw2Zzigft2SBh5uMHuA8aL5T5vH/7/lsgCVTXF9gN+EAWdezHxfBLbQ+jMEcLgzPd91YdjUIVPUSyHEoHYsjPzHYLBMODvFQL+lbPbh0dWR,iv:LHoeiXAFWLKSwq5ivgWv01canLo418G7EDFIl5CpNy0=,tag:iIXIG2Jq1Wb2PnDvRGxhDw==,type:str]
2122
sops:
2223
kms:
2324
- arn: arn:aws:kms:eu-central-1:729560437327:alias/sops
@@ -28,8 +29,8 @@ sops:
2829
azure_kv: []
2930
hc_vault: []
3031
age: []
31-
lastmodified: "2022-08-27T04:28:54Z"
32-
mac: ENC[AES256_GCM,data:V7oS8u9p0MzzwdMovoQhzcZh+uMt8Wy/86CQmPFD8R69gWUqjvZUVvTVR/GlEUO6rvfrwDjGTsMItVe+KRFQPPTiwlLXODaFfg+9/ctrjVLsVMPEwgd0SLdNOdFjhUR08CWqz48EB37RFy7tknEhYwwZmejy50mZ42+C9E3IMXQ=,iv:IbzeBWqiv3gy/ikXclPnZzLKVx410yh3Ue50ZNsn7CU=,tag:haQTvMSOD1hl0kFedRSL+Q==,type:str]
32+
lastmodified: "2022-09-11T06:27:31Z"
33+
mac: ENC[AES256_GCM,data:rVMechYFEBQ+liKsE8UjBX75EySF7mKaoVqT3wFROpOFTZ2Ef7A0vw798a70dR/6/bPCxqMo95vP+QoBL64CMXWjl4xi/zf4ex8rKdI34tj8k/MMfzy/sOHmbiAoHh6m7wT5leieszsqpyGnK4Rq/mgh+/BTZvEhhLB0A+1L/R8=,iv:2KJNy0SDABIf7CAJmc2PK3E9+PdI8VlhZ+R9QkTWlKo=,tag:6EWhTF8yF11NQYsdhATe9Q==,type:str]
3334
pgp:
3435
- created_at: "2022-07-07T06:23:23Z"
3536
enc: |-
Lines changed: 64 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,74 @@
1+
# apiVersion: rbac.authorization.k8s.io/v1
2+
# kind: ClusterRoleBinding
3+
# metadata:
4+
# name: kubernetes-dashboard-admin
5+
# labels:
6+
# app: kubernetes-dashboard
7+
# roleRef:
8+
# apiGroup: rbac.authorization.k8s.io
9+
# kind: ClusterRole
10+
# name: cluster-admin
11+
# subjects:
12+
# - kind: ServiceAccount
13+
# name: kubernetes-dashboard-admin
14+
# namespace: kubernetes-dashboard
15+
# ---
16+
# apiVersion: v1
17+
# kind: ServiceAccount
18+
# metadata:
19+
# name: kubernetes-dashboard-admin
20+
# namespace: kubernetes-dashboard
21+
# secrets:
22+
# - name: kubernetes-dashboard-admin-token-secret
23+
#
24+
#
25+
#
26+
# ---
27+
#
28+
#
29+
#
130
apiVersion: rbac.authorization.k8s.io/v1
2-
kind: ClusterRoleBinding
31+
kind: Role
332
metadata:
4-
name: kubernetes-dashboard-admin
33+
name: kubernetes-dashboard-podinfo-read-only
34+
namespace: podinfo
35+
rules:
36+
- apiGroups:
37+
- ""
38+
- extensions
39+
- apps
40+
resources:
41+
- deployments
42+
- namespaces
43+
- pods
44+
- replicasets
45+
- services
46+
verbs:
47+
- describe
48+
- get
49+
- list
50+
- watch
51+
---
52+
apiVersion: rbac.authorization.k8s.io/v1
53+
kind: RoleBinding
54+
metadata:
55+
name: kubernetes-dashboard-podinfo-read-only
56+
namespace: podinfo
57+
labels:
58+
app: kubernetes-dashboard
559
roleRef:
660
apiGroup: rbac.authorization.k8s.io
7-
kind: ClusterRole
8-
name: cluster-admin
61+
kind: Role
62+
name: kubernetes-dashboard-podinfo-read-only
963
subjects:
1064
- kind: ServiceAccount
11-
name: kubernetes-dashboard-admin
12-
namespace: kube-system
65+
name: kubernetes-dashboard-podinfo-read-only
66+
namespace: podinfo
1367
---
1468
apiVersion: v1
1569
kind: ServiceAccount
1670
metadata:
17-
name: kubernetes-dashboard-admin
18-
namespace: kube-system
71+
name: kubernetes-dashboard-podinfo-read-only
72+
namespace: podinfo
73+
# secrets:
74+
# - name: kubernetes-dashboard-podinfo-read-only-token-secret
Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
# https://github.com/kubernetes/dashboard/blob/master/aio/deploy/helm-chart/kubernetes-dashboard/values.yaml
22
extraArgs:
3-
- --enable-skip-login
43
- --enable-insecure-login
5-
- --disable-settings-authorizer
4+
# - --disable-settings-authorizer
65
protocolHttp: true
76
ingress:
87
enabled: true
98
annotations:
10-
forecastle.stakater.com/expose: "true"
11-
forecastle.stakater.com/icon: "https://kubernetes.io/images/kubernetes-horizontal-color.png"
12-
forecastle.stakater.com/appName: Kubernetes Dashboard
13-
nginx.ingress.kubernetes.io/auth-url: https://oauth2-proxy.${CLUSTER_FQDN}/oauth2/auth
14-
nginx.ingress.kubernetes.io/auth-signin: https://oauth2-proxy.${CLUSTER_FQDN}/oauth2/start?rd=$scheme://$host$request_uri
9+
# forecastle.stakater.com/expose: "true"
10+
# forecastle.stakater.com/icon: "https://kubernetes.io/images/kubernetes-horizontal-color.png"
11+
# forecastle.stakater.com/appName: Kubernetes Dashboard
12+
# nginx.ingress.kubernetes.io/auth-url: https://oauth2-proxy.${CLUSTER_FQDN}/oauth2/auth
13+
# nginx.ingress.kubernetes.io/auth-signin: https://oauth2-proxy.${CLUSTER_FQDN}/oauth2/start?rd=$scheme://$host$request_uri
14+
nginx.ingress.kubernetes.io/auth-snippet: |
15+
auth_request_set $token $upstream_http_authorization;
16+
proxy_set_header Authorization "Bearer ${KUBERNETES_DASHBOARD_TOKEN}";
17+
proxy_pass_header Authorization;
1518
className: nginx
1619
hosts:
1720
- kubernetes-dashboard.${CLUSTER_FQDN}
1821
tls:
1922
- hosts:
2023
- kubernetes-dashboard.${CLUSTER_FQDN}
21-
settings:
22-
clusterName: ${CLUSTER_FQDN}
23-
itemsPerPage: 50
24-
metricsScraper:
25-
enabled: true
24+
# settings:
25+
# clusterName: ${CLUSTER_FQDN}
26+
# itemsPerPage: 50
27+
# metricsScraper:
28+
# enabled: true
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# apiVersion: v1
2+
# kind: Secret
3+
# metadata:
4+
# name: kubernetes-dashboard-admin-token-secret
5+
# namespace: kubernetes-dashboard
6+
# annotations:
7+
# kubernetes.io/service-account.name: kubernetes-dashboard-admin
8+
# type: kubernetes.io/service-account-token
9+
#
10+
#
11+
#
12+
---
13+
#
14+
#
15+
#
16+
# apiVersion: v1
17+
# kind: Secret
18+
# metadata:
19+
# name: kubernetes-dashboard-podinfo-read-only-token-secret
20+
# namespace: podinfo
21+
# annotations:
22+
# kubernetes.io/service-account.name: kubernetes-dashboard-podinfo-read-only
23+
# type: kubernetes.io/service-account-token

clusters/aws-dev-mgmt/flux/cluster-apps/kubernetes-dashboard/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
resources:
44
- kubernetes-dashboard-clusterrolebinding.yaml
5+
- kubernetes-dashboard-token-secret.yaml
56

67
generatorOptions:
78
disableNameSuffixHash: true

clusters/aws-dev-mgmt/flux/cluster-apps/kustomization.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ resources:
1111
- ../../../../flux/sources/ingress-nginx
1212
- ../../../../flux/sources/jetstack
1313
- ../../../../flux/sources/kyverno
14-
- ../../../../flux/sources/kubernetes-dashboard
14+
# - ../../../../flux/sources/kubernetes-dashboard
1515
- ../../../../flux/sources/metrics-server
1616
- ../../../../flux/sources/oauth2-proxy
1717
- ../../../../flux/sources/runix
18-
- ../../../../flux/sources/podinfo
18+
# - ../../../../flux/sources/podinfo
1919
- ../../../../flux/sources/prometheus-community
2020
- ../../../../flux/sources/policy-reporter
2121
- ../../../../flux/sources/rancher
@@ -35,15 +35,15 @@ resources:
3535
- ../../../../flux/cluster-apps/ingress-nginx
3636
- ../../../../flux/cluster-apps/keycloak
3737
- ../../../../flux/cluster-apps/kube-prometheus-stack
38-
- ../../../../flux/cluster-apps/kubernetes-dashboard
38+
# - ../../../../flux/cluster-apps/kubernetes-dashboard
3939
- ../../../../flux/cluster-apps/kyverno
4040
- ../../../../flux/cluster-apps/kyverno-policies
4141
- ../../../../flux/cluster-apps/mailhog
4242
- ../../../../flux/cluster-apps/metrics-server
4343
- ../../../../flux/cluster-apps/oauth2-proxy
4444
- ../../../../flux/cluster-apps/oauth2-proxy-keycloak
4545
- ../../../../flux/cluster-apps/pgadmin4
46-
- ../../../../flux/cluster-apps/podinfo
46+
# - ../../../../flux/cluster-apps/podinfo
4747
- ../../../../flux/cluster-apps/policy-reporter
4848
- ../../../../flux/cluster-apps/rancher
4949
- ../../../../flux/cluster-apps/secrets-store-csi-driver
@@ -60,14 +60,14 @@ resources:
6060
- ingress-nginx
6161
- keycloak
6262
- kube-prometheus-stack
63-
- kubernetes-dashboard
63+
# - kubernetes-dashboard
6464
- kyverno
6565
- metrics-server
6666
- mailhog
6767
- oauth2-proxy
6868
- oauth2-proxy-keycloak
6969
- policy-reporter
70-
- podinfo
70+
# - podinfo
7171
- pgadmin4
7272
- rancher
7373
- secrets-store-csi-driver

clusters/aws-dev-mgmt/flux/cluster-apps/podinfo/podinfo-group-helmrelease-values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ ingress:
1212
nginx.ingress.kubernetes.io/configuration-snippet: |
1313
auth_request_set $email $upstream_http_x_auth_request_email;
1414
proxy_set_header X-Email $email;
15+
proxy_set_header Authorization "Bearer ${KUBERNETES_DASHBOARD_TOKEN}";
16+
# proxy_pass_header Authorization;
1517
className: nginx
1618
hosts:
1719
- host: podinfo.${CLUSTER_FQDN}

clusters/aws-dev-mgmt/mgmt01.k8s.use1.dev.proj.aws.mylabs.dev/flux/cluster-apps-kustomization.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,5 @@ spec:
2525
name: cluster-apps-secrets
2626
- kind: Secret
2727
name: cluster-apps-group-secrets
28+
decryption:
29+
provider: sops

clusters/aws-dev-mgmt/mgmt01.k8s.use1.dev.proj.aws.mylabs.dev/flux/flux-system/gotk-sync.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ metadata:
66
spec:
77
interval: 1m0s
88
ref:
9-
branch: main
9+
branch: improve-oauth2
1010
secretRef:
1111
name: flux-system
1212
url: ssh://[email protected]/ruzickap/k8s-tf-eks-gitops.git

0 commit comments

Comments
 (0)