Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix artifact names #103

Merged
merged 13 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export HUGO_VERSION?=0.105.0
export HUGO_VERSION?=0.120.1
export HUGO_PLATFORM?=Linux-64bit

export ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
Expand Down
10 changes: 5 additions & 5 deletions assets/js/trees.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@ const DOWNLOAD_CARDS_TREE = [
{
integration:"ubuntu",
links: {
"X86":`https://github.com/kairos-io/kairos/releases/download/${params.kairosVersion}/kairos-standard-ubuntu-amd64-generic-${params.kairosVersion}-k3s${params.k3sVersion}.iso`,
"ARM":`docker pull quay.io/kairos/kairos-ubuntu-arm-rpi-img:${params.kairosVersion}-k3s${params.k3sVersion.replace("+", "-")}`
"X86":`https://github.com/kairos-io/kairos/releases/download/${params.kairosVersion}/kairos-ubuntu-23.04-standard-amd64-generic-${params.kairosVersion}-k3s${params.k3sVersion}.iso`,
"ARM":`docker pull quay.io/kairos/ubuntu:23.04-standard-arm64-rpi4-${params.kairosVersion}-k3s${params.k3sVersion.replace("+", "-")}-img`
}
},
{
integration:"fedora",
links: {
"X86":`https://github.com/kairos-io/kairos/releases/download/${params.kairosVersion}/kairos-standard-fedora-amd64-generic-${params.kairosVersion}-k3s${params.k3sVersion}.iso`,
"X86":`https://github.com/kairos-io/kairos/releases/download/${params.kairosVersion}/kairos-fedora-38-standard-amd64-generic-${params.kairosVersion}-k3s${params.k3sVersion}.iso`,
"ARM":"// Temporarily there is no Fedora ARM support, please visit the link below for more information."
}
},
{
integration:"alpine",
links: {
"X86":`https://github.com/kairos-io/kairos/releases/download/${params.kairosVersion}/kairos-standard-alpine-ubuntu-amd64-generic-${params.kairosVersion}-k3s${params.k3sVersion}.iso`,
"ARM":`docker pull quay.io/kairos/kairos-alpine-arm-rpi:${params.kairosVersion}-k3s${params.k3sVersion.replace("+", "-")}`
"X86":`https://github.com/kairos-io/kairos/releases/download/${params.kairosVersion}/kairos-alpine-3.18-standard-amd64-generic-${params.kairosVersion}-k3s${params.k3sVersion}.iso`,
"ARM":`docker pull quay.io/kairos/alpine:3.18-standard-arm64-rpi4-${params.kairosVersion}-k3s${params.k3sVersion.replace("+", "-")}-img`
}
},
].map(({integration, links}) => ({
Expand Down
5 changes: 2 additions & 3 deletions content/en/docs/Advanced/after-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,7 @@ metadata:
spec:
concurrency: 1
# This is the version (tag) of the image.
# The version is referred to the kairos version plus the k3s version.
version: "{{<kairosVersion>}}-{{<k3sVersion>}}"
version: "{{<ociTag variant="standard">}}"
nodeSelector:
matchExpressions:
- { key: kubernetes.io/hostname, operator: Exists }
Expand All @@ -104,7 +103,7 @@ spec:
upgrade:
# Here goes the image which is tied to the flavor being used.
# Currently can pick between opensuse and alpine
image: quay.io/kairos/kairos-opensuse-leap
image: {{< registryURL >}}/{{< defaultFlavor >}}
command:
- "/bin/bash"
- "-c"
Expand Down
10 changes: 5 additions & 5 deletions content/en/docs/Advanced/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ apiVersion: build.kairos.io/v1alpha2
metadata:
name: hello-kairos
spec:
imageName: "quay.io/kairos/core-opensuse-leap:latest"
imageName: "{{<oci variant="standard">}}"
iso: true
bundles:
# Bundles available at: https://packages.kairos.io/Kairos/
Expand Down Expand Up @@ -128,7 +128,7 @@ kind: OSArtifact
metadata:
name: hello-kairos
spec:
imageName: "quay.io/kairos/core-opensuse-leap:latest"
imageName: "{{<oci variant="core">}}"
netboot: true
netbootURL: ...
bundles: ...
Expand Down Expand Up @@ -185,7 +185,7 @@ kind: OSArtifact
metadata:
name: hello-kairos
spec:
imageName: "quay.io/kairos/core-opensuse-leap:latest"
imageName: "{{<oci variant="core">}}"
cloudImage: true
cloudConfigRef:
name: cloud-config
Expand Down Expand Up @@ -256,7 +256,7 @@ kind: OSArtifact
metadata:
name: hello-kairos
spec:
imageName: "quay.io/kairos/core-opensuse-leap:latest"
imageName: "{{<oci variant="core">}}"
azureImage: true
...
```
Expand Down Expand Up @@ -295,7 +295,7 @@ kind: OSArtifact
metadata:
name: hello-kairos
spec:
imageName: "quay.io/kairos/core-opensuse-leap:latest"
imageName: "{{<oci variant="core">}}"
gceImage: true
...
```
Expand Down
6 changes: 3 additions & 3 deletions content/en/docs/Advanced/customizing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Kairos is an open source, container-based operating system. To modify Kairos and

```docker
# Use images from reference/image_matrix/
FROM quay.io/kairos/kairos:opensuse-latest
FROM {{<oci variant="standard">}}

RUN zypper in -y figlet

Expand All @@ -22,7 +22,7 @@ After creating your Dockerfile, you can build your own image by running the foll
```bash
$ docker build -t docker.io/<yourorg>/myos:0.1 .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM quay.io/kairos/kairos-opensuse:latest
Step 1/3 : FROM {{<oci variant="standard">}}
---> 897dc0cddf91
Step 2/3 : RUN zypper install -y figlet
---> Using cache
Expand Down Expand Up @@ -204,4 +204,4 @@ create a new folder in the rootfs, format the given disk and mount it during the
This works because during the `after-install-chroot`, `after-upgrade-chroot` and `after-reset-chroot` stages we run any commands
inside the final system with a chroot AND we have RW access during that time. We could use those same stages to install extra packages for example,
but in this case we use it to create an extra path. Remember that once we have installed, the system is inmmutable, so we won't be able to create
any new paths in the root filesystem during runtime, even when using cloud-config. Only ephemeral and persistent paths are RW during runtime.
any new paths in the root filesystem during runtime, even when using cloud-config. Only ephemeral and persistent paths are RW during runtime.
4 changes: 2 additions & 2 deletions content/en/docs/Development/debugging-station.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ To automatically boot and install the debugging station, we can use [Auroraboot]
```bash
cat <<EOF | docker run --rm -i --net host quay.io/kairos/auroraboot \
--cloud-config - \
--set "container_image=quay.io/kairos/kairos-opensuse-leap:{{< kairosVersion >}}-{{< k3sVersion >}}"
--set "container_image={{<oci variant="standard">}}"
#cloud-config

install:
Expand Down Expand Up @@ -243,4 +243,4 @@ In another terminal, run the following command to ssh to the box:
ssh [email protected] -p 2222
```

Note: it might take few attempts to establish a connection
Note: it might take few attempts to establish a connection
2 changes: 1 addition & 1 deletion content/en/docs/Examples/airgap.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ k3s:


```bash
IMAGE=quay.io/kairos/kairos-opensuse-leap:{{< kairosVersion >}}-{{< k3sVersion >}}
IMAGE={{<oci variant="standard">}}

docker pull $IMAGE

Expand Down
6 changes: 3 additions & 3 deletions content/en/docs/Examples/core.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ For example, let's say you want to use a standard image. Your cloud config file
#cloud-config
install:
# Here we specify the image that we want to deploy
image: "docker:quay.io/kairos/kairos-opensuse-leap:{{< kairosVersion >}}-{{< k3sVersion >}}"
image: "docker:{{<oci variant="standard">}}"
```

{{% alert title="Note" %}}
Expand All @@ -40,7 +40,7 @@ install:
auto: true
reboot: true
# Here we specify the image that we want to deploy
image: "docker:quay.io/kairos/kairos-opensuse-leap:{{< kairosVersion >}}-{{< k3sVersion >}}"
image: "docker:{{<oci variant="standard">}}"

hostname: "test"
users:
Expand All @@ -62,4 +62,4 @@ As you move through the installation process, there are a few key points to keep

With these steps, you should now be able to use Kairos core images as an installer to deploy other container images. The process is straightforward and gives you the flexibility to customize your deployments and build custom images as needed.

You can also refer our [troubleshooting]({{< relref "../reference/troubleshooting" >}}) document if you are facing any issue while following the installation process.
You can also refer our [troubleshooting]({{< relref "../reference/troubleshooting" >}}) document if you are facing any issue while following the installation process.
12 changes: 6 additions & 6 deletions content/en/docs/Examples/p2p_e2e.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ description: >

{{% alert title="Note" %}}

The p2p feature of Kairos is crazy and experimental! Do not run in production servers.
The p2p feature of Kairos is crazy and experimental! Do not run in production servers.
Feedback and bug reports are welcome, as we are improving the p2p aspects of Kairos.

{{% /alert %}}
Expand All @@ -26,7 +26,7 @@ You can see this example live in the [Kairos and libp2p video]({{< relref "Media

In the following example we are going to bootstrap a new multi-node, single cluster with Kairos. We will use at least 2 nodes, one as a master and one as a worker. Note how we don't specify any role, or either pin any IP in the following configurations.

We will first create a cloud config file for our deployment, and then run [AuroraBoot]({{< relref "../reference/auroraboot" >}}) locally. We then start 2 VMs configured for netbooting.
We will first create a cloud config file for our deployment, and then run [AuroraBoot]({{< relref "../reference/auroraboot" >}}) locally. We then start 2 VMs configured for netbooting.

## Prepare your `cloud-config` file

Expand Down Expand Up @@ -58,7 +58,7 @@ install:
reboot: true
```

In order to leverage p2p and automatic node co-ordination, we need to generate a unique pre-shared token that will be used by all the nodes that we want to be part of our cluster.
In order to leverage p2p and automatic node co-ordination, we need to generate a unique pre-shared token that will be used by all the nodes that we want to be part of our cluster.

We can generate a network token by using the `edgevpn` images, by running it locally:

Expand Down Expand Up @@ -102,14 +102,14 @@ ssh_authorized_keys:

## Provisioning with AuroraBoot

We now can run [AuroraBoot]({{< relref "../reference/auroraboot" >}}) with `quay.io/kairos/kairos-opensuse-leap:{{< kairosVersion >}}-{{< k3sVersion >}}` to provision `openSUSE Leap` machines with `k3s 1.21.14` and Kairos `1.5.1`.
We now can run [AuroraBoot]({{< relref "../reference/auroraboot" >}}) with `{{<oci variant="standard">}}` to provision `openSUSE Leap` machines with those k3s and kairos versions.

AuroraBoot takes `cloud-config` files also from _STDIN_, so we will pipe the configuration file to it, and specify the container image that we want to use for our nodes:

``` bash
cat <<EOF | docker run --rm -i --net host quay.io/kairos/auroraboot \
--cloud-config - \
--set "container_image=quay.io/kairos/kairos-opensuse-leap:{{< kairosVersion >}}-{{< k3sVersion >}}"
--set "container_image={{<oci variant="standard">}}"
#cloud-config

# https://github.com/kairos-io/kairos/issues/885
Expand Down Expand Up @@ -162,4 +162,4 @@ $ journalctl -fu kairos-agent
## See also

- [Installation with p2p]({{< relref "../installation/p2p" >}})
- [P2P Architecture]({{< relref "../architecture/network" >}})
- [P2P Architecture]({{< relref "../architecture/network" >}})
20 changes: 10 additions & 10 deletions content/en/docs/Getting started/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Once the installation is complete, you can begin using your Kubernetes cluster.

1. Visit the Kairos [release page on GitHub](https://github.com/kairos-io/kairos/releases)
1. Select the latest release and download the assets of your flavor. For example,
pick the [kairos-opensuse-leap-{{<kairosVersion>}}-{{<k3sVersion>}}.iso](https://github.com/kairos-io/kairos/releases/download/{{<kairosVersion>}}/kairos-standard-opensuse-leap-amd64-generic-{{<kairosVersion>}}-{{<k3sVersion>}}.iso)
pick the [{{<image variant="standard">}}.iso](https://github.com/kairos-io/kairos/releases/download/{{<kairosVersion>}}/{{<image variant="standard">}}.iso)
ISO file for the openSUSE based version, where `{{< k3sVersion >}}` in the name is the `k3s` version and `{{< kairosVersion >}}` is the Kairos one to deploy on a VM.
1. You can also use [netboot]({{< relref "../installation/netboot" >}}) to boot Kairos over the network

Expand Down Expand Up @@ -73,14 +73,14 @@ First we check that we have all needed files:

```bash
$ ls
kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.pem
kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256 kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.sig
{{<image variant="core">}}.iso {{<image variant="core">}}.iso.sha256.pem
{{<image variant="core">}}.iso.sha256 {{<image variant="core">}}.iso.sha256.sig
```

We first verify that the sha256 checksums haven't been tampered with:

```bash
$ COSIGN_EXPERIMENTAL=1 cosign verify-blob --cert kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.pem --signature kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.sig kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256
$ COSIGN_EXPERIMENTAL=1 cosign verify-blob --cert {{<image variant="core">}}.iso.sha256.pem --signature {{<image variant="core">}}.iso.sha256.sig {{<image variant="core">}}.iso.sha256
tlog entry verified with uuid: 51ef927a43557386ad7912802607aa421566772524319703a99f8331f0bb778f index: 11977200
Verified OK
```
Expand All @@ -90,9 +90,9 @@ Once we see that `Verified OK` we can be sure that the file hasn't been tampered
For an example of a failure validation see below:

```bash
$ COSIGN_EXPERIMENTAL=1 cosign verify-blob --enforce-sct --cert kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.pem --signature kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.sig kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.modified
Error: verifying blob [kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.modified]: invalid signature when validating ASN.1 encoded signature
main.go:62: error during command execution: verifying blob [kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256.modified]: invalid signature when validating ASN.1 encoded signature
$ COSIGN_EXPERIMENTAL=1 cosign verify-blob --enforce-sct --cert {{<image variant="core">}}.iso.sha256.pem --signature {{<image variant="core">}}.iso.sha256.sig {{<image variant="core">}}.iso.sha256.modified
Error: verifying blob [{{<image variant="core">}}.iso.sha256.modified]: invalid signature when validating ASN.1 encoded signature
main.go:62: error during command execution: verifying blob [{{<image variant="core">}}.iso.sha256.modified]: invalid signature when validating ASN.1 encoded signature
```
{{% alert title="Info" %}}
We use `COSIGN_EXPERIMENTAL=1` to verify the blob using the keyless method. That means that only ephemeral keys are created to sign, and it relays on using
Expand All @@ -104,8 +104,8 @@ via the CI with no external access to the signing process. For more information
Now we can verify that the integrity of the ISO hasnt been compromise:

```bash
$ sha256sum -c kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso.sha256
kairos-core-opensuse-leap-amd64-generic-{{< kairosVersion >}}.iso: OK
$ sha256sum -c {{< image variant="core">}}.iso.sha256
{{< image variant="core">}}.iso: OK
```

Once we reached this point, we can be sure that from the ISO hasn't been tampered with since it was created by our release workflow.
Expand Down Expand Up @@ -145,7 +145,7 @@ Here are some additional helpful tips depending on the physical/virtual machine
virt-install --name my-first-kairos-vm \
--vcpus 1 \
--memory 1024 \
--cdrom /path/to/kairos-opensuse-{{< kairosVersion >}}-{{< k3sVersion >}}.iso \
--cdrom /path/to/{{< image variant="standard" >}}.iso \
--disk size=30 \
--os-variant opensuse-factory \
--virt-type kvm
Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/Installation/automated.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ kind: OSArtifact
metadata:
name: hello-kairos
spec:
imageName: "quay.io/kairos/core-opensuse-leap:latest"
imageName: "{{<oci variant="core">}}"
iso: true
bundles:
# Bundles available at: https://packages.kairos.io/Kairos/
Expand Down
4 changes: 2 additions & 2 deletions content/en/docs/Installation/netboot.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ qemu-system-x86_64 \

```bash
docker run --rm -ti --net host quay.io/kairos/auroraboot \
--set "container_image=quay.io/kairos/kairos-opensuse-leap:{{<kairosVersion>}}-{{<k3sVersion>}}"
--set "container_image={{<oci variant="standard">}}"
# Optionally:
# --cloud-config ....
```

Will netboot the `quay.io/kairos/kairos-opensuse-leap:{{<kairosVersion>}}-{{<k3sVersion>}}` image. You can find more details in the [AuroraBoot documentation section]({{< relref "../reference/auroraboot" >}}).
Will netboot the `{{<oci variant="standard">}}` image. You can find more details in the [AuroraBoot documentation section]({{< relref "../reference/auroraboot" >}}).

## Notes on booting from network

Expand Down
15 changes: 8 additions & 7 deletions content/en/docs/Installation/nvidia_agx_orin.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ cd Linux_for_Tegra
# Drop extlinux
echo "" > ./bootloader/extlinux.conf
# This is needed so the SDK doesn't complain of missing files (not really used in the flash process)
IMAGE=quay.io/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin:latest
IMAGE= quay.io/kairos/ubuntu:20.04-core-arm64-nvidia-jetson-agx-orin-{{< kairosVersion>}}
docker run -ti --rm -v $PWD/rootfs:/rootfs quay.io/luet/base util unpack "$IMAGE" /rootfs
# workaround needed (SDK writes to the symlink)
rm rootfs/boot/initrd
Expand All @@ -59,16 +59,17 @@ echo "" > rootfs/boot/extlinux/extlinux.conf

### Prepare the images

You can either download pre-built Kairos images, or build your own from a container image. You can find Kairos core ubuntu images based on Ubuntu `20.04` here: https://quay.io/repository/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin.
You can either download pre-built Kairos images, or build your own from a container image. You can find Kairos core ubuntu images based on Ubuntu `20.04` here: https://quay.io/repository/kairos/ubuntu
(search for `nvidia` in the tags)

{{< tabpane text=true >}}
{{% tab header="Download pre-built partition images from a container image" %}}

We will download pre-built images from a container image. Pre-built images are using https://quay.io/repository/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin and contains `.img` files that can be used for flashing. Img files are pushed automatically by the Kairos CI in https://quay.io/repository/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin.
We will download pre-built images from a container image. Pre-built images are using https://quay.io/repository/kairos/ubuntu and contains `.img` files that can be used for flashing. Img files are pushed automatically by the Kairos CI in https://quay.io/repository/kairos/ubuntu (search for tags with `nvidia`).

```bash
KAIROS_VERSION=v2.2.0-rc3
IMAGE=quay.io/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin-img:$KAIROS_VERSION
KAIROS_VERSION={{< kairosVersion >}}
IMAGE=quay.io/kairos/ubuntu:20.04-core-arm64-nvidia-jetson-agx-orin-$KAIROS_VERSION-img
docker run -ti --rm -v $PWD/bootloader:/rootfs quay.io/luet/base util unpack "$IMAGE" /rootfs
mv bootloader/build/*.img bootloader
```
Expand All @@ -78,7 +79,7 @@ mv bootloader/build/*.img bootloader

If you are customizing the image, or either modifying the default partition sizes you can build the images by running:
```bash
IMAGE=quay.io/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin:latest
IMAGE=quay.io/kairos/ubuntu:20.04-core-arm64-nvidia-jetson-agx-orin-{{< kairosVersion >}}
docker run --privileged \
-e container_image=$IMAGE \
-e STATE_SIZE="14000" \
Expand Down Expand Up @@ -231,7 +232,7 @@ The solution here is trying with a different kernel version, as suggested in the
To customize the default cloud config of the board, generate the images mounting the cloud config you want in the images in `/defaults.yaml`:

```bash
IMAGE=quay.io/kairos/core-ubuntu-20-lts-arm-nvidia-jetson-agx-orin:latest
IMAGE=quay.io/kairos/ubuntu:20.04-core-arm64-nvidia-jetson-agx-orin-{{< kairosVersion >}}
CLOUD_CONFIG=/cloud/config.yaml
docker run -v $CLOUD_CONFIG:/defaults.yaml --privileged \
-e container_image=$IMAGE \
Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/Installation/takeover.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Kairos supports takeover installations. Here are a few summarized steps:

```
export DEVICE=/dev/sda
export IMAGE=quay.io/kairos/core-opensuse-leap:{{< kairosVersion >}}
export IMAGE={{<oci variant="core">}}
cat <<'EOF' > config.yaml
#cloud-config
users:
Expand Down
Loading