AS7/EAP6 deployment resources for domain mode

Thomas Segismont tsegismo at redhat.com
Fri May 16 13:29:15 UTC 2014


Le 16/05/2014 14:52, Heiko W.Rupp a écrit :
> Hey,
>
> Am 16.05.2014 um 14:32 schrieb Thomas Segismont:
>
>> In domain mode, deployments appear at three different levels:
>> (1) Domain deployments under the host controller resource
>
> In fact this should be for the DomainController only.

Right, I'll try to find a way to prevent the discovery of this resource 
for host controllers.

>
>> (2) Deployments under server group resources
>> (3) Managed deployments under managed server resources
>
>
>
>>
>> In the plugin descriptor, both resource type (1) and (2) have createDeletePolicy="both" (with creationDataType="content"), while (3) has createDeletePolicy="neither".
>
> 3) is only (for) the runtime information. The managed servers get that deployment from the local HC. There is (afaik) no way
> to directly deploy to one of those or to remove a deployment of those. Those two operations are done via forming of
> server groups and deploying to them.

Right

>
>> This is confusing because when you upgrade the content of a Domain deployment resource, you see a stale history of content in the Server Group Deployment resource (see Bug 889250 [1]).
>>
>> Unless I missed something, users should only upgrade content of Domain deployment resource, and use the server group deployment resource to execute enable/disable/restart operations (deploy/undeploy/redeploy in AS7/EAP6 terminology).
>
> The possibility to deploy via server groups is a short cut so that people do not have to first upload the content to the domain
> (controller) and then assign that to a server group.
>
>>
>> I'm for creating a new deployment resource type, server group specific and unaware of the content aspects. Is there any major objection before I start the pull request?
>
> What exactly do you mean here?
>
> Would that replace the existing types? How would a migration strategy look like for people that have a deploy workflow
> already with the existing resource types?

Currently, we have a "Deployment" service declared like this:

   <service name="Deployment"
            class="DeploymentComponent"
            discovery="SubsystemDiscovery"
            createDeletePolicy="both"
            creationDataType="content">

     <runs-inside>
       <parent-resource-type name="ServerGroup" plugin="&pluginName;"/>
       <parent-resource-type name="JBossAS7 Standalone Server" 
plugin="&pluginName;"/>
     </runs-inside>

What I had mind:


   <service name="Deployment"
            class="DeploymentComponent"
            discovery="SubsystemDiscovery"
            createDeletePolicy="both"
            creationDataType="content">

     <runs-inside>
       <!-- Remove the ServerGroup line -->
       <parent-resource-type name="JBossAS7 Standalone Server" 
plugin="&pluginName;"/>
     </runs-inside>

Plus:

   <service name="Deployment (ServerGroup)"
            class="xxx"
            discovery="xxx"
            createDeletePolicy="neither">

     <runs-inside>
       <parent-resource-type name="ServerGroup" plugin="&pluginName;"/>
pluginName;"/>
     </runs-inside>

That would create a new resource type. There's no real migration 
strategy, users would deploy content through the "Domain Deployment" 
resource and use the "Deployment (ServerGroup)" resource to 
enable/disable/restart deployments.

Maybe it would be better to simply get rid of deployment resources under 
server groups. And manage everything from the "DomainDeployment" 
resource. That's what the admin console does more or less.

Thomas





More information about the rhq-devel mailing list