feat: add Gateway analysers (#764)

* feat: add GatewayClass analyser

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* chore: add a valid GW class object

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* feat: add gw analyzer and switch to controller-runtime client

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* chore: add unit tests for gw analyser

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* chore: replace constants with condition status

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* feat: add httproute analyzer

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* feat: add HTTPRoute individual tests.

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

* docs: add analyzers

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>

---------

Signed-off-by: Aris Boutselis <arisboutselis08@gmail.com>
Signed-off-by: Aris Boutselis <aris.boutselis@senseon.io>
Co-authored-by: Aris Boutselis <arisboutselis08@gmail.com>
This commit is contained in:
Aris Boutselis
2023-11-24 10:09:54 +00:00
committed by GitHub
parent dca5b4710d
commit ec08cac214
14 changed files with 1093 additions and 39 deletions

View File

@@ -20,6 +20,7 @@ import (
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/kubectl/pkg/scheme"
ctrl "sigs.k8s.io/controller-runtime/pkg/client"
)
func (c *Client) GetConfig() *rest.Config {
@@ -34,6 +35,10 @@ func (c *Client) GetRestClient() rest.Interface {
return c.RestClient
}
func (c *Client) GetCtrlClient() ctrl.Client {
return c.CtrlClient
}
func NewClient(kubecontext string, kubeconfig string) (*Client, error) {
var config *rest.Config
config, err := rest.InClusterConfig()
@@ -68,6 +73,11 @@ func NewClient(kubecontext string, kubeconfig string) (*Client, error) {
return nil, err
}
ctrlClient, err := ctrl.New(config, ctrl.Options{})
if err != nil {
return nil, err
}
serverVersion, err := clientSet.ServerVersion()
if err != nil {
return nil, err
@@ -76,6 +86,7 @@ func NewClient(kubecontext string, kubeconfig string) (*Client, error) {
return &Client{
Client: clientSet,
RestClient: restClient,
CtrlClient: ctrlClient,
Config: config,
ServerVersion: serverVersion,
}, nil