Kubernetes Install - This closes #83 The helm charts and instructions for how to install in Kubernetes. This is a bare bones install and can be updated to include self healing and auto scaling. It currently works with Postgres
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/a674dded Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a674dded Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a674dded Branch: refs/heads/2_1_X Commit: a674ddedabbc38b8cb8ab4385c9ff6eabde394cc Parents: d0db28b Author: Unknown <[email protected]> Authored: Tue Aug 28 13:36:32 2018 -0600 Committer: Francesco Chicchiriccò <[email protected]> Committed: Fri Oct 12 14:01:49 2018 +0200 ---------------------------------------------------------------------- docker/src/main/resources/docker-compose-ha.yml | 93 ------------ .../main/resources/docker-compose-mariadb.yml | 71 ---------- .../src/main/resources/docker-compose-mssql.yml | 73 ---------- .../src/main/resources/docker-compose-mysql.yml | 70 --------- .../resources/docker-compose-postgresql.yml | 76 ---------- .../docker-compose/docker-compose-ha.yml | 93 ++++++++++++ .../docker-compose/docker-compose-mariadb.yml | 71 ++++++++++ .../docker-compose/docker-compose-mssql.yml | 73 ++++++++++ .../docker-compose/docker-compose-mysql.yml | 70 +++++++++ .../docker-compose-postgresql.yml | 76 ++++++++++ docker/src/main/resources/k8s/helm/README.adoc | 25 ++++ .../main/resources/k8s/helm/postgres/Chart.yaml | 30 ++++ .../helm/postgres/templates/db-deployment.yaml | 141 +++++++++++++++++++ .../resources/k8s/helm/postgres/values.yaml | 47 +++++++ .../main/resources/k8s/helm/syncope/Chart.yaml | 29 ++++ .../templates/syncope-console-deployment.yaml | 51 +++++++ .../syncope/templates/syncope-deployment.yaml | 67 +++++++++ .../templates/syncope-enduser-deployment.yaml | 51 +++++++ .../main/resources/k8s/helm/syncope/values.yaml | 56 ++++++++ src/main/asciidoc/getting-started/obtain.adoc | 42 ++++++ src/main/asciidoc/images/SyncopeLayoutInK8s.png | Bin 0 -> 68715 bytes 21 files changed, 922 insertions(+), 383 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose-ha.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose-ha.yml b/docker/src/main/resources/docker-compose-ha.yml deleted file mode 100644 index 0eb26f5..0000000 --- a/docker/src/main/resources/docker-compose-ha.yml +++ /dev/null @@ -1,93 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Full deployment (Core, Console, Enduser) on PostgreSQL, with high-availability set for Core -# http://syncope.apache.org/docs/reference-guide.html#high-availability - -version: '3.3' - -services: - db: - image: crunchydata/crunchy-postgres:centos7-10.3-1.8.2 - restart: always - environment: - PG_ROOT_PASSWORD: postgres - PG_MODE: primary - PG_PRIMARY_USER: postgres - PG_PRIMARY_PASSWORD: postgres - PG_PRIMARY_HOST: localhost - PG_PRIMARY_PORT: 5432 - PG_DATABASE: syncope - PG_USER: syncope - PG_PASSWORD: syncope - - syncope1: - depends_on: - - db - image: apache/syncope:${syncope.version} - ports: - - "18080:8080" - restart: always - environment: - DBMS: postgresql - DB_URL: jdbc:postgresql://db:5432/syncope - DB_USER: syncope - DB_PASSWORD: syncope - DB_POOL_MAX: 10 - DB_POOL_MIN: 2 - OPENJPA_REMOTE_COMMIT: tcp(Addresses=syncope1;syncope2) - - syncope2: - depends_on: - - db - image: apache/syncope:${syncope.version} - ports: - - "18081:8080" - restart: always - environment: - DBMS: postgresql - DB_URL: jdbc:postgresql://db:5432/syncope - DB_USER: syncope - DB_PASSWORD: syncope - DB_POOL_MAX: 10 - DB_POOL_MIN: 2 - OPENJPA_REMOTE_COMMIT: tcp(Addresses=syncope1;syncope2) - - syncope-console: - depends_on: - - syncope1 - image: apache/syncope-console:${syncope.version} - ports: - - "28080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope1 - CORE_PORT: 8080 - - syncope-enduser: - depends_on: - - syncope1 - image: apache/syncope-enduser:${syncope.version} - ports: - - "38080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope1 - CORE_PORT: 8080 - DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose-mariadb.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose-mariadb.yml b/docker/src/main/resources/docker-compose-mariadb.yml deleted file mode 100644 index 65851bb..0000000 --- a/docker/src/main/resources/docker-compose-mariadb.yml +++ /dev/null @@ -1,71 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Full deployment (Core, Console, Enduser) on MariaDB - -version: '3.3' - -services: - db: - image: mariadb:10.3.7 - restart: always - environment: - MYSQL_ROOT_PASSWORD: password - MYSQL_DATABASE: syncope - MYSQL_USER: syncope - MYSQL_PASSWORD: syncope - - syncope: - depends_on: - - db - image: apache/syncope:${syncope.version} - ports: - - "18080:8080" - restart: always - environment: - DBMS: mariadb - DB_URL: jdbc:mysql://db:3306/syncope?characterEncoding=UTF-8&relaxAutoCommit=true&useSSL=false - DB_USER: syncope - DB_PASSWORD: syncope - DB_POOL_MAX: 10 - DB_POOL_MIN: 2 - OPENJPA_REMOTE_COMMIT: sjvm - - syncope-console: - depends_on: - - syncope - image: apache/syncope-console:${syncope.version} - ports: - - "28080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - - syncope-enduser: - depends_on: - - syncope - image: apache/syncope-enduser:${syncope.version} - ports: - - "38080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose-mssql.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose-mssql.yml b/docker/src/main/resources/docker-compose-mssql.yml deleted file mode 100644 index 462f749..0000000 --- a/docker/src/main/resources/docker-compose-mssql.yml +++ /dev/null @@ -1,73 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Full deployment (Core, Console, Enduser) on MS SQL Server - -version: '3.3' - -services: - db: - image: mcmoe/mssqldocker:latest - restart: always - environment: - ACCEPT_EULA: Y - SA_PASSWORD: 2astazeY - MSSQL_DB: syncope - MSSQL_USER: syncope - MSSQL_PASSWORD: Syncope123 - - syncope: - depends_on: - - db - image: apache/syncope:${syncope.version} - ports: - - "18080:8080" - restart: always - environment: - DBMS: mssql - DB_URL: jdbc:sqlserver://db:1433;databaseName=syncope - DB_SCHEMA: dbo - DB_USER: syncope - DB_PASSWORD: Syncope123 - DB_POOL_MAX: 10 - DB_POOL_MIN: 2 - OPENJPA_REMOTE_COMMIT: sjvm - - syncope-console: - depends_on: - - syncope - image: apache/syncope-console:${syncope.version} - ports: - - "28080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - - syncope-enduser: - depends_on: - - syncope - image: apache/syncope-enduser:${syncope.version} - ports: - - "38080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose-mysql.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose-mysql.yml b/docker/src/main/resources/docker-compose-mysql.yml deleted file mode 100644 index d2af8c0..0000000 --- a/docker/src/main/resources/docker-compose-mysql.yml +++ /dev/null @@ -1,70 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Full deployment (Core, Console, Enduser) on MySQL - -version: '3.3' - -services: - db: - image: mysql/mysql-server:5.7 - restart: always - environment: - MYSQL_DATABASE: syncope - MYSQL_USER: syncope - MYSQL_PASSWORD: syncope - - syncope: - depends_on: - - db - image: apache/syncope:${syncope.version} - ports: - - "18080:8080" - restart: always - environment: - DBMS: mysql - DB_URL: jdbc:mysql://db:3306/syncope?characterEncoding=UTF-8&relaxAutoCommit=true&useSSL=false - DB_USER: syncope - DB_PASSWORD: syncope - DB_POOL_MAX: 10 - DB_POOL_MIN: 2 - OPENJPA_REMOTE_COMMIT: sjvm - - syncope-console: - depends_on: - - syncope - image: apache/syncope-console:${syncope.version} - ports: - - "28080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - - syncope-enduser: - depends_on: - - syncope - image: apache/syncope-enduser:${syncope.version} - ports: - - "38080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose-postgresql.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose-postgresql.yml b/docker/src/main/resources/docker-compose-postgresql.yml deleted file mode 100644 index 862a051..0000000 --- a/docker/src/main/resources/docker-compose-postgresql.yml +++ /dev/null @@ -1,76 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Full deployment (Core, Console, Enduser) on PostgreSQL - -version: '3.3' - -services: - db: - image: crunchydata/crunchy-postgres:centos7-10.3-1.8.2 - restart: always - environment: - PG_ROOT_PASSWORD: postgres - PG_MODE: primary - PG_PRIMARY_USER: postgres - PG_PRIMARY_PASSWORD: postgres - PG_PRIMARY_HOST: localhost - PG_PRIMARY_PORT: 5432 - PG_DATABASE: syncope - PG_USER: syncope - PG_PASSWORD: syncope - - syncope: - depends_on: - - db - image: apache/syncope:${syncope.version} - ports: - - "18080:8080" - restart: always - environment: - DBMS: postgresql - DB_URL: jdbc:postgresql://db:5432/syncope - DB_USER: syncope - DB_PASSWORD: syncope - DB_POOL_MAX: 10 - DB_POOL_MIN: 2 - OPENJPA_REMOTE_COMMIT: sjvm - - syncope-console: - depends_on: - - syncope - image: apache/syncope-console:${syncope.version} - ports: - - "28080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - - syncope-enduser: - depends_on: - - syncope - image: apache/syncope-enduser:${syncope.version} - ports: - - "38080:8080" - restart: always - environment: - CORE_SCHEME: http - CORE_HOST: syncope - CORE_PORT: 8080 - DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose/docker-compose-ha.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose/docker-compose-ha.yml b/docker/src/main/resources/docker-compose/docker-compose-ha.yml new file mode 100644 index 0000000..0eb26f5 --- /dev/null +++ b/docker/src/main/resources/docker-compose/docker-compose-ha.yml @@ -0,0 +1,93 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Full deployment (Core, Console, Enduser) on PostgreSQL, with high-availability set for Core +# http://syncope.apache.org/docs/reference-guide.html#high-availability + +version: '3.3' + +services: + db: + image: crunchydata/crunchy-postgres:centos7-10.3-1.8.2 + restart: always + environment: + PG_ROOT_PASSWORD: postgres + PG_MODE: primary + PG_PRIMARY_USER: postgres + PG_PRIMARY_PASSWORD: postgres + PG_PRIMARY_HOST: localhost + PG_PRIMARY_PORT: 5432 + PG_DATABASE: syncope + PG_USER: syncope + PG_PASSWORD: syncope + + syncope1: + depends_on: + - db + image: apache/syncope:${syncope.version} + ports: + - "18080:8080" + restart: always + environment: + DBMS: postgresql + DB_URL: jdbc:postgresql://db:5432/syncope + DB_USER: syncope + DB_PASSWORD: syncope + DB_POOL_MAX: 10 + DB_POOL_MIN: 2 + OPENJPA_REMOTE_COMMIT: tcp(Addresses=syncope1;syncope2) + + syncope2: + depends_on: + - db + image: apache/syncope:${syncope.version} + ports: + - "18081:8080" + restart: always + environment: + DBMS: postgresql + DB_URL: jdbc:postgresql://db:5432/syncope + DB_USER: syncope + DB_PASSWORD: syncope + DB_POOL_MAX: 10 + DB_POOL_MIN: 2 + OPENJPA_REMOTE_COMMIT: tcp(Addresses=syncope1;syncope2) + + syncope-console: + depends_on: + - syncope1 + image: apache/syncope-console:${syncope.version} + ports: + - "28080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope1 + CORE_PORT: 8080 + + syncope-enduser: + depends_on: + - syncope1 + image: apache/syncope-enduser:${syncope.version} + ports: + - "38080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope1 + CORE_PORT: 8080 + DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose/docker-compose-mariadb.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose/docker-compose-mariadb.yml b/docker/src/main/resources/docker-compose/docker-compose-mariadb.yml new file mode 100644 index 0000000..65851bb --- /dev/null +++ b/docker/src/main/resources/docker-compose/docker-compose-mariadb.yml @@ -0,0 +1,71 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Full deployment (Core, Console, Enduser) on MariaDB + +version: '3.3' + +services: + db: + image: mariadb:10.3.7 + restart: always + environment: + MYSQL_ROOT_PASSWORD: password + MYSQL_DATABASE: syncope + MYSQL_USER: syncope + MYSQL_PASSWORD: syncope + + syncope: + depends_on: + - db + image: apache/syncope:${syncope.version} + ports: + - "18080:8080" + restart: always + environment: + DBMS: mariadb + DB_URL: jdbc:mysql://db:3306/syncope?characterEncoding=UTF-8&relaxAutoCommit=true&useSSL=false + DB_USER: syncope + DB_PASSWORD: syncope + DB_POOL_MAX: 10 + DB_POOL_MIN: 2 + OPENJPA_REMOTE_COMMIT: sjvm + + syncope-console: + depends_on: + - syncope + image: apache/syncope-console:${syncope.version} + ports: + - "28080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + + syncope-enduser: + depends_on: + - syncope + image: apache/syncope-enduser:${syncope.version} + ports: + - "38080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose/docker-compose-mssql.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose/docker-compose-mssql.yml b/docker/src/main/resources/docker-compose/docker-compose-mssql.yml new file mode 100644 index 0000000..462f749 --- /dev/null +++ b/docker/src/main/resources/docker-compose/docker-compose-mssql.yml @@ -0,0 +1,73 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Full deployment (Core, Console, Enduser) on MS SQL Server + +version: '3.3' + +services: + db: + image: mcmoe/mssqldocker:latest + restart: always + environment: + ACCEPT_EULA: Y + SA_PASSWORD: 2astazeY + MSSQL_DB: syncope + MSSQL_USER: syncope + MSSQL_PASSWORD: Syncope123 + + syncope: + depends_on: + - db + image: apache/syncope:${syncope.version} + ports: + - "18080:8080" + restart: always + environment: + DBMS: mssql + DB_URL: jdbc:sqlserver://db:1433;databaseName=syncope + DB_SCHEMA: dbo + DB_USER: syncope + DB_PASSWORD: Syncope123 + DB_POOL_MAX: 10 + DB_POOL_MIN: 2 + OPENJPA_REMOTE_COMMIT: sjvm + + syncope-console: + depends_on: + - syncope + image: apache/syncope-console:${syncope.version} + ports: + - "28080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + + syncope-enduser: + depends_on: + - syncope + image: apache/syncope-enduser:${syncope.version} + ports: + - "38080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose/docker-compose-mysql.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose/docker-compose-mysql.yml b/docker/src/main/resources/docker-compose/docker-compose-mysql.yml new file mode 100644 index 0000000..d2af8c0 --- /dev/null +++ b/docker/src/main/resources/docker-compose/docker-compose-mysql.yml @@ -0,0 +1,70 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Full deployment (Core, Console, Enduser) on MySQL + +version: '3.3' + +services: + db: + image: mysql/mysql-server:5.7 + restart: always + environment: + MYSQL_DATABASE: syncope + MYSQL_USER: syncope + MYSQL_PASSWORD: syncope + + syncope: + depends_on: + - db + image: apache/syncope:${syncope.version} + ports: + - "18080:8080" + restart: always + environment: + DBMS: mysql + DB_URL: jdbc:mysql://db:3306/syncope?characterEncoding=UTF-8&relaxAutoCommit=true&useSSL=false + DB_USER: syncope + DB_PASSWORD: syncope + DB_POOL_MAX: 10 + DB_POOL_MIN: 2 + OPENJPA_REMOTE_COMMIT: sjvm + + syncope-console: + depends_on: + - syncope + image: apache/syncope-console:${syncope.version} + ports: + - "28080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + + syncope-enduser: + depends_on: + - syncope + image: apache/syncope-enduser:${syncope.version} + ports: + - "38080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/docker-compose/docker-compose-postgresql.yml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/docker-compose/docker-compose-postgresql.yml b/docker/src/main/resources/docker-compose/docker-compose-postgresql.yml new file mode 100644 index 0000000..862a051 --- /dev/null +++ b/docker/src/main/resources/docker-compose/docker-compose-postgresql.yml @@ -0,0 +1,76 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Full deployment (Core, Console, Enduser) on PostgreSQL + +version: '3.3' + +services: + db: + image: crunchydata/crunchy-postgres:centos7-10.3-1.8.2 + restart: always + environment: + PG_ROOT_PASSWORD: postgres + PG_MODE: primary + PG_PRIMARY_USER: postgres + PG_PRIMARY_PASSWORD: postgres + PG_PRIMARY_HOST: localhost + PG_PRIMARY_PORT: 5432 + PG_DATABASE: syncope + PG_USER: syncope + PG_PASSWORD: syncope + + syncope: + depends_on: + - db + image: apache/syncope:${syncope.version} + ports: + - "18080:8080" + restart: always + environment: + DBMS: postgresql + DB_URL: jdbc:postgresql://db:5432/syncope + DB_USER: syncope + DB_PASSWORD: syncope + DB_POOL_MAX: 10 + DB_POOL_MIN: 2 + OPENJPA_REMOTE_COMMIT: sjvm + + syncope-console: + depends_on: + - syncope + image: apache/syncope-console:${syncope.version} + ports: + - "28080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + + syncope-enduser: + depends_on: + - syncope + image: apache/syncope-enduser:${syncope.version} + ports: + - "38080:8080" + restart: always + environment: + CORE_SCHEME: http + CORE_HOST: syncope + CORE_PORT: 8080 + DOMAIN: Master http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/README.adoc ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/README.adoc b/docker/src/main/resources/k8s/helm/README.adoc new file mode 100644 index 0000000..cac74c8 --- /dev/null +++ b/docker/src/main/resources/k8s/helm/README.adoc @@ -0,0 +1,25 @@ += Install Commands + +Open a terminal and navigate to the "helm" folder. + +[WARNING] +Do not forget to set your `values.yaml`! + +.Install postgres +[source,bash] +---- +helm install postgres --name postgres --namespace <YOUR_NAMESPACE> -f postgres/values.yaml +---- + +Let Postgres initialize (about 20-30 seconds). You can watch logs to confirm + +.Install syncope +[source,bash] +---- +helm install syncope --name syncope --namespace <YOUR_NAMESPACE> -f syncope/values.yaml +---- +=== Todo +Still more to do: + +* Have some value parameters that are not plumbed in (e.g. resources) +* Need to put in liveness and readyness checks \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/postgres/Chart.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/postgres/Chart.yaml b/docker/src/main/resources/k8s/helm/postgres/Chart.yaml new file mode 100644 index 0000000..a7c8b8f --- /dev/null +++ b/docker/src/main/resources/k8s/helm/postgres/Chart.yaml @@ -0,0 +1,30 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +apiVersion: v1 +name: basic +description: Deploys Postgres For Syncope +version: 1 +appVersion: 2.0 +keywords: +- postgresql +- postgres +- database +- sql +home: https://syncope.apache.org/ +icon: https://syncope.apache.org/images/apache-syncope-logo-medium.png +sources: +- https://github.com/apache/syncope http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/postgres/templates/db-deployment.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/postgres/templates/db-deployment.yaml b/docker/src/main/resources/k8s/helm/postgres/templates/db-deployment.yaml new file mode 100644 index 0000000..55f8755 --- /dev/null +++ b/docker/src/main/resources/k8s/helm/postgres/templates/db-deployment.yaml @@ -0,0 +1,141 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +apiVersion: v1 +kind: ConfigMap +metadata: + name: postgres-environment-config +data: + PG_DATABASE: "{{.Values.databaseEnvironment.pgDatabase}}" + PG_MODE: "{{.Values.databaseEnvironment.pgMode}}" + PG_PASSWORD: "{{.Values.databaseEnvironment.pgPassword}}" + PG_PRIMARY_HOST: "{{.Values.databaseEnvironment.pgPrimaryHost}}" + PG_PRIMARY_PASSWORD: "{{.Values.databaseEnvironment.pgPrimaryPassword}}" + PG_PRIMARY_PORT: "{{.Values.databaseEnvironment.pgPrimaryPort}}" + PG_PRIMARY_USER: "{{.Values.databaseEnvironment.pgPrimaryUser}}" + PG_ROOT_PASSWORD: "{{.Values.databaseEnvironment.pgRootPassword}}" + PG_USER: "{{.Values.databaseEnvironment.pgUser}}" + PGDATA_PATH_OVERRIDE: "{{.Values.databaseEnvironment.pgdataPathOverride}}" +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{.Values.pv.name}} +spec: + storageClassName: "" + capacity: + storage: {{.Values.pv.storage}} + accessModes: + - {{.Values.pv.mode}} + hostPath: + path: "{{.Values.pv.path}}" + persistentVolumeReclaimPolicy: Retain +# gcePersistentDisk: +# pdName: postgres-data +# fsType: ext4 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{.Values.pvc.name}} +spec: + accessModes: + - {{.Values.pv.mode}} + resources: + requests: + storage: {{.Values.pv.storage}} +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: "{{.Values.databaseConfig.name}}" + labels: + name: "{{.Values.databaseConfig.name}}" + heritage: {{.Release.Service | quote }} + release: {{.Release.Name | quote }} + chart: "{{.Chart.Name}}-{{.Chart.Version}}" + annotations: + "helm.sh/created": {{.Release.Time.Seconds | quote }} +spec: + replicas: 1 + strategy: {} + template: + metadata: + creationTimestamp: null + labels: + name: "{{.Values.databaseConfig.name}}" + spec: + securityContext: + fsGroup: 1000 + containers: + - image: "{{.Values.databaseConfig.repository}}/{{.Values.databaseConfig.container}}:{{.Values.databaseConfig.tag}}" + name: {{.Values.databaseConfig.name}} +#TODO: Need to impliment the readiness probe +# readinessProbe: +# exec: +# command: +# - "/opt/cpm/bin/readiness.sh" +# initialDelaySeconds: 10 +# timeoutSeconds: 1 +# livenessProbe: +# exec: +# command: +# - "/opt/cpm/bin/liveness.sh" +# initialDelaySeconds: 120 +# timeoutSeconds: 1 + envFrom: + - configMapRef: + name: postgres-environment-config + volumeMounts: + - mountPath: {{.Values.pv.path}} + name: {{.Values.pv.name}} + ports: + - containerPort: {{.Values.databaseConfig.port}} + protocol: TCP + resources: + requests: + cpu: {{ .Values.databaseConfig.cpu }} + memory: {{ .Values.databaseConfig.memory }} + volumes: + - name: {{.Values.pv.name}} + persistentVolumeClaim: + claimName: {{.Values.pvc.name}} + readOnly: false + restartPolicy: Always +status: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: "{{.Values.databaseConfig.name}}" + labels: + name: "{{.Values.databaseConfig.name}}" + heritage: {{ .Release.Service | quote }} + release: {{ .Release.Name | quote }} + chart: "{{.Chart.Name}}-{{.Chart.Version}}" +spec: + type: "{{.Values.serviceType}}" + ports: + - protocol: TCP + port: {{.Values.databaseConfig.port}} + targetPort: {{.Values.databaseConfig.port}} + nodePort: 0 + name: "{{.Values.databaseConfig.name}}" + selector: + name: "{{.Values.databaseConfig.name}}" + sessionAffinity: None +status: + loadBalancer: {} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/postgres/values.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/postgres/values.yaml b/docker/src/main/resources/k8s/helm/postgres/values.yaml new file mode 100644 index 0000000..51a60b3 --- /dev/null +++ b/docker/src/main/resources/k8s/helm/postgres/values.yaml @@ -0,0 +1,47 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +### Environment Variables that will be pumped into postgres +databaseEnvironment: + pgDatabase: syncope + pgMode: primary + pgPassword: <YOURPASSWORD> + pgPrimaryHost: localhost + pgPrimaryPassword: <YOURPASSWORD> + pgPrimaryPort: 5432 + pgPrimaryUser: postgres + pgRootPassword: <YOURPASSWORD> + pgUser: syncope + pgdataPathOverride: postgres-data +### Database container information +databaseConfig: + port: 5432 + name: postgres + serviceType: ClusterIP + repository: crunchydata + container: crunchy-postgres + tag: centos7-10.3-1.8.2 + cpu: 200m + memory: 512Mi +### Persistent Volume Config +pv: + storage: 20Gi + name: primary-pv + mode: ReadWriteOnce + path: /pgdata +### The PVC that will be used by postgres +pvc: + name: postgres-readwriteonce-pvc \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/syncope/Chart.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/syncope/Chart.yaml b/docker/src/main/resources/k8s/helm/syncope/Chart.yaml new file mode 100644 index 0000000..7f697a2 --- /dev/null +++ b/docker/src/main/resources/k8s/helm/syncope/Chart.yaml @@ -0,0 +1,29 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +apiVersion: v1 +name: basic +description: Deploys Syncope +version: 1 +appVersion: 2.0 +keywords: +- syncope +- syncope-enduser +- syncope-console +home: https://syncope.apache.org/ +icon: https://syncope.apache.org/images/apache-syncope-logo-medium.png +sources: +- https://github.com/apache/syncope http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/syncope/templates/syncope-console-deployment.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/syncope/templates/syncope-console-deployment.yaml b/docker/src/main/resources/k8s/helm/syncope/templates/syncope-console-deployment.yaml new file mode 100644 index 0000000..2daf9f2 --- /dev/null +++ b/docker/src/main/resources/k8s/helm/syncope/templates/syncope-console-deployment.yaml @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{.Values.syncopeConsoleConfig.name}} +spec: + replicas: 1 + strategy: {} + template: + metadata: + labels: + name: {{.Values.syncopeConsoleConfig.name}} + spec: + containers: + - name: {{.Values.syncopeConsoleConfig.name}} + envFrom: + - configMapRef: + name: syncope-environment-config + image: "{{.Values.syncopeConsoleConfig.repository}}/{{.Values.syncopeConsoleConfig.container}}:{{.Values.syncopeConsoleConfig.tag}}" + ports: + - containerPort: {{.Values.syncopeConsoleConfig.containerPort}} + resources: {} + restartPolicy: Always +status: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: "{{.Values.syncopeConsoleConfig.name}}" +spec: + type: "{{.Values.syncopeConsoleConfig.serviceType}}" + selector: + name: "{{.Values.syncopeConsoleConfig.name}}" + ports: + - port: {{.Values.syncopeConsoleConfig.containerPort}} + name: http-api http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/syncope/templates/syncope-deployment.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/syncope/templates/syncope-deployment.yaml b/docker/src/main/resources/k8s/helm/syncope/templates/syncope-deployment.yaml new file mode 100644 index 0000000..ecbf13f --- /dev/null +++ b/docker/src/main/resources/k8s/helm/syncope/templates/syncope-deployment.yaml @@ -0,0 +1,67 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +apiVersion: v1 +kind: ConfigMap +metadata: + name: syncope-environment-config +data: + DBMS: postgresql + DB_URL: {{.Values.syncopeEnvironment.dbUrl}} + DB_USER: {{.Values.syncopeEnvironment.dbUser}} + DB_PASSWORD: {{.Values.syncopeEnvironment.userCreds}} + DB_POOL_MAX: "{{.Values.syncopeEnvironment.dbPoolMax}}" + DB_POOL_MIN: "{{.Values.syncopeEnvironment.dbPoolMin}}" + OPENJPA_REMOTE_COMMIT: sjvm + CORE_SCHEME: "{{.Values.syncopeEnvironment.coreScheme}}" + CORE_HOST: "{{.Values.syncopeEnvironment.coreHost}}" + CORE_PORT: "{{.Values.syncopeEnvironment.corePort}}" +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{.Values.syncopeConfig.name}} +spec: + replicas: 1 + strategy: {} + template: + metadata: + labels: + name: {{.Values.syncopeConfig.name}} + spec: + containers: + - name: {{.Values.syncopeConfig.name}} + envFrom: + - configMapRef: + name: syncope-environment-config + image: "{{.Values.syncopeConfig.repository}}/{{.Values.syncopeConfig.container}}:{{.Values.syncopeConfig.tag}}" + ports: + - containerPort: {{.Values.syncopeConfig.containerPort}} + resources: {} + restartPolicy: Always +status: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: "{{.Values.syncopeConfig.name}}" +spec: + type: "{{.Values.syncopeConfig.serviceType}}" + selector: + name: "{{.Values.syncopeConfig.name}}" + ports: + - port: {{.Values.syncopeConfig.containerPort}} + name: http-api http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/syncope/templates/syncope-enduser-deployment.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/syncope/templates/syncope-enduser-deployment.yaml b/docker/src/main/resources/k8s/helm/syncope/templates/syncope-enduser-deployment.yaml new file mode 100644 index 0000000..2a28cfc --- /dev/null +++ b/docker/src/main/resources/k8s/helm/syncope/templates/syncope-enduser-deployment.yaml @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{.Values.syncopeEndUserConfig.name}} +spec: + replicas: 1 + strategy: {} + template: + metadata: + labels: + name: {{.Values.syncopeEndUserConfig.name}} + spec: + containers: + - name: {{.Values.syncopeEndUserConfig.name}} + envFrom: + - configMapRef: + name: syncope-environment-config + image: "{{.Values.syncopeEndUserConfig.repository}}/{{.Values.syncopeEndUserConfig.container}}:{{.Values.syncopeEndUserConfig.tag}}" + ports: + - containerPort: {{.Values.syncopeEndUserConfig.containerPort}} + resources: {} + restartPolicy: Always +status: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: "{{.Values.syncopeEndUserConfig.name}}" +spec: + type: "{{.Values.syncopeEndUserConfig.serviceType}}" + selector: + name: "{{.Values.syncopeEndUserConfig.name}}" + ports: + - port: {{.Values.syncopeEndUserConfig.containerPort}} + name: http-api http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/docker/src/main/resources/k8s/helm/syncope/values.yaml ---------------------------------------------------------------------- diff --git a/docker/src/main/resources/k8s/helm/syncope/values.yaml b/docker/src/main/resources/k8s/helm/syncope/values.yaml new file mode 100644 index 0000000..54e9129 --- /dev/null +++ b/docker/src/main/resources/k8s/helm/syncope/values.yaml @@ -0,0 +1,56 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +### Environment Variables that will be set on all 3 syncope docker containers (core, console, enduser) +syncopeEnvironment: + dbUrl: jdbc:postgresql://postgres:5432/syncope + dbUser: syncope + dbPoolMax: 10 + dbPoolMin: 2 + coreScheme: http # valid values are http and https + coreHost: syncope # Host that syncope will use to connect to core. Needs to match .Values.syncopeConfig.name + corePort: 8080 + userCreds: <YOURPASSWORD> # Needs to match the databaseEnvironment.pgPassword that was provided to the database +### Config Params for the syncope container (A.K.A. Core) +syncopeConfig: + name: syncope + replicas: 1 + repository: apache + container: syncope + tag: 2.1.0 + containerPort: 8080 + memoryLimit: 512Mi + serviceType: ClusterIP +### Config Params for the syncope-console containers +syncopeConsoleConfig: + name: syncope-console + replicas: 1 + repository: apache + container: syncope-console + tag: 2.1.0 + containerPort: 8080 + memoryLimit: 512Mi + serviceType: ClusterIP +### Config Params for the syncope-enduser containers +syncopeEndUserConfig: + name: syncope-enduser + replicas: 1 + repository: apache + container: syncope-enduser + tag: 2.1.0 + containerPort: 8080 + memoryLimit: 512Mi + serviceType: ClusterIP \ No newline at end of file http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/src/main/asciidoc/getting-started/obtain.adoc ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/getting-started/obtain.adoc b/src/main/asciidoc/getting-started/obtain.adoc index d640127..6f8b3b7 100644 --- a/src/main/asciidoc/getting-started/obtain.adoc +++ b/src/main/asciidoc/getting-started/obtain.adoc @@ -453,6 +453,48 @@ Credentials: `admin` / `password` |=== +==== Kubernetes Install + +Using the same images above it is possible to install in Kubernetes. Provided is a set of example helm charts that can be used to install Syncope directly in Kubernetes. Your specific setup might be different but ideally these can be a baseline install for your specific needs. This will walk you through the installation of syncope via helm. + +It makes a couple assumptions: + +* Have a working Kubernetes Cluster to install into. +** If you don't have one then GCP has a decent https://kubernetes.io/docs/setup/[tutorial] . **NOTE:** You could also use any other Cloud Provider or Local install (e.g. AWS, Minikub, Openshift) +* Have helm installed +** Follow these https://docs.helm.sh/using_helm/[instructions] if you don't +* You have your kubernetes cluster to allow for dynamic provisioning of persistent volumes in K8s +** If you don't have it then you will need to manually create the volume or turn on dynamic provisioning. Refer to this link https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/[here] + +===== Overview Of Install + +The install is broken into two separate helm charts. This is due to the fact that syncope doesn't startup properly is the database isn't fully initialized yet. + +* Postgres Chart - this will install the postgres database. It will also configure a persistent volume and persistent volume claim to store the data +* Syncope Chart - This is the actual syncope install. It will install 3 separate pods (Core, Console, and Enduser) + +image::SyncopeLayoutInK8s.png[] + +**Values.yaml** - Each Helm Chart has a values.yaml. These are the configurable parameters for your specific install. Before running the install you need to update the values.yaml for your needs + +===== Install Commands + +Open a terminal and navigate to the "helm" https://github.com/apache/syncope/tree/master/docker/src/main/resources/k8s/helm[folder] wherever you downloaded the code. **REMINDER: SET YOUR VALUES.YAML!!!** + +.Install postgres +[source,bash] +---- +helm install postgres --name postgres --namespace <YOUR_NAMESPACE> -f postgres/values.yaml +---- + +Let Postgres initialize (about 20-30 seconds). You can watch logs to confirm + +.Install syncope +[source,bash] +---- +helm install syncope --name syncope --namespace <YOUR_NAMESPACE> -f syncope/values.yaml +---- + === Maven Project This is the *preferred method* for working with Apache Syncope, giving access to the whole set of customization http://git-wip-us.apache.org/repos/asf/syncope/blob/a674dded/src/main/asciidoc/images/SyncopeLayoutInK8s.png ---------------------------------------------------------------------- diff --git a/src/main/asciidoc/images/SyncopeLayoutInK8s.png b/src/main/asciidoc/images/SyncopeLayoutInK8s.png new file mode 100644 index 0000000..9bfee5e Binary files /dev/null and b/src/main/asciidoc/images/SyncopeLayoutInK8s.png differ
