-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
20 changed files
with
1,805 additions
and
187 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
File renamed without changes
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,17 @@ | ||
## Where is this content? | ||
The Gluu Flex documentation is a work in progress, and this document is currently a draft. Keep an eye on this page for updates. | ||
--- | ||
tags: | ||
- administration | ||
- installation | ||
- helm | ||
--- | ||
|
||
# Overview | ||
|
||
Gluu Flex enables organizations to build a scalable centralized authentication and authorization service using free open source software. | ||
|
||
The components of the project include client and server implementations of the OAuth, OpenID Connect, SCIM and FIDO standards. | ||
|
||
All these components are deployed using Gluu [helm chart](https://github.com/GluuFederation/flex/blob/main/flex-cn-setup/pygluu/kubernetes/templates/helm/gluu). | ||
|
||
You can check the [reference](../../reference/kubernetes/helm-chart.md) guide to view the list of the chart components and values. | ||
|
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,222 @@ | ||
## Where is this content? | ||
The Gluu Flex documentation is a work in progress, and this document is currently a draft. Keep an eye on this page for updates. | ||
--- | ||
tags: | ||
- administration | ||
- installation | ||
- helm | ||
- GKE | ||
- Google Cloud | ||
- GCP | ||
--- | ||
|
||
# Install Gluu on GKE | ||
|
||
## System Requirements | ||
|
||
The resources may be set to the minimum as below: | ||
|
||
- 8 GiB RAM | ||
- 8 CPU cores | ||
- 50GB hard-disk | ||
|
||
Use the listing below for detailed estimation of minimum required resources. Table contains the default resources recommendations per service. Depending on the use of each service the resources needs may be increase or decrease. | ||
|
||
| Service | CPU Unit | RAM | Disk Space | Processor Type | Required | | ||
|-------------------|----------|-------|------------|----------------|------------------------------------| | ||
| Auth server | 2.5 | 2.5GB | N/A | 64 Bit | Yes | | ||
| LDAP (OpenDJ) | 1.5 | 2GB | 10GB | 64 Bit | Only if couchbase is not installed | | ||
| fido2 | 0.5 | 0.5GB | N/A | 64 Bit | No | | ||
| scim | 1.0 | 1.0GB | N/A | 64 Bit | No | | ||
| config - job | 0.5 | 0.5GB | N/A | 64 Bit | Yes on fresh installs | | ||
| persistence - job | 0.5 | 0.5GB | N/A | 64 Bit | Yes on fresh installs | | ||
| nginx | 1 | 1GB | N/A | 64 Bit | Yes if not ALB | | ||
| auth-key-rotation | 0.3 | 0.3GB | N/A | 64 Bit | No [Strongly recommended] | | ||
| config-api | 1 | 1GB | N/A | 64 Bit | No | | ||
| casa | 1 | 1GB | N/A | 64 Bit | No | | ||
| admin-ui | 2 | 2GB | N/A | 64 Bit | No | | ||
|
||
Releases of images are in style 1.0.0-beta.0, 1.0.0-0 | ||
|
||
## Initial Setup | ||
|
||
1. If you are using Cloud Shell, you can skip to step 4. | ||
|
||
2. Install [gcloud](https://cloud.google.com/sdk/docs/quickstarts) | ||
|
||
3. Install kubectl using `gcloud components install kubectl` command | ||
|
||
4. Create cluster using a command such as the following example: | ||
|
||
``` | ||
gcloud container clusters create gluu-cluster --num-nodes 2 --machine-type e2-highcpu-8 --zone us-west1-a | ||
``` | ||
You can adjust `num-nodes` and `machine-type` as per your desired cluster size | ||
5. Install [Helm3](https://helm.sh/docs/intro/install/) | ||
6. Create `gluu` namespace where our resources will reside | ||
``` | ||
kubectl create namespace gluu | ||
``` | ||
## Gluu Installation using Helm | ||
1. Install [Nginx-Ingress](https://github.com/kubernetes/ingress-nginx), if you are not using Istio ingress | ||
``` | ||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx | ||
helm repo add stable https://charts.helm.sh/stable | ||
helm repo update | ||
helm install nginx ingress-nginx/ingress-nginx | ||
``` | ||
2. Create a file named `override.yaml` and add changes as per your desired configuration: | ||
- FQDN/domain is *not* registered: | ||
Get the Loadbalancer IP: | ||
``` | ||
kubectl get svc nginx-ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}' | ||
``` | ||
Add the following yaml snippet to your `override.yaml` file: | ||
```yaml | ||
global: | ||
lbIp: #Add the Loadbalance IP from the previous command | ||
isFqdnRegistered: false | ||
``` | ||
- FQDN/domain is registered: | ||
Add the following yaml snippet to your `override.yaml` file`: | ||
```yaml | ||
global: | ||
lbIp: #Add the LoadBalancer IP from the previous command | ||
isFqdnRegistered: true | ||
fqdn: demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
nginx-ingress: | ||
ingress: | ||
path: / | ||
hosts: | ||
- demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
tls: | ||
- secretName: tls-certificate | ||
hosts: | ||
- demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
``` | ||
- LDAP/Opendj for persistence storage | ||
Add the following yaml snippet to your `override.yaml` file: | ||
```yaml | ||
global: | ||
cnPersistenceType: ldap | ||
storageClass: | ||
provisioner: kubernetes.io/gce-pd | ||
opendj: | ||
enabled: true | ||
``` | ||
So if your desired configuration has no-FQDN and LDAP, the final `override.yaml` file will look something like that: | ||
```yaml | ||
global: | ||
cnPersistenceType: ldap | ||
lbIp: #Add the Loadbalancer IP from the previous command | ||
isFqdnRegistered: false | ||
storageClass: | ||
provisioner: kubernetes.io/gce-pd | ||
opendj: | ||
enabled: true | ||
nginx-ingress: | ||
ingress: | ||
path: / | ||
hosts: | ||
- demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
tls: | ||
- secretName: tls-certificate | ||
hosts: | ||
- demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
``` | ||
- MySQL for persistence storage | ||
In a production environment, a production grade MySQL server should be used such as `Cloud SQL` | ||
For testing purposes, you can deploy it on the GKE cluster using the following commands: | ||
``` | ||
helm repo add bitnami https://charts.bitnami.com/bitnami | ||
helm install my-release --set auth.rootPassword=Test1234#,auth.database=gluu bitnami/mysql -n gluu | ||
``` | ||
Add the following yaml snippet to your `override.yaml` file: | ||
```yaml | ||
global: | ||
cnPersistenceType: sql | ||
config: | ||
configmap: | ||
cnSqlDbName: gluu | ||
cnSqlDbPort: 3306 | ||
cnSqlDbDialect: mysql | ||
cnSqlDbHost: my-release-mysql.gluu.svc | ||
cnSqlDbUser: root | ||
cnSqlDbTimezone: UTC | ||
cnSqldbUserPassword: Test1234# | ||
``` | ||
So if your desired configuration has FQDN and MySQL, the final `override.yaml` file will look something like that: | ||
```yaml | ||
global: | ||
cnPersistenceType: sql | ||
lbIp: "" #Add the LoadBalancer IP from previous command | ||
isFqdnRegistered: true | ||
fqdn: demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
nginx-ingress: | ||
ingress: | ||
path: / | ||
hosts: | ||
- demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
tls: | ||
- secretName: tls-certificate | ||
hosts: | ||
- demoexample.gluu.org #CHANGE-THIS to the FQDN used for Gluu | ||
config: | ||
configmap: | ||
cnSqlDbName: gluu | ||
cnSqlDbPort: 3306 | ||
cnSqlDbDialect: mysql | ||
cnSqlDbHost: my-release-mysql.gluu.svc | ||
cnSqlDbUser: root | ||
cnSqlDbTimezone: UTC | ||
cnSqldbUserPassword: Test1234# | ||
``` | ||
3. Install Gluu | ||
After finishing all the tweaks to the `override.yaml` file, we can use it to install gluu. | ||
``` | ||
helm repo add gluu-flex https://docs.gluu.org/charts | ||
helm repo update | ||
helm install gluu gluu-flex/gluu -n gluu -f override.yaml | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,58 @@ | ||
## Where is this content? | ||
The Gluu Flex documentation is a work in progress, and this document is currently a draft. Keep an eye on this page for updates. | ||
--- | ||
tags: | ||
- administration | ||
- installation | ||
- helm | ||
--- | ||
|
||
# Install Gluu Server Locally with minikube and MicroK8s | ||
|
||
## System Requirements | ||
|
||
For local deployments like `minikube` and `MicroK8s` or cloud installations in demo mode, resources may be set to the minimum as below: | ||
|
||
- 8GB RAM | ||
- 4 CPU cores | ||
- 50GB hard-disk | ||
|
||
Use the listing below for detailed estimation of minimum required resources. Table contains the default resources recommendations per service. Depending on the use of each service the resources needs may be increase or decrease. | ||
|
||
| Service | CPU Unit | RAM | Disk Space | Processor Type | Required | | ||
|-------------------|----------|-------|------------|----------------|------------------------------------| | ||
| Auth server | 2.5 | 2.5GB | N/A | 64 Bit | Yes | | ||
| LDAP (OpenDJ) | 1.5 | 2GB | 10GB | 64 Bit | Only if couchbase is not installed | | ||
| fido2 | 0.5 | 0.5GB | N/A | 64 Bit | No | | ||
| scim | 1.0 | 1.0GB | N/A | 64 Bit | No | | ||
| config - job | 0.5 | 0.5GB | N/A | 64 Bit | Yes on fresh installs | | ||
| persistence - job | 0.5 | 0.5GB | N/A | 64 Bit | Yes on fresh installs | | ||
| nginx | 1 | 1GB | N/A | 64 Bit | Yes if not ALB | | ||
| auth-key-rotation | 0.3 | 0.3GB | N/A | 64 Bit | No [Strongly recommended] | | ||
| config-api | 1 | 1GB | N/A | 64 Bit | No | | ||
| casa | 1 | 1GB | N/A | 64 Bit | No | | ||
| admin-ui | 2 | 2GB | N/A | 64 Bit | No | | ||
|
||
Releases of images are in style 1.0.0-beta.0, 1.0.0-0 | ||
|
||
## Installation Steps | ||
|
||
Start a fresh ubuntu `18.04` or `20.04` 4 CPU, 16 GB RAM, and 50GB SSD VM with ports `443` and `80` open. Then execute the following | ||
|
||
```bash | ||
sudo su - | ||
``` | ||
```bash | ||
wget https://raw.githubusercontent.com/GluuFederation/flex/vreplace-flex-version/automation/startflexmonolithdemo.sh && chmod u+x startflexmonolithdemo.sh && ./startflexmonolithdemo.sh | ||
``` | ||
|
||
This will install docker, microk8s, helm and Gluu with the default settings that can be found inside [values.yaml](https://github.com/GluuFederation/flex/blob/main/flex-cn-setup/pygluu/kubernetes/templates/helm/gluu). | ||
|
||
The installer will automatically add a record to your hosts record in the VM but if you want access the endpoints outside the VM you must map the `ip` of the instance running ubuntu to the FQDN you provided and then access the endpoints at your browser such in the example in the table below. | ||
|
||
| Service | Example endpoint | | ||
|-------------|-------------------------------------------------| | ||
| Auth server | `https://FQDN/.well-known/openid-configuration` | | ||
| fido2 | `https://FQDN/.well-known/fido2-configuration` | | ||
| scim | `https://FQDN/.well-known/scim-configuration` | | ||
| Casa | `https://FQDN/casa` | | ||
| Admin-UI | `https://FQDN/admin` | | ||
|
Oops, something went wrong.