Skip to content

Commit

Permalink
align repository with 3.1 release
Browse files Browse the repository at this point in the history
  • Loading branch information
dbw7 committed Oct 10, 2024
1 parent 4bbb391 commit 23dec20
Show file tree
Hide file tree
Showing 17 changed files with 69 additions and 63 deletions.
16 changes: 8 additions & 8 deletions docs/building-images.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Building Images

Three things are necessary to build an image using EIB:
1. A SLE Micro image to use as the base of the created image
1. A SLE Micro image to use as the base of the created image that matches the architecture of the host machine
1. A definition file that describes the image to build
1. A directory that contains the base SLE Micro image to modify, along with any other custom files that
will be included in the built image
Expand Down Expand Up @@ -29,17 +29,17 @@ The following can be used as the minimum configuration required to create an ima
required for each image definition.

```yaml
apiVersion: 1.0
apiVersion: 1.1
image:
imageType: iso
arch: x86_64
baseImage: SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM.install.iso
baseImage: SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso
outputImageName: eib-image.iso
```
* `apiVersion` - Indicates the version of the definition file schema for EIB to expect.
* `imageType` - Must be either `iso` or `raw` depending on the type of image being customized.
* `arch` - Must be `x86_64`; future versions of EIB will support multiple architectures.
* `arch` - Must be `x86_64` or `aarch64`.
* `baseImage` - Indicates the name of the image file used as the base for the built image. Base image files must be
uncompressed before they can be modified by EIB. This file must be located
under the `base-images` directory of the image configuration directory (see below for more information).
Expand Down Expand Up @@ -211,7 +211,7 @@ This section contains all necessary settings to configure and bootstrap a Kubern

```yaml
kubernetes:
version: v1.28.8+rke2r1
version: v1.30.3+rke2r1
network:
apiVIP: 192.168.122.100
apiHost: api.cluster01.hosted.on.edge.suse.com
Expand Down Expand Up @@ -257,7 +257,7 @@ kubernetes:
password: pass
```

* `version` - Required; Specifies the version of a particular K3s or RKE2 release (e.g.`v1.28.8+k3s1` or `v1.28.8+rke2r1`)
* `version` - Required; Specifies the version of a particular K3s or RKE2 release (e.g.`v1.30.3+k3s1` or `v1.30.3+rke2r1`)
* `network` - Required for multi-node clusters, optional for single-node clusters; Defines the network configuration
for bootstrapping a cluster.
* `apiVIP` - Required for multi-node clusters, optional for single-node clusters; Specifies the IP address which
Expand Down Expand Up @@ -369,8 +369,8 @@ The Image Configuration Directory contains all the files necessary for EIB to bu
├── definition-1.yaml
├── definition-2.yaml
└── base-images
├── SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM2.install.iso
└── SLE-Micro.x86_64-5.5.0-Default-GM.raw
├── SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso
└── SL-Micro.x86_64-6.0-Default-GM2.raw
```

* `*.yaml` - All image definition files should be in the root of the image configuration directory. Multiple definition
Expand Down
2 changes: 1 addition & 1 deletion docs/design/downloads.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ nm-configurator

These artifacts are programmatically downloaded by EIB during build time. Some of these artifacts may be copied to the RTD image.

### Elemental
### Elemental (Not relevant for SL Micro 6.0)
Source
```
https://download.opensuse.org/repositories/isv:/Rancher:/Elemental:/Maintenance:/5.5/standard/
Expand Down
10 changes: 8 additions & 2 deletions docs/installing-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ EIB's **RPM resolution** process and package installation has been tested on the
1. [Ubuntu 22.04](https://releases.ubuntu.com/jammy/)
1. [Fedora Linux](https://fedoraproject.org/server/download)

## Tech preview systems
EIB's **RPM resolution** process and package installation has been tested on the following `aarch64` systems:
1. [openSUSE Leap](https://get.opensuse.org/leap)
2. [Mac OS](https://www.apple.com/macos)
1. [Ubuntu 24.04](https://releases.ubuntu.com/noble/)

## Specify packages for installation
You can configure packages for installation in the following ways:
1. Providing a `packageList` configuration under `operatingSystem.packages` in the EIB image configuration file
Expand Down Expand Up @@ -56,7 +62,7 @@ EIB configuration directory tree:
.
├── eib-config-iso.yaml
├── base-images
│ └── SLE-Micro.x86_64-5.5.0-Default-RT-GM.raw
│ └── SL-Micro.x86_64-6.0-Default-GM2.raw
└── rpms
├── gpg-keys
│ └── reiserfs-kpm-default-debuginfo.key
Expand All @@ -77,7 +83,7 @@ EIB configuration directory tree:
.
├── eib-config-iso.yaml
├── base-images
│ └── SLE-Micro.x86_64-5.5.0-Default-RT-GM.raw
│ └── SL-Micro.x86_64-6.0-Default-GM2.raw
└── rpms
├── gpg-keys
│ └── git.key
Expand Down
14 changes: 7 additions & 7 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ and the results of performing multiple builds:
```bash
.
├── base-images
│ ├── SLE-Micro.x86_64-5.5.0-Default-GM.raw
│ ├── SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM2.install.iso
│ ├── SL-Micro.x86_64-6.0-Default-GM2.raw
│ ├── SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso
├── definitions
│ ├── iso
│ │ └── basic.yaml
Expand Down Expand Up @@ -80,7 +80,7 @@ podman run --rm --privileged -it \

| Option | Default Value |
|--------------|-------------------------------------------------------------------------|
| Base Image | `base-images/SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM.install.iso` |
| Base Image | `base-images/SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso` |
| Output Image | `out/basic.iso` |

* Configures the `root` password to be `slemicro`.
Expand All @@ -96,10 +96,10 @@ podman run --rm --privileged -it \

### `raw/basic.yaml`

| Option | Default Value |
|--------------|-----------------------------------------------------|
| Base Image | `base-images/SLE-Micro.x86_64-5.5.0-Default-GM.raw` |
| Output Image | `out/basic.raw` |
| Option | Default Value |
|--------------|---------------------------------------------------|
| Base Image | `base-images/SL-Micro.x86_64-6.0-Default-GM2.raw` |
| Output Image | `out/basic.raw` |

* Configures the `root` password to be `slemicro`.

Expand Down
4 changes: 2 additions & 2 deletions examples/iso/basic.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: 1.0
apiVersion: 1.1
image:
arch: x86_64
imageType: iso
baseImage: SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM2.install.iso
baseImage: SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso
outputImageName: ./out/basic.iso
operatingSystem:
isoConfiguration:
Expand Down
6 changes: 3 additions & 3 deletions examples/iso/k3s-single-node.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
apiVersion: 1.0
apiVersion: 1.1
image:
arch: x86_64
imageType: iso
baseImage: SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM2.install.iso
baseImage: SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso
outputImageName: single-node-k3s-no-selinux.iso
kubernetes:
version: v1.28.8+k3s1
version: v1.30.3+k3s1
network:
apiVIP: 192.168.100.19
manifests:
Expand Down
4 changes: 2 additions & 2 deletions examples/iso/os-configuration.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: 1.0
apiVersion: 1.1
image:
arch: x86_64
imageType: iso
baseImage: SLE-Micro.x86_64-5.5.0-Default-SelfInstall-GM2.install.iso
baseImage: SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.install.iso
outputImageName: iso-image.iso
operatingSystem:
isoConfiguration:
Expand Down
4 changes: 2 additions & 2 deletions examples/raw/basic.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: 1.0
apiVersion: 1.1
image:
arch: x86_64
imageType: raw
baseImage: SLE-Micro.x86_64-5.5.0-Default-GM.raw
baseImage: SL-Micro.x86_64-6.0-Default-GM2.raw
outputImageName: ./out/basic.raw
operatingSystem:
users:
Expand Down
6 changes: 3 additions & 3 deletions examples/raw/k3s-single-node.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
apiVersion: 1.0
apiVersion: 1.1
image:
arch: x86_64
imageType: raw
baseImage: SLE-Micro.x86_64-5.5.0-Default-GM.raw
baseImage: SL-Micro.x86_64-6.0-Default-GM2.raw
outputImageName: single-node-k3s-no-selinux.raw
kubernetes:
version: v1.28.8+k3s1
version: v1.30.3+k3s1
network:
apiVIP: 192.168.100.19
manifests:
Expand Down
4 changes: 2 additions & 2 deletions examples/raw/os-configuration.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: 1.0
apiVersion: 1.1
image:
arch: x86_64
imageType: raw
baseImage: SLE-Micro.x86_64-5.5.0-Default-GM.raw
baseImage: SL-Micro.x86_64-6.0-Default-GM2.raw
outputImageName: raw-image.raw
operatingSystem:
rawConfiguration:
Expand Down
22 changes: 11 additions & 11 deletions pkg/combustion/kubernetes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ func TestConfigureKubernetes_UnsupportedVersion(t *testing.T) {
ctx := &image.Context{
ImageDefinition: &image.Definition{
Kubernetes: image.Kubernetes{
Version: "v1.29.0",
Version: "v1.30.3",
},
},
}
Expand All @@ -111,7 +111,7 @@ func TestConfigureKubernetes_UnsupportedVersion(t *testing.T) {

scripts, err := c.configureKubernetes(ctx)
require.Error(t, err)
assert.EqualError(t, err, "cannot configure kubernetes version: v1.29.0")
assert.EqualError(t, err, "cannot configure kubernetes version: v1.30.3")
assert.Nil(t, scripts)
}

Expand All @@ -120,7 +120,7 @@ func TestConfigureKubernetes_ScriptInstallerErrorK3s(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+k3s1",
Version: "v1.30.3+k3s1",
}

c := Combustion{
Expand All @@ -142,7 +142,7 @@ func TestConfigureKubernetes_ScriptInstallerErrorRKE2(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+rke2r1",
Version: "v1.30.3+rke2r1",
}

c := Combustion{
Expand All @@ -164,7 +164,7 @@ func TestConfigureKubernetes_ArtefactDownloaderErrorK3s(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+k3s1",
Version: "v1.30.3+k3s1",
}

c := Combustion{
Expand All @@ -191,7 +191,7 @@ func TestConfigureKubernetes_ArtefactDownloaderErrorRKE2(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+rke2r1",
Version: "v1.30.3+rke2r1",
}

c := Combustion{
Expand All @@ -218,7 +218,7 @@ func TestConfigureKubernetes_SuccessfulSingleNodeK3sCluster(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+k3s1",
Version: "v1.30.3+k3s1",
Network: image.Network{
APIVIP: "192.168.122.100",
APIHost: "api.cluster01.hosted.on.edge.suse.com",
Expand Down Expand Up @@ -290,7 +290,7 @@ func TestConfigureKubernetes_SuccessfulMultiNodeK3sCluster(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+k3s1",
Version: "v1.30.3+k3s1",
Network: image.Network{
APIHost: "api.cluster01.hosted.on.edge.suse.com",
APIVIP: "192.168.122.100",
Expand Down Expand Up @@ -421,7 +421,7 @@ func TestConfigureKubernetes_SuccessfulSingleNodeRKE2Cluster(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+rke2r1",
Version: "v1.30.3+rke2r1",
Network: image.Network{
APIVIP: "192.168.122.100",
APIHost: "api.cluster01.hosted.on.edge.suse.com",
Expand Down Expand Up @@ -489,7 +489,7 @@ func TestConfigureKubernetes_SuccessfulMultiNodeRKE2Cluster(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+rke2r1",
Version: "v1.30.3+rke2r1",
Network: image.Network{
APIHost: "api.cluster01.hosted.on.edge.suse.com",
APIVIP: "192.168.122.100",
Expand Down Expand Up @@ -732,7 +732,7 @@ func TestConfigureKubernetes_SuccessfulRKE2ServerWithManifests(t *testing.T) {
defer teardown()

ctx.ImageDefinition.Kubernetes = image.Kubernetes{
Version: "v1.29.0+rke2r1",
Version: "v1.30.3+rke2r1",
Network: image.Network{
APIVIP: "192.168.122.100",
APIHost: "api.cluster01.hosted.on.edge.suse.com",
Expand Down
8 changes: 4 additions & 4 deletions pkg/helm/helm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,7 @@ func TestTemplateCommand(t *testing.T) {
chart: "kubevirt",
version: "0.2.1",
apiVersions: []string{"batch/v1", "apps/v1/Deployment"},
kubeVersion: "v1.29.0+rke2r1",
kubeVersion: "v1.30.3+rke2r1",
targetNamespace: "kubevirt-ns",
valuesPath: "/kubevirt/values.yaml",
expectedArgs: []string{
Expand All @@ -532,22 +532,22 @@ func TestTemplateCommand(t *testing.T) {
"--api-versions",
"batch/v1,apps/v1/Deployment",
"--kube-version",
"v1.29.0+rke2r1",
"v1.30.3+rke2r1",
},
},
{
name: "Template without optional parameters",
repo: "suse-edge/kubevirt",
chart: "kubevirt",
kubeVersion: "v1.29.0+rke2r1",
kubeVersion: "v1.30.3+rke2r1",
expectedArgs: []string{
"helm",
"template",
"--skip-crds",
"kubevirt",
"suse-edge/kubevirt",
"--kube-version",
"v1.29.0+rke2r1",
"v1.30.3+rke2r1",
},
},
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/image/definition_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ func TestParse(t *testing.T) {
require.NoError(t, err)

// - Definition
assert.Equal(t, "1.0", definition.APIVersion)
assert.Equal(t, "1.1", definition.APIVersion)
assert.EqualValues(t, "x86_64", definition.Image.Arch)
assert.Equal(t, "iso", definition.Image.ImageType)

// - Image
assert.Equal(t, "slemicro5.5.iso", definition.Image.BaseImage)
assert.Equal(t, "sl-micro6.0.iso", definition.Image.BaseImage)
assert.Equal(t, "eibimage.iso", definition.Image.OutputImageName)

// - Operating System -> Kernel Arguments
Expand Down Expand Up @@ -159,7 +159,7 @@ func TestParse(t *testing.T) {
kubernetes := definition.Kubernetes

// Version
assert.Equal(t, "v1.29.0+rke2r1", kubernetes.Version)
assert.Equal(t, "v1.30.3+rke2r1", kubernetes.Version)

// Network
assert.Equal(t, "192.168.122.100", kubernetes.Network.APIVIP)
Expand Down Expand Up @@ -229,7 +229,7 @@ func TestParseBadConfig_InvalidFormat(t *testing.T) {

func TestParseBadConfig_UnknownFields(t *testing.T) {
badConfig := `
apiVersion: 1.0
apiVersion: 1.1
image:
type: iso
operatingSystem:
Expand Down
6 changes: 3 additions & 3 deletions pkg/image/testdata/full-valid-example.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: 1.0
apiVersion: 1.1
image:
imageType: iso
arch: x86_64
baseImage: slemicro5.5.iso
baseImage: sl-micro6.0.iso
outputImageName: eibimage.iso
operatingSystem:
isoConfiguration:
Expand Down Expand Up @@ -80,7 +80,7 @@ embeddedArtifactRegistry:
- name: hello-world:latest
- name: ghcr.io/fluxcd/flux-cli@sha256:02aa820c3a9c57d67208afcfc4bce9661658c17d15940aea369da259d2b976dd
kubernetes:
version: v1.29.0+rke2r1
version: v1.30.3+rke2r1
network:
apiVIP: 192.168.122.100
apiHost: api.cluster01.hosted.on.edge.suse.com
Expand Down
Loading

0 comments on commit 23dec20

Please sign in to comment.