NOTE: The empty directories will be used for the persistent data volumes when we deploy these apps in Docker.
.pem
certificates generated with certbot. There are many methods of configuring TLS certificates and this guide will not cover how to generate your own TLS certificates, but there are many resources available online to help with this subject if you do not have certificates already.
Omni Certificate
Omni uses etcd to store the data for our installation and we need to give it a private key to use for encryption of the etcd database.
quick-generate-key
allows us to quickly generate a new GPG key pair. -"Omni (Used for etcd data encryption) how-to-guide@siderolabs.com"
is the user ID associated with the key which generally consists of the real name, a comment, and an email address for the user.rsa4096
specifies the algorithm type and key size.cert
means this key can be used to certify other keys.never
specifies that this key will never expire.$FPR
with your own keys fingerprint.
$FPR
is the fingerprint of the key we are adding the subkey to.rsa4096
and encr
specify that the new subkey will be an RSA encryption key with a size of 4096 bits.never
means this subkey will never expire.--armor
is an option which creates the output in ASCII format. Without it, the output would be binary.DOMAIN
, SSH_DOMAIN
, and ROOT_URL
values with your own hostname:
NOTE: If running this in a production environment, you will also want to configure the database settings for a production database. This configuration will use an internal sqlite database in the container.
docker.io/gitea/gitea:1.19.3
Keycloakquay.io/keycloak/keycloak:21.1.1
Omnighcr.io/siderolabs/omni:v0.31.0
ghcr.io/siderolabs/imager:v1.4.5
ghcr.io/siderolabs/flannel:v0.21.4
ghcr.io/siderolabs/install-cni:v1.4.0-1-g9b07505
docker.io/coredns/coredns:1.10.1
gcr.io/etcd-development/etcd:v3.5.9
registry.k8s.io/kube-apiserver:v1.27.2
registry.k8s.io/kube-controller-manager:v1.27.2
registry.k8s.io/kube-scheduler:v1.27.2
registry.k8s.io/kube-proxy:v1.27.2
ghcr.io/siderolabs/kubelet:v1.27.2
ghcr.io/siderolabs/installer:v1.4.5
registry.k8s.io/pause:3.6
NOTE: The Talos images needed may be found using the commandPackage the imagestalosctl images
. If you do not havetalosctl
installed, you may find the instructions on how to install it here.
- v
argument.https://${GITEA_HOSTNAME}:3000
to begin configuring Gitea to store all the images needed for Omni and Talos.
siderolabs
keycloak
coredns
etcd-development
registry-k8s-io-proxy
NOTE: If you are using self-signed certs and would like to push images to your local Gitea using Docker, you will also need to configure your certs.d directory as described here.
NOTE: Donโt forget to tag all of the images from registry.k8s.io to go to the registry-k8s-io-proxy organization created in Gitea.
https://${KEYCLOAK\_HOSTNAME}:3000
--auth-auth0-enabled=false
tells Omni not to use Auth0.--auth-saml-enabled
enables SAML authentication.--talos-installer-registry
, --talos-imager-image
and --kubernetes-registry
allow you to set the default images used by Omni to point to your local repository.--auth-saml-url
is the URL we saved earlier in the configuration of Keycloak.
--auth-saml-metadata
may also be used if you would like to pass it as a file instead of a URL and can be used if using self-signed certificates for Keycloak.NOTE: In this example, cluster discovery is also disabled. You may also configure cluster discovery on your network. More information on the Discovery Service can be found here