Commit 1b7ffe78374b22a1cec9a526f01c6e40529289a9:
commit current status to the repository
Original source:
https://mail-archives.apache.org/mod_mbox/whimsical-dev/201601.mbox/%[email protected]%3E
Branch: refs/heads/master
Author: Sam Ruby <[email protected]>
Committer: Sam Ruby <[email protected]>
Pusher: rubys <[email protected]>
------------------------------------------------------------
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
+++ b/DEPLOYMENT.md
@@ -0,0 +1,24 @@
+Deployment
+==========
+
+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
+
+Instructions:
+
+ https://github.com/rubys/puppet-kitchen#readme
+
+
https://github.com/apache/infrastructure-puppet/blob/deployment/modules/vhosts_whimsy/README.md
+
+Workflow:
+
+
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
+++ b/DEVELOPMENT.md
@@ -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 @@
+TODOs
+=====
+
+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.