All Projects → scholzj → keycloak-kubernetes

scholzj / keycloak-kubernetes

Licence: other
Keycloak deployment into Kubernetes cluster

Projects that are alternatives of or similar to keycloak-kubernetes

Excision-Mail
Fullstack, security focused mailserver based on OpenSMTPD for OpenBSD using ansible
Stars: ✭ 108 (+332%)
Mutual labels:  letsencrypt, ansible-playbook
keycloakify-demo-app
Demo GitHub Actions setup for react projects that uses keycloakify
Stars: ✭ 34 (+36%)
Mutual labels:  keycloak
Kali-TX
Customized Kali Linux - Ansible playbook
Stars: ✭ 54 (+116%)
Mutual labels:  ansible-playbook
keycloak-dropwizard-integration
This project shows how JBoss Keycloak and Dropwizard can be used together.
Stars: ✭ 49 (+96%)
Mutual labels:  keycloak
httpsify
a transparent HTTPS termination proxy using letsencrypt with auto certification renewal
Stars: ✭ 107 (+328%)
Mutual labels:  letsencrypt
LetsEncrypt
C# layer for generation of wildcard Let's Encrypt SSL certificates
Stars: ✭ 67 (+168%)
Mutual labels:  letsencrypt
laravel-lets-encrypt
Let's Encrypt wrapper for Laravel
Stars: ✭ 112 (+348%)
Mutual labels:  letsencrypt
e-shop
Sample Spring Cloud microservices e-shop.
Stars: ✭ 48 (+92%)
Mutual labels:  keycloak
acme2
Another PHP client for acme protocal (version 2) implementation, used for generating letsencrypt's free ssl certificates.
Stars: ✭ 45 (+80%)
Mutual labels:  letsencrypt
httpsbook
《深入浅出HTTPS:从原理到实战》代码示例、勘误、反馈、讨论
Stars: ✭ 77 (+208%)
Mutual labels:  letsencrypt
ansible
Ansible playbook automation for pfelk
Stars: ✭ 23 (-8%)
Mutual labels:  ansible-playbook
Hermes-Secure-Email-Gateway
Hermes Secure Email Gateway is a Free Open Source Ubuntu 18.04 or 20.04 Server based Email Gateway that provides Spam, Virus and Malware protection, full in-transit and at-rest email encryption as well as email archiving. It features the latest email authentication techniques such as SPF, DKIM and DMARC.
Stars: ✭ 35 (+40%)
Mutual labels:  letsencrypt
dehydrated-certificate-installers
Tools to install certificates which are created with dehydrated.
Stars: ✭ 38 (+52%)
Mutual labels:  letsencrypt
action.playbook
Github Action for running Ansible Playbooks.
Stars: ✭ 26 (+4%)
Mutual labels:  ansible-playbook
steam-openid-connect-provider
Steam OpenID Connect Identity Provider (IdP)
Stars: ✭ 40 (+60%)
Mutual labels:  keycloak
LXD-Cloud
Lightweight server management using LXD and Ansible
Stars: ✭ 19 (-24%)
Mutual labels:  ansible-playbook
ans-pve-win-templ
Ansible playbook to create Proxmox Windows VM templates
Stars: ✭ 49 (+96%)
Mutual labels:  ansible-playbook
docker-compose-sentry
Docker Compose configuration for running a Sentry server.
Stars: ✭ 20 (-20%)
Mutual labels:  letsencrypt
arch-ansible
An Ansible playbook to install Arch Linux
Stars: ✭ 33 (+32%)
Mutual labels:  ansible-playbook
openconnect-installer
Automatically set up an Openconnect/Anyconnect VPN server(ocserv) with Let's Encrypt with just one command in CentOS 8.
Stars: ✭ 64 (+156%)
Mutual labels:  letsencrypt

Keycloak

This repository contains the tooling for deploying Keycloak application into running Kubernetes cluster. It is using PostgreSQL for persisitence.

Updates

8.12.2017: Updated to Keycloak 3.4.1 1.12.2017: Updated to Keycloak 3.4.0

Prerequisites

  • Kubernetes cluster with Nginx based ingress controller
  • OpenSSL (for generating SSL certificates)
  • Amazon AWS access for Route53 records
  • Ansible 2.2
  • kubectl with proper configuration to connect to running Kubernetes cluster
  • boto library which will be used for communication with Amazon AWS APIs

Configuration

The configuration is in group_vars/all/vars.yaml. It configures different details of the deployment.

Variable Explanation Example
namespace Kubernetes namespace where Keycloak should be deployed dave
keycloak_release Which Docker image tag should be used in the deployment of the Keycloak application 3.4.0.Final
dns_zone Hosted DNS zone which has to exist in Route53 dbg-devops.com
keycloak_dns Hostname of the UI snapshot.dave.dbg-devops.com
elb_hosted_zone The hosted zone in which the aliased ELB load balancers are hosted (should be dependent on the AWS region) Z32O12XQLNTSW2
key_path Path to the SSL private key ./api.key
cert_path Path to the SSL public key ./api.cert
admin_user Admin user for Keycloak service admin
admin_password Admin password for Keycloak service 123456
postgres_user Admin user for Keycloak service keycloak
postgres_password Admin password for Keycloak service 123456
postgres_database NAme of the postgreSQL database to use keycloak

Following configuration is needed only for signing the certificates with Let's Encrypt:

Variable Explanation Example
letsencrypt_account_key_path Path where the Let's Encrypt account key is / should be created ./account.key
acme_directory Let's Encrypt ACME directory where we the certificates should be signed (production or staging) https://acme-staging.api.letsencrypt.org/directory
full_chain_cert URL to chain of public CA certificates which should be used with the end certificates. If not specified, only the end certificate will be used. https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem.txt

Installation

To install the application export the variables with AWS access tokens and run:

ansible-playbook install.yaml

It will create the Kubernetes resources, Route53 records etc. The definition of the Kubernetes objects is in the templates of different roles. Change the templates if you want to change something. Before running the installation, check the configuration first.

Uninstallation

To uninstall the application export the variables with AWS access tokens and run:

ansible-playbook uninstall.yaml

It will remove all Kubernetes resources from the cluster as well as the Route53 DNS records. Before running the uninstallation, check the configuration first.

Signed certificates with Let's Encrypt

Playbook letsencrypt.yaml can be used to obtain signed keys from Let's Encrypt CA. Export the variables with AWS access tokens and run:

ansible-playbook letsencrypt.yaml
  • If the account key is missing, it will generate new account key
  • If the key is missing, it will generate new key with the hostname in CN
  • It will generate CSR
  • It will try to get the certificates signed. DNS verification will be used - Route53 will be automatically used to handle it.
  • The keys will be signed only if the old keys expire in 10 or less days

The acme_directory variable can be used to define whether the production Let's Encrypt service should be used or the staging service (for testing).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].