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

Align repository with 3.1 release #583

Merged
merged 2 commits into from
Oct 10, 2024
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
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
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