เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดˆ เดฒเต‡เด–เดจเด‚ เด‡เดคเดฟเดจเด•เด‚ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเด•เตเด•เตเด• เดŽเดจเตเดจ เดฒเด•เตเดทเตเดฏเดคเตเดคเต‹เดŸเต†เดฏเดพเดฃเต เดŽเดดเตเดคเดฟเดฏเดคเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ, เดŽเดจเตเดจเดพเตฝ เดฎเตˆเด•เตเดฐเต‹เดธเต‹เดซเตเดฑเตเดฑเต เด†เด•เตเดฑเตเดฑเต€เดตเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดคเตเดฏเต‡เด•เดฎเดพเดฏเดฟ เด•เดฃเด•เตเดทเดจเตเดฑเต† เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเต† เด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด…เดคเต เดชเต‚เตผเดคเตเดคเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดŽเด™เตเด™เดจเต† เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเตเด‚ เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚:

  • เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดชเตเดฐเต‹เดœเด•เตเดŸเดพเดฃเต. เด‡เดคเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เต เด’เดฐเตŠเดฑเตเดฑ เดŽเตปเดŸเตเดฐเดฟ เดชเต‹เดฏเดฟเดจเตเดฑเต เดจเตฝเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ LDAP, OpenID เดŽเดจเตเดจเดฟเดตเดฏเตเตพเดชเตเดชเต†เดŸเต† เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.
  • เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด—เต‡เดฑเตเดฑเตเด•เต€เดชเตเดชเตผ - เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เดตเดดเดฟ เด…เด‚เด—เต€เด•เดพเดฐเด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฑเดฟเดตเต‡เดดเตเดธเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป.
  • เด—เดพเด‚เด—เตโ€Œเดตเต‡ - kubectl-เดจเดพเดฏเดฟ เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป, เด…เดคเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต OpenID เดตเดดเดฟ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเดพเดจเตเด‚ Kubernetes API-เดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

Kubernetes-เตฝ เด…เดจเตเดฎเดคเดฟเด•เตพ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เด†เตผโ€Œเดฌเดฟโ€ŒเดŽเดธเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด•เตเดคเตƒ/เด—เตเดฐเต‚เดชเตเดชเต เด…เดตเด•เดพเดถเด™เตเด™เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดฒเต‡เด–เดจเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดžเดพเตป เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด…เดตเด•เดพเดถเด™เตเด™เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต RBAC เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด‚, เดŽเดจเตเดจเดพเตฝ Kubernetes-เดจเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เด•เตเดฑเดฟเดšเตเดšเต เด’เดจเตเดจเตเด‚ เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ. เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดกเต†เดฒเดฟเดตเดฑเดฟ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ Kuberntes OpenID-เดฒเต‡เด•เตเด•เต เด’เดฐเต เดฆเดพเดคเดพเดตเดฟเดจเต† เดšเต‡เตผเด•เตเด•เตเด‚, เด‡เดคเต เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† Kubernetes เดคเดจเตเดจเต† เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเต เด…เดตเด•เดพเดถเด™เตเด™เตพ เดจเตฝเด•เตเด‚.

เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตฝ

  • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเต‹ เดฎเดฟเดจเดฟเด•เตเดฏเต‚เดฌเต‹ เด†เดตเดถเตเดฏเดฎเดพเดฃเต
  • เด†เด•เตเดŸเต€เดตเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ
  • เดกเตŠเดฎเต†เดฏเตโ€Œเดจเตเด•เตพ:
    keycloak.example.org
    kubernetes-dashboard.example.org
    gangway.example.org
  • เดกเตŠเดฎเต†เดฏเตโ€Œเดจเตเด•เตพเด•เตเด•เตเดณเตเดณ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตเดตเดฏเด‚ เด’เดชเตเดชเดฟเดŸเตเดŸ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต

เดธเตเดตเดฏเด‚ เด’เดชเตเดชเดฟเดŸเตเดŸ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดŽเด™เตเด™เดจเต† เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒ; เดจเดฟเด™เตเด™เตพ 2 เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด‡เดคเดพเดฃเต *.example.org เดกเตŠเดฎเต†เดฏเตโ€Œเดจเดฟเดจเดพเดฏเตเดณเตเดณ เดฑเต‚เดŸเตเดŸเตเด‚ (เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เด…เดคเต‹เดฑเดฟเดฑเตเดฑเดฟ) เด•เตเดฒเดฏเดจเตเดฑเต เดตเตˆเตฝเดกเตโ€Œเด•เดพเตผเดกเตเด‚

เดจเดฟเด™เตเด™เตพ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚/เดŽเดดเตเดคเตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เด•เตเดฒเดฏเดจเตเดฑเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต; เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เด…เดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•:

kubectl create secret tls tls-keycloak --cert=example.org.crt --key=example.org.pem

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดžเด™เตเด™เตพ เด‡เดคเต เดžเด™เตเด™เดณเตเดŸเต† เด‡เตปเด—เตเดฐเต†เดธเต เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚

เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป

เด‡เดคเดฟเดจเตเดณเตเดณ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดธเตŠเดฒเตเดฏเต‚เดทเดจเตเด•เตพ, เด…เดคเดพเดฏเดคเต เดนเต†เตฝเด‚ เดšเดพเตผเดŸเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดŽเดณเตเดชเตเดชเดตเดดเดฟเดฏเต†เดจเตเดจเต เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต.

เดถเต‡เด–เดฐเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•:

helm repo add codecentric https://codecentric.github.io/helm-charts
helm repo update

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดณเตเดณเดŸเด•เตเด•เดฎเตเดณเตเดณ เด’เดฐเต keycloak.yml เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•:

keycloak.yml

keycloak:
  # ะ˜ะผั ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€ะฐ
  username: "test_admin"
  # ะŸะฐั€ะพะปัŒ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€  
  password: "admin"
  # ะญั‚ะธ ั„ะปะฐะณะธ ะฝัƒะถะฝั‹ ั‡ั‚ะพ ะฑั‹ ะฟะพะทะฒะพะปะธั‚ัŒ ะทะฐะณั€ัƒะถะฐั‚ัŒ ะฒ Keycloak ัะบั€ะธะฟั‚ั‹ ะฟั€ัะผะพ ั‡ะตั€ะตะท web ะผะพั€ะดัƒ. ะญั‚ะพ ะฝะฐะผ 
  ะฟะพะฝะฐะดะพะฑะธั‚ัŒัั ั‡ั‚ะพ ะฑั‹ ะฟะพั‡ะธะฝะธั‚ัŒ ะพะดะธะฝ ะฑะฐะณ, ะพ ะบะพั‚ะพั€ะพะผ ะฝะธะถะต.
  extraArgs: "-Dkeycloak.profile.feature.script=enabled -Dkeycloak.profile.feature.upload_scripts=enabled" 
  # ะ’ะบะปัŽั‡ะฐะตะผ ingress, ัƒะบะฐะทั‹ะฒะฐะตะผ ะธะผั ั…ะพัั‚ะฐ ะธ ัะตั€ั‚ะธั„ะธะบะฐั‚ ะบะพั‚ะพั€ั‹ะน ะผั‹ ะฟั€ะตะดะฒะฐั€ะธั‚ะตะปัŒะฝะพ ัะพั…ั€ะฐะฝะธะปะธ ะฒ secrets
  ingress:
    enabled: true 
    path: /
    annotations:
      kubernetes.io/ingress.class: nginx
      ingress.kubernetes.io/affinity: cookie
    hosts:
      - keycloak.example.org
    tls:
    - hosts:
        - keycloak.example.org
      secretName: tls-keycloak
  # Keycloak ะดะปั ัะฒะพะตะน ั€ะฐะฑะพั‚ั‹ ั‚ั€ะตะฑัƒะตั‚ ะฑะฐะทัƒ ะดะฐะฝะฝั‹ั…, ะฒ ั‚ะตัั‚ะพะฒั‹ั… ั†ะตะปัั… ั ั€ะฐะทะฒะพั€ะฐั‡ะธะฒะฐัŽ Postgresql ะฟั€ัะผะพ ะฒ Kuberntes, ะฒ ะฟั€ะพะดะฐะบัˆะตะฝะต ั‚ะฐะบ ะปัƒั‡ัˆะต ะฝะต ะดะตะปะฐั‚ัŒ!
  persistence:
    deployPostgres: true
    dbVendor: postgres

postgresql:
  postgresUser: keycloak
  postgresPassword: ""
  postgresDatabase: keycloak
  persistence:
    enabled: true

เดซเต†เดกเดฑเต‡เดทเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด• keycloak.example.org

เด‡เดŸเดคเต เดฎเต‚เดฒเดฏเดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด• เดฎเดฃเตเดกเดฒเด‚ เดšเต‡เตผเด•เตเด•เตเด•

เด•เต€
เดตเดฟเดฒ

เดชเต‡เดฐเต
เด•เตเดฌเต‡เตผเดจเต†เดฑเตเดฑเตเดธเต

เดชเตเดฐเดฆเตผเดถเดจ เดจเดพเดฎเด‚
เด•เตเดฌเต‡เตผเดจเต†เดฑเตเดฑเต

เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด‡เดฎเต†เดฏเดฟเตฝ เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃ เดชเดฐเดฟเดถเต‹เดงเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•:
เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพ โ€”> เด‡เดฎเต†เดฏเดฟเตฝ โ€”> เดฎเดพเดชเตเดชเตผเดฎเดพเตผ โ€”> เด‡เดฎเต†เดฏเดฟเตฝ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเตเดฑเดชเตเดชเดฟเดšเตเดšเต (เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•)

ActiveDirectory-เตฝ เดจเดฟเดจเตเดจเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด’เดฐเต เดซเต†เดกเดฑเต‡เดทเตป เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต, เดžเดพเตป เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเตเด•เตพ เดคเดพเดดเต† เด‡เดŸเดพเด‚, เด…เดคเต เด•เต‚เดŸเตเดคเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต.

เดฏเต‚เดธเตผ เดซเต†เดกเดฑเต‡เดทเตป โ€”> เดฆเดพเดคเดพเดตเดฟเดจเต† เดšเต‡เตผเด•เตเด•เตเด•โ€ฆ โ€”> ldap

เดซเต†เดกเดฑเต‡เดทเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฌเดŸเตเดŸเตบ เด…เดฎเตผเดคเตเดคเดฟเดฏเดพเตฝ เดŽเดฒเตเดฒเดพ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต†เดฏเตเด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚.

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดจเดฎเตเดฎเตเดŸเต† เด—เตเดฐเต‚เดชเตเดชเตเด•เดณเต† เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเดฃเด‚

เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดซเต†เดกเดฑเต‡เดทเตป -> ldap_localhost -> เดฎเดพเดชเตเดชเดฑเตเด•เตพ -> เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เด’เดฐเต เดฎเดพเดชเตเดชเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเตเด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด•เตเดฒเดฏเดจเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚

เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด•เตเดฒเดฏเดจเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด•เต€เด•เตเดฒเต‹เด•เตเด•เดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เด‡เดคเต เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฃเต. เดธเตเด•เตเดฐเต€เตปเดทเต‹เดŸเตเดŸเดฟเดฒเต† เดชเตเดฐเดงเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ เดžเดพเตป เดšเตเดตเดชเตเดชเดฟเตฝ เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด‚.

เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ -> เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เด•เตเดฒเดฏเดจเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด—เตเดฐเต‚เดชเตเดชเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดธเตเด•เต‚เดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚:

เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพ -> เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เด’เดฐเต เดธเตเด•เต‹เดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเตเด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดตเตผเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดฎเดพเดชเตเดชเตผ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•:

เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพ -> เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ -> เดฎเดพเดชเตเดชเดฑเตเด•เตพ -> เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เดฎเดพเดชเตเดชเตผเด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เด—เตเดฐเต‚เดชเตเดชเตเด•เดณเตเดŸเต† เดฎเดพเดชเตเดชเดฟเด‚เด—เต เดžเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต:

เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ -> kubernetes -> เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพ -> เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพ
เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ ะฒ เดฒเดญเตเดฏเดฎเดพเดฏ เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพเด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดฏเตเด• เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดคเต เดšเต‡เตผเด•เตเด•เตเด•

เด•เต€เด•เตเดฒเต‹เด•เตเด•เดฟเตฝ เด…เด‚เด—เต€เด•เดพเดฐเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฐเดนเดธเตเดฏเด‚ (เด…เดคเต เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดŽเดดเตเดคเตเด•) เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚:

เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ -> kubernetes -> เด•เตเดฐเต†เดกเตปเดทเตเดฏเดฒเตเด•เตพ -> เดฐเดนเดธเตเดฏเด‚
เด‡เดคเต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เด…เด‚เด—เต€เด•เดพเดฐเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดŽเดจเดฟเด•เตเด•เต 403 เดชเดฟเดถเด•เต เดฒเดญเดฟเดšเตเดšเดชเตเดชเต‹เตพ เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเดšเตเดšเต. เดฌเด—เต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต.

เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเด•:

เด•เตเดฒเดฏเดจเตเดฑเต เดธเตเด•เต‹เดชเตเดชเตเด•เตพ -> เดฑเต‹เดณเตเด•เตพ -> เดฎเดพเดชเตเดชเตผเดฎเดพเตผ -> เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เดฎเดพเดชเตเดชเตผเด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เต‹เดกเต

// add current client-id to token audience
token.addAudience(token.getIssuedFor());

// return token issuer as dummy result assigned to iss again
token.getIssuer();

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดธเตˆเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เดฑเต‚เดŸเตเดŸเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเตเด‚ OIDC เดฆเดพเดคเดพเดตเต เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเตเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.
เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, /etc/kubernetes/manifests/kube-apiserver.yaml เดซเดฏเตฝ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•

kube-apiserver.yaml


...
spec:
  containers:
  - command:
    - kube-apiserver
...
    - --oidc-ca-file=/var/lib/minikube/certs/My_Root.crt
    - --oidc-client-id=kubernetes
    - --oidc-groups-claim=groups
    - --oidc-issuer-url=https://keycloak.example.org/auth/realms/kubernetes
    - --oidc-username-claim=email
...

เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต† kubeadm เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•:

kubeadm config

kubectl edit -n kube-system configmaps kubeadm-config


...
data:
  ClusterConfiguration: |
    apiServer:
      extraArgs:
        oidc-ca-file: /var/lib/minikube/certs/My_Root.crt
        oidc-client-id: kubernetes
        oidc-groups-claim: groups
        oidc-issuer-url: https://keycloak.example.org/auth/realms/kubernetes
        oidc-username-claim: email
...

auth-proxy เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด—เต‡เดฑเตเดฑเตเด•เต€เดชเตเดชเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดชเต‡เดœเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดˆ เดฑเดฟเดตเต‡เดดเตเดธเต เดชเตเดฐเต‹เด•เตเดธเดฟ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด…เด‚เด—เต€เด•เดพเดฐเด‚ เดจเตฝเด•เตเด‚ เดŽเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต‡, เดนเต†เดกเดฑเตเด•เดณเดฟเตฝ เดจเดฟเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดŽเตปเดกเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป OpenID เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด‰เดŸเดจเดŸเดฟ เด…เด‚เด—เต€เด•เดพเดฐเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚. เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚

Kubernetes เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต


helm install stable/kubernetes-dashboard --name dashboard -f values_dashboard.yaml

values_dashboard.yaml

enableInsecureLogin: true
service:
  externalPort: 80
rbac:
  clusterAdminRole: true
  create: true
serviceAccount:
  create: true
  name: 'dashboard-test'

เด†เด•เตเดธเดธเต เด…เดตเด•เดพเดถเด™เตเด™เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต:

DataOPS เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเต† เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด…เดกเตเดฎเดฟเตป เด…เดตเด•เดพเดถเด™เตเด™เตพ (เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต ClusterRole เด•เตเดฒเดธเตเดฑเตเดฑเตผ-เด…เดกเตเดฎเดฟเตป) เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต ClusterRoleBinding เดจเดฎเตเด•เตเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚.


kubectl apply -f rbac.yaml

rbac.yaml


apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dataops_group
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: DataOPS

เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด—เต‡เดฑเตเดฑเตเด•เต€เดชเตเดชเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:


helm repo add gabibbo97 https://gabibbo97.github.io/charts/
helm repo update
helm install gabibbo97/keycloak-gatekeeper --version 2.1.0 --name keycloak-gatekeeper -f values_proxy.yaml

values_proxy.yaml



# ะ’ะบะปัŽั‡ะฐะตะผ ingress
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
  path: /
  hosts:
    - kubernetes-dashboard.example.org
  tls:
   - secretName: tls-keycloak
     hosts:
       - kubernetes-dashboard.example.org

# ะ“ะพะฒะพั€ะธะผ ะณะดะต ะผั‹ ะฑัƒะดะตะผ ะฐะฒั‚ะพั€ะธะทะพะฒั‹ะฒะฐั‚ัŒัั ัƒ OIDC ะฟั€ะพะฒะฐะนะดะตั€ะฐ
discoveryURL: "https://keycloak.example.org/auth/realms/kubernetes"
# ะ˜ะผั ะบะปะธะตะฝั‚ะฐ ะบะพั‚ะพั€ะพะณะพ ะผั‹ ัะพะทะดะฐะปะธ ะฒ Keycloak
ClientID: "kubernetes"
# Secret ะบะพั‚ะพั€ั‹ะน ั ะฟั€ะพัะธะป ะทะฐะฟะธัะฐั‚ัŒ
ClientSecret: "c6ec03b8-d0b8-4cb6-97a0-03becba1d727"
# ะšัƒะดะฐ ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะธั‚ัŒ ะฒ ัะปัƒั‡ะฐะต ัƒัะฟะตัˆะฝะพะน ะฐะฒั‚ะพั€ะธะทะฐั†ะธะธ. ะคะพั€ะผะฐั‚ <SCHEMA>://<SERVICE_NAME>.><NAMESAPCE>.<CLUSTER_NAME>
upstreamURL: "http://dashboard-kubernetes-dashboard.default.svc.cluster.local"
# ะŸั€ะพะฟัƒัะบะฐะตะผ ะฟั€ะพะฒะตั€ะบัƒ ัะตั€ั‚ะธั„ะธะบะฐั‚ะฐ, ะตัะปะธ ัƒ ะฝะฐั ัะฐะผะพะฟะพะดะฟะธัะฐะฝะฝั‹ะน
skipOpenidProviderTlsVerify: true
# ะะฐัั‚ั€ะพะนะบะฐ ะฟั€ะฐะฒ ะดะพัั‚ัƒะฟะฐ, ะฟัƒัะบะฐะตะผ ะฝะฐ ะฒัะต path ะตัะปะธ ะผั‹ ะฒ ะณั€ัƒะฟะฟะต DataOPS
rules:
  - "uri=/*|groups=DataOPS"

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดจเดฟเด™เตเด™เตพ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ kubernetes-dashboard.example.org, เด•เต€เด•เตเดฒเต‹เด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚, เด…เด‚เด—เต€เด•เดพเดฐเด‚ เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‡เดคเดฟเดจเด•เด‚ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เดณเต† เด•เตŠเดฃเตเดŸเตเดชเต‹เด•เตเด‚.

เด—เดพเด‚เด—เตโ€Œเดตเต‡ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป

เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต kubectl-เดจเดพเดฏเดฟ เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด—เดพเด‚เด—เตโ€Œเดตเต‡ เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเดฟเดจเตเดฑเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต† เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด•เต€เดดเดฟเตฝ Kubernetes-เตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเด‚.


helm install --name gangway stable/gangway -f values_gangway.yaml

values_gangway.yaml


gangway:
  # ะŸั€ะพะธะทะฒะพะปัŒะฝะพะต ะธะผั ะบะปะฐัั‚ะตั€ะฐ
  clusterName: "my-k8s"
  # ะ“ะดะต ัƒ ะฝะฐั OIDC ะฟั€ะพะฒะฐะนะดะตั€
  authorizeURL: "https://keycloak.example.org/auth/realms/kubernetes/protocol/openid-connect/auth"
  tokenURL: "https://keycloak.example.org/auth/realms/kubernetes/protocol/openid-connect/token"
  audience: "https://keycloak.example.org/auth/realms/kubernetes/protocol/openid-connect/userinfo"
  # ะขะตะพั€ะธั‚ะธั‡ะตัะบะธ ััŽะดะฐ ะผะพะถะฝะพ ะดะพะฑะฐะฒะธั‚ัŒ groups ะบะพั‚ะพั€ั‹ะต ะผั‹ ะทะฐะผะฐะฟะธะปะธ
  scopes: ["openid", "profile", "email", "offline_access"]
  redirectURL: "https://gangway.example.org/callback"
  # ะ˜ะผั ะบะปะธะตะฝั‚ะฐ
  clientID: "kubernetes"
  # ะกะตะบั€ะตั‚
  clientSecret: "c6ec03b8-d0b8-4cb6-97a0-03becba1d727"
  # ะ•ัะปะธ ะพัั‚ะฐะฒะธั‚ัŒ ะดะตั„ะพะปั‚ะฝะพะต ะทะฝะฐั‡ะฝะธะต, ั‚ะพ ะทะฐ ะธะผั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั ะฑัƒะดะตั‚ ะฑั€ะฐั‚ัŒั <b>Frist name</b> <b>Second name</b>, ะฐ ะฟั€ะธ "sub" ะตะณะพ ะปะพะณะธะฝ
  usernameClaim: "sub"
  # ะ”ะพะผะตะฝะฝะพะต ะธะผั ะธะปะธ IP ะฐะดั€ะตัั API ัะตั€ะฒะตั€ะฐ
  apiServerURL: "https://192.168.99.111:8443"

# ะ’ะบะปัŽั‡ะฐะตะผ Ingress
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-buffer-size: "64k"
  path: /
  hosts:
  - gangway.example.org
  tls:
  - secretName: tls-keycloak
    hosts:
      - gangway.example.org

# ะ•ัะปะธ ะธัะฟะพะปัŒะทัƒะตะผ ัะฐะผะพะฟะพะดะฟะธัะฐะฝะฝั‹ะน ัะตั€ั‚ะธั„ะธะบะฐั‚, ั‚ะพ ะตะณะพ(ะพั‚ะบั€ั‹ั‚ั‹ะน ะบะพั€ะฝะตะฒะพะน ัะตั€ั‚ะธั„ะธะบะฐั‚) ะฝะฐะดะพ ัƒะบะฐะทะฐั‚ัŒ.
trustedCACert: |-
 -----BEGIN CERTIFICATE-----
 MIIDVzCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQsFADA1MQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRGF0YU9QUzEUMBIGA1UEAxMLbXkgcm9vdCBrZXkwHhcNMjAwMjE0MDkxODAwWhcNMzAwMjE0MDkxODAwWjA1MQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRGF0YU9QUzEUMBIGA1UEAxMLbXkgcm9vdCBrZXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDyP749PqqIRwNSqaK6qr0Zsi03G4PTCUlgaYTPZuMrwUVPK8xX2dWWs9MPRMOdXpgr8aSTZnVfmelIlVz4D7o2vK5rfmAe9GPcK0WbwKwXyhFU0flS9sU/g46ogHFrk03SZxQAeJhMLfEmAJm8LF5HghtGDs3t4uwGsB95o+lqPLiBvxRB8ZS3jSpYpvPgXAuZWKdZUQ3UUZf0X3hGLp7uIcIwJ7i4MduOGaQEO4cePeEJy9aDAO6qV78YmHbyh9kaW+1DL/Sgq8NmTgHGV6UOnAPKHTnMKXl6KkyUz8uLBGIdVhPxrlzG1EzXresJbJenSZ+FZqm3oLqZbw54Yp5hAgMBAAGjcjBwMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHISTOU/6BQqqnOZj+1xJfxpjiG0MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwHgYJYIZIAYb4QgENBBEWD3hjYSBjZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQsFAAOCAQEAj7HC8ObibwOLT4ZYmISJZwub9lcE0AZ5cWkPW39j/syhdbbqjK/6jy2D3WUEbR+s1Vson5Ov7JhN5In2yfZ/ByDvBnoj7CP8Q/ZMjTJgwN7j0rgmEb3CTZvnDPAz8Ijw3FP0cjxfoZ1Z0V2F44Ry7gtLJWr06+MztXVyto3aIz1/XbMQnXYlzc3c3B5yUQIy44Ce5aLRVsAjmXNqVRmDJ2QPNLicvrhnUJsO0zFWI+zZ2hc4Ge1RotCrjfOc9hQY63jZJ17myCZ6QCD7yzMzAob4vrgmkD4q7tpGrhPY/gDcE+lUNhC7DO3l0oPy2wsnT2TEn87eyWmDiTFG9zWDew==
 -----END CERTIFICATE-----

เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เดคเต‹เดจเตเดจเตเดจเตเดจเต. เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เด‰เดŸเดจเดŸเดฟ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเต เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต:

เด•เต€เด•เตเดฒเต‹เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ ActiveDirectory เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•