mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-12 02:15:01 +00:00
Add Scope Namespacing support for SSH Servers (Nodes) (#69213)
Consume New SSHServer funcs (#69215)
This commit is contained in:
@@ -25,7 +25,7 @@ import (
|
||||
kclient "sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/gravitational/teleport/api/client"
|
||||
"github.com/gravitational/teleport/api/defaults"
|
||||
presencev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/presence/v1"
|
||||
"github.com/gravitational/teleport/api/types"
|
||||
resourcesv1 "github.com/gravitational/teleport/integrations/operator/apis/resources/v1"
|
||||
"github.com/gravitational/teleport/integrations/operator/controllers"
|
||||
@@ -40,7 +40,7 @@ type openSSHEICEServerClient struct {
|
||||
|
||||
// Get gets the Teleport OpenSSHEICE server of a given name.
|
||||
func (r openSSHEICEServerClient) Get(ctx context.Context, key reconcilers.ResourceKey) (types.Server, error) {
|
||||
server, err := r.teleportClient.GetNode(ctx, defaults.Namespace, key.Name)
|
||||
server, err := r.teleportClient.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: key.Name, Scope: key.Scope}.Build())
|
||||
if err != nil {
|
||||
return server, trace.Wrap(err)
|
||||
}
|
||||
@@ -68,7 +68,7 @@ func (r openSSHEICEServerClient) Update(ctx context.Context, server types.Server
|
||||
|
||||
// Delete deletes a Teleport OpenSSHEICE server.
|
||||
func (r openSSHEICEServerClient) Delete(ctx context.Context, key reconcilers.ResourceKey) error {
|
||||
return trace.Wrap(r.teleportClient.DeleteNode(ctx, defaults.Namespace, key.Name))
|
||||
return trace.Wrap(r.teleportClient.DeleteSSHServer(ctx, presencev1.DeleteSSHServerRequest_builder{Name: key.Name, Scope: key.Scope}.Build()))
|
||||
}
|
||||
|
||||
// NewOpenSSHEICEServerV2Reconciler instantiates a new Kubernetes controller
|
||||
|
||||
@@ -27,7 +27,7 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
kclient "sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/gravitational/teleport/api/defaults"
|
||||
presencev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/presence/v1"
|
||||
"github.com/gravitational/teleport/api/types"
|
||||
resourcesv1 "github.com/gravitational/teleport/integrations/operator/apis/resources/v1"
|
||||
"github.com/gravitational/teleport/integrations/operator/controllers/reconcilers"
|
||||
@@ -72,11 +72,11 @@ func (g *opensshEICEServerV2TestingPrimitives) CreateTeleportResource(ctx contex
|
||||
}
|
||||
|
||||
func (g *opensshEICEServerV2TestingPrimitives) GetTeleportResource(ctx context.Context, name string) (types.Server, error) {
|
||||
return g.setup.TeleportClient.GetNode(ctx, defaults.Namespace, name)
|
||||
return g.setup.TeleportClient.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: name}.Build())
|
||||
}
|
||||
|
||||
func (g *opensshEICEServerV2TestingPrimitives) DeleteTeleportResource(ctx context.Context, name string) error {
|
||||
return trace.Wrap(g.setup.TeleportClient.DeleteNode(ctx, defaults.Namespace, name))
|
||||
return trace.Wrap(g.setup.TeleportClient.DeleteSSHServer(ctx, presencev1.DeleteSSHServerRequest_builder{Name: name}.Build()))
|
||||
}
|
||||
|
||||
func (g *opensshEICEServerV2TestingPrimitives) CreateKubernetesResource(ctx context.Context, name string) error {
|
||||
|
||||
@@ -25,7 +25,7 @@ import (
|
||||
kclient "sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/gravitational/teleport/api/client"
|
||||
"github.com/gravitational/teleport/api/defaults"
|
||||
presencev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/presence/v1"
|
||||
"github.com/gravitational/teleport/api/types"
|
||||
resourcesv1 "github.com/gravitational/teleport/integrations/operator/apis/resources/v1"
|
||||
"github.com/gravitational/teleport/integrations/operator/controllers"
|
||||
@@ -40,7 +40,7 @@ type openSSHServerClient struct {
|
||||
|
||||
// Get gets the Teleport OpenSSH server of a given name.
|
||||
func (r openSSHServerClient) Get(ctx context.Context, key reconcilers.ResourceKey) (types.Server, error) {
|
||||
server, err := r.teleportClient.GetNode(ctx, defaults.Namespace, key.Name)
|
||||
server, err := r.teleportClient.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: key.Name, Scope: key.Scope}.Build())
|
||||
if err != nil {
|
||||
return server, trace.Wrap(err)
|
||||
}
|
||||
@@ -68,7 +68,7 @@ func (r openSSHServerClient) Update(ctx context.Context, server types.Server) er
|
||||
|
||||
// Delete deletes a Teleport OpenSSH server.
|
||||
func (r openSSHServerClient) Delete(ctx context.Context, key reconcilers.ResourceKey) error {
|
||||
return trace.Wrap(r.teleportClient.DeleteNode(ctx, defaults.Namespace, key.Name))
|
||||
return trace.Wrap(r.teleportClient.DeleteSSHServer(ctx, presencev1.DeleteSSHServerRequest_builder{Name: key.Name, Scope: key.Scope}.Build()))
|
||||
}
|
||||
|
||||
// NewOpenSSHServerV2Reconciler instantiates a new Kubernetes controller
|
||||
|
||||
@@ -27,7 +27,7 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
kclient "sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/gravitational/teleport/api/defaults"
|
||||
presencev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/presence/v1"
|
||||
"github.com/gravitational/teleport/api/types"
|
||||
resourcesv1 "github.com/gravitational/teleport/integrations/operator/apis/resources/v1"
|
||||
"github.com/gravitational/teleport/integrations/operator/controllers/reconcilers"
|
||||
@@ -64,11 +64,11 @@ func (g *opensshServerV2TestingPrimitives) CreateTeleportResource(ctx context.Co
|
||||
}
|
||||
|
||||
func (g *opensshServerV2TestingPrimitives) GetTeleportResource(ctx context.Context, name string) (types.Server, error) {
|
||||
return g.setup.TeleportClient.GetNode(ctx, defaults.Namespace, name)
|
||||
return g.setup.TeleportClient.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: name}.Build())
|
||||
}
|
||||
|
||||
func (g *opensshServerV2TestingPrimitives) DeleteTeleportResource(ctx context.Context, name string) error {
|
||||
return trace.Wrap(g.setup.TeleportClient.DeleteNode(ctx, defaults.Namespace, name))
|
||||
return trace.Wrap(g.setup.TeleportClient.DeleteSSHServer(ctx, presencev1.DeleteSSHServerRequest_builder{Name: name}.Build()))
|
||||
}
|
||||
|
||||
func (g *opensshServerV2TestingPrimitives) CreateKubernetesResource(ctx context.Context, name string) error {
|
||||
|
||||
@@ -25,7 +25,7 @@ import (
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/gravitational/teleport/api/defaults"
|
||||
presencev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/presence/v1"
|
||||
"github.com/gravitational/teleport/api/types"
|
||||
)
|
||||
|
||||
@@ -34,7 +34,7 @@ func (s *TerraformSuiteOSS) TestOpenSSHServer() {
|
||||
s.T().Cleanup(cancel)
|
||||
|
||||
checkServerDestroyed := func(state *terraform.State) error {
|
||||
_, err := s.client.GetNode(ctx, defaults.Namespace, "test")
|
||||
_, err := s.client.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: "test"}.Build())
|
||||
if trace.IsNotFound(err) {
|
||||
return nil
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func (s *TerraformSuiteOSS) TestOpenSSHServerNameless() {
|
||||
|
||||
checkServerDestroyed := func(state *terraform.State) error {
|
||||
// The name is a UUID but we can lookup by hostname as well.
|
||||
_, err := s.client.GetNode(ctx, defaults.Namespace, "test.local")
|
||||
_, err := s.client.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: "test.local"}.Build())
|
||||
if trace.IsNotFound(err) {
|
||||
return nil
|
||||
}
|
||||
@@ -159,7 +159,7 @@ func (s *TerraformSuiteOSS) TestImportOpenSSHServer() {
|
||||
require.NoError(s.T(), err)
|
||||
|
||||
require.Eventually(s.T(), func() bool {
|
||||
_, err = s.client.GetNode(ctx, defaults.Namespace, server.GetName())
|
||||
_, err = s.client.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: server.GetName(), Scope: server.GetScope()}.Build())
|
||||
if trace.IsNotFound(err) {
|
||||
return false
|
||||
}
|
||||
@@ -193,7 +193,7 @@ func (s *TerraformSuiteOSS) TestOpenSSHEICEServer() {
|
||||
s.T().Cleanup(cancel)
|
||||
|
||||
checkServerDestroyed := func(state *terraform.State) error {
|
||||
_, err := s.client.GetNode(ctx, defaults.Namespace, "test")
|
||||
_, err := s.client.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: "test"}.Build())
|
||||
if trace.IsNotFound(err) {
|
||||
return nil
|
||||
}
|
||||
@@ -288,7 +288,7 @@ func (s *TerraformSuiteOSS) TestImportOpenSSHEICEServer() {
|
||||
require.NoError(s.T(), err)
|
||||
|
||||
require.Eventually(s.T(), func() bool {
|
||||
_, err = s.client.GetNode(ctx, defaults.Namespace, server.GetName())
|
||||
_, err = s.client.GetSSHServer(ctx, presencev1.GetSSHServerRequest_builder{Name: server.GetName(), Scope: server.GetScope()}.Build())
|
||||
if trace.IsNotFound(err) {
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user