we are trying to completely automize Xwiki deployment on Kubernetes by using the helm chart (GitHub - xwiki-contrib/xwiki-helm: Kubernetes Helm Charts for XWiki) which uses the official docker image (Docker Hub). Therefore we would like to skip the Distribution Wizard and install the Standard Flavor automatically. The documentation points out, that this is possible through the Job REST API (Distribution Wizard (XWiki.org)).
Could someone give us a hint on how to achieve this or provide some additional information? Or is there a more suitable approach than the Job REST API.
Thanks for your help in advance!
This is something that we do already for some of our standalone packagings (we offer one with the flavor pre-installed). Technically we do it in xwiki-platform/xwiki-platform-distribution/xwiki-platform-distribution-flavor/xwiki-platform-distribution-flavor-jetty-hsqldb at master · xwiki/xwiki-platform · GitHub (the trick is in setting the extension descriptor at xwiki-platform/application.xml at master · xwiki/xwiki-platform · GitHub).
It’s also possible to install extension through the Job REST API. This is what we do in our functional docker-based tests for example. Here’s the code that does it: xwiki-platform/ExtensionInstaller.java at master · xwiki/xwiki-platform · GitHub
It would be nice that we document this better somewhere.
@tmortagne do you know if we already have some doc about how to achieve this need?
Depends on which need to are referring to exactly. The job REST API is documented on https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/XWikiRESTfulAPI#HJobresources with an example for installing an extension.
Good that we added an example (must have been added recently since I wasn’t aware of it).
However, I was referring to some documentation for the user’s need of automating the installation of a flavor. I see two generic needs that could be documented in the same page:
- Explain how a custom packaging could provide an installed flavor. What info to set in the war pom.xml file, etc.
- Explain how to write a script that would install XWiki and provision it automatically with a flavor.
For 2) the page would point to the Job REST API. For 1), we might have some doc already (but I couldn’t find it) where we describe how to set the flavor id in the pom.xml in the WAR.
@christian I also forgot that we have a XIP for the standard flavor (for offline installs). See https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/#HInstallingwithoutinternetconnection However AFAIK this will not skip the DW, it’ll just make the standard flavor available in the list of available flavors. Right @tmortagne ?
We don’t have much else than https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/DistributionWizard#HAutomaticmode and some other tricks about distribution wizard in the rest of the page.
It’s not really clear what you exactly mean by “installed” since you cannot have an installed flavor in a WAR.
If you mean indicating a default flavor that would be used instead of the flavor picker (i.e. what we used to have in XE) this can be done in several places and is documented on Distribution Wizard (XWiki.org).
The only point of the XIP package is to add local extensions.