forked from k-space/kube
		
	Migrate Nextcloud to Kube
This commit is contained in:
		
							
								
								
									
										254
									
								
								nextcloud/application.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										254
									
								
								nextcloud/application.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,254 @@ | ||||
| --- | ||||
| apiVersion: codemowers.cloud/v1beta1 | ||||
| kind: SecretClaim | ||||
| metadata: | ||||
|   name: nextcloud-admin-secrets | ||||
| spec: | ||||
|   size: 32 | ||||
|   mapping: | ||||
|     - key: password | ||||
|       value: "%(plaintext)s" | ||||
| --- | ||||
| apiVersion: codemowers.cloud/v1beta1 | ||||
| kind: KeydbClaim | ||||
| metadata: | ||||
|   name: nextcloud | ||||
| spec: | ||||
|   class: ephemeral | ||||
|   capacity: 100Mi | ||||
| --- | ||||
| apiVersion: codemowers.io/v1alpha1 | ||||
| kind: OIDCGWClient | ||||
| metadata: | ||||
|   name: nextcloud | ||||
| spec: | ||||
|   displayName: Nextcloud | ||||
|   uri: https://nextcloud.k-space.ee | ||||
|   redirectUris: | ||||
|     - https://nextcloud.k-space.ee/apps/oidc_login/oidc | ||||
|   allowedGroups: | ||||
|     - k-space:floor | ||||
|   grantTypes: | ||||
|     - authorization_code | ||||
|     - refresh_token | ||||
|   responseTypes: | ||||
|     - code | ||||
|   availableScopes: | ||||
|     - openid | ||||
|     - profile | ||||
|   pkce: false | ||||
| --- | ||||
| apiVersion: apps/v1 | ||||
| kind: StatefulSet | ||||
| metadata: | ||||
|   name: nextcloud | ||||
|   labels: | ||||
|     app.kubernetes.io/name: nextcloud | ||||
| spec: | ||||
|   serviceName: nextcloud | ||||
|   replicas: 1 | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app.kubernetes.io/name: nextcloud | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         app.kubernetes.io/name: nextcloud | ||||
|     spec: | ||||
|       enableServiceLinks: false | ||||
|       containers: | ||||
|         - name: nextcloud | ||||
|           image: nextcloud:production-apache | ||||
|           env: | ||||
|             - name: OIDC_CLIENT_ID | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: oidc-client-nextcloud-owner-secrets | ||||
|                   key: OIDC_CLIENT_ID | ||||
|             - name: OIDC_CLIENT_SECRET | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: oidc-client-nextcloud-owner-secrets | ||||
|                   key: OIDC_CLIENT_SECRET | ||||
|             - name: OIDC_GATEWAY_AUTH_URI | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: oidc-client-nextcloud-owner-secrets | ||||
|                   key: OIDC_GATEWAY_AUTH_URI | ||||
|             - name: OIDC_GATEWAY_URI | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: oidc-client-nextcloud-owner-secrets | ||||
|                   key: OIDC_GATEWAY_URI | ||||
|             - name: UPLOAD_LIMIT | ||||
|               value: 10G | ||||
|             - name: MYSQL_USER | ||||
|               value: kspace_nextcloud | ||||
|             - name: MYSQL_DATABASE | ||||
|               value: kspace_nextcloud | ||||
|             - name: MYSQL_HOST | ||||
|               value: mariadb.infra.k-space.ee | ||||
|             - name: NEXTCLOUD_ADMIN_USER | ||||
|               value: admin | ||||
|             - name: NEXTCLOUD_TRUSTED_DOMAINS | ||||
|               value: nextcloud.k-space.ee | ||||
|             - name: OBJECTSTORE_S3_HOST | ||||
|               value: 172.20.9.2 | ||||
|             - name: OBJECTSTORE_S3_PORT | ||||
|               value: "9000" | ||||
|             - name: OBJECTSTORE_S3_BUCKET | ||||
|               value: kspace-nextcloud | ||||
|             - name: OBJECTSTORE_S3_SSL | ||||
|               value: "false" | ||||
|             - name: OBJECTSTORE_S3_KEY | ||||
|               value: kspace-nextcloud | ||||
|             - name: OBJECTSTORE_S3_REGION | ||||
|               value: us-west-1 | ||||
|             - name: OBJECTSTORE_S3_USEPATH_STYLE | ||||
|               value: "true" | ||||
|             - name: TRUSTED_PROXIES | ||||
|               value: 0.0.0.0/0 | ||||
|             - name: MAIL_FROM_ADDRESS | ||||
|               value: nextcloud@k-space.ee | ||||
|             - name: SMTP_HOST | ||||
|               value: mail.k-space.ee | ||||
|             - name: MAIL_DOMAIN | ||||
|               value: k-space.ee | ||||
|             - name: NEXTCLOUD_ADMIN_PASSWORD | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: nextcloud-admin-secrets | ||||
|                   key: password | ||||
|             - name: REDIS_HOST | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: keydb-nextcloud-owner-secrets | ||||
|                   key: REDIS_MASTER | ||||
|             - name: REDIS_HOST_PASSWORD | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: keydb-nextcloud-owner-secrets | ||||
|                   key: REDIS_PASSWORD | ||||
|             - name: MYSQL_PASSWORD | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: nextcloud-imported-secrets | ||||
|                   key: MYSQL_PASSWORD | ||||
|             - name: OBJECTSTORE_S3_SECRET | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: nextcloud-imported-secrets | ||||
|                   key: OBJECTSTORE_S3_SECRET | ||||
|           ports: | ||||
|             - containerPort: 80 | ||||
|               name: http | ||||
|           volumeMounts: | ||||
|             - mountPath: /var/www/html | ||||
|               name: data | ||||
|             - mountPath: /var/www/html/config/oidc.config.php | ||||
|               name: config | ||||
|               subPath: oidc.config.php | ||||
|       volumes: | ||||
|         - name: config | ||||
|           projected: | ||||
|             sources: | ||||
|               - configMap: | ||||
|                   name: nextcloud-config | ||||
|   volumeClaimTemplates: | ||||
|     - metadata: | ||||
|         name: data | ||||
|       spec: | ||||
|         accessModes: | ||||
|           - ReadWriteOnce | ||||
|         storageClassName: longhorn | ||||
|         resources: | ||||
|           requests: | ||||
|             storage: 1Gi | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: nextcloud | ||||
| spec: | ||||
|   ports: | ||||
|     - port: 80 | ||||
|       protocol: TCP | ||||
|       targetPort: http | ||||
|   selector: | ||||
|     app.kubernetes.io/name: nextcloud | ||||
| --- | ||||
| apiVersion: networking.k8s.io/v1 | ||||
| kind: Ingress | ||||
| metadata: | ||||
|   name: nextcloud | ||||
|   annotations: | ||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure | ||||
|     traefik.ingress.kubernetes.io/router.tls: "true" | ||||
|     external-dns.alpha.kubernetes.io/target: traefik.k-space.ee | ||||
| spec: | ||||
|   rules: | ||||
|   - host: nextcloud.k-space.ee | ||||
|     http: | ||||
|       paths: | ||||
|       - pathType: Prefix | ||||
|         path: "/" | ||||
|         backend: | ||||
|           service: | ||||
|             name: nextcloud | ||||
|             port: | ||||
|               number: 80 | ||||
|   tls: | ||||
|   - hosts: | ||||
|     - "*.k-space.ee" | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: nextcloud-config | ||||
| data: | ||||
|   oidc.config.php: |- | ||||
|     <?php | ||||
|     $CONFIG = array ( | ||||
|         'allow_user_to_change_display_name' => false, | ||||
|         'lost_password_link' => 'disabled', | ||||
|         'oidc_login_provider_url' => getenv('OIDC_GATEWAY_URI'), | ||||
|         'oidc_login_client_id' => getenv('OIDC_CLIENT_ID'), | ||||
|         'oidc_login_client_secret' => getenv('OIDC_CLIENT_SECRET'), | ||||
|         'oidc_login_auto_redirect' => true, | ||||
|         'oidc_login_logout_url' => getenv('OIDC_GATEWAY_URI'), | ||||
|         'oidc_login_end_session_redirect' => false, | ||||
|         'oidc_login_default_quota' => '250000000000', | ||||
|         'oidc_login_button_text' => 'Log in with OpenID', | ||||
|         'oidc_login_hide_password_form' => true, | ||||
|         'oidc_login_use_id_token' => false, | ||||
|         'oidc_login_attributes' => array ( | ||||
|             'id' => 'sub', | ||||
|             'name' => 'name', | ||||
|             'mail' => 'email', | ||||
|             //'quota' => 'ownCloudQuota', | ||||
|             'home' => 'homeDirectory', | ||||
|             'ldap_uid' => 'sub', | ||||
|             //'groups' => 'ownCloudGroups', | ||||
|             //'login_filter' => 'realm_access_roles', | ||||
|             //'photoURL' => 'picture', | ||||
|             //'is_admin' => 'ownCloudAdmin', | ||||
|         ), | ||||
|         //'oidc_login_default_group' => 'oidc', | ||||
|         'oidc_login_filter_allowed_values' => null, | ||||
|         'oidc_login_use_external_storage' => false, | ||||
|         'oidc_login_scope' => 'openid profile', | ||||
|         'oidc_login_proxy_ldap' => false, | ||||
|         'oidc_login_disable_registration' => true, | ||||
|         'oidc_login_redir_fallback' => false, | ||||
|         'oidc_login_alt_login_page' => 'assets/login.php', | ||||
|         'oidc_login_tls_verify' => true, | ||||
|         'oidc_create_groups' => false, | ||||
|         'oidc_login_webdav_enabled' => false, | ||||
|         'oidc_login_password_authentication' => false, | ||||
|         'oidc_login_public_key_caching_time' => 86400, | ||||
|         'oidc_login_min_time_between_jwks_requests' => 10, | ||||
|         'oidc_login_well_known_caching_time' => 86400, | ||||
|         'oidc_login_update_avatar' => false, | ||||
|         'oidc_login_skip_proxy' => false, | ||||
|         'oidc_login_code_challenge_method' => '', | ||||
|     ); | ||||
		Reference in New Issue
	
	Block a user