package config
Contains data structures, ZIO layers and zio-config descriptors for configuring the zio-k8s client.
Each zio-k8s client module depends on two ZIO modules:
com.coralogix.zio.k8s.client.model.K8sCluster and an sttp.client3.SttpBackend. To use
the default configuration (use kubeconfig if available, otherwise fallback to service account
token), use either asynchttpclient.k8sDefault
or httpclient.k8sDefault
depending on your
chosen sttp backend.
Manual configuration is possible by providing a K8sClusterConfig value to both the
k8sCluster layer and either asynchttpclient.k8sSttpClient
or httpclient.k8sSttpClient
.
Instead of manually providing the configuration, zio-config descriptors are available to load them from any supported source.
- Alphabetic
- By Inheritance
- config
- Descriptors
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
trait
Descriptors extends AnyRef
Defines ZIO Config descriptors for all the configuration data types of zio-k8s
- final case class ExecConfig(apiVersion: String, command: String, env: Option[Set[ExecEnv]], args: Option[List[String]], installHint: Option[String], provideClusterInfo: Option[Boolean]) extends Product with Serializable
- final case class ExecCredentialStatus(token: Option[String], certificate: Option[ClientCertificates]) extends Product with Serializable
- final case class ExecCredentials(kind: String, apiVersion: String, status: ExecCredentialStatus) extends Product with Serializable
- final case class ExecEnv(name: String, value: String) extends Product with Serializable
-
sealed
trait
K8sAuthentication extends AnyRef
Type of authentication to use with the Kubernetes cluster
-
case class
K8sClientConfig(debug: Boolean, serverCertificate: K8sServerCertificate) extends Product with Serializable
Configuration for the HTTP connection towards the Kubernetes API
Configuration for the HTTP connection towards the Kubernetes API
- debug
Enables detailed debug logging
- serverCertificate
The server certificate to use
-
case class
K8sClusterConfig(host: Uri, authentication: K8sAuthentication, client: K8sClientConfig) extends Product with Serializable
Configures the zio-k8s client
Configures the zio-k8s client
This is the top level configuration class.
- host
URL of the Kubernetes API
- authentication
Authentication method to use
- client
HTTP client configuration
-
sealed
trait
K8sServerCertificate extends AnyRef
Configured Kubernetes server certifications
Configured Kubernetes server certifications
K8sServerCertificate.Insecure should only be used for testing purposes.
-
sealed
trait
KeySource extends AnyRef
Abstraction for configuring keys
- case class Kubeconfig(clusters: List[KubeconfigCluster], contexts: List[KubeconfigContext], users: List[KubeconfigUser], current-context: String) extends Product with Serializable
- case class KubeconfigCluster(name: String, cluster: KubeconfigClusterInfo) extends Product with Serializable
- case class KubeconfigClusterInfo(server: String, certificate-authority: Option[String], certificate-authority-data: Option[String]) extends Product with Serializable
- case class KubeconfigContext(name: String, context: KubeconfigContextInfo) extends Product with Serializable
- case class KubeconfigContextInfo(cluster: String, user: String, namespace: Option[String]) extends Product with Serializable
- case class KubeconfigUser(name: String, user: KubeconfigUserInfo) extends Product with Serializable
- case class KubeconfigUserInfo(client-certificate: Option[String], client-certificate-data: Option[String], client-key: Option[String], client-key-data: Option[String], token: Option[String], username: Option[String], password: Option[String], exec: Option[ExecConfig]) extends Product with Serializable
Value Members
-
val
clusterConfigDescriptor: Config[K8sClusterConfig]
ZIO Config descriptor for K8sClusterConfig
ZIO Config descriptor for K8sClusterConfig
- Definition Classes
- Descriptors
-
val
defaultConfigChain: ZLayer[Any, Throwable, K8sClusterConfig]
Layer producing a K8sClusterConfig that first tries to load a kubeconfig and if it cannot find one fallbacks to using the default service account token.
Layer producing a K8sClusterConfig that first tries to load a kubeconfig and if it cannot find one fallbacks to using the default service account token.
For more customization see kubeconfig and serviceAccount or provide a K8sClusterConfig manually.
- def fromKubeconfig(kubeconfig: Kubeconfig, configPath: Option[Path], context: Option[String], debug: Boolean, disableHostnameVerification: Boolean): ZIO[Any, Throwable, K8sClusterConfig]
-
val
k8sCluster: ZLayer[K8sClusterConfig, Throwable, K8sCluster]
Layer producing a com.coralogix.zio.k8s.client.model.K8sCluster from a K8sClusterConfig
Layer producing a com.coralogix.zio.k8s.client.model.K8sCluster from a K8sClusterConfig
This can be used to either set up from a configuration source with zio-config or provide the hostname and token programmatically for the Kubernetes client.
-
def
kubeconfig(context: Option[String] = None, debug: Boolean = false, disableHostnameVerification: Boolean = false): Layer[Throwable, K8sClusterConfig]
Layer producing a K8sClusterConfig by loading a kubeconfig file
Layer producing a K8sClusterConfig by loading a kubeconfig file
If the KUBECONFIG environment variable is set, that will be used as the kubeconfig file's path, otherwise ~/.kube/config based on the current user's home directory.
To use a specific kubeconfig file path, use kubeconfigFile.
- context
Override the current context in the configuration file and use another one
- debug
Enable debug request/response logging
- disableHostnameVerification
Disables hostname verification on the SSL connection
-
def
kubeconfigFile(configPath: Path, context: Option[String] = None, debug: Boolean = false, disableHostnameVerification: Boolean = false): ZLayer[Any, Throwable, K8sClusterConfig]
Layer setting up a com.coralogix.zio.k8s.client.model.K8sCluster by loading a specific kubeconfig file
Layer setting up a com.coralogix.zio.k8s.client.model.K8sCluster by loading a specific kubeconfig file
- configPath
Path to the kubeconfig file to load
- context
Override the current context in the configuration file and use another one
- debug
Enable debug request/response logging
- disableHostnameVerification
Disables hostname verification on the SSL connection
- def kubeconfigFromString(configString: String, context: Option[String] = None, debug: Boolean = false, disableHostnameVerification: Boolean = false): ZIO[Any, Throwable, K8sClusterConfig]
-
def
serviceAccount(debug: Boolean = false): ZLayer[Any, Nothing, K8sClusterConfig]
Layer producing a K8sClusterConfig using the default service account when running from inside a pod.
Layer producing a K8sClusterConfig using the default service account when running from inside a pod.
- debug
Enable debug request/response logging
- object ExecConfig extends Serializable
- object ExecCredentials extends Serializable
- object ExecEnv extends Serializable
- object K8sAuthentication
- object K8sServerCertificate
- object KeySource
- object Kubeconfig extends Serializable
- object KubeconfigCluster extends Serializable
- object KubeconfigClusterInfo extends Serializable
- object KubeconfigContext extends Serializable
- object KubeconfigContextInfo extends Serializable
- object KubeconfigUser extends Serializable
- object KubeconfigUserInfo extends Serializable
- object SSL