Skip to content

Commit

Permalink
Merge branch 'main' into third-party-using-mise
Browse files Browse the repository at this point in the history
  • Loading branch information
pmalek authored Mar 19, 2024
2 parents 6cc5c88 + 760e3ac commit 6d6d87b
Show file tree
Hide file tree
Showing 7 changed files with 153 additions and 82 deletions.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/---bug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: "\U0001F41E Bug"
about: Something is not working as intended.
title: ''
labels: bug
assignees: ''

---

## Current Behavior

## Expected Behavior

## Steps To Reproduce

## Operator Version

## `kubectl version`
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/--enhancement---feature---task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: "✨ Enhancement / Feature / Task"
about: 'Some feature is missing or incomplete. '
title: ''
labels: ''
assignees: ''

---

## Problem Statement

...

## Proposed Solution

...

## Additional Information

...

## Acceptance Criteria
- [ ] Lorem ipsum dolor sit amet
17 changes: 17 additions & 0 deletions .github/workflows/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!-- Thanks for sending a pull request! Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#the-pull-request-submit-process and developer guide https://github.com/kubernetes/community/blob/master/contributors/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews
3. Follow the instructions for writing a release note: https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md and ensure your changes are being reflected in CHANGELOG.md for the next upcoming release
-->

**What this PR does / why we need it**:

**Which issue this PR fixes**

**Special notes for your reviewer**:

**PR Readiness Checklist**:

Complete these before marking the PR as `ready to review`:

- [ ] the `CHANGELOG.md` release notes have been updated to reflect significant changes
74 changes: 37 additions & 37 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ require (
github.com/samber/lo v1.39.0
github.com/stretchr/testify v1.9.0
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b
k8s.io/api v0.29.2
k8s.io/apimachinery v0.29.2
k8s.io/client-go v0.29.2
k8s.io/api v0.29.3
k8s.io/apimachinery v0.29.3
k8s.io/client-go v0.29.3
sigs.k8s.io/controller-runtime v0.17.2
sigs.k8s.io/gateway-api v1.0.0
)
Expand Down Expand Up @@ -58,7 +58,7 @@ require (
google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect
gopkg.in/evanphx/json-patch.v5 v5.6.0 // indirect
k8s.io/apiserver v0.29.2 // indirect
k8s.io/apiserver v0.29.3 // indirect
k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect
)

Expand Down Expand Up @@ -112,7 +112,7 @@ require (
github.com/goccy/go-json v0.10.2
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/go-cmp v0.6.0
github.com/google/gofuzz v1.2.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
Expand Down Expand Up @@ -148,10 +148,10 @@ require (
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.29.1
k8s.io/component-base v0.29.2 // indirect
k8s.io/component-base v0.29.3 // indirect
k8s.io/klog/v2 v2.110.1 // indirect
k8s.io/kube-openapi v0.0.0-20240103051144-eec4567ac022 // indirect
k8s.io/kubernetes v1.29.2
k8s.io/kubernetes v1.29.3
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
Expand All @@ -162,34 +162,34 @@ require (
// They can be updated with `./hack/update-k8sio-gomod-replace.sh` script.
// This is a workaround for https://github.com/Kong/gateway-operator/issues/1384.
replace (
k8s.io/api => k8s.io/api v0.29.2
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.2
k8s.io/apimachinery => k8s.io/apimachinery v0.29.2
k8s.io/apiserver => k8s.io/apiserver v0.29.2
k8s.io/cli-runtime => k8s.io/cli-runtime v0.29.2
k8s.io/client-go => k8s.io/client-go v0.29.2
k8s.io/cloud-provider => k8s.io/cloud-provider v0.29.2
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.29.2
k8s.io/code-generator => k8s.io/code-generator v0.29.2
k8s.io/component-base => k8s.io/component-base v0.29.2
k8s.io/component-helpers => k8s.io/component-helpers v0.29.2
k8s.io/controller-manager => k8s.io/controller-manager v0.29.2
k8s.io/cri-api => k8s.io/cri-api v0.29.2
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.29.2
k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.29.2
k8s.io/endpointslice => k8s.io/endpointslice v0.29.2
k8s.io/kms => k8s.io/kms v0.29.2
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.29.2
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.29.2
k8s.io/kube-proxy => k8s.io/kube-proxy v0.29.2
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.29.2
k8s.io/kubectl => k8s.io/kubectl v0.29.2
k8s.io/kubelet => k8s.io/kubelet v0.29.2
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.29.2
k8s.io/metrics => k8s.io/metrics v0.29.2
k8s.io/mount-utils => k8s.io/mount-utils v0.29.2
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.2
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.2
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.29.2
k8s.io/sample-controller => k8s.io/sample-controller v0.29.2
k8s.io/api => k8s.io/api v0.29.3
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.3
k8s.io/apimachinery => k8s.io/apimachinery v0.29.3
k8s.io/apiserver => k8s.io/apiserver v0.29.3
k8s.io/cli-runtime => k8s.io/cli-runtime v0.29.3
k8s.io/client-go => k8s.io/client-go v0.29.3
k8s.io/cloud-provider => k8s.io/cloud-provider v0.29.3
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.29.3
k8s.io/code-generator => k8s.io/code-generator v0.29.3
k8s.io/component-base => k8s.io/component-base v0.29.3
k8s.io/component-helpers => k8s.io/component-helpers v0.29.3
k8s.io/controller-manager => k8s.io/controller-manager v0.29.3
k8s.io/cri-api => k8s.io/cri-api v0.29.3
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.29.3
k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.29.3
k8s.io/endpointslice => k8s.io/endpointslice v0.29.3
k8s.io/kms => k8s.io/kms v0.29.3
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.29.3
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.29.3
k8s.io/kube-proxy => k8s.io/kube-proxy v0.29.3
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.29.3
k8s.io/kubectl => k8s.io/kubectl v0.29.3
k8s.io/kubelet => k8s.io/kubelet v0.29.3
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.29.3
k8s.io/metrics => k8s.io/metrics v0.29.3
k8s.io/mount-utils => k8s.io/mount-utils v0.29.3
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.3
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.3
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.29.3
k8s.io/sample-controller => k8s.io/sample-controller v0.29.3
)
32 changes: 16 additions & 16 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,8 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/certificate-transparency-go v1.1.7 h1:IASD+NtgSTJLPdzkthwvAG1ZVbF2WtFg4IvoA68XGSw=
github.com/google/certificate-transparency-go v1.1.7/go.mod h1:FSSBo8fyMVgqptbfF6j5p/XNdgQftAhSmXcIxV9iphE=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
Expand Down Expand Up @@ -507,24 +507,24 @@ gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o=
gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A=
k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0=
k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg=
k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8=
k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8=
k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU=
k8s.io/apiserver v0.29.2 h1:+Z9S0dSNr+CjnVXQePG8TcBWHr3Q7BmAr7NraHvsMiQ=
k8s.io/apiserver v0.29.2/go.mod h1:B0LieKVoyU7ykQvPFm7XSdIHaCHSzCzQWPFa5bqbeMQ=
k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg=
k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA=
k8s.io/component-base v0.29.2 h1:lpiLyuvPA9yV1aQwGLENYyK7n/8t6l3nn3zAtFTJYe8=
k8s.io/component-base v0.29.2/go.mod h1:BfB3SLrefbZXiBfbM+2H1dlat21Uewg/5qtKOl8degM=
k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw=
k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80=
k8s.io/apiextensions-apiserver v0.29.3 h1:9HF+EtZaVpFjStakF4yVufnXGPRppWFEQ87qnO91YeI=
k8s.io/apiextensions-apiserver v0.29.3/go.mod h1:po0XiY5scnpJfFizNGo6puNU6Fq6D70UJY2Cb2KwAVc=
k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU=
k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU=
k8s.io/apiserver v0.29.3 h1:xR7ELlJ/BZSr2n4CnD3lfA4gzFivh0wwfNfz9L0WZcE=
k8s.io/apiserver v0.29.3/go.mod h1:hrvXlwfRulbMbBgmWRQlFru2b/JySDpmzvQwwk4GUOs=
k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg=
k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0=
k8s.io/component-base v0.29.3 h1:Oq9/nddUxlnrCuuR2K/jp6aflVvc0uDvxMzAWxnGzAo=
k8s.io/component-base v0.29.3/go.mod h1:Yuj33XXjuOk2BAaHsIGHhCKZQAgYKhqIxIjIr2UXYio=
k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
k8s.io/kube-openapi v0.0.0-20240103051144-eec4567ac022 h1:avRdiaB03v88Mfvum2S3BBwkNuTlmuar4LlfO9Hajko=
k8s.io/kube-openapi v0.0.0-20240103051144-eec4567ac022/go.mod h1:sIV51WBTkZrlGOJMCDZDA1IaPBUDTulPpD4y7oe038k=
k8s.io/kubernetes v1.29.2 h1:8hh1cntqdulanjQt7wSSSsJfBgOyx6fUdFWslvGL5m0=
k8s.io/kubernetes v1.29.2/go.mod h1:xZPKU0yO0CBbLTnbd+XGyRmmtmaVuJykDb8gNCkeeUE=
k8s.io/kubernetes v1.29.3 h1:EuOAKN4zpiP+kBx/0e9yS5iBkPSyLml19juOqZxBtDw=
k8s.io/kubernetes v1.29.3/go.mod h1:CP+Z+S9haxyB7J+nV6ywYry4dqlphArPXjcc0CsBVXc=
k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ=
k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/controller-runtime v0.17.2 h1:FwHwD1CTUemg0pW2otk7/U5/i5m2ymzvOXdbeGOUvw0=
Expand Down
67 changes: 40 additions & 27 deletions internal/telemetry/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kong/gateway-operator/modules/manager/scheme"
)

const (
Expand All @@ -28,13 +30,15 @@ type Payload = types.ProviderReport

// CreateManager creates telemetry manager using the provided rest.Config.
func CreateManager(signal string, restConfig *rest.Config, log logr.Logger, payload Payload) (telemetry.Manager, error) {

k, err := kubernetes.NewForConfig(restConfig)
if err != nil {
return nil, fmt.Errorf("failed to create client-go kubernetes client: %w", err)
}

cl, err := client.New(restConfig, client.Options{})
scheme := scheme.Get()
cl, err := client.New(restConfig, client.Options{
Scheme: scheme,
})
if err != nil {
return nil, fmt.Errorf("failed to create controller-runtime's client: %w", err)
}
Expand All @@ -50,8 +54,8 @@ func CreateManager(signal string, restConfig *rest.Config, log logr.Logger, payl
cl,
dyn,
payload,
log,
telemetry.OptManagerPeriod(telemetryPeriod),
telemetry.OptManagerLogger(log),
)
if err != nil {
return nil, err
Expand Down Expand Up @@ -80,9 +84,11 @@ func createManager(
cl client.Client,
dyn dynamic.Interface,
fixedPayload Payload,
log logr.Logger,
opts ...telemetry.OptManager,
) (telemetry.Manager, error) {
m, err := telemetry.NewManager(signal, opts...)
o := append([]telemetry.OptManager{telemetry.OptManagerLogger(log)}, opts...)
m, err := telemetry.NewManager(signal, o...)
if err != nil {
return nil, fmt.Errorf("failed to create telemetry manager: %w", err)
}
Expand All @@ -105,51 +111,58 @@ func createManager(
// Add dataplane count provider to monitor number of dataplanes in the cluster.
p, err := NewDataPlaneCountProvider(dyn, cl.RESTMapper())
if err != nil {
return nil, fmt.Errorf("failed to create dataplane count provider: %w", err)
log.Info("failed to create dataplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add controlplane count provider to monitor number of controlplanes in the cluster.
p, err = NewControlPlaneCountProvider(dyn, cl.RESTMapper())
if err != nil {
return nil, fmt.Errorf("failed to create controlplane count provider: %w", err)
log.Info("failed to create controlplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add aigateway count provider to monitor number of aigateways in the cluster.
p, err = NewAIgatewayCountProvider(dyn, cl.RESTMapper())
if err != nil {
return nil, fmt.Errorf("failed to create aigateway count provider: %w", err)
log.Info("failed to create aigateway count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add dataplane count not from gateway.
p, err = NewStandaloneDataPlaneCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create dataplane count provider: %w", err)
log.Info("failed to create standalone dataplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add controlplane count not from gateway.
p, err = NewStandaloneControlPlaneCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create controlplane count provider: %w", err)
log.Info("failed to create standalone controlplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add dataplane requested replicas count provider to monitor number of requested replicas for dataplanes.
p, err = NewDataPlaneRequestedReplicasCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create dataplane requested replicas count provider: %w", err)
log.Info("failed to create dataplane requested replicas count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add contorlplane requested replicas count provider to monitor number of requested replicas for controlplanes.
// Add controlplane requested replicas count provider to monitor number of requested replicas for controlplanes.
p, err = NewControlPlaneRequestedReplicasCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create controlplane requested replicas count provider: %w", err)
log.Info("failed to create controlplane requested replicas count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

m.AddWorkflow(w)
}
Expand All @@ -158,15 +171,15 @@ func createManager(
w, err := telemetry.NewStateWorkflow()
if err != nil {
return nil, fmt.Errorf("failed to create state workflow: %w", err)
} else {
p, err := provider.NewFixedValueProvider("payload", fixedPayload)
if err != nil {
log.Info("failed to create fixed payload provider", "error", err)
} else {
w.AddProvider(p)
m.AddWorkflow(w)
}
}

p, err := provider.NewFixedValueProvider("payload", fixedPayload)
if err != nil {
return nil, fmt.Errorf("failed to create fixed value provider: %w", err)
}
w.AddProvider(p)

m.AddWorkflow(w)
}

return m, nil
Expand Down
4 changes: 2 additions & 2 deletions internal/telemetry/telemetry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,8 @@ func TestCreateManager(t *testing.T) {
dyn := testdynclient.NewSimpleDynamicClient(scheme, tc.objects...)
m, err := createManager(
types.Signal(SignalPing), k8sclient, ctrlClient, dyn, payload,
logr.Discard(),
telemetry.OptManagerPeriod(time.Hour),
telemetry.OptManagerLogger(logr.Discard()),
)
require.NoError(t, err, "creating telemetry manager failed")
ch := make(chan []byte)
Expand Down Expand Up @@ -457,8 +457,8 @@ func TestTelemetryUpdates(t *testing.T) {
dyn := testdynclient.NewSimpleDynamicClient(scheme, tc.objects...)
m, err := createManager(
types.Signal(SignalPing), k8sclient, ctrlClient, dyn, payload,
logr.Discard(),
telemetry.OptManagerPeriod(time.Hour),
telemetry.OptManagerLogger(logr.Discard()),
)
require.NoError(t, err, "creating telemetry manager failed")
ch := make(chan []byte)
Expand Down

0 comments on commit 6d6d87b

Please sign in to comment.