How about mapping to tiers the tenant has subscribed to?
On Fri, Jul 12, 2013 at 7:06 PM, Ramith Jayasinghe <[email protected]> wrote: > Hi, > I have been looking at possible ways to achieve the $subject. > > And here's one possible way of achieving this. > > Basis of this approach is to deploy jenkins as a web application on our > Application Server ( -- I tested this) [1]. > > There couple aspects we need to think about : > 1. Tenant Creation > 2. Authentication and authorization > 3. Building Jobs. > 4. Load balancing and HA > * > Tenant Creation* > Now suppose user creates a organization/tenant xyz on Appfactory. > Appfactory could either : > 1. Deploy jenkins onto the xyz tenant > Or > 2. Deploy jenkins on super tenant. With this approach we have to rename > jenkins.war (possibly to xyz.war) to make this jenkins instance different > from others. > > With either way each jenkins instance needs to be provided with a its own > JENKINS_HOME. > This can be achieved via adding a context.xml file with content similar > to following to jenkins.war distribution ( specifically into META-INF) > > <Context> > <Environment name="JENKINS_HOME" value="${J_HOMES}/xyz" > type="java.lang.String"/> > </Context> > > $J_HOMES refers to a directory in file system and supplied as a system > variable during the server start up etc. > 'xyz' sub-directory has to be created and filled with configurations, > plugins etc before deploying the webapp. > > Configuration that needs to go into this folder are typically related to > maven,jdks, plugins etc. ( can puppet be of use to automate all this?) > * > **Note:* I already came across an issue where content in conext.xml is > not visible to jenkins.war when deployed onto a tenant ( maybe a bug in AS > ?) > * > Authentication & Authorization* > > We could use Jenkins LDAP (may be with some modifications) plugin based > on the requirement or we might have to change current authentication plugin > [2] we wrote for jenkins. > Further, I think with above approach we still can use the role strategy > plugin [3] that's currently in use. > * > Building Jobs* > > Master nodes ( - deployed on AS) should not run build jobs. > Instead these should be delegated to a pool of jenkins slaves [4][5]. We > need to figure out a scheme on how to do this. > > *Load balancing and HA * > > Deploying and testing jenkins on a AS cluster should be the starting point > to figure out weather this whole approach would scale. > > > [1] https://wiki.jenkins-ci.org/display/JENKINS/Tomcat > [2] > https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.1.0/products/appfactory/1.0.0/modules/webapps/appfactory-authentication-plugin > [3] > https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.1.0/dependencies/jenkins-ci/role-strategy-plugin/1.1.3-wso2v2 > [4] https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds > [5] > https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds#Distributedbuilds-RunningMultipleSlavesontheSameMachine > > > -- > Ramith Jayasinghe > Technical Lead > WSO2 Inc., http://wso2.com > lean.enterprise.middleware > > E: [email protected] > > > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Thanks, Samisa... Samisa Abeysinghe VP Engineering WSO2 Inc. http://wso2.com http://wso2.org
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
