You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2018/10/12 12:10:57 UTC
[5/6] syncope git commit: Review and reflow the Kubernets sample
Review and reflow the Kubernets sample
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/44c8157d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/44c8157d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/44c8157d
Branch: refs/heads/2_1_X
Commit: 44c8157d40636efa2c96bc2c83e8de452c8ff835
Parents: a674dde
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Oct 12 14:01:18 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Oct 12 14:10:03 2018 +0200
----------------------------------------------------------------------
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 --------
.../resources/kubernetes/postgres/Chart.yaml | 30 ++++
.../postgres/templates/db-deployment.yaml | 141 +++++++++++++++++++
.../resources/kubernetes/postgres/values.yaml | 47 +++++++
.../resources/kubernetes/syncope/Chart.yaml | 29 ++++
.../templates/syncope-console-deployment.yaml | 51 +++++++
.../syncope/templates/syncope-deployment.yaml | 67 +++++++++
.../templates/syncope-enduser-deployment.yaml | 51 +++++++
.../resources/kubernetes/syncope/values.yaml | 56 ++++++++
src/main/asciidoc/getting-started/obtain.adoc | 64 ++++++---
18 files changed, 515 insertions(+), 518 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/44c8157d/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
deleted file mode 100644
index cac74c8..0000000
--- a/docker/src/main/resources/k8s/helm/README.adoc
+++ /dev/null
@@ -1,25 +0,0 @@
-= 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/44c8157d/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
deleted file mode 100644
index a7c8b8f..0000000
--- a/docker/src/main/resources/k8s/helm/postgres/Chart.yaml
+++ /dev/null
@@ -1,30 +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.
-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/44c8157d/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
deleted file mode 100644
index 55f8755..0000000
--- a/docker/src/main/resources/k8s/helm/postgres/templates/db-deployment.yaml
+++ /dev/null
@@ -1,141 +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.
-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/44c8157d/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
deleted file mode 100644
index 51a60b3..0000000
--- a/docker/src/main/resources/k8s/helm/postgres/values.yaml
+++ /dev/null
@@ -1,47 +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.
-### 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/44c8157d/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
deleted file mode 100644
index 7f697a2..0000000
--- a/docker/src/main/resources/k8s/helm/syncope/Chart.yaml
+++ /dev/null
@@ -1,29 +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.
-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/44c8157d/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
deleted file mode 100644
index 2daf9f2..0000000
--- a/docker/src/main/resources/k8s/helm/syncope/templates/syncope-console-deployment.yaml
+++ /dev/null
@@ -1,51 +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.
-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/44c8157d/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
deleted file mode 100644
index ecbf13f..0000000
--- a/docker/src/main/resources/k8s/helm/syncope/templates/syncope-deployment.yaml
+++ /dev/null
@@ -1,67 +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.
-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/44c8157d/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
deleted file mode 100644
index 2a28cfc..0000000
--- a/docker/src/main/resources/k8s/helm/syncope/templates/syncope-enduser-deployment.yaml
+++ /dev/null
@@ -1,51 +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.
-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/44c8157d/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
deleted file mode 100644
index 54e9129..0000000
--- a/docker/src/main/resources/k8s/helm/syncope/values.yaml
+++ /dev/null
@@ -1,56 +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.
-### 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/44c8157d/docker/src/main/resources/kubernetes/postgres/Chart.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/postgres/Chart.yaml b/docker/src/main/resources/kubernetes/postgres/Chart.yaml
new file mode 100644
index 0000000..a7c8b8f
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/postgres/templates/db-deployment.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/postgres/templates/db-deployment.yaml b/docker/src/main/resources/kubernetes/postgres/templates/db-deployment.yaml
new file mode 100644
index 0000000..55f8755
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/postgres/values.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/postgres/values.yaml b/docker/src/main/resources/kubernetes/postgres/values.yaml
new file mode 100644
index 0000000..51a60b3
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/syncope/Chart.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/syncope/Chart.yaml b/docker/src/main/resources/kubernetes/syncope/Chart.yaml
new file mode 100644
index 0000000..7f697a2
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/syncope/templates/syncope-console-deployment.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/syncope/templates/syncope-console-deployment.yaml b/docker/src/main/resources/kubernetes/syncope/templates/syncope-console-deployment.yaml
new file mode 100644
index 0000000..2daf9f2
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/syncope/templates/syncope-deployment.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/syncope/templates/syncope-deployment.yaml b/docker/src/main/resources/kubernetes/syncope/templates/syncope-deployment.yaml
new file mode 100644
index 0000000..ecbf13f
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/syncope/templates/syncope-enduser-deployment.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/syncope/templates/syncope-enduser-deployment.yaml b/docker/src/main/resources/kubernetes/syncope/templates/syncope-enduser-deployment.yaml
new file mode 100644
index 0000000..2a28cfc
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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/44c8157d/docker/src/main/resources/kubernetes/syncope/values.yaml
----------------------------------------------------------------------
diff --git a/docker/src/main/resources/kubernetes/syncope/values.yaml b/docker/src/main/resources/kubernetes/syncope/values.yaml
new file mode 100644
index 0000000..a6a8513
--- /dev/null
+++ b/docker/src/main/resources/kubernetes/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: ${syncope.version}
+ 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: ${syncope.version}
+ 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: ${syncope.version}
+ containerPort: 8080
+ memoryLimit: 512Mi
+ serviceType: ClusterIP
http://git-wip-us.apache.org/repos/asf/syncope/blob/44c8157d/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 6f8b3b7..473b608 100644
--- a/src/main/asciidoc/getting-started/obtain.adoc
+++ b/src/main/asciidoc/getting-started/obtain.adoc
@@ -346,10 +346,10 @@ Environment variables:
Besides the one reported below, more samples are
ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/tree/syncope-{docVersion}/docker/src/main/resources[available^].
+https://github.com/apache/syncope/tree/syncope-{docVersion}/docker/src/main/resources/docker-compose[available^].
endif::[]
ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_1_X/docker/src/main/resources[available^].
+https://github.com/apache/syncope/tree/2_1_X/docker/src/main/resources/docker-compose[available^].
endif::[]
.Syncope Core, Admin UI and Enduser UI with PostgreSQL
@@ -453,43 +453,65 @@ Credentials: `admin` / `password`
|===
-==== Kubernetes Install
+==== Kubernetes sample
-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.
+A set of example https://www.helm.sh/[Helm^] charts is
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/tree/syncope-{docVersion}/docker/src/main/resources/kubernetes[available^],
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/tree/2_1_X/docker/src/main/resources/kubernetes[available^],
+endif::[]
+that can be used to install Apache Syncope directly in Kubernetes.
-It makes a couple assumptions:
+Some assumptions are made:
-* 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]
+* a working Kubernetes Cluster to install into - if not available, follow this
+https://kubernetes.io/docs/setup/[tutorial^]
+[NOTE]
+Any other cloud provider or local install (e.g. AWS, Minikube, OpenShift) can be used
+
+* Helm installed - follow these https://docs.helm.sh/using_helm/[instructions^] if you don't
-===== Overview Of Install
+* allow for https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/[dynamic provisioning^] of persistent
+volumes - otherwise you will need to manually create the volume
-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.
+The install process is broken into two separate Helm charts; this is due to the fact that Apache Syncope doesn't startup
+properly if the database used as internal storage is not 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)
+* `postgres` chart; this will install the PostgreSQL database and configure a persistent volume and persistent volume
+claim to store the data
+* `syncope` chart; this is the actual Apache Syncope install, which will deploy three 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
+The installation steps are:
-===== Install Commands
+. Open a terminal and navigate to the `kubernetes`
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/tree/syncope-{docVersion}/docker/src/main/resources/kubernetes[folder^],
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/tree/2_1_X/docker/src/main/resources/kubernetes[folder^],
+endif::[]
+wherever you downloaded it
-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!!!**
+. Set your actual values in `postgres/values.yaml`
-.Install postgres
+. Install PostgreSQL
++
[source,bash]
----
helm install postgres --name postgres --namespace <YOUR_NAMESPACE> -f postgres/values.yaml
----
++
+Wait until PostgreSQL is initialized (watch logs for confirmation)
-Let Postgres initialize (about 20-30 seconds). You can watch logs to confirm
+. Set your actual values in `syncope/values.yaml`
-.Install syncope
+. Install Apache Syncope
++
[source,bash]
----
helm install syncope --name syncope --namespace <YOUR_NAMESPACE> -f syncope/values.yaml