Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 76
[WIP] added contributing.md file to assist new contributors#946
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
a53f8d8c8dc4a9079f79bb171c16a3702931435065654a59f0c0520a2d9d4c7614092fFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,135 @@ | ||
| # Contributing to DevWorkspace Operator | ||
| Hello there! Thank you for choosing to contribute to DevWorkspace Operator. Navigate through the following table of contents to learn more about contributing to the project. | ||
| - [Contributing to DevWorkspace Operator](#contributing-to-devworkspace-operator) | ||
| - [How to Contribute](#how-to-contribute) | ||
| - [Set up your Development Environment](#set-up-your-development-environment) | ||
| - [Running the controller locally.](#running-the-controller-locally) | ||
| - [Testing Changes](#testing-changes) | ||
| - [Test run the controller](#test-run-the-controller) | ||
| - [Developing Webhooks](#developing-webhooks) | ||
| - [Signing-off on Commits](#signing-off-on-commits) | ||
| # How to Contribute | ||
| To contribute to the DevWorkspace Operator project, developers should follow the [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) and [pull request workflow](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork). | ||
| ## Set up your Development Environment | ||
| **1.** Fork [devworkspace-operator](https://github.com/devfile/devworkspace-operator) repository. | ||
| **2.** Clone your forked copy of the project. | ||
| ``` | ||
| git clone https://github.com/<your-github-username>/devworkspace-operator.git | ||
| ``` | ||
| #### Running the controller locally. | ||
| In the steps listed below, we set up the development environment using a [minikube cluster](https://minikube.sigs.k8s.io/docs/start/). | ||
| **1.** Start the minikube cluster. | ||
| ``` | ||
| minikube start | ||
| ``` | ||
| **2.** Enable the ingress add-on for your minikube cluster. | ||
| ``` | ||
| minikube addons enable ingress | ||
| ``` | ||
| **3.** Set the namespace environment variable for the development environment to avoid changes inside the default namespace. | ||
| ``` | ||
| export NAMESPACE="devworkspace-controller" | ||
| ``` | ||
| **4.** Install the kubernetes certificate management controller to generate and manage TLS certificates for your cluster. | ||
| ``` | ||
| make install_cert_manager. | ||
| ``` | ||
| Please note that the above step is not specific to minikube. The cert-manager is required for all deployments on Kubernetes. | ||
| **5.** Install the dependencies for running the DevWorkspace Operator in your cluster. | ||
| ``` | ||
| make install | ||
| ``` | ||
| **6.** Scale down the replicas controller-manager pods to 0. | ||
| ``` | ||
| kubectl patch deployment/devworkspace-controller-manager --patch "{\"spec\":{\"replicas\":0}}" -n $NAMESPACE | ||
| ``` | ||
| **7.** Run the devworkspace-operator. | ||
| ``` | ||
| make run | ||
| ``` | ||
| This will run the devworkspace-controller on your local system. | ||
| **8.** Make your changes in the new branch and test the changes. | ||
| ## Testing Changes | ||
| #### Test run the controller | ||
Collaborator There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For the Test run the controller and Developing Webhooks sections, there is a missing newline for each instruction number, making everything appear as a paragraph. I think you need to add a newline between each number point. | ||
| **1.** Take a look samples DevWorkspaces in the `./samples` directory. If you are uncertain on which one to try, use `theia-latest.yaml`. | ||
| **2.** Apply a sample by executing `kubectl apply -f ./samples/<SAMPLE-FILENAME> -n $NAMESPACE`. For instance, `kubectl apply -f ./samples/theia-latest.yaml -n $NAMESPACE`. | ||
| **3.** As soon as devworkspace is started you're able to get IDE url by executing `kubectl get devworkspace -n <namespace>`. | ||
| **4.** To check for the DevWorkspace status, execute `kubectl get dw -n $NAMESPACE -w`. | ||
| **5.** As soon as the DevWorkspace is started, an IDE url will appear from the output of `kubectl get dw -n $NAMESPACE -w`. This assumes that the DevWorkspace sample you chose includes an IDE. | ||
| #### Developing Webhooks | ||
| **1.** Make a change to the webhook. | ||
| **2.** Ensure the `DWO_IMG` environment variable points to your container image repository, eg. export `DWO_IMG=quay.io/<username>/dwo-webhook:next`. | ||
| **3.** Run `make docker restart` (assuming DWO is already deployed to the cluster, otherwise run `make docker install`). | ||
| Wait for the webhook deployment to update with your image that contains your latest changes. | ||
| ## Signing-off on Commits | ||
| To contribute to this project, you must agree to the **code of conduct** for each commit you make. | ||
| See the [code of conduct](https://github.com/devfile/api/blob/main/CODE_OF_CONDUCT.md) file for the full text of what you must agree to. | ||
| To signify that you agree to the DCO for contributions, you simply add a line to each of your | ||
| git commit messages: | ||
| ``` | ||
| Signed-off-by: John Doe <john.doe@example.com> | ||
| ``` | ||
| **Note:** you don't have to manually include this line on your commits, git does that for you as shown below: | ||
| ``` | ||
| $ git commit -s -m “my commit message w/signoff” | ||
| ``` | ||
| In most cases, git automatically adds the signoff to your commit with the use of | ||
| `-s` or `--signoff` flag to `git commit`. You must use your real name and a reachable email | ||
| address (sorry, no pseudonyms or anonymous contributions). | ||
| To ensure all your commits are signed, you may choose to add this alias to your global `.gitconfig`: | ||
| _~/.gitconfig_ | ||
| ``` | ||
| [alias] | ||
| amend = commit -s --amend | ||
| cm = commit -s -m | ||
| commit = commit -s | ||
| ``` | ||
Uh oh!
There was an error while loading. Please reload this page.