Profiles API
nyl.profiles.config
KubeconfigFromSsh
dataclass
Represents how to obtain the Kubeconfig from an SSH connection.
context: str | None = None
class-attribute
instance-attribute
The context to use from the Kubeconfig file. If not specified, the current context is used.
host: str
instance-attribute
The remote host to connect to.
identity_file: str | None = None
class-attribute
instance-attribute
An SSH private key file to use for authentication.
path: str
instance-attribute
The path where the Kubeconfig can be retrieved from.
port: int = 22
class-attribute
instance-attribute
SSH port to use.
replace_apiserver_hostname: str | None = None
class-attribute
instance-attribute
Replace the hostname in the apiserver configuration of the Kubeconfig. This is useful for example with K3s when
reading reading the /etc/rancher/k3s/k3s.yaml
file from a remote host, but the API server in that file is not
reachable from that machine.
Note that if the host in the retrieve Kubeconfig is localhost
, 0.0.0.0
or 127.0.0.1
, it will be automatically
replaced with the specified host
that was also SSH-ed to, unless this option is set.
sudo: bool = False
class-attribute
instance-attribute
Use sudo cat
to retrieve the file instead of ust cat
.
user: str
instance-attribute
The username to connect to the remote host with.
LocalKubeconfig
dataclass
Use the local Kubeconfig file, either from the default location or a custom path specified in the environment.
context: str | None = None
class-attribute
instance-attribute
The context to use from the Kubeconfig file. If not specified, the current context is used.
path: str | None = None
class-attribute
instance-attribute
Path to the Kubernetes configuration file. Relative to the profile configuration file. If not specified, it falls
back to the default location (per KUBECONFIG
or otherwise ~/.kube/config
).
Profile
dataclass
A profile embodies a set of configurations for a Kubernetes cluster that resources will be deployed to using Nyl. It defines the Kubeconfig to use, whether to use an SSH tunnel to reach the cluster, as well as global values that are accessible during rendering any manifest with the profile activated.
kubeconfig: LocalKubeconfig | KubeconfigFromSsh = field(default_factory=lambda: LocalKubeconfig())
class-attribute
instance-attribute
Describe how the Kubeconfig is to be obtained.
tunnel: SshTunnel | None = None
class-attribute
instance-attribute
Describe how to create an SSH tunnel to reach the Kubernetes cluster API.
values: dict[str, Any] = field(default_factory=dict)
class-attribute
instance-attribute
Global values that are accessible during manifest rendering under the values
object.
ProfileConfig
dataclass
load(file=None, /, *, cwd=None, required=True)
staticmethod
Load the profiles configuration from the given file or the default file. If the configuration file does not
exist, an error is raised unless required is set to False
, in which case an empty configuration is
returned.
SshTunnel
dataclass
Configuration for an SSH tunnel.
host: str
instance-attribute
The host to tunnel through.
identity_file: str | None = None
class-attribute
instance-attribute
An SSH private key file to use for authentication.
user: str
instance-attribute
The username to connect to the remote host with.