diff --git a/.github/issue_template.md b/.github/issue_template.md new file mode 100644 index 00000000..34d9c811 --- /dev/null +++ b/.github/issue_template.md @@ -0,0 +1,27 @@ +# Expected Behavior + +# Actual Behavior + +# Steps to Reproduce the Problem + +1. +2. +3. + +# Additional Info + +- Kubernetes version: + + **Output of `kubectl version`:** + + ``` + (paste your output here) + ``` + +- Jenkins Operator version: + +``` + (paste your output here) + ``` + + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..41f47b6c --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,34 @@ + + +# Changes + + + +# Submitter Checklist + +These are the criteria that every PR should meet, please check them off as you +review them: + +- [ ] Includes tests (if functionality changed/added) +- [ ] Includes docs (if user facing) +- [ ] Commit messages follow [commit message best practices](https://github.com/jenkinsci/kubernetes-operator/blob/master/CONTRIBUTING.md#commit-messages) + +_See [the contribution guide](https://github.com/jenkinsci/kubernetes-operator/blob/master/CONTRIBUTING.md) for more details._ + + +## Reviewer Notes + +If API changes are included, additive changes must be approved by at least two [OWNERS](https://github.com/jenkinsci/kubernetes-operator/blob/master/OWNERS) and backwards incompatible changes must be approved by [more than 50% of the OWNERS](https://github.com/jenkinsci/kubernetes-operator/blob/master/OWNERS). + +# Release Notes + +``` +Describe any user facing changes here, or delete this block. + +Examples of user facing changes: +- API changes +- Bug fixes +- Any changes in behavior + +``` diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..d23cf3a6 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,6 @@ +# Jenkins Code of Conduct + +You can find the Jenkins Code of Conduct [on jenkins.io](https://jenkins.io/project/conduct/). + +It applies to the entire `jenkinsci` GitHub organization, among other community spaces. +[version]: http://contributor-covenant.org/version/1/4/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..fe6c273b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,46 @@ +# Contributing + +:+1::tada: First off, thanks for taking the time to contribute! :tada::+1: + +The following is a set of guidelines for contributing to the Jenkins Operator. These are mostly guidelines, not rules. +Use your best judgment, and feel free to propose changes to this document in a pull request. + +In this project we appreciate any kind of contributions: code, documentation, design, etc. +Any contribution counts, and the size does not matter! + +## Newcomers + +If you are a newcomer contributor and have any questions, please do not hesitate to ask in the `#jenkins-operator` [Slack](https://virtuslab-oss.slack.com) Channel. + +#### Table Of Contents + +[Code of Conduct](#code-of-conduct) + +## Code of Conduct + +This project and everyone participating in it is governed by the [Atom Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. + +## Commit Messages + +All commit messages should follow +[these best practices](https://chris.beams.io/posts/git-commit/), specifically: + +- Start with a subject line +- Contain a body that explains _why_ you're making the change you're making +- Reference an issue number one exists, closing it if applicable (with text such + as + ["Fixes #245" or "Closes #111"](https://help.github.com/articles/closing-issues-using-keywords/)) + +Not sure what to put? Try to Include: + +- What is the problem being solved? +- Why is this the best approach? +- What other approaches did you consider? +- What side effects will this approach have? +- What future work remains to be done? + +## Coding standards + +### Go + +- [Go code review comments](https://github.com/golang/go/wiki/CodeReviewComments) diff --git a/README.md b/README.md index 8052a5cc..08b0ad06 100644 --- a/README.md +++ b/README.md @@ -5,20 +5,30 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/jenkinsci/kubernetes-operator "Go Report Card")](https://goreportcard.com/report/github.com/jenkinsci/kubernetes-operator) [![Docker Pulls](https://img.shields.io/docker/pulls/virtuslab/jenkins-operator.svg)](https://hub.docker.com/r/virtuslab/jenkins-operator/tags) -Go to [**our documentation website**](https://jenkinsci.github.io/kubernetes-operator/) for more information, with examples and guides. - ![logo](/assets/jenkins_gopher_wide.png) ## What's the Jenkins Operator? -Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. -It was built with immutability and declarative configuration as code in mind. +The Jenkins Operator is a [Kubernetes Native Operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) which manages operations for Jenkins on Kubernetes. +It has been built with Immutability and declarative Configuration as Code in mind. -Out of the box it provides: -- integration with Kubernetes ([Jenkins kubernetes-plugin](https://github.com/jenkinsci/kubernetes-plugin)) -- pipelines as code ([Jenkins pipelines](https://jenkins.io/doc/book/pipeline/)) -- extensibility via groovy scripts (similar to [Jenkins script console](https://wiki.jenkins.io/display/JENKINS/Jenkins+Script+Console)) or ([configuration as code plugin](https://github.com/jenkinsci/configuration-as-code-plugin)) -- secure defaults and hardening (see [the security section](https://jenkinsci.github.io/kubernetes-operator/docs/security/) of the documentation) + +## Preliminaries + +Considering that this Operator is created for managing instances for Jenkins, +it is important to understand what +- [Jenkins Pipelines](https://jenkins.io/doc/book/pipeline/) and +- CasC ([Configuration as Code](https://github.com/jenkinsci/configuration-as-code-plugin)) are. + +Jenkins Pipelines use Scripts written in [Groovy](https://groovy-lang.org/) which aid in the CasC aspect of Jenkins. + +Jenkins uses [plugins](https://plugins.jenkins.io/) like CasC to extend it's solution space by carrying out Jobs of different kinds and providing a composable infrastructure for your CI/CD. + +### Out of the box it provides: +- Integration with Kubernetes ([Jenkins kubernetes-plugin](https://github.com/jenkinsci/kubernetes-plugin)) +- Pipelines as Code ([Jenkins pipelines](https://jenkins.io/doc/book/pipeline/)) +- Extensibility via Groovy Scripts (similar to [Jenkins script console](https://wiki.jenkins.io/display/JENKINS/Jenkins+Script+Console)) or ([configuration as code plugin](https://github.com/jenkinsci/configuration-as-code-plugin)) +- Secure Defaults and Hardening (see [the security section](https://jenkinsci.github.io/kubernetes-operator/docs/security/) of the documentation) ## Problem statement and goals @@ -47,15 +57,18 @@ Selected content: 5. [Developer Guide](https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/) 5. [Jenkins Custom Resource Definition scheme](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/scheme/) -## Common Jenkins issues and workarounds +## Common Issues and Workarounds -- Multibranch pipelines and backup issues: https://github.com/jenkinsci/kubernetes-operator/issues/104#issuecomment-554289768 +- Multibranch Pipelines and Backup Issues: https://github.com/jenkinsci/kubernetes-operator/issues/104#issuecomment-554289768 -## Community & Contribution +## Community -There is a dedicated channel `#jenkins-operator` on [virtuslab-oss.slack.com](https://virtuslab-oss.slack.com) ([Invite form](https://forms.gle/X3X8qA1XMirdBuEH7)) +we have a dedicated channel called `#jenkins-operator` on [virtuslab-oss.slack.com](https://virtuslab-oss.slack.com) +Fill out ([Invite form](https://forms.gle/X3X8qA1XMirdBuEH7)) and come say hi ! -Feel free to file [issues](https://github.com/jenkinsci/kubernetes-operator/issues) or [pull requests](https://github.com/jenkinsci/kubernetes-operator/pulls). +## Contribution + +Feel free to file [issues](https://github.com/jenkinsci/kubernetes-operator/issues) or [pull requests](https://github.com/jenkinsci/kubernetes-operator/pulls). Before any big pull request please consult the maintainers to ensure a common direction. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..189c43b8 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,19 @@ +# Security Policy + +The Jenkins project takes security seriously. +We make every possible effort to ensure users can adequately secure their automation infrastructure. +To that end, we work with Jenkins core and plugin developers, as well as security researchers, to fix security vulnerabilities in Jenkins in a timely manner, and to improve the security of Jenkins in general. + +## Reporting Security Vulnerabilities + +Please report security vulnerabilities in the Jenkins issue tracker under the [SECURITY project](https://issues.jenkins-ci.org/browse/SECURITY). +This project is configured in such a way that only the reporter and the security team can see the details. +By restricting access to this potentially sensitive information, we can work on a fix and deliver it before the method of attack becomes well-known. + +If you are unable to report using our issue tracker, you can also send your report to the private Jenkins security team mailing list: `jenkinsci-cert@googlegroups.com` + +The Jenkins security team will then file an issue on your behalf, and will work with the maintainers of the affected component(s) to get the issue resolved. + +## Learn More + +For further details about our scope, issue handling process, or disclosure process, see [Reporting Security Vulnerabilities on jenkins.io](https://jenkins.io/security/reporting/). \ No newline at end of file diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 00000000..292fd871 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,15 @@ +Getting support for Jenkins +=========================== + +Jenkins is a community-driven project, and it does not provide user support in the common meaning. +Nevertheless, there is an active community which might be able to help with the issues you experience. +The [Jenkins JIRA](https://issues.jenkins-ci.org/secure/Dashboard.jspa) is **NOT** a support site. +If you need assistance or have general questions, visit us in [chat](https://jenkins.io/chat/), or email one of the user [mailing lists](https://jenkins.io/mailing-lists/). +Also check out the main component's page for specific communication channel references. + +Please be aware that most Jenkins components are maintained by volunteers. +This means there is no guarantee of a timely response or issue resolution. +If you want commercial support for Jenkins, +there are companies which offer it. +See the list on [this Wiki page](https://wiki.jenkins.io/display/JENKINS/Commercial+Support). +Note that this list should not be viewed as endorsement by the Jenkins project, the list is provided for reference. \ No newline at end of file