Thank you for installing {{ .Chart.Name }}.

Your release is named {{ .Release.Name }}.

To learn more about the release, try:

  $ helm status {{ .Release.Name }}
  $ helm get all {{ .Release.Name }}

IMPORTANT: This is a development deployment. For production use, you MUST change the following default credentials:

{{- if .Values.identityProvider.keycloak.enabled }}
{{- $keycloakSecret := lookup "v1" "Secret" .Release.Namespace (include "opencloud.keycloak.fullname" .) }}
{{- $postgresSecret := lookup "v1" "Secret" .Release.Namespace (include "opencloud.postgres.fullname" .) }}
{{- if and (not .Values.identityProvider.keycloak.adminPassword) (not .Values.identityProvider.keycloak.existingSecret) }}
1. Keycloak Admin: adminUser: {{ .Values.identityProvider.keycloak.adminUser }}, adminPassword: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.keycloak.fullname" . }} -o jsonpath='{.data.adminPassword}' | base64 -d>
{{- else }}
1. Keycloak Admin: adminUser: {{ .Values.identityProvider.keycloak.adminUser }}, adminPassword: {{ .Values.identityProvider.keycloak.adminPassword | default "<using existing secret>" }}
{{- end }}
{{- if and (not .Values.identityProvider.keycloak.postgres.password) (not .Values.identityProvider.keycloak.postgres.existingSecret) }}
2. PostgreSQL: user: {{ .Values.identityProvider.keycloak.postgres.user }}, password: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.postgres.fullname" . }} -o jsonpath='{.data.password}' | base64 -d>
{{- else }}
2. PostgreSQL: user: {{ .Values.identityProvider.keycloak.postgres.user }}, password: {{ .Values.identityProvider.keycloak.postgres.password | default "<using existing secret>" }}
{{- end }}
{{- if .Values.storage.internal.enabled }}
{{- if and (not .Values.storage.internal.rootPassword) (not .Values.storage.internal.existingSecret) }}
3. MinIO: rootUser: {{ .Values.storage.internal.rootUser }}, rootPassword: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.minio.fullname" . }} -o jsonpath='{.data.rootPassword}' | base64 -d>
{{- else }}
3. MinIO: rootUser: {{ .Values.storage.internal.rootUser }}, rootPassword: {{ .Values.storage.internal.rootPassword | default "<using existing secret>" }}
{{- end }}
{{- end }}
{{- if .Values.collaboration.collabora.enabled }}
{{- if and (not .Values.collaboration.collabora.admin.password) (not .Values.collaboration.collabora.existingSecret) }}
4. Collabora: username: {{ .Values.collaboration.collabora.admin.username }}, password: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.fullname" . }}-collabora -o jsonpath='{.data.password}' | base64 -d>
{{- else }}
4. Collabora: username: {{ .Values.collaboration.collabora.admin.username }}, password: {{ .Values.collaboration.collabora.admin.password | default "<using existing secret>" }}
{{- end }}
{{- end }}
{{- else if not .Values.identityProvider.external.enabled }}
{{- if and (not .Values.identityProvider.internal.adminPassword) (not .Values.identityProvider.internal.existingSecret) }}
1. OpenCloud Admin: adminPassword: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.opencloud.fullname" . }} -o jsonpath='{.data.adminPassword}' | base64 -d> (local auth - no identity provider configured)
{{- else }}
1. OpenCloud Admin: adminPassword: {{ .Values.identityProvider.internal.adminPassword | default "<using existing secret>" }} (local auth - no identity provider configured)
{{- end }}
{{- if .Values.storage.internal.enabled }}
{{- if and (not .Values.storage.internal.rootPassword) (not .Values.storage.internal.existingSecret) }}
2. MinIO: rootUser: {{ .Values.storage.internal.rootUser }}, rootPassword: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.minio.fullname" . }} -o jsonpath='{.data.rootPassword}' | base64 -d>
{{- else }}
2. MinIO: rootUser: {{ .Values.storage.internal.rootUser }}, rootPassword: {{ .Values.storage.internal.rootPassword | default "<using existing secret>" }}
{{- end }}
{{- end }}
{{- if .Values.collaboration.collabora.enabled }}
{{- if and (not .Values.collaboration.collabora.admin.password) (not .Values.collaboration.collabora.existingSecret) }}
4. Collabora: username: {{ .Values.collaboration.collabora.admin.username }}, password: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.fullname" . }}-collabora -o jsonpath='{.data.password}' | base64 -d>
{{- else }}
4. Collabora: username: {{ .Values.collaboration.collabora.admin.username }}, password: {{ .Values.collaboration.collabora.admin.password | default "<using existing secret>" }}
{{- end }}
{{- end }}
{{- else }}
{{- if .Values.storage.internal.enabled }}
{{- if and (not .Values.storage.internal.rootPassword) (not .Values.storage.internal.existingSecret) }}
1. MinIO: rootUser: {{ .Values.storage.internal.rootUser }}, rootPassword: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.minio.fullname" . }} -o jsonpath='{.data.rootPassword}' | base64 -d>
{{- else }}
1. MinIO: rootUser: {{ .Values.storage.internal.rootUser }}, rootPassword: {{ .Values.storage.internal.rootPassword | default "<using existing secret>" }}
{{- end }}
{{- end }}
{{- if .Values.collaboration.collabora.enabled }}
{{- if and (not .Values.collaboration.collabora.admin.password) (not .Values.collaboration.collabora.existingSecret) }}
2. Collabora: username: {{ .Values.collaboration.collabora.admin.username }}, password: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.fullname" . }}-collabora -o jsonpath='{.data.password}' | base64 -d>
{{- else }}
2. Collabora: username: {{ .Values.collaboration.collabora.admin.username }}, password: {{ .Values.collaboration.collabora.admin.password | default "<using existing secret>" }}
{{- end }}
{{- end }}
{{- end }}

Using default credentials in production environments poses significant security risks.

The following services have been deployed:

1. OpenCloud (Main Application):
   - Service: {{ include "opencloud.opencloud.fullname" . }}
   - Port: 9200
   - Storage Driver: decomposeds3
   - System Storage Driver: decomposed
   - S3 Storage: {{ if .Values.storage.external.enabled }}{{ .Values.storage.external.endpoint }}{{ else if .Values.storage.internal.enabled }}MinIO ({{ include "opencloud.minio.fullname" . }}){{ else }}Not configured{{ end }}
   - S3 Bucket: {{ if .Values.storage.external.enabled }}{{ .Values.storage.external.bucket }}{{ else if .Values.storage.internal.enabled }}{{ .Values.storage.internal.bucketName }}{{ else }}Not configured{{ end }}

{{- if .Values.identityProvider.keycloak.enabled }}
2. Keycloak (Authentication):
   - Service: {{ include "opencloud.keycloak.fullname" . }}
   - Port: 8080
   - Username: {{ .Values.identityProvider.keycloak.adminUser }}
{{- if and (not .Values.identityProvider.keycloak.adminPassword) (not .Values.identityProvider.keycloak.existingSecret) }}
   - Password: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.keycloak.fullname" . }} -o jsonpath='{.data.adminPassword}' | base64 -d>
{{- else }}
   - Password: {{ .Values.identityProvider.keycloak.adminPassword | default "<using existing secret>" }}
{{- end }}
{{- end }}

{{- if .Values.storage.internal.enabled }}
3. MinIO (Object Storage):
   - Service: {{ include "opencloud.minio.fullname" . }}
   - API Port: 9000
   - Console Port: 9001
   - Username: {{ .Values.storage.internal.rootUser }}
{{- if and (not .Values.storage.internal.rootPassword) (not .Values.storage.internal.existingSecret) }}
   - Password: <randomly generated - retrieve with: kubectl get secret {{ include "opencloud.minio.fullname" . }} -o jsonpath='{.data.rootPassword}' | base64 -d>
{{- else }}
   - Password: {{ .Values.storage.internal.rootPassword | default "<using existing secret>" }}
{{- end }}
{{- end }}



{{- if .Values.httpRoute.enabled }}
IMPORTANT: This chart includes HTTPRoute resources that route traffic to the OpenCloud, Keycloak, and MinIO services.
All HTTPRoutes are configured to use the Gateway named "{{ .Values.httpRoute.gateway.name }}" in the
{{ .Values.httpRoute.gateway.namespace | default .Release.Namespace }} namespace.

Make sure the Gateway exists and is properly configured to accept traffic for the following domains:
- OpenCloud: {{ include "opencloud.domain" . }} (Service: {{ include "opencloud.opencloud.fullname" . }}, Port: 9200)
{{- if .Values.identityProvider.keycloak.enabled }}
- Keycloak: {{ include "opencloud.keycloak.domain" . }} (Service: {{ include "opencloud.keycloak.fullname" . }}, Port: 8080)
{{- end }}
{{- if .Values.storage.internal.enabled }}
- MinIO Console: {{ include "opencloud.minio.domain" . }} (Service: {{ include "opencloud.minio.fullname" . }}, Port: 9001)
{{- end }}


{{- else }}
IMPORTANT: The HTTPRoutes are disabled. You need to configure your own ingress controller
to expose these services externally.

Example domains for your ingress configuration:
- OpenCloud: {{ include "opencloud.domain" . }} (Service: {{ include "opencloud.opencloud.fullname" . }}, Port: 9200)
{{- if .Values.identityProvider.keycloak.enabled }}
- Keycloak: {{ include "opencloud.keycloak.domain" . }} (Service: {{ include "opencloud.keycloak.fullname" . }}, Port: 8080)
{{- end }}
{{- if .Values.storage.internal.enabled }}
- MinIO Console: {{ include "opencloud.minio.domain" . }} (Service: {{ include "opencloud.minio.fullname" . }}, Port: 9001)
{{- end }}
{{- end }}

For more information, please refer to the OpenCloud documentation:
  https://docs.opencloud.eu/
