Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPCgeonode #4024

Merged
merged 8 commits into from
Nov 19, 2018
Merged

SPCgeonode #4024

merged 8 commits into from
Nov 19, 2018

Conversation

olivierdalang
Copy link
Member

Hi,

As discussed during last PSC meeting and on the ML, and following the GNIP #3707, here's my proposition for upstreaming SPCgeonode.

During the meeting, we agreed on having this in a dedicated repo in under the Geonode organisation (following the Geonode-project approach that SPCgeonode had so far). But it's actually much more practical to have it in the main repo, so that the setup is also usable when developing Geonode.

Everything is nicely contained under scripts/spcgeonode, so that it would not interfere with the current setup if we merge this into master. The only thing outside of that folder is the config for CI, so I used CircleCI instead of Travis to avoid any interferences.

Quickstart :

git clone https://github.com/olivierdalang/geonode.git -b spcgeonode
cd scripts/spcgeonode
docker-compose up -d

Check scripts/spcgeonode/README.md for more details...

Features :

  • super simple to use (docker-compose up -d and everything should work out of the box)
  • no dark magic (no docker in docker, all logging to stdout...)
  • documented (in scripts/spcgeonode/README.md, this would be moved to the doc at some point)
  • roadmapped (in scripts/spcgeonode/ROADMAP.md, this would be moved to github issues at some point)
  • CI testing (image building and test suite - some tests are failing see below)
  • docker hub integration (images auto-build)
  • release process documented and working, including autobuilds on dockerhub (publishing new releases takes 30 seconds)
  • documented migration path from 2.4 (albeit not super nice)
  • usable for production :
    • let's encrypt out of the box (if setting https host)
    • backups to amazon s3 using rclone (could easily be extended to support other providers)
    • reasonable security out of the box (passwords are reset, no guarantee though)
  • also usable for geonode developement (docker-compose up -d --build django postgres nginx geoserver)
    • all containers output correctly to stdout (easy to debug)
    • auto-reload works (very convenient for developing)

As already said, I think this may be a solution to our current problem with releases (where it seems it's too much work for what we currently can provide to make new releases for Ubuntu, let alone other systems such as Windows).

Suggested action plan :

  • review and merge the PR
  • let it live for a while and let you guys test it out
  • fix the failing tests (I didn't investigate too much in the failures so far, I guess it comes from some tests that hardcode some settings such as geoserver url):
    • core apps tests: 5 failing out of 100 tests
    • internal apps tests: 2 failing out of 93 tests
    • integration tests: 1 failing out of 32 tests
  • setup autobuild for the official repo
  • move README.md to the docs
  • move ROADMAP.md to github issues
  • advertise it as a new (beta) official installation method (including in the quickstart section on the homepage)
  • in the long term, deal with docker setup proliferation (keep only one set of docker-compose, one official dockerfile for each service, etc...)

Let me know what you think.

Cheers,

Olivier

- tests run in parralel
- docker layers cache works
- cleanup
- remove custom setting files and use env vars instead
- move envvars to docker-compose when possible
- run tests without async
- fix async
- ci : cache per branch
@codecov
Copy link

codecov bot commented Oct 25, 2018

Codecov Report

Merging #4024 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #4024   +/-   ##
=======================================
  Coverage   54.34%   54.34%           
=======================================
  Files         235      235           
  Lines       15131    15131           
  Branches     2257     2257           
=======================================
  Hits         8223     8223           
  Misses       6175     6175           
  Partials      733      733

@afabiani
Copy link
Member

Very good @olivierdalang

At a first glance it looks ok. Give me some time to try and test it locally.

@afabiani
Copy link
Member

afabiani commented Nov 5, 2018

@olivierdalang many thanks for this very valuable addition

@capooti
Copy link
Member

capooti commented Nov 6, 2018

Thanks @olivierdalang +1 to merge

@francbartoli
Copy link
Member

Good work @olivierdalang. At first look it seems to work well with docker-machine too even if I had some issue with the upload. I have to try it again with a vm with more memory.

Left a couple of comments along the PR though. Also I want to check it out in a linux virtual machine. What would the plan be to get rid of images coming from your docker hub account? Do we want to keep them during the beta period?

@Coop56
Copy link
Contributor

Coop56 commented Nov 17, 2018

+1 on seeing this get merged in. It would make developing for geonode locally quite a bit easier.

@afabiani afabiani merged commit 921dd5d into GeoNode:master Nov 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants