Skip to content

Release for v0.5.1 #851

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

Merged
merged 51 commits into from
Mar 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
1d03038
:sparkles: support restconfig to target the control plane
Jan 10, 2020
cbaa31a
Create wrapper to explictly set cache
achawki Feb 3, 2020
befff0b
Rename CreateSourceWithFixedCache to NewKindWithFixedCache
Feb 10, 2020
f515d1e
Change NewKindWithFixedCache to NewKindWithCache
kramerul Feb 11, 2020
fd19c6a
Fix linter errors, update and move lint to config file
mcristina422 Feb 11, 2020
37a5c61
Merge pull request #794 from akhinos/issue-650
k8s-ci-robot Feb 17, 2020
56a400d
Add vincepri to maintainers
vincepri Feb 5, 2020
19e72eb
Merge pull request #791 from vincepri/add-vincepri-admin
k8s-ci-robot Feb 19, 2020
308bb88
:bug: respect context in unstructured client
alexeldeib Feb 21, 2020
0ea0ac5
Honor GenerateName during fake client create
tvs Feb 20, 2020
0365740
Make workqueue rate limiter configurable during controller creation
rajathagasthya Dec 11, 2019
8975354
Merge pull request #756 from mengqiy/restconfig
k8s-ci-robot Feb 21, 2020
e00985b
Merge pull request #773 from mcristina422/moreLinters
k8s-ci-robot Feb 21, 2020
f024e45
Construct pointer to cache type for non-pointers only.
DewaldV Oct 31, 2019
0b6855d
Test list type handlings that have a slice of pointers as items field
alvaroaleman Feb 13, 2020
bd6a4b5
Add unittest to the object for objectlist finding logic
alvaroaleman Feb 23, 2020
18763c2
fix: add tests, remove unused variables
alexeldeib Feb 23, 2020
2bcc71a
:bug: Remove unused commented out testutil.go
prateekpandey14 Feb 24, 2020
525a922
Merge pull request #814 from prateekpandey14/fix-386-rm-file
k8s-ci-robot Feb 24, 2020
4c789c1
Merge pull request #815 from tvs/fake-client-generate-name
k8s-ci-robot Feb 24, 2020
59d237f
adding docs/proposals/ folder and sample template
christopherhein Feb 20, 2020
8507812
Merge pull request #809 from christopherhein/chore/add-design-folder
k8s-ci-robot Feb 25, 2020
fd9006b
add: patch status test
alexeldeib Feb 25, 2020
5199146
prune any use of xerrors
Feb 25, 2020
f284dc3
Merge pull request #819 from boddumanohar/issues/590
k8s-ci-robot Feb 25, 2020
0374b8c
Merge pull request #796 from alvaroaleman/construct-pointer-for-non-p…
k8s-ci-robot Feb 26, 2020
daa6f4d
📖 document exposed metrics
djzager Feb 20, 2020
a7df8ba
:sparkles: Take context when getting informer
djzager Oct 28, 2019
74aee23
enable webhook server set-up mTLS service to verify client's certific…
answer1991 Feb 17, 2020
741745a
Merge pull request #663 from djzager/cache-timeout
k8s-ci-robot Feb 26, 2020
9f8aab6
Merge pull request #812 from alexeldeib/ace/unstruct
k8s-ci-robot Feb 26, 2020
39ee87b
fix typo
answer1991 Feb 27, 2020
dc16a48
Add shawn-hurley to approvers
Feb 27, 2020
5c49cc4
:running: Use scheme.Convert to convert unstructrured objects
vincepri Jan 23, 2020
05bc80c
:sparkles: Add controllerutil.EnsureOwnerReference
vincepri Feb 24, 2020
fd64b8f
Merge pull request #811 from djzager/metrics-doc
k8s-ci-robot Mar 2, 2020
814d2ab
🏃 Add verification tools, linter and modules
vincepri Feb 25, 2020
b82a7ea
Merge pull request #816 from vincepri/add-ensure-owner-ref
k8s-ci-robot Mar 2, 2020
cc3327f
Merge pull request #821 from vincepri/add-verifications-tools
k8s-ci-robot Mar 2, 2020
37fe61b
Merge pull request #779 from vincepri/use-scheme-convert
k8s-ci-robot Mar 2, 2020
95c0327
Merge pull request #829 from shawn-hurley/approver-pr
k8s-ci-robot Mar 2, 2020
2361b05
Merge pull request #731 from rajathagasthya/queue-rate-limit
k8s-ci-robot Mar 4, 2020
28f24de
Merge pull request #802 from answer1991/feature/webhook-support-mtls
k8s-ci-robot Mar 4, 2020
528cd19
Webhook support in envtest
alenkacz Jan 22, 2020
bfc9827
Merge pull request #787 from alenkacz/av/envtest-webhook
k8s-ci-robot Mar 5, 2020
ec80e50
📖 reference kubebuilder in README
djzager Feb 25, 2020
1014cbe
Fix testdata imports in pkg/webhook/conversion
munnerz Mar 6, 2020
d0de78d
Merge pull request #843 from munnerz/patch-1
k8s-ci-robot Mar 7, 2020
d88045b
Merge pull request #823 from djzager/p2kubebuilder
k8s-ci-robot Mar 10, 2020
ca1f091
Rename EnsureOwnerReference to SetOwnerReference for consistency
vincepri Mar 9, 2020
5747307
Merge pull request #844 from vincepri/rename-consistency
k8s-ci-robot Mar 10, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@

# Vscode files
.vscode

# Tools binaries.
hack/tools/bin
23 changes: 23 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
linters:
disable-all: true
enable:
- misspell
- structcheck
- golint
- govet
- deadcode
- errcheck
- varcheck
- goconst
- unparam
- ineffassign
- nakedret
- interfacer
- gocyclo
- lll
- dupl
- goimports

linters-settings:
lll:
line-length: 170
dupl:
threshold: 400

run:
timeout: 5m
78 changes: 70 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash

# Copyright 2019 The Kubernetes Authors.
# Copyright 2020 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -14,11 +14,30 @@
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Makefile with some common workflow for dev, build and test
#
# If you update this file, please follow
# https://suva.sh/posts/well-documented-makefiles

## --------------------------------------
## General
## --------------------------------------

SHELL:=/usr/bin/env bash
.DEFAULT_GOAL:=help

##@ General
# Use GOPROXY environment variable if set
GOPROXY := $(shell go env GOPROXY)
ifeq ($(GOPROXY),)
GOPROXY := https://proxy.golang.org
endif
export GOPROXY

# Active module mode, as we use go modules to manage dependencies
export GO111MODULE=on

# Tools.
TOOLS_DIR := hack/tools
TOOLS_BIN_DIR := $(TOOLS_DIR)/bin
GOLANGCI_LINT := $(abspath $(TOOLS_BIN_DIR)/golangci-lint)

# The help will print out all targets with their descriptions organized bellow their categories. The categories are represented by `##@` and the target descriptions by `##`.
# The awk commands is responsible to read the entire set of makefiles included in this invocation, looking for lines of the file as xyz: ## something, and then pretty-format the target and help. Then, if there's a line with ##@ something, that gets pretty-printed as a category.
Expand All @@ -28,9 +47,52 @@
help: ## Display this help
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

##@ Tests
## --------------------------------------
## Testing
## --------------------------------------

.PHONY: test
test: ## Run the script check-everything.sh which will check all
GO111MODULE=on TRACE=1 ./hack/check-everything.sh
test: ## Run the script check-everything.sh which will check all.
TRACE=1 ./hack/check-everything.sh

## --------------------------------------
## Binaries
## --------------------------------------

$(GOLANGCI_LINT): $(TOOLS_DIR)/go.mod # Build golangci-lint from tools folder.
cd $(TOOLS_DIR); go build -tags=tools -o bin/golangci-lint github.com/golangci/golangci-lint/cmd/golangci-lint

## --------------------------------------
## Linting
## --------------------------------------

.PHONY: lint
lint: $(GOLANGCI_LINT) ## Lint codebase.
$(GOLANGCI_LINT) run -v

## --------------------------------------
## Generate
## --------------------------------------

.PHONY: modules
modules: ## Runs go mod to ensure modules are up to date.
go mod tidy
cd $(TOOLS_DIR); go mod tidy

## --------------------------------------
## Cleanup / Verification
## --------------------------------------

.PHONY: clean
clean: ## Cleanup.
$(MAKE) clean-bin

.PHONY: clean-bin
clean-bin: ## Remove all generated binaries.
rm -rf hack/tools/bin

.PHONY: verify-modules
verify-modules: modules
@if !(git diff --quiet HEAD -- go.sum go.mod); then \
echo "go module files are out of date"; exit 1; \
fi
1 change: 1 addition & 0 deletions OWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

approvers:
- controller-runtime-admins
- controller-runtime-maintainers
- controller-runtime-approvers
reviewers:
- controller-runtime-admins
Expand Down
6 changes: 5 additions & 1 deletion OWNERS_ALIASES
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,20 @@ aliases:
- droot
- mengqiy

# non-admin folks who have write-access and can approve any PRs in the repo
controller-runtime-maintainers:
- vincepri

# non-admin folks who can approve any PRs in the repo
controller-runtime-approvers:
- gerred
- shawn-hurley

# folks who can review and LGTM any PRs in the repo (doesn't
# include approvers & admins -- those count too via the OWNERS
# file)
controller-runtime-reviewers:
- alvaroaleman
- shawn-hurley
- joelanford
- alenkacz
- vincepri
Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@

# Kubernetes controller-runtime Project

The Kubernetes controller-runtime Project is a set of go libraries for building Controllers.
The Kubernetes controller-runtime Project is a set of go libraries for building
Controllers. It is leveraged by [Kubebuilder](https://book.kubebuilder.io/) and
[Operator SDK](https://github.com/operator-framework/operator-sdk). Both are
a great place to start for new projects. See
[Kubebuilder's Quick Start](https://book.kubebuilder.io/quick-start.html) to
see how it can be used.

Documentation:

Expand All @@ -11,6 +16,7 @@ Documentation:
- [Creating a manager](https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg/manager#example-New)
- [Creating a controller](https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg/controller#example-New)
- [Examples](https://github.com/kubernetes-sigs/controller-runtime/blob/master/examples)
- [Designs](https://github.com/kubernetes-sigs/controller-runtime/blob/master/designs)

# Versioning, Maintenance, and Compatibility

Expand Down
36 changes: 36 additions & 0 deletions designs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Designs
=======

These are design documents for changes to Controller Runtime They exist
to help document the design processes that go into writing Controller
Runtime, but may not be up-to-date (more below).

Not all changes to Controller Runtime need a design document -- only major
ones. use your best judgement.

When submitting a design document, we encourage having written
a proof-of-concept, and it's perfectly acceptable to submit the
proof-of-concept PR simultaneously with the design document, as the
proof-of-concept process can help iron out wrinkles and can help with the
`Example` section of the template.

## Out-of-Date Designs

**Controller Runtime documentation
[GoDoc](https://godoc.org/sigs.k8s.io/controller-runtime) should be
considered the canonical, update-to-date reference and architectural
documentation** for Controller Runtime.

However, if you see an out-of-date design document, feel free to submit
a PR marking it as such, and add an addendum linking to issues documenting
why things changed. For example:

```markdown

# Out of Date

This change is out of date. It turns out curly braces a frustrating to
type, so we had to abandon functions entirely, and have users specify
custom functionality using strings of Common LISP instead. See #000 for
more information.
```
21 changes: 21 additions & 0 deletions designs/template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Title of the Design
===================

<!-- Describe your change here. This is purposefully freeform: we want
enough information to evaluate the design, but not so much that you're
annoyed by the overall design process and decide to bake cookies instead.
-->

## Example

<!-- Specify an example of how the user would use this. It helps other
contributors get a feel for how this will look in real code, and provides
a good opportunity to evaluate the end-user feel of the code for yourself.

If you find yourself groaning at verbosity, copy-and-pasting a lot, or
writing a bunch of tiny helper functions, it's a good indication that you
might need to re-evaluate the user experience of your design.

This is also a good opportunity to stop and write a proof-of-concept, if
you haven't already, which should help catch practical nits with the
design. -->
8 changes: 6 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,22 @@ require (
github.com/evanphx/json-patch v4.5.0+incompatible
github.com/go-logr/logr v0.1.0
github.com/go-logr/zapr v0.1.0
github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7 // indirect
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
github.com/googleapis/gnostic v0.3.1 // indirect
github.com/imdario/mergo v0.3.6 // indirect
github.com/onsi/ginkgo v1.11.0
github.com/onsi/gomega v1.8.1
github.com/prometheus/client_golang v1.0.0
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/zap v1.10.0
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 // indirect
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
gomodules.xyz/jsonpatch/v2 v2.0.1
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
gopkg.in/fsnotify.v1 v1.4.7
gopkg.in/yaml.v2 v2.2.7 // indirect
k8s.io/api v0.17.2
k8s.io/apiextensions-apiserver v0.17.2
k8s.io/apimachinery v0.17.2
Expand Down
Loading