From 23dec206e9f798700c076976245fb1423a917721 Mon Sep 17 00:00:00 2001 From: dbw7 Date: Thu, 10 Oct 2024 10:41:36 -0400 Subject: [PATCH 1/2] align repository with 3.1 release --- docs/building-images.md | 16 ++++++++-------- docs/design/downloads.md | 2 +- docs/installing-packages.md | 10 ++++++++-- examples/README.md | 14 +++++++------- examples/iso/basic.yaml | 4 ++-- examples/iso/k3s-single-node.yaml | 6 +++--- examples/iso/os-configuration.yaml | 4 ++-- examples/raw/basic.yaml | 4 ++-- examples/raw/k3s-single-node.yaml | 6 +++--- examples/raw/os-configuration.yaml | 4 ++-- pkg/combustion/kubernetes_test.go | 22 +++++++++++----------- pkg/helm/helm_test.go | 8 ++++---- pkg/image/definition_test.go | 8 ++++---- pkg/image/testdata/full-valid-example.yaml | 6 +++--- pkg/image/validation/kubernetes_test.go | 6 +++--- pkg/image/validation/validation_test.go | 4 ++-- pkg/kubernetes/cluster_test.go | 8 ++++---- 17 files changed, 69 insertions(+), 63 deletions(-) diff --git a/docs/building-images.md b/docs/building-images.md index a68d64fd..23690ea1 100644 --- a/docs/building-images.md +++ b/docs/building-images.md @@ -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 @@ -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). @@ -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 @@ -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 @@ -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 diff --git a/docs/design/downloads.md b/docs/design/downloads.md index 60d28f8a..17379aa0 100644 --- a/docs/design/downloads.md +++ b/docs/design/downloads.md @@ -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/ diff --git a/docs/installing-packages.md b/docs/installing-packages.md index d074b913..d5655974 100644 --- a/docs/installing-packages.md +++ b/docs/installing-packages.md @@ -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 @@ -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 @@ -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 diff --git a/examples/README.md b/examples/README.md index 7de74e30..b0ae0c68 100644 --- a/examples/README.md +++ b/examples/README.md @@ -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 @@ -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`. @@ -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`. diff --git a/examples/iso/basic.yaml b/examples/iso/basic.yaml index 268757bc..b6e3d2c7 100644 --- a/examples/iso/basic.yaml +++ b/examples/iso/basic.yaml @@ -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: diff --git a/examples/iso/k3s-single-node.yaml b/examples/iso/k3s-single-node.yaml index 3f380682..76bea2f9 100644 --- a/examples/iso/k3s-single-node.yaml +++ b/examples/iso/k3s-single-node.yaml @@ -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: diff --git a/examples/iso/os-configuration.yaml b/examples/iso/os-configuration.yaml index b0dcc8bc..03e5cf0e 100644 --- a/examples/iso/os-configuration.yaml +++ b/examples/iso/os-configuration.yaml @@ -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: diff --git a/examples/raw/basic.yaml b/examples/raw/basic.yaml index ccdb67ac..75fc2bb5 100644 --- a/examples/raw/basic.yaml +++ b/examples/raw/basic.yaml @@ -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: diff --git a/examples/raw/k3s-single-node.yaml b/examples/raw/k3s-single-node.yaml index 182e27e1..d512da68 100644 --- a/examples/raw/k3s-single-node.yaml +++ b/examples/raw/k3s-single-node.yaml @@ -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: diff --git a/examples/raw/os-configuration.yaml b/examples/raw/os-configuration.yaml index b479ea71..bc56e61f 100644 --- a/examples/raw/os-configuration.yaml +++ b/examples/raw/os-configuration.yaml @@ -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: diff --git a/pkg/combustion/kubernetes_test.go b/pkg/combustion/kubernetes_test.go index 09ace3aa..700d4f73 100644 --- a/pkg/combustion/kubernetes_test.go +++ b/pkg/combustion/kubernetes_test.go @@ -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", }, }, } @@ -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) } @@ -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{ @@ -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{ @@ -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{ @@ -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{ @@ -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", @@ -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", @@ -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", @@ -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", @@ -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", diff --git a/pkg/helm/helm_test.go b/pkg/helm/helm_test.go index d35567bb..ae972a26 100644 --- a/pkg/helm/helm_test.go +++ b/pkg/helm/helm_test.go @@ -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{ @@ -532,14 +532,14 @@ 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", @@ -547,7 +547,7 @@ func TestTemplateCommand(t *testing.T) { "kubevirt", "suse-edge/kubevirt", "--kube-version", - "v1.29.0+rke2r1", + "v1.30.3+rke2r1", }, }, } diff --git a/pkg/image/definition_test.go b/pkg/image/definition_test.go index be6c148e..1cc10eed 100644 --- a/pkg/image/definition_test.go +++ b/pkg/image/definition_test.go @@ -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 @@ -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) @@ -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: diff --git a/pkg/image/testdata/full-valid-example.yaml b/pkg/image/testdata/full-valid-example.yaml index 7ac6f1b6..90ad9d28 100644 --- a/pkg/image/testdata/full-valid-example.yaml +++ b/pkg/image/testdata/full-valid-example.yaml @@ -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: @@ -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 diff --git a/pkg/image/validation/kubernetes_test.go b/pkg/image/validation/kubernetes_test.go index 55c16204..82406ddb 100644 --- a/pkg/image/validation/kubernetes_test.go +++ b/pkg/image/validation/kubernetes_test.go @@ -41,7 +41,7 @@ func TestValidateKubernetes(t *testing.T) { }, `all valid`: { K8s: image.Kubernetes{ - Version: "1.0", + Version: "v1.30.3+k3s1", Network: validNetwork, Nodes: []image.Node{ { @@ -77,7 +77,7 @@ func TestValidateKubernetes(t *testing.T) { }, `failures all sections`: { K8s: image.Kubernetes{ - Version: "1.0", + Version: "v1.30.3", Network: validNetwork, Nodes: []image.Node{ { @@ -146,7 +146,7 @@ func TestValidateKubernetes(t *testing.T) { func TestIsKubernetesDefined(t *testing.T) { result := isKubernetesDefined(&image.Kubernetes{ - Version: "1.0", + Version: "v1.30.3+k3s1", }) assert.True(t, result) diff --git a/pkg/image/validation/validation_test.go b/pkg/image/validation/validation_test.go index 96b5fa50..3f8d2b3c 100644 --- a/pkg/image/validation/validation_test.go +++ b/pkg/image/validation/validation_test.go @@ -31,7 +31,7 @@ func TestValidateDefinition(t *testing.T) { }{ `minimal valid`: { Definition: image.Definition{ - APIVersion: "1.0", + APIVersion: "1.1", Image: image.Image{ ImageType: "iso", Arch: image.ArchTypeX86, @@ -42,7 +42,7 @@ func TestValidateDefinition(t *testing.T) { }, `invalid in each`: { Definition: image.Definition{ - APIVersion: "1.0", + APIVersion: "1.1", Image: image.Image{ Arch: image.ArchTypeX86, BaseImage: fakeBaseImageName, diff --git a/pkg/kubernetes/cluster_test.go b/pkg/kubernetes/cluster_test.go index fba10a6e..e1e5a950 100644 --- a/pkg/kubernetes/cluster_test.go +++ b/pkg/kubernetes/cluster_test.go @@ -11,7 +11,7 @@ import ( func TestNewCluster_SingleNodeRKE2_MissingConfig(t *testing.T) { kubernetes := &image.Kubernetes{ - Version: "v1.29.0+rke2r1", + Version: "v1.30.3+rke2r1", Network: image.Network{ APIHost: "api.suse.edge.com", APIVIP: "192.168.122.50", @@ -36,7 +36,7 @@ func TestNewCluster_SingleNodeRKE2_MissingConfig(t *testing.T) { func TestNewCluster_SingleNodeK3s_MissingConfig(t *testing.T) { kubernetes := &image.Kubernetes{ - Version: "v1.29.0+k3s1", + Version: "v1.30.3+k3s1", Network: image.Network{ APIHost: "api.suse.edge.com", APIVIP: "192.168.122.50", @@ -84,7 +84,7 @@ func TestNewCluster_SingleNode_ExistingConfig(t *testing.T) { func TestNewCluster_MultiNodeRKE2_MissingConfig(t *testing.T) { kubernetes := &image.Kubernetes{ - Version: "v1.29.0+rke2r1", + Version: "v1.30.3+rke2r1", Network: image.Network{ APIHost: "api.suse.edge.com", APIVIP: "192.168.122.50", @@ -134,7 +134,7 @@ func TestNewCluster_MultiNodeRKE2_MissingConfig(t *testing.T) { func TestNewCluster_MultiNodeRKE2_ExistingConfig(t *testing.T) { kubernetes := &image.Kubernetes{ - Version: "v1.29.0+rke2r1", + Version: "v1.30.3+rke2r1", Network: image.Network{ APIHost: "api.suse.edge.com", APIVIP: "192.168.122.50", From 196591358d129b586625e763ae4496af7bd9fd13 Mon Sep 17 00:00:00 2001 From: dbw7 Date: Thu, 10 Oct 2024 10:59:06 -0400 Subject: [PATCH 2/2] feedback updates --- docs/design/downloads.md | 2 +- examples/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/design/downloads.md b/docs/design/downloads.md index 17379aa0..60d28f8a 100644 --- a/docs/design/downloads.md +++ b/docs/design/downloads.md @@ -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 (Not relevant for SL Micro 6.0) +### Elemental Source ``` https://download.opensuse.org/repositories/isv:/Rancher:/Elemental:/Maintenance:/5.5/standard/ diff --git a/examples/README.md b/examples/README.md index b0ae0c68..d2cdef4e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -80,7 +80,7 @@ podman run --rm --privileged -it \ | Option | Default Value | |--------------|-------------------------------------------------------------------------| -| Base Image | `base-images/SL-Micro.x86_64-6.0-Default-SelfInstall-GM2.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`.