<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hi Carsten,</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div>In EnMasse, there are currently 4 types of addresses: 'anycast', 'multicast', 'queue', 'topic'. The first two are 'direct' address that only makes use of the dispatch router. Whenever you create an address with 'queue' or 'topic' semantics, you get a broker. The way this is done is that whenever you create a queue (store_and_forward=true, multicast=false, flavor='vanilla-queue' for instance), then the address-controller will create the Deployment for a broker to handle that queue. If an address with the same group exists, it will reuse that deployment and the queue on the broker will be created. See <a href="https://github.com/EnMasseProject/enmasse/blob/master/documentation/getting-started/openshift.md#configuring-addresses">https://github.com/EnMasseProject/enmasse/blob/master/documentation/getting-started/openshift.md#configuring-addresses</a> for more on address configuration.</div><div><br></div><div>My slides from RivieraDev may help in explaining how brokers are created today: <a href="https://www.slideshare.net/UlfLilleengen/rivieradev-75928765">https://www.slideshare.net/UlfLilleengen/rivieradev-75928765</a></div><div><br></div><div>The conceptual model around how addresses are defined is subject to change, and a design draft will be published on this.<br></div><div><br></div><div>The address-controller is the component that applies the JSON in those config maps. It uses the fabric8 kubernetes client, which has a capability of processing OpenShift templates locally even when running on Kubernetes. This essentially allows us to use OpenShift templates for the 'instance infrastructure (router ++)' (only 1 instance in the single-tenant case) and the 'broker infrastructure' (multiple of these depending on the address config) on Kubernetes. </div><div><br></div><div>An OpenShift template is basically a list of Kubernetes resources that can be processed (parameter substitution) and then applied (creates the processed resources). When running on OpenShift, the address controller processes the templates 'remotely' rather than from the resources in the config map.</div><div><br></div><div>When running on Kubernetes, the 'enmasse-template-config' configmap is mounted within the address-controller pod, and i.e. whenever you create a queue, it will process one of the template files within that ConfigMap and substitute parameters like the ADDRESS etc (which originally comes from the user input).</div><div><br></div><div>Ulf</div></div><div class="gmail_quote"><br></div><div class="gmail_quote">On Mon, Jun 19, 2017 at 1:04 PM, Lohmann Carsten (INST/ECS4) <span dir="ltr"><<a href="mailto:Carsten.Lohmann@bosch-si.com" target="_blank">Carsten.Lohmann@bosch-si.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Good, thank you for the info.<br>
<br>
One further difference in the Hono qdrouter config is the inclusion of the artemis broker.<br>
<br>
While I see an artemis image being referenced in the nested JSONs of the Kubernetes enmasse.yaml,<br>
it seems there is no such container being deployed after applying enmasse.yaml.<br>
Is inclusion of the broker in Kubernetes currently not enabled/supported? </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
One thing I'm still trying to grasp is the way the Kubernetes resources defined in the ConfigMap with the JSONs<br>
actually get applied/deployed.<br>
Do you have pointers here on the corresponding Kubernetes mechanisms used for that?<br>
<br>
Best regards<br>
<br>
 Carsten Lohmann<br>
<span class="gmail-"><br>
(INST/ECS4)<br>
Bosch Software Innovations GmbH | Schöneberger Ufer 89-91 | 10785 Berlin | GERMANY | <a href="http://www.bosch-si.com" rel="noreferrer" target="_blank">www.bosch-si.com</a><br>
</span><span class="gmail-">Tel. <a href="tel:%2B49%2030%20726112-130" value="+4930726112130">+49 30 726112-130</a> | Fax <a href="tel:%2B49%2030%20726112-100" value="+4930726112100">+49 30 726112-100</a> | <a href="mailto:carsten.lohmann@bosch-si.com">carsten.lohmann@bosch-si.com</a><br>
<br>
</span><span class="gmail-">Sitz: Berlin, Registergericht: Amtsgericht Charlottenburg; HRB 148411 B<br>
Geschäftsführung: Dr.-Ing. Rainer Kallenbach, Michael Hahn<br>
<br>
<br>
<br>
<br>
</span>-----Ursprüngliche Nachricht-----<br>
<span class="gmail-">Von: Ulf Lilleengen [mailto:<a href="mailto:ulilleen@redhat.com">ulilleen@redhat.com</a>]<br>
</span>Gesendet: Freitag, 16. Juni 2017 14:30<br>
An: Lohmann Carsten (INST/ECS4) <<a href="mailto:Carsten.Lohmann@bosch-si.com">Carsten.Lohmann@bosch-si.com</a>><wbr>; <a href="mailto:enmasse@redhat.com">enmasse@redhat.com</a><br>
Betreff: Re: [EnMasse] Adapting the EnMasse deployment<br>
<div class="gmail-HOEnZb"><div class="gmail-h5"><br>
On 16. juni 2017 12:44, Ulf Lilleengen wrote:<br>
> On 16. juni 2017 12:08, Lohmann Carsten (INST/ECS4) wrote:<br>
>> Hi Ulf,<br>
>><br>
>>>  Out of curiosity, what is it that you wish to modify in this config?<br>
>><br>
>> We want to use a config similar to the one used in Hono:<br>
>><br>
>> <a href="https://github.com/eclipse/hono/blob/master/dispatchrouter/qpid/qdrou" rel="noreferrer" target="_blank">https://github.com/eclipse/<wbr>hono/blob/master/<wbr>dispatchrouter/qpid/qdrou</a><br>
>> terd-with-broker.json<br>
>><br>
>>  > I.e. with our sslProfile / certificates and vhost definitions.<br>
>><br>
><br>
> One thing to look out for there is that the enmasse router config is<br>
> created dynamically from a static fixed template + configuration from<br>
> the router agent (address config for instance).<br>
><br>
> To make it work properly in EnMasse, you have to merge that config<br>
> with the static enmasse router config:<br>
><br>
> <a href="https://github.com/EnMasseProject/dockerfiles/blob/master/qdrouterd/qd" rel="noreferrer" target="_blank">https://github.com/<wbr>EnMasseProject/dockerfiles/<wbr>blob/master/qdrouterd/qd</a><br>
> routerd.conf.template<br>
><br>
><br>
<br>
Just to elaborate on this part: Eventually we hope to provide a way in EnMasse to do this without overriding the router config. For certs, you can edit the certificates used by the router by creating/editing the secret 'certs-$namespace' where $namespace is the namespace where you deployed EnMasse to, which will be used for external connections.<br>
<br>
We intend to improve the certificate management in the near future in combination with keycloak integration.<br>
<br>
How to add vhost definitions is something that needs more discussion, but we're working on a backlog so this is useful input.<br>
<br>
--<br>
Ulf<br>
<br>
</div></div><div class="gmail-HOEnZb"><div class="gmail-h5">______________________________<wbr>_________________<br>
enmasse mailing list<br>
<a href="mailto:enmasse@redhat.com">enmasse@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/enmasse" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/enmasse</a><br>
</div></div></blockquote></div><br></div></div>