nextcloud-charms's Introduction
nextcloud-charms's People
nextcloud-charms's Issues
add nextcloud tar option to config when deploy
checksum requirement as well to verify the validity of the source
Support for juju local storage
Support for juju local storage [not yet implemented]
Don't have nextcloud present weird states when installing
When nextcloud is still in "installation" mode, prevent uptate-status hook from presenting weird state information. Instead just don't do anything while installation is not complete.
Prevent update-status from presenting incorrect state information when still in installation mode.
In function:
def _on_update_status(self, event):
Create python module for functions
Move all logics from the charm events/hooks into a separate library to have the events be very clean and separated from the charm logics.
utils.py for example...
Error when deploying the nextcloud charm and relating to PostgreSQL charm
I was trying to deploy the nextcloud charm using those instructions, but couldn’t manage to make it work.
I changed the deploy commands a little bit (due to the changes in the PG charm channels and that the nextcloud charm is available only on the edge channel):
juju add-model my-nextcloud
juju model-config default-series=focal
juju deploy postgresql --channel latest/stable
juju deploy nextcloud --channel latest/edge
juju relate nextcloud:db postgresql:db
The error that I received was the following:
unit-nextcloud-0: 13:05:24 ERROR unit.nextcloud/0.juju-log Uncaught exception while in charm code:
Traceback (most recent call last):
File "./src/charm.py", line 596, in <module>
main(NextcloudCharm)
File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/main.py", line 434, in main
framework.reemit()
File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/framework.py", line 840, in reemit
self._reemit()
File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/framework.py", line 919, in _reemit
custom_handler(event)
File "./src/charm.py", line 291, in _on_start
self._on_update_status(event)
File "./src/charm.py", line 455, in _on_update_status
self._checkLogConfigDiff()
File "./src/charm.py", line 589, in _checkLogConfigDiff
if cluster_rel.data[self.app]['nextcloud_config'] == str(nextcloud_config):
File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/model.py", line 1493, in __getitem__
return super().__getitem__(key)
File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/model.py", line 695, in __getitem__
return self._data[key]
KeyError: 'nextcloud_config'
unit-nextcloud-0: 13:05:24 ERROR juju.worker.uniter.operation hook "update-status" (via hook dispatching script: dispatch) failed: exit status 1
Juju version: 2.9.42
auto-create bucket using ceph
Log from nextcloud (logging in UI)
Exception: Creation of bucket "nextcloud" failed. Error executing "CreateBucket" on "http://13.51.6.243/nextcloud"; AWS HTTP error: Client error: `PUT http://13.51.6.243/nextcloud` resulted in a `400 Bad Request` response: <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidLocationConstraint</Code><Message>The specified location-const (truncated...) InvalidLocationConstraint (client): The specified location-constraint is not valid - <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidLocationConstraint</Code><Message>The specified location-constraint is not valid</Message><BucketName>nextcloud</BucketName><RequestId>tx00000000000000000001e-00601868da-11dc-default</RequestId><HostId>11dc-default-default</HostId></Error>
Action "add-trusted-domain" doesn't work
When adding a new domain, the config is not updated.
Add redis distributed cache
Rename occ_foobar function names to just foobar in occ.py
Keep names shorter and consistently named.
Support SLAVE database instance.
Make the nextcloud instance robust. We must have support for a slave-database.
Support for backend storage CEPH
Support for CEPH primary storage
Move the old charm README over to the new repo
The old README is fairly good and contains a few example.
Needs some more love aswell along with examples. Possibly with bundles to reflect better what people actually do.
- Backup routines.
- Restore routines.
- Upgrades.
- Relations to storage etc.
- Monitoring
- etc.
Create occ class
Interacting with "occ" command is common and that functionality can be moved to its own class, dealing with occ commands. It will bloat the main code less and keep that separate and nice.
Use the postgresql charm to backup the database
Create an instruction on how to setup the postgresql for backups.
DATABASE-BACKUP.md
There is a blogpost on this topic.
https://stubish.wordpress.com/2017/09/01/postgresql-point-in-time-recovery-with-juju/
fix redis conf file
/var/www/nextcloud/config/redis.config.php
add actions from the old charm
some actions might be for occ as well.
Sync releases of the charm with nextcloud upstream
To be able to manage support for versions of nextcloud, we need to have our charms.
Create a new "nextcloud-private"
The "nextcloud-private" should contain a more limited subset of functionalities that suites a smaller instance of nextcloud.
- 1 node
- support for local juju storage.
- etc.
deploy nextcloud with nextcloud.tar as a resource
this would speed up the development if we could provide the tar as a resource when deploying. Instead of all the units having to download it from the url.
support focal
Add support for ubuntu focal.
- new version for php etc.
Support for backend storage NFS
Support for backend storage NFS
Optimize test of install by not getting the full tarfile
When the unit test is ran, optimize the unit test by having a tar-file with a single empty directory "nextcloud" so that we don't download a full 200M file for a simple test of extracting sources.
Support LDAP for user management
There is a charmed LDAP server. We should support LDAP for users in nextcloud.
Further down, also support for Active Directory.
Support for Redis cluster
Implement redis cluster support for nextcloud-pro
Create a feature list for the two different charms
Document what we include in the different charms:
==== nextcloud-private ====
Supported:
- Support for single instance
- Support for redis singleton
- Support for website http interface (ssl-termination)
- Support for postgresql database
- Support for juju storage [not yet implemented]
...
Not supported: - Scale out of nextcloud server
- Backend storage (CEPH or NFS)
- Redis cluster
- etc.
==== nextcloud-pro ====
Supported:
- Support for scale out (n-servers)
- Support for redis cluster [not yet implemented]
- Support for mysql [Not yet implemented]
- Support for backend storage (CEPH, NFS) [Not yet implemented]
Not supported:
- ...
Add circle-ci tests for distro focal
Run tests for focal in circle-ci to see that that works.
Support for mysql [Not yet implemented]
Support for mysql
Rename nextcloud charm to nextcloud-pro
Rename the nextcloud charm to nextcloud-pro
REMOVE: charm-redistest
Remove the test charm for redis so not to bloat the repo.
Detect when database already exist since it will not recreate it
If you unrelate nextcloud with postgresql.
.... and relate again a new unit...
Nextcloud initialization will fail since/if the database exist already.
What should happen is that we detect this situation and ask that the database is empty...
Figure out how to re-initialize ? .... from backup.
Add icon.svg from old charm and create a new one for the "private" charm version
Have one icon.svg for the private charm and one for the main
Typo
Should be "Not"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.