nixos: use only URI fragment in manual options links
This commit is contained in:
@@ -30,7 +30,7 @@ $ export \
|
|||||||
```
|
```
|
||||||
|
|
||||||
The second mechanism is to add the OpenCL driver package to
|
The second mechanism is to add the OpenCL driver package to
|
||||||
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages).
|
[](#opt-hardware.opengl.extraPackages).
|
||||||
This links the ICD file under `/run/opengl-driver`, where it will be visible
|
This links the ICD file under `/run/opengl-driver`, where it will be visible
|
||||||
to the ICD loader.
|
to the ICD loader.
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ Platform Vendor Advanced Micro Devices, Inc.
|
|||||||
Modern AMD [Graphics Core
|
Modern AMD [Graphics Core
|
||||||
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
|
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
|
||||||
supported through the rocm-opencl-icd package. Adding this package to
|
supported through the rocm-opencl-icd package. Adding this package to
|
||||||
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages)
|
[](#opt-hardware.opengl.extraPackages)
|
||||||
enables OpenCL support:
|
enables OpenCL support:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
@@ -71,7 +71,7 @@ proprietary Intel OpenCL runtime, in the intel-ocl package, is an
|
|||||||
alternative for Gen7 GPUs.
|
alternative for Gen7 GPUs.
|
||||||
|
|
||||||
The intel-compute-runtime, beignet, or intel-ocl package can be added to
|
The intel-compute-runtime, beignet, or intel-ocl package can be added to
|
||||||
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages)
|
[](#opt-hardware.opengl.extraPackages)
|
||||||
to enable OpenCL support. For example, for Gen8 and later GPUs, the following
|
to enable OpenCL support. For example, for Gen8 and later GPUs, the following
|
||||||
configuration can be used:
|
configuration can be used:
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ compute API for GPUs. It is used directly by games or indirectly though
|
|||||||
compatibility layers like
|
compatibility layers like
|
||||||
[DXVK](https://github.com/doitsujin/dxvk/wiki).
|
[DXVK](https://github.com/doitsujin/dxvk/wiki).
|
||||||
|
|
||||||
By default, if [`hardware.opengl.driSupport`](options.html#opt-hardware.opengl.driSupport)
|
By default, if [](#opt-hardware.opengl.driSupport)
|
||||||
is enabled, mesa is installed and provides Vulkan for supported hardware.
|
is enabled, mesa is installed and provides Vulkan for supported hardware.
|
||||||
|
|
||||||
Similar to OpenCL, Vulkan drivers are loaded through the *Installable
|
Similar to OpenCL, Vulkan drivers are loaded through the *Installable
|
||||||
@@ -108,7 +108,7 @@ $ export \
|
|||||||
```
|
```
|
||||||
|
|
||||||
The second mechanism is to add the Vulkan driver package to
|
The second mechanism is to add the Vulkan driver package to
|
||||||
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages).
|
[](#opt-hardware.opengl.extraPackages).
|
||||||
This links the ICD file under `/run/opengl-driver`, where it will be
|
This links the ICD file under `/run/opengl-driver`, where it will be
|
||||||
visible to the ICD loader.
|
visible to the ICD loader.
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ Modern AMD [Graphics Core
|
|||||||
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
|
Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
|
||||||
supported through either radv, which is part of mesa, or the amdvlk
|
supported through either radv, which is part of mesa, or the amdvlk
|
||||||
package. Adding the amdvlk package to
|
package. Adding the amdvlk package to
|
||||||
[`hardware.opengl.extraPackages`](options.html#opt-hardware.opengl.extraPackages)
|
[](#opt-hardware.opengl.extraPackages)
|
||||||
makes amdvlk the default driver and hides radv and lavapipe from the device list.
|
makes amdvlk the default driver and hides radv and lavapipe from the device list.
|
||||||
A specific driver can be forced as follows:
|
A specific driver can be forced as follows:
|
||||||
|
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ services.kubernetes.roles = [ "master" "node" ];
|
|||||||
```
|
```
|
||||||
|
|
||||||
Note: Assigning either role will also default both
|
Note: Assigning either role will also default both
|
||||||
[`services.kubernetes.flannel.enable`](options.html#opt-services.kubernetes.flannel.enable)
|
[](#opt-services.kubernetes.flannel.enable)
|
||||||
and [`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts)
|
and [](#opt-services.kubernetes.easyCerts)
|
||||||
to true. This sets up flannel as CNI and activates automatic PKI bootstrapping.
|
to true. This sets up flannel as CNI and activates automatic PKI bootstrapping.
|
||||||
|
|
||||||
As of kubernetes 1.10.X it has been deprecated to open non-tls-enabled
|
As of kubernetes 1.10.X it has been deprecated to open non-tls-enabled
|
||||||
@@ -48,12 +48,12 @@ ports on kubernetes components. Thus, from NixOS 19.03 all plain HTTP
|
|||||||
ports have been disabled by default. While opening insecure ports is
|
ports have been disabled by default. While opening insecure ports is
|
||||||
still possible, it is recommended not to bind these to other interfaces
|
still possible, it is recommended not to bind these to other interfaces
|
||||||
than loopback. To re-enable the insecure port on the apiserver, see options:
|
than loopback. To re-enable the insecure port on the apiserver, see options:
|
||||||
[`services.kubernetes.apiserver.insecurePort`](options.html#opt-services.kubernetes.apiserver.insecurePort) and
|
[](#opt-services.kubernetes.apiserver.insecurePort) and
|
||||||
[`services.kubernetes.apiserver.insecureBindAddress`](options.html#opt-services.kubernetes.apiserver.insecureBindAddress)
|
[](#opt-services.kubernetes.apiserver.insecureBindAddress)
|
||||||
|
|
||||||
::: {.note}
|
::: {.note}
|
||||||
As of NixOS 19.03, it is mandatory to configure:
|
As of NixOS 19.03, it is mandatory to configure:
|
||||||
[`services.kubernetes.masterAddress`](options.html#opt-services.kubernetes.masterAddress).
|
[](#opt-services.kubernetes.masterAddress).
|
||||||
The masterAddress must be resolveable and routeable by all cluster nodes.
|
The masterAddress must be resolveable and routeable by all cluster nodes.
|
||||||
In single node clusters, this can be set to `localhost`.
|
In single node clusters, this can be set to `localhost`.
|
||||||
:::
|
:::
|
||||||
@@ -69,19 +69,19 @@ Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/).
|
|||||||
|
|
||||||
The NixOS kubernetes module provides an option for automatic certificate
|
The NixOS kubernetes module provides an option for automatic certificate
|
||||||
bootstrapping and configuration,
|
bootstrapping and configuration,
|
||||||
[`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts).
|
[](#opt-services.kubernetes.easyCerts).
|
||||||
The PKI bootstrapping process involves setting up a certificate authority (CA)
|
The PKI bootstrapping process involves setting up a certificate authority (CA)
|
||||||
daemon (cfssl) on the kubernetes master node. cfssl generates a CA-cert
|
daemon (cfssl) on the kubernetes master node. cfssl generates a CA-cert
|
||||||
for the cluster, and uses the CA-cert for signing subordinate certs issued
|
for the cluster, and uses the CA-cert for signing subordinate certs issued
|
||||||
to each of the cluster components. Subsequently, the certmgr daemon monitors
|
to each of the cluster components. Subsequently, the certmgr daemon monitors
|
||||||
active certificates and renews them when needed. For single node Kubernetes
|
active certificates and renews them when needed. For single node Kubernetes
|
||||||
clusters, setting [`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts)
|
clusters, setting [](#opt-services.kubernetes.easyCerts)
|
||||||
= true is sufficient and no further action is required. For joining extra node
|
= true is sufficient and no further action is required. For joining extra node
|
||||||
machines to an existing cluster on the other hand, establishing initial
|
machines to an existing cluster on the other hand, establishing initial
|
||||||
trust is mandatory.
|
trust is mandatory.
|
||||||
|
|
||||||
To add new nodes to the cluster: On any (non-master) cluster node where
|
To add new nodes to the cluster: On any (non-master) cluster node where
|
||||||
[`services.kubernetes.easyCerts`](options.html#opt-services.kubernetes.easyCerts)
|
[](#opt-services.kubernetes.easyCerts)
|
||||||
is enabled, the helper script `nixos-kubernetes-node-join` is available on PATH.
|
is enabled, the helper script `nixos-kubernetes-node-join` is available on PATH.
|
||||||
Given a token on stdin, it will copy the token to the kubernetes secrets directory
|
Given a token on stdin, it will copy the token to the kubernetes secrets directory
|
||||||
and restart the certmgr service. As requested certificates are issued, the
|
and restart the certmgr service. As requested certificates are issued, the
|
||||||
@@ -96,7 +96,7 @@ In order to interact with an RBAC-enabled cluster as an administrator,
|
|||||||
one needs to have cluster-admin privileges. By default, when easyCerts
|
one needs to have cluster-admin privileges. By default, when easyCerts
|
||||||
is enabled, a cluster-admin kubeconfig file is generated and linked into
|
is enabled, a cluster-admin kubeconfig file is generated and linked into
|
||||||
`/etc/kubernetes/cluster-admin.kubeconfig` as determined by
|
`/etc/kubernetes/cluster-admin.kubeconfig` as determined by
|
||||||
[`services.kubernetes.pki.etcClusterAdminKubeconfig`](options.html#opt-services.kubernetes.pki.etcClusterAdminKubeconfig).
|
[](#opt-services.kubernetes.pki.etcClusterAdminKubeconfig).
|
||||||
`export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig` will make
|
`export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig` will make
|
||||||
kubectl use this kubeconfig to access and authenticate the cluster. The
|
kubectl use this kubeconfig to access and authenticate the cluster. The
|
||||||
cluster-admin kubeconfig references an auto-generated keypair owned by
|
cluster-admin kubeconfig references an auto-generated keypair owned by
|
||||||
|
|||||||
@@ -42,14 +42,14 @@ something as a kernel module).
|
|||||||
|
|
||||||
Kernel modules for hardware devices are generally loaded automatically
|
Kernel modules for hardware devices are generally loaded automatically
|
||||||
by `udev`. You can force a module to be loaded via
|
by `udev`. You can force a module to be loaded via
|
||||||
[`boot.kernelModules`](options.html#opt-boot.kernelModules), e.g.
|
[](#opt-boot.kernelModules), e.g.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
|
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
|
||||||
```
|
```
|
||||||
|
|
||||||
If the module is required early during the boot (e.g. to mount the root
|
If the module is required early during the boot (e.g. to mount the root
|
||||||
file system), you can use [`boot.initrd.kernelModules`](options.html#opt-boot.initrd.kernelModules):
|
file system), you can use [](#opt-boot.initrd.kernelModules):
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
boot.initrd.kernelModules = [ "cifs" ];
|
boot.initrd.kernelModules = [ "cifs" ];
|
||||||
@@ -59,7 +59,7 @@ This causes the specified modules and their dependencies to be added to
|
|||||||
the initial ramdisk.
|
the initial ramdisk.
|
||||||
|
|
||||||
Kernel runtime parameters can be set through
|
Kernel runtime parameters can be set through
|
||||||
[`boot.kernel.sysctl`](options.html#opt-boot.kernel.sysctl), e.g.
|
[](#opt-boot.kernel.sysctl), e.g.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
|
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
|
|||||||
To keep the key safe, change the ownership to `root:root` and make sure the permissions are `600`:
|
To keep the key safe, change the ownership to `root:root` and make sure the permissions are `600`:
|
||||||
OpenSSH normally refuses to use the key if it's not well-protected.
|
OpenSSH normally refuses to use the key if it's not well-protected.
|
||||||
|
|
||||||
The file system can be configured in NixOS via the usual [fileSystems](options.html#opt-fileSystems) option.
|
The file system can be configured in NixOS via the usual [fileSystems](#opt-fileSystems) option.
|
||||||
Here's a typical setup:
|
Here's a typical setup:
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ appropriate section of the Subversion
|
|||||||
book](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd).
|
book](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd).
|
||||||
|
|
||||||
To configure, include in `/etc/nixos/configuration.nix` code to activate
|
To configure, include in `/etc/nixos/configuration.nix` code to activate
|
||||||
Apache HTTP, setting [`services.httpd.adminAddr`](options.html#opt-services.httpd.adminAddr)
|
Apache HTTP, setting [](#opt-services.httpd.adminAddr)
|
||||||
appropriately:
|
appropriately:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ log in via mechanisms that require a password. However, you can use the
|
|||||||
`passwd` program to set a password, which is retained across invocations
|
`passwd` program to set a password, which is retained across invocations
|
||||||
of `nixos-rebuild`.
|
of `nixos-rebuild`.
|
||||||
|
|
||||||
If you set [`users.mutableUsers`](options.html#opt-users.mutableUsers) to
|
If you set [](#opt-users.mutableUsers) to
|
||||||
false, then the contents of `/etc/passwd` and `/etc/group` will be congruent
|
false, then the contents of `/etc/passwd` and `/etc/group` will be congruent
|
||||||
to your NixOS configuration. For instance, if you remove a user from
|
to your NixOS configuration. For instance, if you remove a user from
|
||||||
[`users.users`](options.html#opt-users.users) and run nixos-rebuild, the user
|
[](#opt-users.users) and run nixos-rebuild, the user
|
||||||
account will cease to exist. Also, imperative commands for managing users and
|
account will cease to exist. Also, imperative commands for managing users and
|
||||||
groups, such as useradd, are no longer available. Passwords may still be
|
groups, such as useradd, are no longer available. Passwords may still be
|
||||||
assigned by setting the user\'s
|
assigned by setting the user\'s
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ xdg.portal.wlr.enable = true;
|
|||||||
```
|
```
|
||||||
|
|
||||||
and configure Pipewire using
|
and configure Pipewire using
|
||||||
[`services.pipewire.enable`](options.html#opt-services.pipewire.enable)
|
[](#opt-services.pipewire.enable)
|
||||||
and related options.
|
and related options.
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ officially updated since 2015.
|
|||||||
|
|
||||||
The results vary depending on the hardware, so you may have to try both
|
The results vary depending on the hardware, so you may have to try both
|
||||||
drivers. Use the option
|
drivers. Use the option
|
||||||
[`services.xserver.videoDrivers`](options.html#opt-services.xserver.videoDrivers)
|
[](#opt-services.xserver.videoDrivers)
|
||||||
to set one. The recommended configuration for modern systems is:
|
to set one. The recommended configuration for modern systems is:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
@@ -183,7 +183,7 @@ Latitude series) can be enabled as follows:
|
|||||||
services.xserver.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
```
|
```
|
||||||
|
|
||||||
The driver has many options (see [Appendix A, Configuration Options](options.html)).
|
The driver has many options (see [](#ch-options)).
|
||||||
For instance, the following disables tap-to-click behavior:
|
For instance, the following disables tap-to-click behavior:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
|
|||||||
@@ -22,13 +22,13 @@ services.picom = {
|
|||||||
|
|
||||||
Some Xfce programs are not installed automatically. To install them
|
Some Xfce programs are not installed automatically. To install them
|
||||||
manually (system wide), put them into your
|
manually (system wide), put them into your
|
||||||
[`environment.systemPackages`](options.html#opt-environment.systemPackages) from `pkgs.xfce`.
|
[](#opt-environment.systemPackages) from `pkgs.xfce`.
|
||||||
|
|
||||||
## Thunar Plugins {#sec-xfce-thunar-plugins .unnumbered}
|
## Thunar Plugins {#sec-xfce-thunar-plugins .unnumbered}
|
||||||
|
|
||||||
If you\'d like to add extra plugins to Thunar, add them to
|
If you\'d like to add extra plugins to Thunar, add them to
|
||||||
[`services.xserver.desktopManager.xfce.thunarPlugins`](options.html#opt-services.xserver.desktopManager.xfce.thunarPlugins).
|
[](#opt-services.xserver.desktopManager.xfce.thunarPlugins).
|
||||||
You shouldn\'t just add them to [`environment.systemPackages`](options.html#opt-environment.systemPackages).
|
You shouldn\'t just add them to [](#opt-environment.systemPackages).
|
||||||
|
|
||||||
## Troubleshooting {#sec-xfce-troubleshooting .unnumbered}
|
## Troubleshooting {#sec-xfce-troubleshooting .unnumbered}
|
||||||
|
|
||||||
|
|||||||
@@ -36,10 +36,9 @@ $ export \
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The second mechanism is to add the OpenCL driver package to
|
The second mechanism is to add the OpenCL driver package to
|
||||||
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>.
|
<xref linkend="opt-hardware.opengl.extraPackages" />. This links
|
||||||
This links the ICD file under
|
the ICD file under <literal>/run/opengl-driver</literal>, where it
|
||||||
<literal>/run/opengl-driver</literal>, where it will be visible to
|
will be visible to the ICD loader.
|
||||||
the ICD loader.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The proper installation of OpenCL drivers can be verified through
|
The proper installation of OpenCL drivers can be verified through
|
||||||
@@ -60,8 +59,8 @@ Platform Vendor Advanced Micro Devices, Inc.
|
|||||||
<link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
|
<link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
|
||||||
Core Next</link> (GCN) GPUs are supported through the
|
Core Next</link> (GCN) GPUs are supported through the
|
||||||
rocm-opencl-icd package. Adding this package to
|
rocm-opencl-icd package. Adding this package to
|
||||||
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>
|
<xref linkend="opt-hardware.opengl.extraPackages" /> enables
|
||||||
enables OpenCL support:
|
OpenCL support:
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
hardware.opengl.extraPackages = [
|
hardware.opengl.extraPackages = [
|
||||||
@@ -82,10 +81,9 @@ hardware.opengl.extraPackages = [
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The intel-compute-runtime, beignet, or intel-ocl package can be
|
The intel-compute-runtime, beignet, or intel-ocl package can be
|
||||||
added to
|
added to <xref linkend="opt-hardware.opengl.extraPackages" /> to
|
||||||
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>
|
enable OpenCL support. For example, for Gen8 and later GPUs, the
|
||||||
to enable OpenCL support. For example, for Gen8 and later GPUs,
|
following configuration can be used:
|
||||||
the following configuration can be used:
|
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
hardware.opengl.extraPackages = [
|
hardware.opengl.extraPackages = [
|
||||||
@@ -103,8 +101,7 @@ hardware.opengl.extraPackages = [
|
|||||||
<link xlink:href="https://github.com/doitsujin/dxvk/wiki">DXVK</link>.
|
<link xlink:href="https://github.com/doitsujin/dxvk/wiki">DXVK</link>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
By default, if
|
By default, if <xref linkend="opt-hardware.opengl.driSupport" />
|
||||||
<link xlink:href="options.html#opt-hardware.opengl.driSupport"><literal>hardware.opengl.driSupport</literal></link>
|
|
||||||
is enabled, mesa is installed and provides Vulkan for supported
|
is enabled, mesa is installed and provides Vulkan for supported
|
||||||
hardware.
|
hardware.
|
||||||
</para>
|
</para>
|
||||||
@@ -129,10 +126,9 @@ $ export \
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The second mechanism is to add the Vulkan driver package to
|
The second mechanism is to add the Vulkan driver package to
|
||||||
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>.
|
<xref linkend="opt-hardware.opengl.extraPackages" />. This links
|
||||||
This links the ICD file under
|
the ICD file under <literal>/run/opengl-driver</literal>, where it
|
||||||
<literal>/run/opengl-driver</literal>, where it will be visible to
|
will be visible to the ICD loader.
|
||||||
the ICD loader.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The proper installation of Vulkan drivers can be verified through
|
The proper installation of Vulkan drivers can be verified through
|
||||||
@@ -162,8 +158,7 @@ GPU1:
|
|||||||
<link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
|
<link xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
|
||||||
Core Next</link> (GCN) GPUs are supported through either radv,
|
Core Next</link> (GCN) GPUs are supported through either radv,
|
||||||
which is part of mesa, or the amdvlk package. Adding the amdvlk
|
which is part of mesa, or the amdvlk package. Adding the amdvlk
|
||||||
package to
|
package to <xref linkend="opt-hardware.opengl.extraPackages" />
|
||||||
<link xlink:href="options.html#opt-hardware.opengl.extraPackages"><literal>hardware.opengl.extraPackages</literal></link>
|
|
||||||
makes amdvlk the default driver and hides radv and lavapipe from
|
makes amdvlk the default driver and hides radv and lavapipe from
|
||||||
the device list. A specific driver can be forced as follows:
|
the device list. A specific driver can be forced as follows:
|
||||||
</para>
|
</para>
|
||||||
|
|||||||
@@ -43,11 +43,9 @@ services.kubernetes.roles = [ "master" "node" ];
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Note: Assigning either role will also default both
|
Note: Assigning either role will also default both
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.flannel.enable"><literal>services.kubernetes.flannel.enable</literal></link>
|
<xref linkend="opt-services.kubernetes.flannel.enable" /> and
|
||||||
and
|
<xref linkend="opt-services.kubernetes.easyCerts" /> to true. This
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link>
|
sets up flannel as CNI and activates automatic PKI bootstrapping.
|
||||||
to true. This sets up flannel as CNI and activates automatic PKI
|
|
||||||
bootstrapping.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
As of kubernetes 1.10.X it has been deprecated to open
|
As of kubernetes 1.10.X it has been deprecated to open
|
||||||
@@ -56,15 +54,15 @@ services.kubernetes.roles = [ "master" "node" ];
|
|||||||
opening insecure ports is still possible, it is recommended not to
|
opening insecure ports is still possible, it is recommended not to
|
||||||
bind these to other interfaces than loopback. To re-enable the
|
bind these to other interfaces than loopback. To re-enable the
|
||||||
insecure port on the apiserver, see options:
|
insecure port on the apiserver, see options:
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.apiserver.insecurePort"><literal>services.kubernetes.apiserver.insecurePort</literal></link>
|
<xref linkend="opt-services.kubernetes.apiserver.insecurePort" />
|
||||||
and
|
and
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.apiserver.insecureBindAddress"><literal>services.kubernetes.apiserver.insecureBindAddress</literal></link>
|
<xref linkend="opt-services.kubernetes.apiserver.insecureBindAddress" />
|
||||||
</para>
|
</para>
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
As of NixOS 19.03, it is mandatory to configure:
|
As of NixOS 19.03, it is mandatory to configure:
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.masterAddress"><literal>services.kubernetes.masterAddress</literal></link>.
|
<xref linkend="opt-services.kubernetes.masterAddress" />. The
|
||||||
The masterAddress must be resolveable and routeable by all cluster
|
masterAddress must be resolveable and routeable by all cluster
|
||||||
nodes. In single node clusters, this can be set to
|
nodes. In single node clusters, this can be set to
|
||||||
<literal>localhost</literal>.
|
<literal>localhost</literal>.
|
||||||
</para>
|
</para>
|
||||||
@@ -83,24 +81,22 @@ services.kubernetes.roles = [ "master" "node" ];
|
|||||||
<para>
|
<para>
|
||||||
The NixOS kubernetes module provides an option for automatic
|
The NixOS kubernetes module provides an option for automatic
|
||||||
certificate bootstrapping and configuration,
|
certificate bootstrapping and configuration,
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link>.
|
<xref linkend="opt-services.kubernetes.easyCerts" />. The PKI
|
||||||
The PKI bootstrapping process involves setting up a certificate
|
bootstrapping process involves setting up a certificate authority
|
||||||
authority (CA) daemon (cfssl) on the kubernetes master node. cfssl
|
(CA) daemon (cfssl) on the kubernetes master node. cfssl generates a
|
||||||
generates a CA-cert for the cluster, and uses the CA-cert for
|
CA-cert for the cluster, and uses the CA-cert for signing
|
||||||
signing subordinate certs issued to each of the cluster components.
|
subordinate certs issued to each of the cluster components.
|
||||||
Subsequently, the certmgr daemon monitors active certificates and
|
Subsequently, the certmgr daemon monitors active certificates and
|
||||||
renews them when needed. For single node Kubernetes clusters,
|
renews them when needed. For single node Kubernetes clusters,
|
||||||
setting
|
setting <xref linkend="opt-services.kubernetes.easyCerts" /> = true
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link>
|
is sufficient and no further action is required. For joining extra
|
||||||
= true is sufficient and no further action is required. For joining
|
node machines to an existing cluster on the other hand, establishing
|
||||||
extra node machines to an existing cluster on the other hand,
|
initial trust is mandatory.
|
||||||
establishing initial trust is mandatory.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
To add new nodes to the cluster: On any (non-master) cluster node
|
To add new nodes to the cluster: On any (non-master) cluster node
|
||||||
where
|
where <xref linkend="opt-services.kubernetes.easyCerts" /> is
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.easyCerts"><literal>services.kubernetes.easyCerts</literal></link>
|
enabled, the helper script
|
||||||
is enabled, the helper script
|
|
||||||
<literal>nixos-kubernetes-node-join</literal> is available on PATH.
|
<literal>nixos-kubernetes-node-join</literal> is available on PATH.
|
||||||
Given a token on stdin, it will copy the token to the kubernetes
|
Given a token on stdin, it will copy the token to the kubernetes
|
||||||
secrets directory and restart the certmgr service. As requested
|
secrets directory and restart the certmgr service. As requested
|
||||||
@@ -120,7 +116,7 @@ services.kubernetes.roles = [ "master" "node" ];
|
|||||||
is generated and linked into
|
is generated and linked into
|
||||||
<literal>/etc/kubernetes/cluster-admin.kubeconfig</literal> as
|
<literal>/etc/kubernetes/cluster-admin.kubeconfig</literal> as
|
||||||
determined by
|
determined by
|
||||||
<link xlink:href="options.html#opt-services.kubernetes.pki.etcClusterAdminKubeconfig"><literal>services.kubernetes.pki.etcClusterAdminKubeconfig</literal></link>.
|
<xref linkend="opt-services.kubernetes.pki.etcClusterAdminKubeconfig" />.
|
||||||
<literal>export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig</literal>
|
<literal>export KUBECONFIG=/etc/kubernetes/cluster-admin.kubeconfig</literal>
|
||||||
will make kubectl use this kubeconfig to access and authenticate the
|
will make kubectl use this kubeconfig to access and authenticate the
|
||||||
cluster. The cluster-admin kubeconfig references an auto-generated
|
cluster. The cluster-admin kubeconfig references an auto-generated
|
||||||
|
|||||||
@@ -48,9 +48,7 @@ nixpkgs.config.packageOverrides = pkgs:
|
|||||||
<para>
|
<para>
|
||||||
Kernel modules for hardware devices are generally loaded
|
Kernel modules for hardware devices are generally loaded
|
||||||
automatically by <literal>udev</literal>. You can force a module to
|
automatically by <literal>udev</literal>. You can force a module to
|
||||||
be loaded via
|
be loaded via <xref linkend="opt-boot.kernelModules" />, e.g.
|
||||||
<link xlink:href="options.html#opt-boot.kernelModules"><literal>boot.kernelModules</literal></link>,
|
|
||||||
e.g.
|
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
|
boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
|
||||||
@@ -58,7 +56,7 @@ boot.kernelModules = [ "fuse" "kvm-intel" "coretemp&quo
|
|||||||
<para>
|
<para>
|
||||||
If the module is required early during the boot (e.g. to mount the
|
If the module is required early during the boot (e.g. to mount the
|
||||||
root file system), you can use
|
root file system), you can use
|
||||||
<link xlink:href="options.html#opt-boot.initrd.kernelModules"><literal>boot.initrd.kernelModules</literal></link>:
|
<xref linkend="opt-boot.initrd.kernelModules" />:
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
boot.initrd.kernelModules = [ "cifs" ];
|
boot.initrd.kernelModules = [ "cifs" ];
|
||||||
@@ -69,8 +67,7 @@ boot.initrd.kernelModules = [ "cifs" ];
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Kernel runtime parameters can be set through
|
Kernel runtime parameters can be set through
|
||||||
<link xlink:href="options.html#opt-boot.kernel.sysctl"><literal>boot.kernel.sysctl</literal></link>,
|
<xref linkend="opt-boot.kernel.sysctl" />, e.g.
|
||||||
e.g.
|
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
|
boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The file system can be configured in NixOS via the usual
|
The file system can be configured in NixOS via the usual
|
||||||
<link xlink:href="options.html#opt-fileSystems">fileSystems</link>
|
<link linkend="opt-fileSystems">fileSystems</link> option. Here’s
|
||||||
option. Here’s a typical setup:
|
a typical setup:
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,8 +23,7 @@
|
|||||||
To configure, include in
|
To configure, include in
|
||||||
<literal>/etc/nixos/configuration.nix</literal> code to activate
|
<literal>/etc/nixos/configuration.nix</literal> code to activate
|
||||||
Apache HTTP, setting
|
Apache HTTP, setting
|
||||||
<link xlink:href="options.html#opt-services.httpd.adminAddr"><literal>services.httpd.adminAddr</literal></link>
|
<xref linkend="opt-services.httpd.adminAddr" /> appropriately:
|
||||||
appropriately:
|
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
services.httpd.enable = true;
|
services.httpd.enable = true;
|
||||||
|
|||||||
@@ -29,16 +29,14 @@ users.users.alice = {
|
|||||||
retained across invocations of <literal>nixos-rebuild</literal>.
|
retained across invocations of <literal>nixos-rebuild</literal>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
If you set
|
If you set <xref linkend="opt-users.mutableUsers" /> to false, then
|
||||||
<link xlink:href="options.html#opt-users.mutableUsers"><literal>users.mutableUsers</literal></link>
|
the contents of <literal>/etc/passwd</literal> and
|
||||||
to false, then the contents of <literal>/etc/passwd</literal> and
|
|
||||||
<literal>/etc/group</literal> will be congruent to your NixOS
|
<literal>/etc/group</literal> will be congruent to your NixOS
|
||||||
configuration. For instance, if you remove a user from
|
configuration. For instance, if you remove a user from
|
||||||
<link xlink:href="options.html#opt-users.users"><literal>users.users</literal></link>
|
<xref linkend="opt-users.users" /> and run nixos-rebuild, the user
|
||||||
and run nixos-rebuild, the user account will cease to exist. Also,
|
account will cease to exist. Also, imperative commands for managing
|
||||||
imperative commands for managing users and groups, such as useradd,
|
users and groups, such as useradd, are no longer available.
|
||||||
are no longer available. Passwords may still be assigned by setting
|
Passwords may still be assigned by setting the user's
|
||||||
the user's
|
|
||||||
<link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
|
<link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
|
||||||
option. A hashed password can be generated using
|
option. A hashed password can be generated using
|
||||||
<literal>mkpasswd -m sha-512</literal>.
|
<literal>mkpasswd -m sha-512</literal>.
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ xdg.portal.wlr.enable = true;
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
and configure Pipewire using
|
and configure Pipewire using
|
||||||
<link xlink:href="options.html#opt-services.pipewire.enable"><literal>services.pipewire.enable</literal></link>
|
<xref linkend="opt-services.pipewire.enable" /> and related options.
|
||||||
and related options.
|
|
||||||
</para>
|
</para>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|||||||
@@ -128,8 +128,8 @@ services.xserver.displayManager.autoLogin.user = "alice";
|
|||||||
<para>
|
<para>
|
||||||
The results vary depending on the hardware, so you may have to try
|
The results vary depending on the hardware, so you may have to try
|
||||||
both drivers. Use the option
|
both drivers. Use the option
|
||||||
<link xlink:href="options.html#opt-services.xserver.videoDrivers"><literal>services.xserver.videoDrivers</literal></link>
|
<xref linkend="opt-services.xserver.videoDrivers" /> to set one.
|
||||||
to set one. The recommended configuration for modern systems is:
|
The recommended configuration for modern systems is:
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
services.xserver.videoDrivers = [ "modesetting" ];
|
services.xserver.videoDrivers = [ "modesetting" ];
|
||||||
@@ -204,10 +204,8 @@ services.xserver.videoDrivers = [ "amdgpu-pro" ];
|
|||||||
services.xserver.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
The driver has many options (see
|
The driver has many options (see <xref linkend="ch-options" />).
|
||||||
<link xlink:href="options.html">Appendix A, Configuration
|
For instance, the following disables tap-to-click behavior:
|
||||||
Options</link>). For instance, the following disables tap-to-click
|
|
||||||
behavior:
|
|
||||||
</para>
|
</para>
|
||||||
<programlisting language="bash">
|
<programlisting language="bash">
|
||||||
services.xserver.libinput.touchpad.tapping = false;
|
services.xserver.libinput.touchpad.tapping = false;
|
||||||
|
|||||||
@@ -23,16 +23,16 @@ services.picom = {
|
|||||||
<para>
|
<para>
|
||||||
Some Xfce programs are not installed automatically. To install them
|
Some Xfce programs are not installed automatically. To install them
|
||||||
manually (system wide), put them into your
|
manually (system wide), put them into your
|
||||||
<link xlink:href="options.html#opt-environment.systemPackages"><literal>environment.systemPackages</literal></link>
|
<xref linkend="opt-environment.systemPackages" /> from
|
||||||
from <literal>pkgs.xfce</literal>.
|
<literal>pkgs.xfce</literal>.
|
||||||
</para>
|
</para>
|
||||||
<section xml:id="sec-xfce-thunar-plugins">
|
<section xml:id="sec-xfce-thunar-plugins">
|
||||||
<title>Thunar Plugins</title>
|
<title>Thunar Plugins</title>
|
||||||
<para>
|
<para>
|
||||||
If you'd like to add extra plugins to Thunar, add them to
|
If you'd like to add extra plugins to Thunar, add them to
|
||||||
<link xlink:href="options.html#opt-services.xserver.desktopManager.xfce.thunarPlugins"><literal>services.xserver.desktopManager.xfce.thunarPlugins</literal></link>.
|
<xref linkend="opt-services.xserver.desktopManager.xfce.thunarPlugins" />.
|
||||||
You shouldn't just add them to
|
You shouldn't just add them to
|
||||||
<link xlink:href="options.html#opt-environment.systemPackages"><literal>environment.systemPackages</literal></link>.
|
<xref linkend="opt-environment.systemPackages" />.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-xfce-troubleshooting">
|
<section xml:id="sec-xfce-troubleshooting">
|
||||||
|
|||||||
Reference in New Issue
Block a user