Open gtsiolis opened 3 years ago
Thanks, George, this is great!
I believe contributing should work self-served instead of applying and waiting for getting access to our infrastructure. I think @iQQBot has a local setup using minikube. With a streamlined installation, a self-hosted instance on my own machine or cloud should be a great preview environment. @iQQBot can you maybe write down the steps to get to such a dev environment? π
Now that the new product engineering structure is in place and we do automatically associate team labels in PRs[1], each team could document a process for going through community PRs.
I don't think we have so many contributions that we need to handle it in a different process. Instead, teams should regularly check all pending PRs that have their team label, no matter the PR is from a team member another team, or a contribution.
@svenefftinge I'm currently using a standard local kubernetes cluster for gitpod development, but I'd love to try using minikube and write down the steps. However, it will take some days, and I am not good at English π, I hope to get your guidance in writing the documentation.
@iQQBot cool! π It's not about minikube, even better if you use a standard kubernetes cluster. Also, we are happy to help, if you could just write down the steps someone can verify them and streamline the docs.
@roboquat doesn't work?
/this-is-fine
/this-is-fine
@roboquat doesn't work?
@iQQBot yes, we've noticed some commands don't work and the team is currently working on resolving this.
π π π π
β question: Were you trying to assign this issue to yourself?
π suggestion: Since this issue serves as an epic with sub-tasks related to community contributor experience that also includes tasks for team members like [5] and [6] from the proposal section in the issue description, it could be best if we split out tasks and work with the smaller issues instead. What do you think? We could open a new separate issue for everything related to setting up minikube or a local kubernetes cluster.
Sure, it would be nice, I deleted assign comment
/this-is-fine
It's ok @iQQBot! No need to delete any comments! π
FYI, Added another task in the proposal of this issue (epic) and opened #6563:
- Add contributing guidelines with a local kubernetes cluster or minikube. See Add contributing guidelines with a local kubernetes cluster or minikube #6563.
Let's continue the discussion about the local kubernetes cluster or minikube setup in #6563! π
Great job on the write-up here @gtsiolis !
Came here to note that also from a priority / value point of view that having better contribution paths is a benefit to a lot of companies looking to assess and adopt Gitpod.
See: Internal Discussion
This is a short list on the steps I did to setup a test cluster and try out my changes (#80). Maybe it helps you to create some contribution guide. Greets from Kiel
docker login [registry-url]
leeway build components/server:docker -DimageRepoBase=my-docker-registry-account -Dversion=my-test-version-1
or leeway build components/dashboard:docker -DimageRepoBase=my-docker-registry-account -Dversion=my-test-version-1
*.gitpod.test
, gitpod.test
and *.ws.gitpod.test
to 127.0.0.1
(/etc/hosts
for linux)kubectl create ns gitpod
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.7.1/cert-manager.yaml
create custom certificates with mkcert and add CA for local testing:
mkcert -install
BASE_DOMAIN="gitpod.test"
mkcert -key-file gitpod-key.pem -cert-file gitpod.pem $BASE_DOMAIN "*.$BASE_DOMAIN" "*.ws.$BASE_DOMAIN"
kubectl -n gitpod create secret tls https-certificates --key=gitpod-key.pem --cert=gitpod.pem
NODE=($(kubectl get node --output=name | cut -d / -f 2))
for i in "${NODE[@]}" ; do
echo "Set gitpod node affinities for node $i"
kubectl label node $i gitpod.io/workload_meta=true
kubectl label node $i gitpod.io/workload_ide=true
kubectl label node $i gitpod.io/workload_workspace_services=true
kubectl label node $i gitpod.io/workload_workspace_regular=true
kubectl label node $i gitpod.io/workload_workspace_headless=true
done
gitpod-install
to create config:
gitpod-installer init > gitpod.config.yaml
gitpod.config.yaml
to needs and set domain
to gitpod.test
gitpod-install
to validate and create Kubernetes manifests:
gitpod-installer validate config --config gitpod.config.yaml
gitpod-installer render --config gitpod.config.yaml --namespace gitpod > gitpod.yaml
image: eu.gcr.io/gitpod-core-dev/build/eu.gcr.io/gitpod-core-dev/build/dashboard ...
kubectl apply -n gitpod -f gitpod.yaml
Telepresence allows to replace a component in your test cluster (like for example the dashboard or server) with a locally (probably inside your gitpod workspace) running instance.
To get telepresence up and running you have to do some steps:
~/.kube/config
of the gitpod workspace you are using for development
rm ~/.kube/config
nano ~/.kube/config
kubectl config set-context --current --namespace=gitpod
telepresence
leeway run components/server:telepresence
# or
leeway run components/dashboard:telepresence
# or ... (you probably got the idea)
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This epic is a placeholder that captures the improvements we'd like to do as part of making it easier for everyone to contribute to Gitpod.
Objective π₯
Guide community contributors step-by-step from opening a pull request to merging a contribution, while leveraging a combination of automation (see
gitbot
, etc) and interactions with the Gitpod team members that would streamline the community contribution process.Problem to solve β
CONTRIBUTING.md
file for the main repository (gitpod-io/gitpod
) and this makes it difficult to discover how and where one can start for contributing to Gitpod.Proposal πΊοΈ
The following items contain a brief overview of ideas that have been discussed before and could potentially improve the community contributor experience for Gitpod as a first iteration. Thanks everyone for opening the associated issues linked below.
CONTRIBUTING.md
doc that guides community member on how to contribute using. See https://github.com/gitpod-io/gitpod/issues/5258.minikube
, a tool that lets you run Kubernetes locally7. Add contributing guidelines with a local kubernetes cluster or minikube. See https://github.com/gitpod-io/gitpod/issues/6563.Next steps
Next steps ideas could include: