Wiki source code of My GSOC journey with xwiki

Version 3.1 by Ashish Sharma on 2019/08/26

Show last authors
1 = Mentors: =
2
3 I want to thank my mentors Shubham Jain, Neha Gupta and Xwiki organisation for giving me such an opportunity and helping me out throughout my journey of GSOC. I also want to also thank Vincent Massol for helping me out in one of my dependent project.
4
5 = A little bit about me =
6
7 My name is Ashish Sharma, I am 23 and I am a final year student from Bharati Vidyapeeth's College of Engineering, India. I have participated in GSoC'19 program as a student in XWiki and worked on "Helm chart for Xwiki".
8
9 = What did I expect from GSoC 2019 =
10
11 This was my first Google Summer of Code and the concept to contribute for 3 months in an open-source organisation was exciting for me. I got an opportunity to work remotely on a project. I was curious to explore how an open-source organisation work. Anyway, I have expected new experience in remote internship, open source project contributing, Google Summer of Code participating and international only remote communication.
12
13 In this post I want to describe what I have finished and what is not completed yet and why.
14
15 = Description =
16
17 This project focoused on creating a helm chart that would deploy xwiki on Kubernetes by using helm templating. The deployment should be configurable to be scalacble, highly available and roboust.
18
19 = You can find the project code at =
20
21 https://github.com/xwiki-contrib/xwiki-helm and
22
23 = The issue tracker can be found =
24
25 https://jira.xwiki.org/projects/HELM/issues
26
27 = How to use the result of my work =
28
29 git clone https://github.com/xwiki-contrib/xwiki-helm
30 cd xwiki-helm-chart
31 helm dependency update
32 helm --debug upgrade -i --force xwiki -f ./values.yaml .
33
34 [[Read about prerequite>>https://github.com/xwiki-contrib/xwiki-helm]]
35
36 = Milestones =
37
38 == Milestones 1: ==
39
40 === Creating a basic helm chart ===
41
42 * Understanding xwiki's docker structure.
43 * Understanding and taking the decision for using the correct resource to host xwiki.
44 * So I started up using the StatefulSet, clusterIP service and ingress.
45 * Added values files which help in making the chart dynamically configurable.
46 * Then we had a neded to support multiple databases and was in a need of a solution that don't require to deploy database externally, so a good standard for adding dependency to other services like database were needed.
47 * So we deccided to add database as a helm dependency, that helped us to deploy database automatically with our application and the database was also configured with the xwiki chart configuration, that made maintaining the database easy, and we don't need to deploy it seprately.
48 * So we added support for database mysql and postgress through dependency and also given option for user to deploy it's own external database.
49
50 == Milestestone 2: ==
51
52 === Adding support for ISTIO and other features ===
53
54 * Added support for ISTIO
55 * Started using Configmaps and Secrets for database credentials
56 * Added support for Pod Disruption Budget
57 * Researched and documented about how to [[set up Rook on GKE for shared file system>>https://medium.com/@ashish932/f3abe23d9e79]]
58
59 == Milestone 3: ==
60
61 === Adding support for clustering,HA and Unit testing ===
62
63 * Migrated from Statefulset to Deployment
64 * Added Clustering feature to docker project
65 * Added Clustering feature to helm project
66 * Can add JGroup config file through configMaps
67 * Unit Testing
68 * Added Liveliness and Readiness Probes

Get Connected