We maintain our projects in the public gitlab-de group. This group has access to an Ultimate subscription.
The group organizes use cases, workshops, tutorials, maintained open source projects, demo playgrounds, thought leadership research, and more learning resources.
All projects are organized in sub-groups on the top level. No projects are allowed on the top-level namespace gitlab.com/gitlab-de
.
Group | DRI | Description |
---|---|---|
playground | all | Test projects, simple demo cases, code snippets, etc. without support |
use-cases | all | Use cases for specific topics for product demos, talks, thought leadership, research |
use-cases/ai | all | AI workflows and use cases |
use-cases/cicd-components-catalog | @iganbaruch | GitLab CI/CD Components Catalog use cases |
use-cases/efficiency | @dnsmichi | Efficiency use cases (CI/CD, container images, workflows, CLI, etc.) |
use-cases/gitlab-api | @dnsmichi | GitLab API use cases with libraries and scripts |
use-cases/observability | @dnsmichi | Observability uses cases and research (OpenTelemetry, eBPF, etc.) |
use-cases/remote-development | @dnsmichi @iganbaruch | Remote development environments and Web IDE use cases |
workshops | all | Workshop groups and projects provided by the team |
projects | @abuango | Production projects maintained by the team |
tutorials | all | |
tutorials/security-and-governance | @fjdiaz | This group contains different projects as well as documentation around GitLab's security and governance tools. |
unmaintained | - | Projects, tutorials, use cases that are not maintained anymore but kept public for transparency |
Access is limited to team members in the gitlab-de
group. Adding/removing members requires an issue to document the change.
Allowed exceptions are workshop sub-groups that invite external users into their workshop projects temporarily. All temporarily added users must use a membership expiration date of 7 days.
Do not create new top-level groups without first proposing the change in an issue/MR.
Always add a README.md
file that explains the purpose of the project/group (copy the text into Settings > General > Description
), and links all resources (issues, direction pages, blog posts, etc.). GitLab supports Group READMEs next to project READMEs.
Optional but recommended: Add a project/group avatar image that illustrates the topic. Use an official GitLab brand image, or download a free asset from Unsplash. Add the credits to the README.md
file.
Tip: You can resize images using the following CLI command:
find . -type f -exec sh -c 'convert {} -resize 150 {}' \;
When unsure where to start, create a new tutorial sub group first, and later decide to migrate the content to a workshop for example.
The projects group contains all projects that are used in production. They require extended documentation in the team handbook, since the team depends on the functionality for workflows and efficiency. We also maintain microsites that are served with GitLab pages and custom domains.
Our demo projects are referenced in blog posts and other public content. Moving these projects/groups into the unmaintained is recommended to signal their deprecation to users instead of archiving/deleting the projects.
Some projects require access to Kubernetes clusters, self-managed CI/CD Runners, cloud VMs, domains, etc. The team has access to Google Cloud or AWS cloud resources that allow hosting these types of external infrastructure dependencies for GitLab.com SaaS demos.
For demos that require debugging the deployments, prefer shared resources, for example in Google Cloud.
Shared cloud resources examples:
Editor
role. Create an access request to add/remote team members.gitlab
in the name!) and use the domains for demo setups.For individual short-lived tutorials or demo setups for a blog post, prefer the Cloud Sandbox Realm. This provides automated shutdown, generated domains for easier access, etc.
The remote-development sub group has an agent for Kubernetes installed, which is documented in the agent-kubernetes-gke project. This includes troubleshooting when the agent becomes unresponsive, and workspaces are not created.
Assigned resources:
de-remote-development-1
is running in GKE. Current resources: 3 nodes. Total 6 vCPU, 12 GB memory.remote-dev.dev
has been purchased through the Google DNS service and points to the Kubernetes cluster's public IP.The log4j-resources project provides a collection of resources to learn about, detect and mitigate the impact of the log4j vulnerability, more formally known as CVE-2021-44228.
Maintainers: Developer Evangelism team
o11y.love is a collection of useful learning resources for observability. The project is built using Markdown, MkDocs and GitLab Pages and organized in the EveryoneCanContribute cafe community.
Maintainer: Michael Friedrich
The project provides all notes, configuration, dev environments, research changelog, etc. and is deployed with GitLab Pages and MkDocs to gitlab.opentelemetry.love/. The subdomain is on purpose as long as the research continues; the main domain opentelemetry.love
will be used by Michael for other projects.
Maintainer: Michael Friedrich
opsindev.news is a newsletter inspired by the problem of too many resources, spread around Slack channels and Twitter/LinkedIn feeds where the information can be overwhelming. The target audience is developers learning Ops and DevOps, as well as engineers facing day-2-ops challenges. The newsletter is based on the latest news, telling a story and diving into the latest technology. Tips and tools and CFPs for events are curated too.
The platform with Buttondown and GitLab pages is documented in the Contributing guide. The newsletter is maintained in public in Michael's namespace: https://gitlab.com/dnsmichi/opsindev.news
Maintainer: Michael Friedrich
GitLab Hero Valentin Despa created the 5h course in collaboration Michael Friedrich, who helped with the course outline review.
The slides provide a 10+ hours workshop created by Michael Friedrich for the Open Source Automation Days 2021. The exercises in the slides refer to a workshop project which also includes the solutions.
The following topics will be practiced:
!reference
tags (script, rules), maintain own CI/CD templates (include templates, override config values), parent-child pipelines, multi project pipelines, better error messages to fix failures fastextends
, combine matrix and !reference
), extends
merge strategies (with and without !reference
)when:always
on failed jobs)The slides provide the step-by-step instructions as exercises for the GitLab CI/CD Go Tanuki workshop:
Recordings of past workshops and other videos from the Developer Evangelism team can be found on our team playlist on GitLab Unfiltered.
Meetup workshops are available in the workshops group in the GitLab Developer Evangelism group. Note that the content, exercises and source code evolved over time :)
German language:
Michael Friedrich provides a 3.5 hours live workshop on Kubernetes Observability for the Kube Simplify workshop series as a free learning resource. After an introduction, the workshop starts with an overview of monitoring, metrics with Prometheus, and how to build and use dashboards in Kubernetes. Alerts, incidents and SLOs are practiced by example, building the bridge into more Observability data with tracing, logs and more event types. Chaos engineering is practiced with Chaos Mesh to trigger alerts when DNS errors force an app to leak memory. This allows users to practice the KubeCon EU 2022 demo themselves. Scaling, long term storage, security workflows as well as new innovative ideas with OpenTelemetry and eBPF are discussed too. The workshop includes exercises and solutions ready for production environments afterwards.
Resources:
Recording:
The slides provide a 4+ hours workshop, more details are available on Michael Friedrich's personal blog. The following topics will be practiced:
A shorter version of the workshop as a talk was provided by Michael Friedrich at PromCon NA 2021, a zero day event at KubeCon NA.
The Developer Evangelism team maintains OSS projects as part of community activities.
Maintainer: Abubakar Siddiq Ango
CodeChallenge.dev
is an app that you can use to create challenges that are tied to actions in GitLab. For example, you can create a challenge that teaches folks how to make merge requests, add issues, or use other GitLab features. Currently in the beta release, the Code Challenge software was first used at KubeCon EU 2022.
Homepage: CodeChallenge.dev
Documentation: docs.codechallenge.dev
Project: codechallenge
Maintainer: Abubakar Siddiq Ango
The dashboard is the SSoT to collect all metrics for the Developer Evangelism, and Education Evangelism teams. This includes Twitter, CFPs, YouTube/Google Analytics, etc. Next to the dashboard component, the data component ensures to collect all data from different APIs and sources, and gets deployed to GitLab pages.
Project: Dashboards
Maintainer: Abubakar Siddiq Ango
This bot aims to automate the team tasks such as:
Project: DE Bot
Maintainer: Abubakar Siddiq Ango
This custom dashboard is built using GitLab pages and presents an overview of Developer Evangelism issues. The requests are synced in a specified interval.
Project: DE Dashboard
Maintainer: Abubakar Siddiq Ango
This project is used internally at GitLab to retrieve the list of videos from specified playlists on YouTube onto a specified Google Sheet. Pipeline is scheduled to run at midnight and noon UTC.
Project: YouTube2Sheets
Maintainer: Abubakar Siddiq Ango
The Developer Evangelism Team at GitLab tracks events happening across the industry for attendance, speaking engagements, or just to keep them on the radar. This is also a major need across the industry. The Events project aims to provide an open and collaborative place where members of the wider GitLab community can add and track events happening in the industry.
Project: DE Events Project
Maintainer: Michael Friedrich
everyonecancontribute.com serves as the main website for a community formed around tech coffee chats called #EveryoneCanContribute cafe
(active) and #EveryoneCanContribute Kaeffchen
(retired).
The coffee chats are organized as meetup.com group events and are open for topic or theme suggestions from everyone.
The sessions are hosted by Michael Friedrich. Developer Evangelism team members are assigned as alternative hosts in Zoom. The meetups are hosted in Zoom with a waiting room as default, the Zoom URL is hidden in the meetup group event. team members can access the URL in the Developer Evangelism team calendar. For joining the group, users need a profile picture and provide their name for joining an event. This is to protect against Zoom bombing and otherwise harmful intentions.
Next to Zoom, everyone can hangout with text or audio in Discord.
The website's About page covers more details including the exact date and time.
Insights:
everyonecancontribute.dev hosts a demo page with funny animations featuring the Tanuki, Clippy, and more. It is deployed in a container environment and provides a Prometheus node exporter for monitoring demos and talks. Michael created the website for the job application presentation panel at GitLab.
In order to track the sessions, create a monthly issue report with linking the blog post, recording, social shares etc.