sshclient

package
v0.0.0-...-0a271de Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2025 License: AGPL-3.0 Imports: 20 Imported by: 2

Documentation

Overview

Package sshclient implements the API endpoint required for Juju clients that wish to make SSH connections to Juju managed machines.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(registry facade.FacadeRegistry)

Register is called to expose a package of facades onto a given registry.

Types

type Backend

type Backend interface {
	GetMachineForEntity(tag string) (SSHMachine, error)
	GetSSHHostKeys(names.MachineTag) (state.SSHHostKeys, error)
	ModelTag() names.ModelTag
	ControllerTag() names.ControllerTag
	Model() (Model, error)
	CloudSpec(context.Context) (environscloudspec.CloudSpec, error)
}

Backend defines the State API used by the sshclient facade.

type Broker

type Broker interface {
	GetSecretToken(ctx context.Context, name string) (string, error)
}

Broker is a subset of caas broker.

type Facade

type Facade struct {
	// contains filtered or unexported fields
}

Facade implements the API required by the sshclient worker.

func (*Facade) AllAddresses

func (facade *Facade) AllAddresses(ctx context.Context, args params.Entities) (params.SSHAddressesResults, error)

AllAddresses reports all addresses that might have SSH listening for each entity in args. The result is sorted with public addresses first. Machines and units are supported as entity types.

func (*Facade) ModelCredentialForSSH

func (facade *Facade) ModelCredentialForSSH(ctx context.Context) (params.CloudSpecResult, error)

ModelCredentialForSSH returns a cloud spec for ssh purpose. This facade call is only used for k8s model.

func (*Facade) PrivateAddress

func (facade *Facade) PrivateAddress(ctx context.Context, args params.Entities) (params.SSHAddressResults, error)

PrivateAddress reports the preferred private network address for one or more entities. Machines and units are supported.

func (*Facade) Proxy

func (facade *Facade) Proxy(ctx context.Context) (params.SSHProxyResult, error)

Proxy returns whether SSH connections should be proxied through the controller hosts for the model associated with the API connection.

func (*Facade) PublicAddress

func (facade *Facade) PublicAddress(ctx context.Context, args params.Entities) (params.SSHAddressResults, error)

PublicAddress reports the preferred public network address for one or more entities. Machines and units are supported.

func (*Facade) PublicKeys

func (facade *Facade) PublicKeys(ctx context.Context, args params.Entities) (params.SSHPublicKeysResults, error)

PublicKeys returns the public SSH hosts for one or more entities. Machines and units are supported.

type Model

type Model interface {
	ControllerUUID() string
	Type() state.ModelType
}

Model defines a point of use interface for the model from state.

type ModelConfigService

type ModelConfigService interface {
	ModelConfig(ctx context.Context) (*config.Config, error)
}

ModelConfigService is an interface that provides access to the model configuration.

type NetworkService

type NetworkService interface {
	// GetAllSubnets returns all the subnets for the model.
	GetAllSubnets(ctx context.Context) (network.SubnetInfos, error)
}

NetworkService is the interface that is used to interact with the network spaces/subnets.

type SSHMachine

type SSHMachine interface {
	MachineTag() names.MachineTag
	PublicAddress() (network.SpaceAddress, error)
	PrivateAddress() (network.SpaceAddress, error)
	Addresses() network.SpaceAddresses
	AllDeviceSpaceAddresses(context.Context) (network.SpaceAddresses, error)
}

SSHMachine specifies the methods on State.Machine of interest to the SSHClient facade.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL