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ò <[email protected]> Authored: Fri Oct 12 14:01:18 2018 +0200 Committer: Francesco Chicchiriccò <[email protected]> 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
