whimsical-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sam Ruby <ru...@apache.org>
Subject [whimsy.git] [1/1] Commit 1b7ffe7: commit current status to the repository
Date Wed, 06 Jan 2016 19:08:07 GMT
Commit 1b7ffe78374b22a1cec9a526f01c6e40529289a9:
    commit current status to the repository
    Original source:

Branch: refs/heads/master
Author: Sam Ruby <rubys@intertwingly.net>
Committer: Sam Ruby <rubys@intertwingly.net>
Pusher: rubys <rubys@apache.org>

DEPLOYMENT.md                                                | ++++++++++++ 
DEVELOPMENT.md                                               | ++++++++++++++ 
TODOS.md                                                     | +++++++++++++ 
104 changes: 104 additions, 0 deletions.

diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md
new file mode 100644
index 0000000..bb8a3b5
--- /dev/null
@@ -0,0 +1,24 @@
+The contents of this repository are deployed on the following VM:
+    https://whimsy-test.apache.org/
+The new VM is based on Ubuntu 14.04 (the current Whimsy is based on Ubuntu
+12.04), and is more completely managed by Puppet.  The puppet definition is
+contained in the following two files:
+    https://github.com/apache/infrastructure-puppet/blob/deployment/data/nodes/whimsy-vm2.apache.org.yaml
+    https://github.com/apache/infrastructure-puppet/blob/deployment/modules/whimsy_server/manifests/init.pp
+    https://github.com/rubys/puppet-kitchen#readme
+    https://github.com/apache/infrastructure-puppet/blob/deployment/modules/vhosts_whimsy/README.md
+    https://cwiki.apache.org/confluence/display/INFRA/Git+workflow+for+infrastructure-puppet+repo
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
new file mode 100644
index 0000000..0681c76
--- /dev/null
@@ -0,0 +1,55 @@
+Development Status
+Applications consist of static data, CGI scripts, Rack applications, and a
+single Puma application (the board agenda, which has some unique response time
+requirements), and cron jobs.
+The goal is to make it so that every committers on the Whimy PMC can both
+deploy changes and new applications.  A new VM has been provisioned for this
+purpose: https://whimsy-test.apache.org/.
+Current status:
+ * Static content is working.  Changes pushed to GitHub master will be
+   automatically deployed every 30 minutes.  Note that this includes the
+   contents of scripts and applications too.
+ * CGI scripts are working, but dependencies (gems, svn checkouts) have not
+   been installed.  A simple CGI:
+    https://github.com/apache/whimsy/blob/master/www/test.cgi
+    https://whimsy-test.apache.org/test.cgi
+   Many CGI scripts will require user authentication.  This is done by adding
+   a single line to the deployment data identifying the location of the
+   script:
+    https://github.com/apache/infrastructure-puppet/blob/deployment/data/nodes/whimsy-vm2.apache.org.yaml#L65
+   Note that the LDAP module does not currently handle boolean conditions
+   (example: members or officers).  The way to handle this is to do
+   authentication in two passes.  The first pass will be done by the Apache
+   web server, and verify that the user is a part of the most inclusive group
+   (typically: committers).  The CGI scripts that need to do more will need to
+   perform additional checks, and output a "Status: 401 Unauthorized" as the
+   first line of their output if access to this tool is not permitted for the
+   user.
+ * Rack applications are working and run under Passenger under Apache httpd.
+   Again, dependencies are not yet ready.  In addition to simply checking the
+   application, one line per passenger application needs to be added to the
+   deployment data:
+    https://github.com/apache/infrastructure-puppet/blob/deployment/data/nodes/whimsy-vm2.apache.org.yaml#L60
+   A simple rack application (two empty directories, and a one line file):
+    https://github.com/apache/whimsy/tree/master/www/racktest
+    https://whimsy-test.apache.org/racktest
+   Authentication requirements will also need to be two phase, like with CGI
+   above; but more common conditions can be handled at the "Rack" level
+   instead of at the application level making use of Rack middleware such as:
+    https://github.com/apache/whimsy/blob/master/lib/whimsy/asf/rack.rb#L56
diff --git a/TODOS.md b/TODOS.md
new file mode 100644
index 0000000..3e0de86
--- /dev/null
+++ b/TODOS.md
@@ -0,0 +1,25 @@
+This directory has two main subdirectories...
+1. Get a handle on how to test LDAP changes locally.  LDAP is installed on
+   whimsy-vm2, but not on local puppet-kitchen-vagrant repositories.
+2. Define a strategy for maintaining checkout data (mostly SVN) which is
+   needed by multiple applications.  For production, that will mean deployment
+   on things like credentials for the `whimsysvn` user.  For local testing
+   that likely will mean mounting local directories by the VM.
+3. Define a strategy for maintaining dependencies.  Whimsy (as a site) hosts
+   multiple independent applications, each of which may have different
+   requirements.  I'd like to make it so that not every application has to be
+   upgraded at the same time when a new version of a dependency comes out.
+   This likely will involve the use of bundler
+   (https://forge.puppetlabs.com/ploperations/bundler).
+4. Deploy puma (https://forge.puppetlabs.com/deversus/puma), and merge the
+   [board agenda](https://github.com/rubys/whimsy-agenda) tool into this
+   repository.
+5. Set up cron jobs.

View raw message