forked from jenkins-x/jenkins-x-website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
2843 lines (2537 loc) · 326 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins X - Cloud Native CI/CD Built On Kubernetes – Jenkins X - Cloud Native CI/CD Built On Kubernetes</title>
<link>https://jenkins-x.io/</link>
<description>Recent content on Jenkins X - Cloud Native CI/CD Built On Kubernetes</description>
<generator>Hugo -- gohugo.io</generator>
<atom:link href="https://jenkins-x.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Blog: Hacktoberfest</title>
<link>https://jenkins-x.io/blog/2020/09/23/hacktoberfest2020/</link>
<pubDate>Wed, 23 Sep 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/09/23/hacktoberfest2020/</guid>
<description>
<figure>
<img src="https://jenkins-x.io/images/community/events/2020-hacktoberfest.jpg"/>
</figure>
<p>We are excited to announce that Jenkins X will be participating in Hacktoberfest again this year! Hacktoberfest is a month-long global celebration of open source software.</p>
<p>From October 1 to October 31, submit four pull requests to qualify for the limited edition Hacktoberfest shirt. All backgrounds and skill levels are encouraged to participate in Hacktoberfest and join a global community of open source contributors.</p>
<p><strong>Learn more about Hacktoberfest and sign up <a href="https://hacktoberfest.digitalocean.com/">here</a>.</strong></p>
<h3 id="contribute-to-jenkins-x">Contribute to Jenkins X</h3>
<p>We welcome your contributions to the Jenkins X project!</p>
<p><a href="https://github.com/jenkins-x/jx-docs/issues?q=is%3Aissue+is%3Aopen+hacktoberfest">Issues labelled &ldquo;hacktoberfest&rdquo;</a> generally indicate good first issues. However, all pull requests will count towards your Hacktoberfest challenge. Jenkins X welcomes contributors to both:</p>
<ul>
<li><a href="https://github.com/jenkins-x/jx">the Jenkins X <code>jx</code> source code</a></li>
<li><a href="https://github.com/jenkins-x/jx-docs">the Jenkins X documentation website</a></li>
</ul>
<h3 id="contribute-to-jx-source-code">Contribute to <code>jx</code> source code</h3>
<p>There are plenty of <a href="https://github.com/jenkins-x/jx/issues">open issues</a>, and we welcome your help in making Jenkins X even more awesome.</p>
<p>Jenkins X is written largely in Go, but you don&rsquo;t need to be an expert to contribute! If you are new to the project, search for issues labelled &ldquo;good-first-issue&rdquo;. Our <a href="https://jenkins-x.io/community/code/">Contributing Guide</a> has advice for getting started with contributing to Jenkins X.</p>
<h3 id="contribute-to-the-docs">Contribute to the docs</h3>
<p>We welcome your help in improving the Jenkins X documenation. If you see areas of the documentation that need fixing or augmentation please raise a pull request. Our guide for <a href="https://jenkins-x.io/community/documentation/">Contributing to the Documentation</a> has advice for getting started with contributing to the Jenkins X docs.</p>
<h3 id="ask-us-questions">Ask us questions</h3>
<p>We&rsquo;re happy to help if you have any questions. Talk to us on our slack channels, which are part of the Kubernetes slack. Join Kubernetes slack <a href="http://slack.k8s.io/">here</a> and find us on our channels:</p>
<ul>
<li>#jenkins-x-dev for developers of Jenkins X</li>
<li>#jenkins-x-user for users of Jenkins X</li>
</ul>
<p>We also have online office hours, where we talk about new developments in Jenkins X and you are welcome to ask us questions. We meet for office hours <strong>every other Tuesday</strong> at 15:00 UTC (<em>See your timezone <a href="https://time.is/1500_in_UTC">here</a></em>).</p>
<p>Next office hours are on <strong>6 October</strong>. Join us on this <a href="https://zoom.us/j/397862697">meeting link</a>. See the <a href="https://jenkins-x.io/community/calendar/">Jenkins X calendar</a> for events that you are welcome to join.</p>
<p>Find out more about becoming involved in the Jenkins X community <a href="https://jenkins-x.io/community/">here</a>.</p>
<p><em>We look forward to seeing you in open source, fixing all the things!</em></p>
<img src="https://jenkins-x.io/images/404-page/GOPHER RIDING REX.png" class="img-thumbnail">
<p>image by Ashley McNamara, <a href="https://github.com/ashleymcnamara/gophers/blob/master/GOPHER%20RIDING%20REX.png">creative commons license</a></p>
</description>
</item>
<item>
<title>Blog: New UI to visualize your pipelines and logs</title>
<link>https://jenkins-x.io/blog/2020/09/23/jx-pipelines-visualizer/</link>
<pubDate>Wed, 23 Sep 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/09/23/jx-pipelines-visualizer/</guid>
<description>
<p>Welcome to the <a href="https://github.com/dailymotion/jx-pipelines-visualizer">Jenkins X Pipelines Visualizer</a>: a new open-source read-only UI for Jenkins X, with a very specific goal and scope: visualize the pipelines and logs.</p>
<p>This project was started at <a href="https://www.dailymotion.com/">Dailymotion</a> and quickly shared with the Jenkins X community.</p>
<h2 id="why-a-new-ui">Why a new UI?</h2>
<p>There is already the <a href="https://jenkins-x.io/blog/2020/08/06/octant-jx/">Octant-based UI</a>, so why a new UI?</p>
<p>The main reason is that <a href="https://octant.dev/">Octant</a> &ldquo;is an application and is intended as a single client tool and at this time there are no plans to support hosted versions of Octant&rdquo; - see <a href="https://github.com/vmware-tanzu/octant/pull/450">this thread on the Octant github repository</a> for more information and details.</p>
<p>So while Octant answers to a lot of use-cases, there is one for which it is not suited: quickly printing the build logs on a browser, for a specific pipeline. We want to be able to click on a link from a Pull/Merge Request, and get the pipeline logs. This is the specific use-case covered by the Pipelines Visualizer.</p>
<h2 id="features">Features</h2>
<p>We want to keep it small, focused, and fast. It&rsquo;s a read-only UI, so there won&rsquo;t be &ldquo;actions&rdquo; to trigger a pipeline - because it can already be done using &ldquo;chatops&rdquo; commands in the Pull Request for example.</p>
<p>But there are a few interesting features already:</p>
<ul>
<li>first, it&rsquo;s very fast to get the logs. Much faster than the old JXUI.</li>
<li>it can retrieve the logs from pipelines that have been garbage-collected - if you configure the URL of the buckets where the logs are stored.</li>
<li>it has URLs compatible with the old JXUI - so it&rsquo;s very easy to replace the old JXUI with this new UI and keep all the links working.</li>
</ul>
<h2 id="roadmap">Roadmap</h2>
<p>This project was shared very early with the community, after just a few hours of work. So our short-term goal is to improve the UI - make it beautiful.</p>
<h2 id="demo">Demo</h2>
<p>We did a <a href="https://youtu.be/zv0Dn9RYzwE?t=709">demo of jx-pipelines-visualizer</a> at the last <a href="https://jenkins-x.io/community/office_hours/">office hours</a>:</p>
<iframe width="80%" height="460" src="https://www.youtube.com/embed/zv0Dn9RYzwE?start=709" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<h2 id="next-steps">Next steps</h2>
<p>Check out the <a href="https://github.com/dailymotion/jx-pipelines-visualizer">jx-pipelines-visualizer github repository</a> if you want to install it in your cluster - there is a Helm Chart which can be added to your Jenkins X Dev Environment.</p>
<p>And any contributions are welcomed - either create an issue or pull request in the project&rsquo;s github repository, or come in the <a href="https://jenkins-x.io/community/#slack">#jenkins-x-dev</a> Slack Channel.</p>
</description>
</item>
<item>
<title>Blog: Jenkins X Talks at CDCon</title>
<link>https://jenkins-x.io/blog/2020/09/16/cdcon2020/</link>
<pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/09/16/cdcon2020/</guid>
<description>
<p>There will be six Jenkins X talks given by various speakers at the first-ever <a href="https://events.linuxfoundation.org/cdcon/">CDCon</a> on October 7-8. The two-day virtual event, hosted by the Continuous Delivery Foundation, will focus on improving the world&rsquo;s capacity to deliver software with security and speed.</p>
<p><a href="https://events.linuxfoundation.org/cdcon/">Register</a> to attend the virtual event for only 25 USD and get access to all of the following Jenkins X talks and more.</p>
<h2 id="wednesday-october-7">Wednesday, October 7</h2>
<p><strong><a href="https://cdcon2020.sched.com/event/dpvW/a-cicd-framework-for-production-machine-learning-at-massive-scale-using-jenkins-x-and-seldon-core-alejandro-saucedo-seldon">A CI/CD Framework for Production Machine Learning at Massive Scale (using Jenkins X and Seldon Core)</a></strong>
<strong>Speaker:</strong> Alejandro Saucedo, Seldon
<strong>Time:</strong> 1:15 PM PDT</p>
<p>Managing production machine learning systems as internal data science infrastructure requirements grow, has uncovered new challenges which have required fundamentally different approaches to that of traditional CI/CD in software engineering. In this talk we will dive into the work we are doing at the SIG-MLOps and the CD Foundation towards developing the methodologies that encompass best practices to continuously integrate and deploy machine learning in production at massive scale. In this talk, we&rsquo;ll provide key insights on the core MLOps concepts, as well as a hands-on coding example where we take a text classification model through its training, deployment and promotion as canary and shadow deployments, which will also allow us to get deeper and more specific insight on our production environment.</p>
<p><strong><a href="https://cdcon2020.sched.com/event/dpvQ/dailymotions-continuous-delivery-story-vincent-behar-dailymotion">Dailymotion&rsquo;s Continuous Delivery Story</a></strong>
<strong>Speaker:</strong> Vincent Behar, Dailymotion
<strong>Time:</strong> 3:30 PM PDT</p>
<p>In this session, Vincent will share Dailymotion&rsquo;s Continuous Delivery story with Jenkins, Jenkins X and Tekton. He will come back on the initial state and issues faced on the CI/CD topic, and how it was solved. He will insist on the practices that were put in place and the benefits that resulted from switching to Jenkins X. He will conclude with the new challenges brought by improving Dailymotion&rsquo;s Continuous Delivery platform. If you are wondering if Jenkins X is the right tool for you, and the impact it can have on your team(s), then this is the right session for you!</p>
<h2 id="thursday-october-8">Thursday, October 8</h2>
<p><strong><a href="https://cdcon2020.sched.com/event/e2NG/moving-from-jenkins-to-jenkins-x-scaling-and-accelerating-cicd-dr-michael-garbade-education-ecosystem">Moving from Jenkins to Jenkins X: Scaling and Accelerating CI/CD</a></strong>
<strong>Speaker:</strong> Dr Michael Garbade, Education Ecosystem
<strong>Time:</strong> 12:00 PM PDT</p>
<p>Jenkins has served as a continuous integration (CI) tool long before the emergence of Kubernetes and distributed systems running on cloud-native platforms.
Working with Jenkins as a stand-alone open-source tool has proved to be extremely difficult for distributed systems engineers, as it is designed for small projects and not scalable to bigger projects.
Jenkins X has emerged as a way to both improve and automate continuous delivery pipelines to Kubernetes and cloud-native environments.
In this talk, we will discuss the limitations of Jenkins, how Jenkins X addresses those limitations, how it leverages open source and commercial CI/CD tools for easier bug fixes, faster deployments, stability, consistency and improved communication.</p>
<p><strong><a href="https://cdcon2020.sched.com/event/dpvc/enable-a-pipeline-as-code-capability-for-12000-developers-jimmy-mcnamara-fidelity-investments">Enable a Pipeline As Code Capability for 12,000 Developers</a></strong>
<strong>Speaker:</strong> Jimmy McNamara, Fidelity Investments
<strong>Time:</strong> 1:00 PM PDT</p>
<p>Aoife Fitzmaurice and Jimmy McNamara take us through a journey on how Fidelity Investments plans to roll out a Pipeline As Code capability to 12,000 developers. Leveraging cloud-based Kubernetes platforms to ensure best operational outcomes the team is driven to enable this best practice capability across Fidelity. This capability is key to assisting the growth of both an inner-sourcing and open-sourcing culture throughout the firm.</p>
<p><strong><a href="https://cdcon2020.sched.com/event/dqON/gitops-and-secrets-kara-de-la-marck-cloudbees">GitOps and Secrets</a></strong>
<strong>Speaker:</strong> Kara de la Marck, CloudBees
<strong>Time:</strong> 1:00 PM PDT</p>
<p>GitOps uses Git as the “single source of truth” for declarative infrastructure and enables developers to manage infrastructure with the same Git pull requests they use to manage a codebase. Having all configuration files version-controlled by Git has many advantages, but best practices for securely managing secrets with GitOps remain contested. Join us in this presentation about GitOps and secret management. Attendees will learn about the pros and cons of various approaches and why the Jenkins X project has chosen to standardize on Kubernetes external secrets for secret management.</p>
<p><strong><a href="https://cdcon2020.sched.com/event/dpvT/kubernetes-chaos-engineering-with-chaos-toolkit-and-jenkins-x-viktor-farcic-cloudbees">Kubernetes Chaos Engineering With Chaos Toolkit and Jenkins X</a></strong>
<strong>Speaker:</strong> Viktor Farcic, CloudBees
<strong>Time:</strong> 3:15 PM PDT</p>
<p>The only thing more satisfying than being able to destroy things without consequences is to be awarded for destruction. If you do have destructive tendencies, but you&rsquo;d like to convert them into something positive, chaos engineering might be just the thing you need. We&rsquo;ll explore through a hands-on demo on how to use Chaos Toolkit to define and run chaos experiments inside a Kubernetes cluster with Istio. We&rsquo;ll see a few use-cases of potential problems that can be detected and solved. We&rsquo;ll automate the deployment of chaos experiments using Jenkins X and make them an integral part of our continuous delivery pipelines.</p>
<h2 id="register-for-cdcon">Register for CDCon</h2>
<p>Don&rsquo;t miss out on these great talks. <a href="https://events.linuxfoundation.org/cdcon/">Register for CDCon</a> to attend.</p>
<p>CDCon has pledged to donate 100% of the proceeds received from CDCon 2020 registration to charitable causes: Black Girls Code, Women Who Code and the CDF Diversity Fund. Registrants indicate which charitable fund they want their 25 USD registration fees to go to during registration. If you can’t afford the registration cost, please apply for the <a href="https://events.linuxfoundation.org/cdcon/attend/scholarships/">diversity scholarship</a>.</p>
<p><img src="https://jenkins-x.io/images/cdcon-register.png" alt="CDCon Banner"></p>
</description>
</item>
<item>
<title>Blog: Welcome to Jenkins X 3.x alpha!</title>
<link>https://jenkins-x.io/blog/2020/09/16/jx-v3-alpha/</link>
<pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/09/16/jx-v3-alpha/</guid>
<description>
<p>We are very pleased to announce the <a href="https://jenkins-x.io/docs/v3/">alpha release of Jenkins X version 3</a></p>
<iframe style="border:none" width="800" height="450" src="https://whimsical.com/embed/SnJBgXG6jz9pqQewiDTNRt@2Ux7TurymNDXVRa4FpLk"></iframe>
<p>You can read more about the <a href="https://jenkins-x.io/docs/v3/about/overview/">overview of the architecture and components here</a>.</p>
<p>This release has lots of <a href="https://jenkins-x.io/docs/v3/about/benefits/">benefits over version 2</a> is much easier to use, understand and manage. It is more flexible and simpler to configure for different infrastructures and cloud providers.</p>
<p>The new release works well with any combination of helm 3, helmfile, kpt and/or kustomize.</p>
<p>For those who&rsquo;ve used Jenkins X version 2 you can check out a <a href="https://jenkins-x.io/docs/v3/about/comparison/">comparison of the two versions</a></p>
<p>Here is a <a href="https://www.youtube.com/watch?v=RYgKvRpjkoY&amp;feature=youtu.be">demo video showing how to get started with Jenkins X on Google Cloud with Terraform and Vault</a>:</p>
<iframe width="1292" height="654" src="https://www.youtube.com/embed/RYgKvRpjkoY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>We also <a href="https://www.youtube.com/watch?v=NZVp66YDl5s">did a live demo of getting started and using version 3</a> at the <a href="https://octant.dev/community/">octant office hours last week</a>.</p>
<p>We also included the <a href="https://github.com/jenkins-x/enhancements/issues/38">helmfile based preview environments enhancement</a> via the new <a href="https://github.com/jenkins-x/jx-preview">jx-preview</a> plugin which makes it much easier to make more sophisticated previews such as</p>
<ul>
<li>using multiple namespaces for you previews</li>
<li>using per preview namespaces or deploying previews into shared namespaces (e.g. via Canaries)</li>
<li>using helmfile to cleanly remove resources</li>
</ul>
<p>We now have support, via Terraform for 2 of the big 3 public clouds:</p>
<ul>
<li><a href="https://jenkins-x.io/docs/v3/getting-started/eks/">Amazon</a></li>
<li><a href="https://jenkins-x.io/docs/v3/getting-started/gke/">Google</a></li>
</ul>
<p>Azure support is getting really close; if you&rsquo;d like to help get it ready <a href="https://jenkins-x.io/community/#slack">join us on slack</a></p>
<p>Also when using your laptop or local kubernetes cluster without terraform we support:</p>
<ul>
<li><a href="https://jenkins-x.io/docs/v3/getting-started/minikube/">Minikube</a> so you can run Jenkins X on your laptop</li>
<li><a href="https://jenkins-x.io/docs/v3/getting-started/on-premise/">On Premise</a> so you can use any vanilla kubernetes cluster</li>
</ul>
<p>We are working on improving the UX of the installation/upgrade; we&rsquo;re hoping to soon have a pure terraform (or Terraform Cloud) way to spin up a Jenkins X installation on a public cloud with a minimum of fuss. We&rsquo;ll hopefully blog about that soon&hellip;</p>
<p>So please take it for a spin and <a href="https://jenkins-x.io/community/">let us know what you think</a>! If you can think of any ways we can improve let us know!</p>
</description>
</item>
<item>
<title>Blog: Octant: the OSS UI for Jenkins X</title>
<link>https://jenkins-x.io/blog/2020/08/06/octant-jx/</link>
<pubDate>Thu, 06 Aug 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/08/06/octant-jx/</guid>
<description>
<p>A common question we have heard in the community over the years is <a href="https://jenkins-x.io/docs/resources/faq/config/#is-there-a-ui-available-for-jenkins-x">Is there an open source UI for Jenkins X?</a>.</p>
<p>Well we now have an answer: its <a href="https://github.com/vmware-tanzu/octant">Octant</a> using the <a href="https://github.com/jenkins-x/octant-jx">octant-jx</a> plugin.</p>
<h2 id="why-octant">Why Octant?</h2>
<p>We love <a href="https://github.com/vmware-tanzu/octant">Octant</a> because:</p>
<ul>
<li>open source and very easy to extend with plugins in Go or TypeScript/JavaScript</li>
<li>lets you visualise and work with all kubernetes and custom resources across multiple clusters</li>
<li>thanks to <a href="https://github.com/jenkins-x/octant-jx">octant-jx</a> has awesome integration with Jenkins X components like apps, environments, pipelines, repositories etc.</li>
</ul>
<h2 id="features">Features</h2>
<p>Longer term we&rsquo;re planning on making most of the developer and operations features of Jenkins X available through the UI via <a href="https://github.com/jenkins-x/octant-jx">octant-jx</a>.</p>
<p>e.g. we hope as part of <a href="https://github.com/jenkins-x/enhancements/issues/36">Jenkins X 3.x</a> you&rsquo;ll be able to install or upgrade Jenkins X and watch the installation proceed all via Octant.</p>
<p>But already right now today you can:</p>
<ul>
<li>view applications, environments, pipelines, repositories</li>
<li>for a pipeline quickly navigate to:
<ul>
<li>its Pod, Log, Pull Request or Preview Environment</li>
<li>for each step you can view the step detail or log of the step</li>
</ul>
</li>
<li>see the various jobs and pipelines used to operate Jenkins X itself</li>
<li>over time will add management UI capabilities for installing, upgrading and administering Jenkins</li>
</ul>
<p>Find out <a href="https://github.com/vmware-tanzu/octant#usage">more about installing and using Octant here</a>.</p>
<h2 id="demo">Demo</h2>
<p>We did a <a href="https://youtu.be/Njl247hjRuU?t=186">demo of octant-jx</a> at the last <a href="https://jenkins-x.io/community/office_hours/">office hours</a>. We also <a href="https://www.youtube.com/watch?v=Njl247hjRuU&amp;t=2027s">presented octant-jx</a> at the <a href="https://octant.dev/community/">octant office hours this week</a>.</p>
<p>Here is a <a href="https://www.youtube.com/watch?v=2LCPHi0BnUg&amp;feature=youtu.be">demo video showing octant in action with Jenkins X</a>:</p>
<iframe width="1292" height="654" src="https://www.youtube.com/embed/2LCPHi0BnUg" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</description>
</item>
<item>
<title>Blog: CJXD to upstream Jenkins X to the future</title>
<link>https://jenkins-x.io/blog/2020/07/29/cjxdtoupstreamjxtofuture/</link>
<pubDate>Wed, 29 Jul 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/07/29/cjxdtoupstreamjxtofuture/</guid>
<description>
<p>CJXD was first introduced at the end of July 2019 with the aim to provide a more stable version of Jenkins X that was under heavy development. The release cadence was reduced to one per month, the upgrade process well tested and a large focus on stability issues was taken on. It is fair to say that this was not only expected but absolutely needed by users of Jenkins X to service their own software delivery. A little over a year on we are now in a better place, following the improvements above means we are now able to focus all attention back towards the upstream Jenkins X and look towards where Jenkins X needs to go next. There is still much to do, areas which require attention in design, upgrades related to other projects and innovation to explore. With that, the need for CJXD over and above using upstream Jenkins X is reduced. CloudBees will stop releasing CJXD builds and focus purely upstream and it’s engineering efforts towards working with the OSS community on JX3 Alpha, Beta, GA and beyond.</p>
<p>JX3 is in a relatively early stage, we have an enhancement issue <a href="https://github.com/jenkins-x/enhancements/issues/36">here</a> and plan to start showing some initial developments and design docs to help people get involved in the next week or two.</p>
<p>While the OSS community works on getting JX3 to GA, users of CJXD have a few options. Both option 1 and 2 below involve moving to the stable upstream JX2. One important note here is you will need to remove the Jenkins X UI as this a CloudBees specific offering and will not continue in favour of the new extensible OSS UI powered by Octant. This was demo’d at the <a href="https://youtu.be/Njl247hjRuU">recent office hours</a> as well as discussing some next steps we are working through for JX3.</p>
<p><strong>Option 1:</strong> Upgrade your existing CJXD installation to upstream JX2. There are some steps on how to do this below, there may be some edge cases in doing this but as in all the options here the OSS community in on hand to help <a href="https://jenkins-x.io/community/">https://jenkins-x.io/community/</a></p>
<p><em>Notes:</em></p>
<ul>
<li>You will continue to be able to apply JX2 upgrades.</li>
<li>No backwards compatible upgrade for Vault if you are using it. The migration configuration steps below will omit Vault from this and future upgrades. Note for JX3 we are working on using external secrets as an abstraction above lots of secret store implementations. So for now we recommend keeping on the Vault Operator 0.4.16 release and manage the Vault upgrade along with the JX 3 external secrets work.</li>
</ul>
<p><strong>Option 2:</strong> Create a brand new JX2 cluster and jx import your git repositories.</p>
<p><strong>Option 3:</strong> Stay on CJXD and wait to move to JX3 although the timelines for this are unknown it is the primary development focus going forward so lots more details on this coming soon. Note you won’t be able to upgrade to obtain future JX 2 fixes.</p>
<p>The Jenkins X OSS community is very active on Slack, we host regular open office hours zoom sessions and are building out a number of special interest groups in the coming weeks and months which we would love for you to be a part of. Twitter is active and a good way to keep up to date with events, plus we are launching a new Discourse community forum. There is no better time to be involved, if you are looking to contribute code, learn or share new things or help carve out the future direction of Jenkins X, we are eager for your involvement.</p>
<p>As a start please come and say hello on the slack channel or be brave and help kick off <a href="https://jenkinsx.discourse.group/">https://jenkinsx.discourse.group/</a> - you just need to sign up.</p>
<p>Looking forward to seeing you soon.</p>
<hr>
<h1 id="migration-steps-for-cjxd-to-upstream-jenkins-x">Migration steps for CJXD to upstream Jenkins X</h1>
<h2 id="configuration-changes">Configuration changes</h2>
<p>Get the latest jx CLI <a href="https://github.com/jenkins-x/jx/releases">https://github.com/jenkins-x/jx/releases</a></p>
<p>Change version stream, boot config repos URL + tags, remove Jenkins X UI and remove the upgrade for Vault.</p>
<p>Change the git repository for your development environment, get the URL using:</p>
<pre><code>&gt; jx get environments
</code></pre><p>and apply these changes:</p>
<ul>
<li>remove the <code>env/jx-app-ui</code> folder and <code>jx-app-ui</code> from <code>env/requirements.yaml</code></li>
<li>remove the <code>jx step boot vault</code> boot pipeline step</li>
<li>switch from the CJXD version stream to the upstream Jenkins X one</li>
</ul>
<p>The exact changes described above can be found in this commit:</p>
<p><a href="https://github.com/cb-kubecd/environment-cjxdtest1-dev/commit/2596efdb51b812758ce847e16beb2035af4f61f1">https://github.com/cb-kubecd/environment-cjxdtest1-dev/commit/2596efdb51b812758ce847e16beb2035af4f61f1</a></p>
<p>Once these changes are merged into the mainline branch follow the boot pipeline using:</p>
<pre><code>&gt; jx get build logs
</code></pre><p>Once the boot pipeline has finished successfully you can upgrade to the very latest release (the git sha’s above are the latest at writing this blog)</p>
<pre><code>&gt; jx upgrade boot
</code></pre><p>Review and /approve the generated pull request, follow the boot pipeline logs to success.</p>
<p>If you run into problems, need any help or guidance please ask in the the Jenkins X community <a href="https://jenkins-x.io/community/">https://jenkins-x.io/community/</a></p>
</description>
</item>
<item>
<title>Blog: Consolidate the use of Apps / Addons - Coding Phase 2</title>
<link>https://jenkins-x.io/blog/2020/07/27/gsoc2020/</link>
<pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/07/27/gsoc2020/</guid>
<description>
<p>The coding phase 2 of Google Summer of Code will end this week, so I&rsquo;d like to share my coding phase 2 work.</p>
<p>The addons have been migrated to apps on coding phase 1, but these apps have not been hosted to OSS, so during the coding phase 2, Jenkins X team build OSS cluster to host my apps:</p>
<ul>
<li>
<p><a href="https://github.com/jenkins-x-apps/jx-app-flagger">jx-app-flagger</a></p>
</li>
<li>
<p><a href="https://github.com/jenkins-x-apps/jx-app-ingress">jx-app-ingress</a></p>
</li>
<li>
<p><a href="https://github.com/jenkins-x-apps/jx-app-gloo">jx-app-gloo</a></p>
</li>
<li>
<p><a href="https://github.com/jenkins-x-apps/jx-app-ingress">jx-app-kubeless</a></p>
</li>
</ul>
<p>you can use <code>jx add app</code> command to install the above apps, I also made a number of PR:</p>
<ul>
<li>
<p><a href="https://github.com/jenkins-x/jx/pull/7472">https://github.com/jenkins-x/jx/pull/7472</a> - fix <code>jx add app</code> command</p>
</li>
<li>
<p><a href="https://github.com/jenkins-x/jx/pull/7441">https://github.com/jenkins-x/jx/pull/7441</a> - fix skip dir when looping Helm templates</p>
</li>
<li>
<p><a href="https://github.com/jenkins-x/jx/pull/7440">https://github.com/jenkins-x/jx/pull/7440</a> - deprecate create addon kubeless</p>
</li>
<li>
<p><a href="https://github.com/jenkins-x/jx/pull/7436">https://github.com/jenkins-x/jx/pull/7436</a> - support <code>jx add app</code> from git repository</p>
</li>
</ul>
<p>My work is inseparable from my mentors and Jenkins X team, in particular, my mentor - Kara de la Marck took good care of me in every way (such as language, English is my second language), so thank you for your time ❤️</p>
<h4 id="next-phase-work">Next phase work</h4>
<p>In the next phase I will write these apps document and add deprecate note to jx, and continue to explore apps. I will also follow up about apps/addons issues on jx then try to solve the issues. Jenkins X team is going to be releasing 3.x of Jenkins X, I also need to get familiar with it - <a href="https://github.com/jenkins-x/octant-jx">https://github.com/jenkins-x/octant-jx</a>.</p>
<h4 id="feedback">Feedback</h4>
<p>If you are interested in the project, or to guide me. Welcome to join #jenkins-x-gsoc channel on <a href="https://cdeliveryfdn.slack.com/join/shared_invite/enQtODM2NDI1NDc0MzIxLTA1MDcxMzUyMGU2NWVlNmQwN2M1N2M4MWJjOWFkM2UzMDY0OWNkNjAzNzM0NzVkNjQ5M2NkMmY2MTRkMWY4MWY#/">CDF Slack</a> 🙌</p>
</description>
</item>
<item>
<title>Blog: Consolidate the use of Apps / Addons - Coding Phase 1</title>
<link>https://jenkins-x.io/blog/2020/07/12/gsoc2020/</link>
<pubDate>Sun, 12 Jul 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/07/12/gsoc2020/</guid>
<description>
<p>The coding phase 1 of Google Summer of Code ended last week, I&rsquo;m working on <a href="https://www.jenkins.io/projects/gsoc/2020/projects/jenkins-x-apps-consolidation/">Consolidate the use of Apps / Addons</a>, so I&rsquo;d like to share my coding phase 1 work.</p>
<p>In the project, I mainly migrate addons to apps, the way is easier for improve jx apps and addons.</p>
<p>During the time, I&rsquo;ve migrated all addons to apps via Helm chart way.</p>
<p>The following is my make apps:</p>
<ul>
<li><a href="https://github.com/nodece/jx-app-kubeless">https://github.com/nodece/jx-app-kubeless</a></li>
<li><a href="https://github.com/nodece/jx-app-owasp-zap">https://github.com/nodece/jx-app-owasp-zap</a></li>
<li><a href="https://github.com/nodece/jx-app-flagger">https://github.com/nodece/jx-app-flagger</a></li>
<li><a href="https://github.com/nodece/jx-app-gloo">https://github.com/nodece/jx-app-gloo</a></li>
<li><a href="https://github.com/nodece/jx-app-istio">https://github.com/nodece/jx-app-istio</a></li>
<li><a href="https://github.com/nodece/jx-app-ingress">https://github.com/nodece/jx-app-ingress</a></li>
</ul>
<p>Current, we only move to jx-app-kubeless to the <a href="https://github.com/jenkins-x-apps">jenkins-x-apps</a> repository, other apps haven&rsquo;t been moved to the <a href="https://github.com/jenkins-x-apps">jenkins-x-apps</a> repository.</p>
<p>You can visit <a href="https://docs.google.com/spreadsheets/d/1k2KEMdk5-9HrU-IUuataYD63Kl-JEsuy5aXus7Dcitc/edit?usp=sharing">here</a> for more details.</p>
<h4 id="next-phase-work">Next phase work</h4>
<p>The next phase is to add <code>jx delete app</code> command to jx, but it has been implemented by Jenkins X contributor, so I made a new plan for next phase.</p>
<p>The following is my plan for the next phase:</p>
<ul>
<li>
<p>Improve <code>jx add app</code> - It will support to fetch any git repository to install app. I also consider migrate application to apps.</p>
</li>
<li>
<p>Perfect the work of phase 1, these apps haven&rsquo;t moved to jenkins-x-apps repository yet.</p>
</li>
<li>
<p>Follow up on jx issues to improve jx.</p>
</li>
</ul>
<h3 id="demo-for-coding-phase-1">Demo for coding phase 1</h3>
<p>I presentation my coding phase 1 demo on YouTube lase week.</p>
<blockquote>
<p>Notes: the video language is Chinese.</p>
</blockquote>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Ka2Uor_oTWc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>Last week, Jenkins hold a meeting for Jenkins GSoC students to present their phase 1 work, I also present my coding phase 1 work on the meeting.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/HQLhakpx5mk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<h4 id="feedback">Feedback</h4>
<p>If you are interested in the project, or to guide me. Welcome to join #jenkins-x-gsoc channel on <a href="https://cdeliveryfdn.slack.com/join/shared_invite/enQtODM2NDI1NDc0MzIxLTA1MDcxMzUyMGU2NWVlNmQwN2M1N2M4MWJjOWFkM2UzMDY0OWNkNjAzNzM0NzVkNjQ5M2NkMmY2MTRkMWY4MWY#/">CDF Slack</a>. 🙌</p>
</description>
</item>
<item>
<title>Blog: Jenkins X & Open Innovation </title>
<link>https://jenkins-x.io/blog/2020/07/08/jxopeninnovation/</link>
<pubDate>Wed, 08 Jul 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/07/08/jxopeninnovation/</guid>
<description>
<p>Jenkins X burst onto the CI/CD scene a couple of years ago - reimagining CI/CD on Kubernetes with pipeline automation, GitOps built-in and and preview environments to help teams collaborate and accelerate their software delivery at any scale. It has been evolving at a breakneck pace, keeping up with the changes in the wider Kubernetes ecosystem.</p>
<p>With the release of Helm 3, Jenkins X Labs nurtured an early experiment to adopt it. On May 15th, the primary sponsor of Jenkins X, CloudBees, <a href="https://jenkins-x.io/blog/2020/05/15/helm3/#why-isnt-this-all-more-open">shared a post</a> talking about the future direction of Helm 3 and Jenkins X.</p>
<p>Open source projects rise to ubiquity thanks to a virtuous cycle of technology and business adoption. It is a constant challenge to balance these concerns and delineate what is open source and what can be commercialized. In a fast-changing open source and tech landscape, sometimes the line gets drawn in the wrong place.</p>
<p>The Jenkins X community is passionate and vocal and Mauricio Salatino, <a href="https://twitter.com/salaboy">Salaboy</a>, <a href="https://salaboy.com/2020/05/19/why-isnt-jenkins-xs-future-more-open/">shared a post</a> strongly expressing his views on the new direction. The post was supported by a <a href="https://github.com/jenkins-x/jx/issues/7207">Github issue</a> which allowed other community members to also share feedback on this topic. Many of CloudBees founders and leaders are veterans of open source projects. CloudBees is <a href="https://www.previous.cloudbees.com/open-source">committed to open source</a>. We demonstrate our commitment through deep involvement in open source projects and communities. So we took this feedback very seriously and listened to what the community was telling us.</p>
<p>One line that stood out in Salatino&rsquo;s post is this: <em>&ldquo;Jenkins X is unlike any other project that I worked on in the past&rdquo;.</em> This is significant, especially given how many OSS projects Salatino contributes to. Salatino continues:</p>
<blockquote>
<blockquote>
<p>&ldquo;The speed of changes in these projects is unprecedented and keeping up with all of it is a big challenge. Because of this, Jenkins X is more than a solution to a CI/CD problem, it is a shared community learning experience and a research project that pushes the boundaries of best practices for CI/CD in Kubernetes.&rdquo;</p>
</blockquote>
</blockquote>
<p>Jenkins X is a solution to a CI/CD problem, but it is more than that. It <em>is</em> a shared community learning experience. It <em>is</em> a research project that pushes the boundaries of best practices for CI/CD in Kubernetes. And the engine that powers all of this is the open source community.</p>
<p>CI/CD right now is going through a renaissance with the onset of microservices, containers and cloud native technologies. The whole space is evolving rapidly. We have seen this earlier this year, with the rise of Tekton which was adopted as the main pipeline engine for Jenkins X. Jenkins X in a year&rsquo;s time is likely to be very different than it is today. At CloudBees, we believe open source drives innovation, leads to better, more robust technology and benefits everyone.</p>
<p>We are very grateful to Salatino and the wider community for graciously speaking up and giving feedback on how the project should evolve. With this in mind we want to play our part by ensuring Jenkins X future is open and innovative. You may have already noticed some of the changes, such as the <a href="https://jenkins-x.io/community/roadmap/">open roadmap</a> being discussed. Specifically, on Helm 3 we want this work to resume in the open as a community effort, in the form of a Jenkins X Helm 3 working group. These are just a couple of steps towards that north star of open innovation.</p>
<p>Jenkins X is unlike any other open source project out there, let&rsquo;s keep pushing the boundaries of what&rsquo;s possible - together and in the open.</p>
</description>
</item>
<item>
<title>Blog: CloudBees contributions to Jenkins X - June 2020</title>
<link>https://jenkins-x.io/blog/2020/06/26/cjxd-june-20/</link>
<pubDate>Fri, 26 Jun 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/06/26/cjxd-june-20/</guid>
<description>
<figure>
<img src="https://jenkins-x.io/images/logo/cloudbees.png"/>
</figure>
<p>For everyone here at Cloudbees, June has been a really productive month and the release 11 of CJXD comes with a set of new available features and fixes for upstream Jenkins X, as well as a new version of the UI that we are really excited to release!</p>
<p>Regarding Jenkins X new features:</p>
<ul>
<li>
<p>Thanks to Hardy Ferentschik, you can now bring your own Vault to your Jenkins X cluster. It will allow you to use an already existing Vault instance to store your Jenkins X secrets, checkout the documentation <a href="https://jenkins-x.io/docs/install-setup/installing/boot/secrets/#external">here</a>. He also improved the <a href="https://jenkins-x.io/docs/reference/components/vault/#accessing-secrets">existing documentation</a> to help you access and manage your secrets.</p>
</li>
<li>
<p>If you can’t find a Buildpack that suits your projects in the <a href="https://github.com/jenkins-x-buildpacks/jenkins-x-kubernetes">list</a> of available ones, Adam Magan has been working on allowing you to use your own custom buildpacks, please find the documentation <a href="https://jenkins-x.io/docs/create-project/build-packs/#using-custom-build-packs">here</a>.</p>
</li>
</ul>
<p>As for the CloudBees UI, the team is happy to make available some really useful features in a new Preview version:</p>
<ul>
<li>
<p>You can now create a new project from a list of available “quickstarts” that you can use as a template and that will be pre configured to work with Jenkins X. If you want to get started with projects, please check the <a href="https://docs.cloudbees.com/docs/cloudbees-jenkins-x-distribution/latest/user-interface/projects">documentation</a></p>
</li>
<li>
<p>If you have an existing project that you want to manage using Jenkins X, you can now also use the UI to import it in your cluster.</p>
</li>
<li>
<p>The UI is now exposed with its own URL and protected by basic authentication. Please check out the <a href="https://docs.cloudbees.com/docs/cloudbees-jenkins-x-distribution/latest/user-interface/install">documentation</a> to have more details about that.</p>
</li>
</ul>
<p>Of course the team continues to fix the issues reported by the community, since the previous release, over 30 issues has been closed, with the goal of making Jenkins X always more reliable.
Special thanks to <a href="https://github.com/ankitm123">ankitm123</a> who is really involved in the community and has been fixing a lot of issues in this release.</p>
<p>Finally, we have a couple of things in progress that will come soon, be prepared for some exciting announcements around OpenShift support. Also Gitlab and Bitbucket Server support for Lighthouse are available in preview mode, if you want to give it a try, please check out the <a href="https://jenkins-x.io/docs/install-setup/installing/boot/git-provider/#bitbucket-server">documentation</a>, we welcome feedback and bug reports !</p>
<p>If it’s not done yet, feel free to start using the Cloudbees Jenkins X Distribution, all you need to know in order to have it up and running is <a href="https://docs.cloudbees.com/docs/cloudbees-jenkins-x-distribution/latest/">here</a> !</p>
<p>Romain</p>
</description>
</item>
<item>
<title>Blog: My story with Jenkins X GSoC - Consolidate the use of Apps / Addons</title>
<link>https://jenkins-x.io/blog/2020/06/18/gsoc2020/</link>
<pubDate>Thu, 18 Jun 2020 22:55:25 +0800</pubDate>
<guid>https://jenkins-x.io/blog/2020/06/18/gsoc2020/</guid>
<description>
<p>I&rsquo;m Zixuan, and I&rsquo;m very happy to be recognized by the Jenkins and Jenkins X teams in Google Summer of Code 2020.</p>
<p>I&rsquo;m working on <a href="https://jenkins.io/projects/gsoc/2020/project-ideas/jenkins-x-apps-consolidation/">Consolidate the use of Apps / Addons</a>.</p>
<h3 id="excellent-mentor-team">Excellent mentor team</h3>
<p>Jenkins and Jenkins X has an excellent team of mentors, everyone is very kind and super knowledgeable.</p>
<ul>
<li>James Strachan</li>
<li>Kara de la Marck</li>
<li>markyjackson</li>
<li>Nikhil Da Rocha</li>
<li>Oleg Nenashev</li>
<li>Oscar Medina</li>
<li>Sahil Kalra</li>
<li>Sladyn</li>
</ul>
<h3 id="work-output">Work output</h3>
<p>I have been working on this project for some time.
During this time, I have migrated some addons to apps.</p>
<p>If you want to test completed apps, you can open the repository below.</p>
<h4 id="completed-work">Completed Work</h4>
<ul>
<li><a href="https://github.com/jenkins-x-apps/jx-app-kubeless">jx-app-kubeless</a></li>
</ul>
<h4 id="work-in-progress">Work in Progress</h4>
<ul>
<li><a href="https://github.com/nodece/jx-app-owasp-zap">jx-app-owasp-zap</a></li>
<li><a href="https://github.com/nodece/jx-app-flagger">jx-app-flagger</a></li>
<li><a href="https://github.com/nodece/jx-app-gloo">jx-app-gloo</a></li>
</ul>
<p><em>🙌 I also welcome other developers of this project to guide me!</em></p>
<p>For more about the project, see <a href="https://www.jenkins.io/projects/gsoc/2020/projects/jenkins-x-apps-consolidation/">here</a>.</p>
</description>
</item>
<item>
<title>Blog: Lighthouse Goes GA!</title>
<link>https://jenkins-x.io/blog/2020/06/08/lighthouse-goes-ga/</link>
<pubDate>Mon, 08 Jun 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/06/08/lighthouse-goes-ga/</guid>
<description>
<p>In May of this year, Jenkins X switched from using <a href="https://github.com/kubernetes/test-infra/tree/master/prow">Prow</a> as its default webhook handler to using <a href="https://github.com/jenkins-x/lighthouse">Lighthouse</a>. This is the result of almost a year of work, and provides some significant improvements for users of Jenkins X. You can find more information on the differences between Prow and Lighthouse <a href="https://jenkins-x.io/docs/reference/components/lighthouse/#comparisons-to-prow">here</a>.</p>
<p>Most notably, Jenkins X now properly supports GitHub Enterprise as well as github.com, with preview support for GitLab and BitBucket Server. Prow only supports github.com, so until now, Jenkins X users have had to jump through hoops or accept significant limitations to their workflows in order to use any other SCM (source control management) providers. Lighthouse is tested against every provider we list support for, including the preview support for GitLab and BitBucket Server. While some functionality may not behave exactly the same on all providers, the core functionality of <a href="https://jenkins-x.io/docs/build-test-preview/chatops/">ChatOps</a> should work on all. Lighthouse also has a smaller footprint in terms of resources and pods used in your Kubernetes cluster than Prow.</p>
<p>If you&rsquo;re interested in Jenkins X and Lighthouse support for other SCM providers, please let us know and we&rsquo;ll see what we can do!</p>
<h3 id="what-does-preview-support-mean">What does &ldquo;preview support&rdquo; mean?</h3>
<p>The primary difference between Lighthouse&rsquo;s support for GitHub and GitHub Enterprise, and its support for GitLab and BitBucket Server, is testing and usage. The Jenkins X project itself uses Lighthouse heavily, so we&rsquo;re very confident in its behavior and reliability with the GitHub API. Its GitLab and BitBucket Server support is tested with every change to the project, but until we&rsquo;ve had reports of Lighthouse users on GitLab or BitBucket Server in real-world usage, we don&rsquo;t want to give the impression that support for those providers is known to be as stable as on GitHub.</p>
<p>So if you&rsquo;re using Jenkins X and Lighthouse with GitLab or BitBucket Server, we&rsquo;d love to hear how your experience has been, <a href="https://jenkins-x.io/community/">on our Slack channels or at our weekly office hours</a>. If you run into in any problems with Lighthouse on any provider, whether it&rsquo;s in preview or otherwise, please <a href="https://github.com/jenkins-x/lighthouse/issues">open an issue</a> and we&rsquo;ll look into it as soon as possible. Once we&rsquo;ve gotten enough feedback to be confident that major changes will not be needed for GitLab or for BitBucket Server, we&rsquo;ll move those providers out of preview.</p>
<h3 id="differences-between-providers">Differences between providers</h3>
<h4 id="github-and-github-enterprise">GitHub and GitHub Enterprise</h4>
<p>There should be no functional differences between Lighthouse&rsquo;s behavior on github.com vs a GitHub Enterprise instance. The exact same APIs are used in both cases.</p>
<h4 id="gitlab">GitLab</h4>
<p>Lighthouse with GitLab may be more likely to hit API rate limits, due to GitLab&rsquo;s GraphQL functionality not matching the particular capabilities of GitHub, but the overall functionality is the same. There is one significant difference with GitLab, however. Some of Lighthouse&rsquo;s ChatOps commands, such as <code>/approve</code> and <code>/assign</code>, overlap with <a href="https://docs.gitlab.com/ee/user/project/quick_actions.html">GitLab quick actions</a>, and currently, GitLab <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/215934">does not trigger webhook events for quick actions</a>. If Lighthouse does not receive a webhook event, it doesn&rsquo;t have any way of knowing that a ChatOps command has been invoked. Therefore, we have added the ability to invoke <a href="https://jenkins-x.io/docs/build-test-preview/chatops/#chatops-commands">all Lighthouse ChatOps commands</a> either with the traditional <code>/approve</code> etc command, or by adding a <code>lh-</code> prefix, like <code>/lh-approve</code>. When using Lighthouse with GitLab, you will want to use the <code>/lh-(whatever)</code> commands to ensure that your command is actually processed.</p>
<p>We believe that Lighthouse should work with gitlab.com and relatively current versions of GitLab Community Edition and GitLab Enterprise Edition, based on the API docs, but if you encounter any problems on GitLab CE or GitLab EE, please open an issue.</p>
<h4 id="bitbucket-server">BitBucket Server</h4>
<p>First, we should note that Lighthouse will not work properly with BitBucket Server versions earlier than 7.0. <a href="https://confluence.atlassian.com/bitbucketserver/bitbucket-server-7-0-release-notes-990546638.html#BitbucketServer7.0releasenotes-Anewwebhookforsourcebranchupdatesinapullrequest">A new webhook was added in 7.0</a> to be sent when the source branch for a pull request has been updated, because of a new commit, rebase, or similar changes, and without that webhook, Lighthouse isn&rsquo;t informed in those cases and doesn&rsquo;t know to rebuild the pull request.</p>
<p>In addition, <a href="https://jira.atlassian.com/browse/BCLOUD-11976">due to BitBucket Server not having the concept of labels for pull requests</a>, Lighthouse emulates labels by creating a comment on pull requests containing a table of labels for the pull request in question. This comment needs to remain in the consistent format Lighthouse creates or it won&rsquo;t be able to detect the labels correctly. Comment formatting for BitBucket Server is also more limited than for GitHub or GitLab, so comments may be a bit awkward in their appearance at the moment.</p>
</description>
</item>
<item>
<title>Blog: An update on helm 3 and JXL</title>
<link>https://jenkins-x.io/blog/2020/05/15/helm3/</link>
<pubDate>Fri, 15 May 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/05/15/helm3/</guid>
<description>
<h2 id="whats-next-for-jxl-and-helm-3">What’s next for JXL and Helm 3?</h2>
<p>A few months back, we unveiled JXL to the Jenkins X community and framed it as a new thing, Jenkins X Labs, that would build out experimental features and test potential new things. Some would stick and go upstream into Jenkins X, others would be killed off as interesting but unsuccessful experiments.</p>
<p>This was a new thing for Jenkins X, trying to better separate the experimentation loop from the increasingly stable and relied-upon upstream. And, to a degree it worked great - the JXL workaround helm 3 was awesome, and got a lot of excitement.</p>
<p>Where it didn’t work so great, though, was on what happened next. While this may be a bit forgivable since the whole thing was itself a new experiment for our community, it’s pretty clear we’ve dropped the ball a bit and that’s informing our next steps now.</p>
<h2 id="what-did-we-learn-from-jxl">What did we learn from jxl?</h2>
<p>A few weeks back, we made it known that the JXL experiment was over. Specifically, the current jxl binary was over - not the idea of labs or any experiments, but the specific helm 3 experiment packaged into the current version of jxl had gotten us the info we needed to make some decisions about how we wanted to steer Jenkins X going forward.</p>
<p>There were two main things we learned as a result of the jxl work:</p>
<ul>
<li>
<p>First, it was mostly a success. The direction was exciting, and helmfile is a huge help.</p>
</li>
<li>
<p>Second, the scope of the change was enormous. Getting the change to be production-ready, to the increasing quality standards being established by the CloudBees Jenkins X Distribution, was even larger.</p>
</li>
</ul>
<p>It’s important to note here that regressing in terms of quality and reliability is not an option - we’ve heard loud and clear from the community that Jenkins X needs to be more stable and more dependable, and even exciting changes can’t compose the progress we’re making on those fronts.</p>
<p>So, with those takeaways in mind, we declared the helm 3 JXL experiment complete and got to work.</p>
<h2 id="so-whats-next-for-helm-3-and-jenkins-x">So, what’s next for helm 3 and Jenkins X?</h2>
<p>To be clear upfront: Jenkins X will get helm 3. We are working on that now internally at CloudBees. And, specifically, we are working on a way to introduce this large change iteratively, over time, with safe upgrade paths and no sudden breaking changes. For bleeding-edge people, maybe that’s slower than you might prefer - but after the volume of feedback around stability, we’re playing it safe on this one.</p>
<p>Now, you might ask next where you can find that work. And the answer, to be honest, is that right now you can’t. With the work we do on Jenkins X at CloudBees, we aspire to be as consistently open and upstream as possible, but there are times when keeping our heads down to workshop things is the right path. The UI so far is one example of this, and for the time being helm 3 is another.</p>
<h2 id="can-you-get-involved-in-helm-3-at-all">Can you get involved in helm 3 at all?</h2>
<p>If you are interested in the work going on regarding Jenkins X and helm 3, we are looking for pilot users who want to test drive what’s in progress and give feedback once it&rsquo;s ready. It’s not all of JXL, like I said it’s iterative and this is phase 1. Please get in touch if you’d like to discuss it more, either by email (<a href="mailto:[email protected]">[email protected]</a>) or just in the community Slack (ping <em>vfarcic</em> and he’ll get you on the list for feedback.)</p>
<h2 id="why-isnt-this-all-more-open">Why isn’t this all more open?</h2>
<p>One thing we learned as part of doing JXL is that Jenkins X is not yet built well for safe experimentation. We want to fix that long term, and if we were doing it over again we’d likely handle jxl differently because of the unfortunate silence you’re now hearing from us after such exciting work, but like all corporate sponsors of open source projects, we have to balance priorities and one of the major ones is making Jenkins X high quality enough for large companies to use at scale.</p>
<p>Long term, as things continue to improve, we hope all experimentation can be done upstream without major issues - but we’re not there yet. And, continuing to build out on JXL risked a forking situation where the path back to upstream becomes harder and harder - we didn’t want that to happen. So, our solution for now, suboptimal as it is, is to build the next chapter out a little more privately, figure out what makes sense in upstream from day 1 and what we might want to first offer through the Distribution as an enterprise capability (similar to the UI) and then get the community back on track with a single direction.</p>
<p>We’re not saying this is great - it’s a learning process for us too, and while we’re excited about the path to the future JXL has given us, we also have to make the best of it with the limitations that exist today and the large companies trying to count on Jenkins X more and more.</p>
<h2 id="feedback-and-questions">Feedback and questions</h2>
<p>We’d love to hear from you on this and discuss it more, so please ping us in the community Slack, join office hours and get involved. The Jenkins X community is critical to all of us and, even with some setbacks and missteps, we’re excited to keep learning and improving together.</p>
</description>
</item>
<item>
<title>Blog: CloudBees contributions to Jenkins X - April 2020</title>
<link>https://jenkins-x.io/blog/2020/04/29/cjxd-april-20/</link>
<pubDate>Wed, 29 Apr 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/04/29/cjxd-april-20/</guid>
<description>
<figure>
<img src="https://jenkins-x.io/images/logo/cloudbees.png"/>
</figure>
<p>Despite the challenges of this particular time in the world it amazes me how members of the Jenkins X community continue to rise up and generously contribute to the project. This month&rsquo;s CJXD release is with no lack of upstream community contributions, thus I&rsquo;m kicking off this blog with a very sincere THANK YOU to the contributors.</p>
<p>A number of folks here at CloudBees continue to focus on Jenkins X stability and supportability. In parallel, other folks are focused on new features and expanding support for additional platforms. In an effort to help us continue these efforts, we completed the plan to remove code for Jenkins static masters in favor of going full-on with Tekton pipelines. In addition, a number of unsupported commands scheduled for deprecation have now been removed from the code.</p>
<p>The benefits of deprecating unsupported features and commands allows for more focus, clearer messaging, better documentation, better quality, faster development of new features, and expanding Kubernetes provider support. You can learn more about our decision to remove traditional Jenkins masters <a href="https://jenkins-x.io/blog/2020/03/11/tekton/">here</a>.</p>
<p>This month&rsquo;s CJXD release continues to add value with stability improvements as well as some minor enhancements. A total of <a href="https://docs.cloudbees.com/docs/release-notes/latest/cloudbees-jenkins-x-distribution/v9">38 relevant issues</a> have been addressed since the previous release. Over <a href="https://github.com/jenkins-x/jx/pulls?q=is%3Apr+is%3Aclosed+label%3Aapproved+closed%3A2020-03-29..2020-04-29+">40 total upstream pull requests</a> were merged since the previous release and all of them have been absorbed in to this CJXD release. Community members submitted 10 of these PR&rsquo;s and we greatly appreciate these contributions!</p>
<p>Looking ahead to the upcoming CJXD release in May, a good deal of energy over the past three months has been spent on several significant efforts which will begin to surface. Without upsetting the product management team too much, I&rsquo;ll just write about some of the things the engineering team is working on, BUT not necessarily what will be released or when&hellip;</p>
<ul>
<li>
<p>Lighthouse: Andrew Bayer took over completing James Strachan&rsquo;s initial
stab at Lighthouse (Lighthouse is our very own lighter-weight Prow
substitute). Andrew has been working on it nearly full-time and it
really shows. Lighthouse is running great in our busy production
cluster and, well, keep your eye out upstream since I expect great
things VERY soon.</p>
</li>
<li>
<p>Terraform: Hardy Ferentschik has been working diligently on an effort
to eventually remove cloud orchestration concerns from Jenkins X. As a
result we have some awesome new Terraform scripts for GKE and EKS
where you can prepare your cluster and then leverage <code>jx boot</code> to
deploy Jenkins X. I anticipate official support for this in an
upcoming CJXD release, hopefully very soon. You can read more about
this in the upstream
<a href="https://jenkins-x.io/docs/getting-started/">Jenkins X Documentation</a>.</p>
</li>
<li>
<p>CLI: Adam Magan did a huge amount of tedious work removing code for a
multitude of deprecated commands. Thankfully that is largely behind us
and Adam can move on to other more gratifying tasks. You can read more
about which commands were deprecated in the
<a href="https://docs.cloudbees.com/docs/release-notes/latest/cloudbees-jenkins-x-distribution/v9#_deprecations_and_removals">CJXD 9 Release Notes</a>.</p>
</li>
<li>
<p>JX Labs: Dave Conde disappeared a couple weeks ago to work with James
Strachan and James Rawlings on something and I expect him to resurface
in several weeks. If he doesn&rsquo;t return, I&rsquo;ll be sending out a search
party.</p>
</li>
</ul>
<p>So there you have it. Enjoy the release. Please stay safe, take care of yourself, and take care of each other.</p>
<p>Deane</p>
</description>
</item>
<item>
<title>Blog: Season of Docs 2020 📄</title>
<link>https://jenkins-x.io/blog/2020/04/28/season-of-docs-2020/</link>
<pubDate>Tue, 28 Apr 2020 11:44:25 +0100</pubDate>
<guid>https://jenkins-x.io/blog/2020/04/28/season-of-docs-2020/</guid>
<description>
<p><a href="https://developers.google.com/season-of-docs">Google Season of Docs</a> fosters collaboration between open source projects and technical writers. This program brings the open source and technical writing communities together to improve documentation and increase awareness of open source. During the program, technical writers are given support in contributing to open source, information about the technical project to which they are contributing, and a stipend.</p>
<p>Jenkins X welcomes the opportunity to collaborate with technical writers on improving the Jenkins X documentation. We are excited to apply to participate in Google Season of Docs!</p>
<figure>
<img src="https://jenkins-x.io/images/community/events/SeasonofDocs_Logo_.png"/>
</figure>
<h3 id="project-ideas">Project Ideas</h3>
<p>Jenkins X invites technical writers to engage with our ongoing efforts to restructure and update the Jenkins X documentation. There are a number of ongoing projects, and technical writers are welcome to engage with them or to make their own proposals in any area of Jenkins X documentation. We welcome the experience and perspecitve of new contributors and encourage proposals based on a technical writer&rsquo;s interests and expertise.</p>
<ul>
<li>
<p>Refactor the existing documentation to provide an improved user experience or a more accessible information architecture:</p>
<p>We are currently in the process of restructuring the information architecture on the docs site. We recognise this is an iterative process and would welcome input from a technical writer on further improvements to create an accessible information architecture and improve the user experience.</p>
</li>
<li>
<p>Improve our <a href="https://jenkins-x.io/community/documentation/">contributor’s guide</a> to ensure the information for new contributors is clear and well organised, including basic information about getting started as a contributor to Jenkins X, as well as any rules around licence agreements, processes for pull requests and reviews, building the project, and so on.</p>
</li>
<li>
<p>Create a tutorial for provisioning a Kubernetes cluster and installing Jenkins X with <code>jx boot</code> on platforms that are not covered with Terraform. Currently, the <a href="https://jenkins-x.io/docs/getting-started/">Get started page</a> gives the incorrect impression that Jenkins X works only in GKE (Google Cloud Platform) and EKS (Amazon Web Services).</p>
</li>
</ul>
<!-- * Write a how-to guide on using the new Terraform scripts to create Kubernetes clusters. Currently, on the docs site there is a [TODO for documentation on using Terraform to set up cloud resources](https://jenkins-x.io/docs/labs/boot/getting-started/cloud/terraform/). Using Terraform scripts to create clusters makes cluster creation more transparent and can increase default security. For more information on using Terraform scripts, please see a [recent office hours demo](https://www.youtube.com/watch?v=yujge0PHxd4) by [Hardy Ferentschik](https://github.com/hferentschik). -->
<ul>
<li>
<p>Build out <a href="https://jenkins-x.io/docs/getting-started/first-project/">Creating Projects</a> section to include new or extended sections such as Understanding Buildpacks, New Project With Quickstart Or Import, Defining Environments, etc. The GSoD writer would work with the Jenkins X engineering team and community to build out those pages.</p>
</li>
<li>
<p>Create FAQs for select docs pages. The GSoD writer would read through our <a href="https://jenkins-x.io/community/#slack">Kubernetes slack channels</a> and <a href="https://github.com/jenkins-x/jx/issues?q=is%3Aissue+is%3Aclosed">closed issues</a> to identify the most common questions we are asked and to take the answers given to build out the FAQs.</p>
</li>
</ul>
<h3 id="-important-dates">📆 Important Dates</h3>
<p>The main part of Season of Docs runs for three months, from September to December 2020, but the application period for technical writers ends on July 9, 2020. <a href="https://developers.google.com/season-of-docs/docs/timeline">Detailed GSoD Timeline can be found here</a>.</p>
<ul>
<li>May 4, 2020: Deadline for Jenkins X to apply to Season of Docs</li>
<li>May 11 - June 8, 2020: Technical writers discuss project ideas with mentoring organisations</li>
<li>July 9, 2020: Deadline for technical writer applications</li>
<li>September 14 - December 5, 2020: Technical writers work on their projects with guidance from mentors</li>
</ul>
<h3 id="-come-meet-us-and-ask-us-questions">👋 Come meet us and ask us questions</h3>
<p>We welcome technical writers to join our slack channels and our office hours. We&rsquo;d be happy to answer your questions and guide you with your pull requests!</p>
<p>Talk to us on our slack channels, which are part of the Kubernetes slack. Join Kubernetes slack <a href="http://slack.k8s.io/">here</a>, and find us on our channels:</p>
<ul>
<li>#jenkins-x-dev for developers of Jenkins X</li>
<li>#jenkins-x-user for users of Jenkins X</li>
</ul>
<p>We also have online office hours, during which we talk about new developments in Jenkins X and you are welcome to ask us questions. We meet for office hours <strong>every other Tuesday</strong> at 15:00 UTC (<em>See your timezone <a href="https://time.is/1500_in_UTC">here</a></em>).</p>
<p>Next office hours are on <strong>5 May</strong>. Join us here: <a href="https://zoom.us/j/397862697">https://zoom.us/j/397862697</a></p>
<h3 id="additional-information">Additional Information</h3>
<h4 id="technical-writers">Technical Writers</h4>
<ul>
<li><a href="https://jenkins-x.io/community/documentation/">Contributing to the Jenkins X documentation</a></li>
<li><a href="https://developers.google.com/season-of-docs/docs/tech-writer-guide">GSoD Technical Writer guide</a></li>
<li><a href="https://developers.google.com/season-of-docs/docs/timeline">GSoD Timeline</a></li>
</ul>
<h4 id="mentors">Mentors</h4>
<ul>
<li><a href="https://developers.google.com/season-of-docs/docs/mentor-guide">GSoD Mentor Guide</a></li>
<li><a href="https://developers.google.com/season-of-docs/docs/timeline">GSoD Timeline</a></li>
<li><a href="https://developers.google.com/season-of-docs/docs/project-selection">Selecting projects</a></li>
<li><a href="https://developers.google.com/season-of-docs/docs/tech-writer-collaboration">Working with a technical writer</a></li>
</ul>
<p><em>We&rsquo;d love your help to make Jenkins X even more awesome and welcome your participation!</em></p>
</description>
</item>
<item>
<title>Blog: CloudBees contributions to Jenkins X - March 2020</title>
<link>https://jenkins-x.io/blog/2020/03/25/cjxd-march-20/</link>
<pubDate>Wed, 25 Mar 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/03/25/cjxd-march-20/</guid>
<description>
<figure>
<img src="https://jenkins-x.io/images/logo/cloudbees.png"/>
</figure>
<p>March has been a really busy month for us working on Jenkins X, several exciting projects are now well underway.</p>
<p>Recently at office hours we discussed a <a href="https://github.com/jenkins-x/enhancements/tree/master/proposals/3">proposal to improve how we provision</a> the cloud resources (storage buckets, service accounts &amp; cryptographic keys) that Jenkins X requires.
The idea behind this enhancement is that some companies may require the infrastructure to be provisioned by a user (someone in operations perhaps) that requires a different set of permissions than the user that runs <code>jx boot</code> to install Jenkins X.
Previously this happened when a user ran <code>jx boot</code>. But from community feedback we learned that some users would like this process split.
To help with this we are in the process of developing Terraform modules that you can use to create the necessary resources.
Work on this has been moving really quickly and we have been focusing on support for GKE, EKS &amp; AKS.
We are really excited to see the awesome contributions from <a href="https://github.com/helayoty">Heba Elayoty</a> of <a href="https://www.microsoft.com">Microsoft</a> on adding support for <a href="https://docs.microsoft.com/en-us/azure/aks/">Azure Kubernetes Service</a> in Jenkins X.
If you do not use Terraform and you have another way of provisioning infrastructure don&rsquo;t worry, we&rsquo;ll be providing lots of information in the docs on exactly what you will need to create before booting Jenkins X.
For anyone that would like more information or would like to contribute to the Terraform modules you will find the git repository for GKE <a href="https://github.com/jenkins-x/terraform-google-jx">here</a> and EKS <a href="https://github.com/jenkins-x/terraform-aws-eks-jx">here</a>.</p>
<p>Another area that some of the team are working in right now is the implementation of the depreciation policy, PRs are being lined up to remove commands that have been market for <a href="https://jenkins-x.io/commands/deprecation/">deprecation</a>. This will help cut down the code surface area a bit and make Jenkins X a bit easier to maintain.</p>
<p>The <a href="https://github.com/jenkins-x-labs">labs team</a> has also been extremely busy experimenting with <a href="https://helm.sh/blog/helm-3-released/">helm3</a> and <a href="https://github.com/roboll/helmfile">helmfile</a> with a view to using it as a foundation for multi cluster support in Jenkins X.
We still have a bit to learn before we start to roll this into Jenkins X. One of the next areas we&rsquo;ll be experimenting with is what the upgrade process from a helm2 environment to a helm3 environment will look like.
You can jump over to the new <a href="https://jenkins-x.io/docs/labs/">lab&rsquo;s documentation</a> for more information on experiments and you can find the lab&rsquo;s issue tracker <a href="https://github.com/jenkins-x-labs/issues/issues">here</a>.</p>
<p>We have also fixed around <a href="https://github.com/jenkins-x/jx/issues?q=is%3Aissue+is%3Aclosed+updated%3A2020-03-01..2020-03-25+-label%3Alifecycle%2Frotten+">60 issues</a> this month.
We are constantly tracking our progress on closing out issues. The graph below shows the number of opened and closed issues on a weekly basis since September and the delta between them.
The trend over time clearly shows we are making good progress.
<img src="https://jenkins-x.io/images/march-fixes-graph.png"/></p>
<p>We are delighted to announce the March release (Release 8) of the CloudBees Jenkins X Distribution is now available. As always, you can download the latest distribution <a href="https://www.cloudbees.com/products/cloudbees-jenkins-x-distribution/download">here</a>.</p>
</description>
</item>
<item>
<title>Blog: Google Summer of Code 2020 ☀️</title>
<link>https://jenkins-x.io/blog/2020/03/23/gsoc2020/</link>
<pubDate>Mon, 23 Mar 2020 11:26:18 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/03/23/gsoc2020/</guid>
<description>
<p>Jenkins X is incredibly happy to participate in <a href="https://summerofcode.withgoogle.com/">Google Summer of Code 2020</a>!</p>
<p>Jenkins X has been open source from its inception and many of the founders and core contributors to Jenkins X have been deeply involved in open source for years. We love open source for many reasons, including how it enables rapid innovation and collaboration among remote, distributed teams and communities. For these reasons and more, we are very happy to participate in Google Summer of Code.</p>
<br>
<figure>
<img src="https://jenkins-x.io/images/community/events/GSoC-logo.png"/>
</figure>
<h2 id="what-is-google-summer-of-code">What is Google Summer of Code</h2>
<p>Google Summer of Code is a global program focused on bringing more student developers into open source software development.</p>
<p>Working remotely, from anywhere in the world, successful student participants receive a stipend, enabling them to focus on their programming projects for three months. Volunteer mentors help students with project planning, provide guidance, answer questions, and introduce the student to the community.</p>
<section class="py-5">
<div class="container">
<div class="row">
<div class="col-xs-12 col-lg-6">
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" width="560" height="315" src="https://www.youtube.com/embed/S6IP_6HG2QE" frameborder="0"
allow="autoplay; encrypted-media" allowfullscreen=""></iframe>
</div>
</div>
<div class="col-sm-hidden col-lg-2"></div>
<div class="col-sm-12 col-lg-4">
</div>
</div>
</div>
</section>
<p>When applying to GSoC, students create a project proposal. Students often use as the basis for their proposal suggested project ideas. Jenkins X has three suggested project ideas. To find out more about each one click on the links below.</p>
<ul>
<li>
<p><a href="https://jenkins.io/projects/gsoc/2020/project-ideas/jenkins-x-apps-consolidation/">Consolidate the use of Apps / Addons</a></p>
</li>
<li>
<p><a href="https://jenkins.io/projects/gsoc/2020/project-ideas/jenkins-x-boot-apps/">Create Boot Apps</a></p>
</li>
<li>
<p><a href="https://jenkins.io/projects/gsoc/2020/project-ideas/jenkins-x-openwrt-ppa/">Personal Package Archive platform for OpenWrt</a></p>
<ul>
<li>Note: Jenkins X has been proposed as the CI/CD platform for this project</li>
</ul>
</li>
</ul>
<h2 id="resources">Resources</h2>
<p>💻 To find out more about how to apply click <a href="https://developers.google.com/open-source/gsoc/help/student-advice">here</a>.</p>
<p>📅 Please note the timeline for the programme <a href="https://summerofcode.withgoogle.com/how-it-works/#timeline">here</a>.</p>
<p>We look forward to reading your applications and working with you on the Jenkins X project!</p>
</description>
</item>
<item>
<title>Blog: Jenkins X ❤ Tekton</title>
<link>https://jenkins-x.io/blog/2020/03/11/tekton/</link>
<pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/03/11/tekton/</guid>
<description>
<p>Jenkins X is committing fully to Tekton as its pipeline execution engine. We are convinced that this is the right choice for Jenkins X, as a cloud-native CI/CD platform on Kubernetes, and for our users.</p>
<p>This means we are formally deprecating - and will be removing - traditional Jenkins static masters support inside Jenkins X. We are excited about the new way forward, which we’ll discuss further below, but it’s important to be clear about what this means for current users. If you are already using Jenkins X with Tekton-based pipelines, then nothing will change for you, and you do not need to change anything. If you’re running a traditional Jenkinsfile on Jenkins X, then you have three choices:</p>
<ul>
<li>Continue using static masters with a version of Jenkins X that supports Jenkins static masters
<ul>
<li>Note that for versions of Jenkins X that support Jenkins static masters we will not provide any security fixes either to the jx CLI or to the Jenkins image used after mid April.</li>
</ul>
</li>
<li>Return to a more optimized Jenkins installation</li>
<li>Or, if you plan on updating your version of Jenkins X to keep up with the latest features, then you will need to adapt your setup</li>
</ul>
<p>In this post, we will discuss how we arrived at this decision, why there is currently a choice between two different pipeline execution engines, and why it is better for the project and for our users to standardize on one. We will go over in more detail what these changes mean for current users, and the options we have to help current users on Jenkins static masters with these changes.</p>
<h2 id="a-story-of-pipeline-engines">A story of Pipeline Engines</h2>
<p>When Jenkins X was founded two years ago, Jenkins was chosen as its pipeline execution engine. Why?</p>
<ol>
<li>
<p>Familiarity: Jenkins is the most widely used orchestration system in history, and at CloudBees we know it quite well.</p>
</li>
<li>
<p>There was not a Kubernetes native pipeline engine, ie, there was no Tekton</p>
</li>
</ol>
<p>A year later, Tekton had been founded and Jenkins X rapidly adopted the new Kubernetes-native pipeline engine. It became one of two options for users to choose as their pipeline execution engine within Jenkins X. This was huge for us, because Jenkins was never built to be used in the way we were using it, and the way Jenkins is architected made it very difficult to build Jenkins X forward with our dream features and keep things compatible and running well - Tekton solved all these problems.</p>
<p>As a result, though, the users of Jenkins X can now choose between two very different pipeline execution engines &ndash; Jenkins static masters or our own Tekton-based pipelines.</p>
<p>Ideally, a developer using Jenkins X does not need to think about the pipeline engine executing their CI/CD pipelines. In practice, though, the Jenkins X user experience varies significantly depending on which pipeline engine the user choses. This is because of technical complexity and use case difference that makes standardization hard to achieve and even harder to maintain.</p>
<p>As more functionality is added to the project which fits seamlessly with Tekton, Jenkins as a pipeline engine for Jenkins X increasingly feels unoptimized and inappropriate for the project. As amazing as Jenkins is, it wasn’t built to be an ephemeral cloud-native pipeline engine inside of a larger workflow tool, and maintaining Jenkins as a pipeline engine for Jenkins X has proven difficult and complex. The Jenkins X user experience with Jenkins static masters is already lesser than the user experience with Tekton, and it will only degrade further over time. For this reason, we have been recommending Tekton as the default pipeline engine in Jenkins X for more than 6 months now.</p>
<p>The way we see it, traditional Jenkins running on Kubernetes makes sense for Jenkins-based apps that already exist and for teams that aren’t ready to change their tooling and their process. Jenkins is rock-solid and can run forever doing what it does today for the hundreds of thousands of teams that use it. But, that’s not what Jenkins X is for. Jenkins X is for brand new applications, being built from the ground up for the world of Kubernetes-based, cloud-native development - and we want to make things as great as possible for all the developers building those kinds of applications right now.</p>
<h2 id="kubernetes-native">Kubernetes native</h2>
<p>Although for users the pipeline execution engine should be an implementation detail, for the Jenkins X project Tekton is clearly a better, more natural, fit. Like Jenkins X, Tekton is Kubernetes native: it was designed from the ground up to leverage Kubernetes, not merely integrate with Kubernetes.</p>
<p>The Jenkins X core team has chosen to standardize on Tekton as a pipeline execution engine for the following reasons:</p>
<ul>
<li>Kubernetes native</li>
<li>Declarative, not scripted
<ul>
<li>This makes pipelines easier to author, read, and maintain</li>
<li>Highly opinionated syntax, making it easier to work in a best-practices way</li>
<li>YAML! Not Groovy or Groovy-based syntax</li>
</ul>
</li>
</ul>
<p>However, Jenkins X has its own syntax on top of Tekton, to improve the user experience. Tekton’s syntax is very explicit, which is excellent for the level at which Tekton is operating. Jenkins X, as a developer-centric CI/CD platform, is able to take the information already available regarding a user’s configuration and provide that context. Additionally, Jenkins X provides an opinionated, best-practices based workflow. For these reasons, the amount of information a user needs to provide is reduced and the user experience is guided and simplified.</p>
<p>For Jenkins X, as a CI/CD platform on Kubernetes, Tekton is the right choice for the pipeline execution engine. Focusing on one pipeline engine going forward will enable a leaner, cleaner codebase and a better end-user experience. Standardizing on Tekton as the pipeline execution engine for Jenkins X enables the core team to focus on improving the Jenkins X user experience without having to support compatibility with two different pipeline engines.</p>
<h2 id="whats-next">What’s next</h2>
<p>We’re deprecating traditional Jenkins masters in all new versions of Jenkins X. They will be removed from the codebase of future Jenkins X versions from April 20th.</p>
<p>While this is an aggressive timeline, it’s important to know that if you’re currently running Jenkins X with traditional Jenkins today, it’s not going to disappear. You won’t be able to upgrade to new versions - but we will cut one final release right before the deadline to give you a stable version to use for as long as you need.</p>
<p>Next, If you’re looking to migrate existing declarative Jenkins jobs to Jenkins X, we have a <a href="https://github.com/jenkins-x/jx-convert-jenkinsfile">partial Jenkinsfile translator</a> that can help point you in the right direction. While it won’t fully translate all Jenkinsfiles, it will help point you in the right direction to get the ball rolling.</p>
<p>And finally, if you’d like to keep your Jenkins jobs running but as individual steps inside a Jenkins X pipeline, <a href="https://jenkins-x.io/docs/labs/jenkins/">we have a proposal for remote execution</a> as a new path forward. Since Jenkins itself can be run on Kubernetes, switching to a remote execution step via Jenkins X - or entirely to Jenkins if it makes more sense for you - should be an easy switch to make. We think this is a much better path forward, as it keeps Jenkins entirely out of Jenkins X while still letting you adopt Jenkins X right away and migrate your traditional Jenkins jobs to Tekton-based jobs over time. We expect a working proof of concept for the community soon.</p>
<h2 id="conclusion">Conclusion</h2>
<p>We know this is a big announcement on a fast timeline and a lot of ideas to take in. We’d love to talk to you about it! Please join the <a href="https://jenkins-x.io/community/office_hours/">office hours we have arranged on March 19th</a> that will be fully dedicated to discussing this.</p>
<p>You may reach out to me, <a href="mailto:[email protected]">Ethan Jones</a>, if you’d like to discuss things one on one with some of our product and engineering team members.</p>
</description>
</item>
<item>
<title>Blog: Walkthrough: Setting up Jenkins X on a Kubernetes cluster</title>
<link>https://jenkins-x.io/blog/2020/03/10/walkthrough/</link>
<pubDate>Tue, 10 Mar 2020 00:00:00 +0000</pubDate>
<guid>https://jenkins-x.io/blog/2020/03/10/walkthrough/</guid>
<description>
<p>In this tutorial, we&rsquo;ll walk you through setting up Jenkins X on a Kubernetes cluster hosted on GKE. We will use GitHub as our Git provider.</p>
<p>The purpose of this tutorial is to give a detailed step-by-step walkthrough of setting up Jenkins X.</p>
<h3 id="setup-used-in-this-tutorial">Setup used in this tutorial</h3>
<ul>
<li>
<p>GitHub as our Git provider and a GitHub user account, eg <code>MarckK</code></p>
</li>
<li>
<p>A Google Cloud Platform (GCP) account with the ability to provision kubernetes resources / create kubernetes clusters</p>
</li>
<li>
<p>Jenkins X <code>jx</code> binary installed. See <a href="https://jenkins-x.io/docs/getting-started/setup/install/">here for instructions on installing the <code>jx</code> binary</a>.</p>
</li>
<li>
<p>The Kubernetes command-line tool, which can be installed to your local installation using the <code>jx install</code> command:</p>
</li>
</ul>
<pre><code>jx install dependencies -d kubectl
</code></pre><p>We are going to create a GitHub organisation which will have two members, a GitHub user account, eg <code>MarckK</code>, and a GitHub &lsquo;Pipeline&rsquo; bot account, eg <code>jx-bot</code>.</p>
<ul>
<li>
<p>We can create a new GitHub organisation by clicking the <strong>+</strong> at the top right of GitHub&rsquo;s top navigation bar or by clicking to the <a href="https://github.com/organizations/plan">create an organization page</a>. I chose the free &lsquo;Team for Open Source&rsquo; plan for my new GitHub organisation; this means the organisation will <em>not</em> have unlimited private repositories. Name your organisation anything you like, eg <code>jenkins-x-space</code>.</p>
</li>
<li>
<p>Invite your GitHub user account, eg <code>MarckK</code>, to the organisation. This GitHub user account will create and manage development repositories.</p>
</li>
<li>
<p>Next we create a GitHub Pipeline bot account. This Pipeline bot will automate pull request notifications and create preview environments for quick validation and acceptance for code merging. Your Pipeline bot should be created as a member of your GitHub organisation, eg <code>jenkins-x-space</code>.</p>
<p>Create an entirely new account that will be only for your bot. Name your bot anything you like, eg <code>jx-bot</code>.</p>
<p>The bot account must have a token created in your organization that authenticates the bot and allows it to perform various tasks on the repositories within your organization.</p>
<p>Generate a Git token for your Pipeline Bot with the correct permissions via this <a href="https://github.com/settings/tokens/new?scopes=repo,read:user,read:org,user:email,write:repo_hook,delete_repo">GitHub Link</a> and <strong>copy the 40 character token</strong>.</p>
</li>
</ul>
<div class="alert alert-warning" role="alert">
The 40 character token generated by GitHub is only shown once so you must copy this immediately before you close the browser tab or window, as the token cannot be retrieved once it is displayed. You will be asked for this token later, so please do keep a copy of it.
</div>
<ul>
<li>At this point, I signed out of my GitHub Pipeline bot account and back into my GitHub user account, eg <code>MarckK</code>.</li>
</ul>
<h3 id="step-1----create-a-kubernetes-cluster">Step 1 - Create a Kubernetes cluster</h3>
<ul>
<li><code>jx create cluster gke</code> will create a cluster on Google Kubernetes Engine (GKE), which you can initialise with a name. From the command-line run:</li>
</ul>
<pre><code>jx create cluster gke --skip-installation -n &lt;cluster name&gt;
</code></pre><ul>
<li>
<p>The program opens a web browser and you will be asked to choose the email address associated with your GCP account and to allow the Google Cloud SDK access to your account. After confirming, you can close the browswer page.</p>
</li>
<li>
<p>Back at the command-line, the <code>jx create cluster</code> program prompts you to choose your Google Cloud Project from the available list.</p>
</li>
<li>
<p>The program prompts you to choose the Zone nearest to where you would like to install your cluster. For example, if you want your cluster to serve users primarily in the east coast of the United states, you choose <code>us-east1-b</code> from the available list.</p>
</li>
<li>
<p>The program runs automatically through default questions and begins creating the cluster in your specified zone.</p>
</li>
</ul>
<p>Towards the end, you will see output similar to:</p>
<pre><code>NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
walkthrough europe-north1-a 1.14.10-gke.17 35.228.74.166 n1-standard-2 1.14.10-gke.17 3 RUNNING
</code></pre><p>Congratulations you now have a Kubernetes cluster!</p>
<h3 id="step-2---installing-jenkins-x-on-a-cluster">Step 2 - Installing Jenkins X on a cluster</h3>
<!-- ### Edit all this with new jx boot —--git-public` flag (woohoo!)
```bash
jx boot --git-public
```
Does NOT work. Just returns: `Error: unknown flag: --git-public`
This has been implemented for `jx create` or `jx install` [apparently](https://jenkins-x.io/docs/getting-started/setup/boot/#git). Not jx boot. And unfortunately, that happens to be where I would like to have it enabled. -->
<ul>
<li>
<p>First clone the <a href="https://github.com/jenkins-x/jenkins-x-boot-config">Jenkins X Boot configuration repo</a> and <code>cd</code> into your newly cloned repo.</p>
</li>
<li>
<p>Open the <code>jx-requirements.yml</code> file of your newly cloned repo, eg. <code>jenkinx-x-boot-config/jx-requirements.yml</code>. This specifies the requirements of your installation, including:</p>
<ul>
<li>what Kubernetes provider to use</li>
<li>whether to store secrets in the local file system or vault</li>
<li>if you are using Terraform to manage your cloud resources</li>
</ul>
<p>Note, this is the main configuration file for <code>jx boot</code> and where you make most of your configuration changes.</p>
<p>The <code>jx-requirements.yml</code> file is interesting to review, see the defaults in place, and make any changes you need.</p>
</li>
<li>
<p>For my setup, I knew there was one change I needed to make to the <code>jx-requirements.yml</code>. By default, Jenkins X will create private environment repos. You can see this configured in <code>jx-requirements.yml</code> as <code>environmentGitPublic: false</code>. However, I set up a free open source GitHub organization to hold the environment repositories that will be created by Jenkins X, and this type of GitHub organization account does not have access to private repos. To configure Jenkins X to create public environment repositories, set <code>environmentGitPublic</code> to <code>true</code> in <code>jx-requirements.yml</code>.</p>
</li>
<li>
<p>Save your changes and then on the command line run:</p>
</li>
</ul>
<pre><code>jx boot
</code></pre><p>If you are not in a clone of a boot git repository then <code>jx boot</code> will clone this repository and <code>cd</code> into the clone.</p>
<p>You can read more about <a href="https://jenkins-x.io/docs/getting-started/setup/boot/">Jenkins X Boot in the documentation</a>.</p>
<p>Your Git and the pre-installation set up for Jenkins X will be checked and validated. You will see printed out:</p>
<p>`Currently connected cluster is <code>&lt;cluster_name&gt;</code> in <code>&lt;cluster_location&gt;</code> in project ```&lt;your_chosen_project&gt;``</p>
<p>You will be asked to confirm that you would like to <code>jx boot</code> your <code>&lt;cluster_name&gt;</code>.</p>
<p>Then you will be asked a series of questions to ensure Jenkins X is installed properly on your cluster:</p>
<ul>
<li>
<p>You will be asked to input the <code>Git Owner name for environment repositories</code>: Type in the organistion you created, eg <code>jenkins-x-space</code>.</p>
</li>
<li>
<p>You will be asked to provide <code>Comma-separated git provider usernames of approvers for development environment repository</code>: Type in the name of the GitHub account that is a member of the organisation you created, eg <code>MarckK</code>.</p>
</li>
<li>
<p>You may receive a Warning that <code>TLS is not enabled so your webhooks will be called using HTTP.</code> You will be asked for confirmation to continue.</p>
<ul>
<li>
<p>If you type &lsquo;No&rsquo;, the <code>jx boot</code> process will end with <code>error: cannot continue because TLS is not enabled.</code></p>
</li>
<li>
<p>If you type &lsquo;Yes&rsquo;, then namespace <code>jx</code> will be created in your cluster and Jenkins X booted in that namespace.</p>
</li>
</ul>
</li>
<li>
<p>You may be asked if you wish to upgrade <code>jx</code>. It is recommended you say &lsquo;Yes&rsquo; and then re-run <code>jx boot</code>.</p>
</li>
<li>
<p>There will be information logged on enabling storage on GKE. You do not need to enable storage for this walkthrough tutorial.</p>
</li>
<li>
<p>You will see information on the pipeline steps of JX Boot.</p>
</li>
<li>
<p>You will be asked <code>Jenkins X Admin Username</code>: Type in a username or press return to have the default username of <code>admin</code>.</p>
</li>
<li>
<p>You will then be asked for <code>Jenkins X Admin Password</code>: Type one in.</p>
</li>
<li>
<p>You will then be asked for <code>Pipeline bot Git username</code>: Type in the name of the Pipeline Bot you created, eg <code>jx-bot</code>.</p>
</li>
<li>
<p>You will then be asked for <code>Pipeline bot Git email address</code>: Type in the email address you used when setting up your Pipeline Bot.</p>
</li>
<li>
<p>You will then be asked for <code>Pipeline bot Git token</code>: Type in the token generated and saved previously.</p>
</li>
<li>
<p>You will be asked, <code>Do you want to configure an external Docker Registry?</code>: &lsquo;No&rsquo; is sufficient for this tutorial</p>
</li>
<li>
<p>More pipeline steps will be run. You should see output that your pods are running and other verification information telling you the state of your Jenkins x set-up.</p>
</li>
</ul>
<p>Then you will see confirmation on the state of your installation process, such as:</p>
<p><code>Installation is currently looking: GOOD</code></p>
<ul>
<li>In the organisation you created, eg <code>jenkins-x-space</code>, there should now be 3 additional repositories for the dev, staging, and production environments, which map to the dev, staging, and production namespaces in your cluster.</li>