Files
netbird-kubernetes-operator/.golangci.yml
T
Philip LaineandGitHub ea2dafd5a3 Add network egress resource (#357)
This change adds a new import resource which enables exposing Netbird
resources as Kubernetes services. This remove the need to add sidecars
to every pod.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added a new `NetworkEgress` custom resource (`netbird.io/v1alpha1`)
with CRD, schema validation, and status/conditions.
* Extended controller functionality to create egress services and
translate egress rules into import `EndpointSlice` resources; egress
pods now include a kube-egress-forwarder sidecar.
* **Bug Fixes**
* Added missing deep-copy and declarative apply support for the new
`NetworkEgress` API types.
* **Documentation**
* Updated README/API reference and added example manifests for
`NetworkEgress` (including IP/FQDN target usage).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Philip Laine <philip.laine@gmail.com>
2026-07-17 08:06:53 +02:00

118 lines
3.2 KiB
YAML

version: "2"
linters:
default: none
enable:
- copyloopvar
- dupl
- errcheck
- ginkgolinter
- gocyclo
- govet
- ineffassign
- misspell
- nakedret
- prealloc
- revive
- staticcheck
- unconvert
- unparam
- unused
- importas
- goheader
settings:
revive:
rules:
- name: comment-spacings
staticcheck:
checks: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022", "-QF1008", "-SA1019"]
importas:
alias:
- pkg: github.com/netbirdio/netbird/shared/management/client/rest
alias: netbird
- pkg: github.com/netbirdio/kubernetes-operator/internal/webhook/v1
alias: nbwebhookv1
- pkg: github.com/netbirdio/kubernetes-operator/api/v1
alias: nbv1
- pkg: github.com/netbirdio/kubernetes-operator/api/v1alpha1
alias: nbv1alpha1
- pkg: github.com/netbirdio/kubernetes-operator/pkg/applyconfigurations/api/v1alpha1
alias: nbv1alpha1ac
- pkg: sigs.k8s.io/controller-runtime
alias: ctrl
- pkg: sigs.k8s.io/controller-runtime/pkg/log
alias: logf
- pkg: k8s.io/apimachinery/pkg/api/errors
alias: kerrors
- pkg: k8s.io/client-go/kubernetes/scheme
alias: clientgoscheme
- pkg: k8s.io/apimachinery/pkg/runtime
alias: kruntime
- pkg: k8s.io/apimachinery/pkg/util/runtime
alias: kruntimeutil
- pkg: sigs.k8s.io/controller-runtime/pkg/metrics/server
alias: metricsserver
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1
alias: metav1
- pkg: k8s.io/api/core/v1
alias: corev1
- pkg: k8s.io/api/rbac/v1
alias: rbacv1
- pkg: k8s.io/api/apps/v1
alias: appsv1
- pkg: k8s.io/api/admission/v1
alias: admissionv1
- pkg: k8s.io/api/policy/v1
alias: policyv1
- pkg: "k8s.io/api/discovery/v1"
alias: discoveryv1
- pkg: k8s.io/client-go/applyconfigurations/meta/v1
alias: metav1ac
- pkg: k8s.io/client-go/applyconfigurations/core/v1
alias: corev1ac
- pkg: k8s.io/client-go/applyconfigurations/rbac/v1
alias: rbacv1ac
- pkg: k8s.io/client-go/applyconfigurations/apps/v1
alias: appsv1ac
- pkg: k8s.io/client-go/applyconfigurations/policy/v1
alias: policyv1ac
- pkg: k8s.io/client-go/applyconfigurations/discovery/v1
alias: discoveryv1ac
- pkg: sigs.k8s.io/gateway-api/apis/v1
alias: gwv1
- pkg: sigs.k8s.io/gateway-api/apis/v1alpha2
alias: gwv1alpha2
no-extra-aliases: true
goheader:
template: |-
SPDX-License-Identifier: BSD-3-Clause
exclusions:
generated: lax
rules:
- linters:
- dupl
path: internal/*
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gci
- gofmt
settings:
gci:
sections:
- blank
- standard
- prefix(golang.org/x)
- default
- prefix(github.com/netbirdio)
- localmodule
no-inline-comments: true
no-prefix-comments: true
custom-order: true