<https://forums.opensuse.org/t/microos-builds-for-...
# harvester
p
iirc the last time I looked at this I wound up along these lines + elemental-toolkit: https://documentation.suse.com/cloudnative/os-manager/1.6/en/custom-images.html
f
p
ahh yeah, contact paid support? πŸ˜„
πŸ˜‚ 1
f
this is not for paid support i think is more for OpenSource stuff since im using OpenSUSE and OpenSUSE microOS
since they are both form SUSE there should be some images made for harvester
because there are for AZURE AWS GCP then noCloud
where harvester is their opensource HCI
s
for microOS, add this template to your setup
Copy code
apiVersion: v1
data:
  cloudInit: |-
    #cloud-config
    password: <your_password>
    chpasswd:
      expire: false
    ssh_pwauth: true
    package_update: true
    packages:
      - qemu-guest-agent
    runcmd:
      - - systemctl
        - enable
        - --now
        - qemu-guest-agent.service
kind: ConfigMap
metadata:
  name: sle-micro-base
  namespace: harvester-public
  labels:
    <http://harvesterhci.io/cloud-init-template|harvesterhci.io/cloud-init-template>: user
for the template and you can get the OS from here, under the 'alternate downloads' section, one of the qcow2 images should work. https://get.opensuse.org/microos/. If that doesn't work, maybe try directly from suse.com https://www.suse.com/download/sle-micro/ fyi there is paid support for pretty much anything, the software is opensource. But opensource != free support as a general rule of thumb
❀️ 1
f
i will try this right now and test and yes i used the qcow2
πŸ‘ 1
still same it brings me to the setup menu
Copy code
kubectl get configmaps -n klesti-testing sle-micro-base -o yaml
apiVersion: v1
data:
  cloudInit: |-
    #cloud-config
    password: 1
    chpasswd:
      expire: false
    ssh_pwauth: true
    package_update: true
    packages:
      - qemu-guest-agent
    runcmd:
      - - systemctl
        - enable
        - --now
        - qemu-guest-agent.service
kind: ConfigMap
metadata:
  creationTimestamp: "2025-05-02T22:54:58Z"
  labels:
    <http://harvesterhci.io/cloud-init-template|harvesterhci.io/cloud-init-template>: user
  name: sle-micro-base
  namespace: klesti-testing
  resourceVersion: "77648758"
  uid: 7f013572-e05b-4f02-8264-346d1fcf36d1

 kubectl get configmaps -n klesti-testing sle-micro-base -o yaml
apiVersion: v1
data:
  cloudInit: |-
    #cloud-config
    password: 1
    chpasswd:
      expire: false
    ssh_pwauth: true
    package_update: true
    packages:
      - qemu-guest-agent
    runcmd:
      - - systemctl
        - enable
        - --now
        - qemu-guest-agent.service
kind: ConfigMap
metadata:
  creationTimestamp: "2025-05-02T22:54:58Z"
  labels:
    <http://harvesterhci.io/cloud-init-template|harvesterhci.io/cloud-init-template>: user
  name: sle-micro-base
  namespace: klesti-testing
  resourceVersion: "77648758"
  uid: 7f013572-e05b-4f02-8264-346d1fcf36d1
> kubectl get virtualmachine -n klesti-testing micro-os-test -o yaml 
apiVersion: <http://kubevirt.io/v1|kubevirt.io/v1>
kind: VirtualMachine
metadata:
  annotations:
    <http://harvesterhci.io/vmRunStrategy|harvesterhci.io/vmRunStrategy>: RerunOnFailure
    <http://harvesterhci.io/volumeClaimTemplates|harvesterhci.io/volumeClaimTemplates>: '[{"metadata":{"name":"micro-os-test-disk-0-khqng","annotations":{"<http://harvesterhci.io/imageId|harvesterhci.io/imageId>":"harvester-public/image-4gcdm"}},"spec":{"accessModes":["ReadWriteMany"],"resources":{"requests":{"storage":"20Gi"}},"volumeMode":"Block","storageClassName":"longhorn-image-4gcdm"}}]'
    <http://kubevirt.io/latest-observed-api-version|kubevirt.io/latest-observed-api-version>: v1
    <http://kubevirt.io/storage-observed-api-version|kubevirt.io/storage-observed-api-version>: v1
    <http://network.harvesterhci.io/ips|network.harvesterhci.io/ips>: '[]'
  creationTimestamp: "2025-05-02T23:13:36Z"
  finalizers:
  - <http://wrangler.cattle.io/VMController.CleanupPVCAndSnapshot|wrangler.cattle.io/VMController.CleanupPVCAndSnapshot>
  - <http://kubevirt.io/virtualMachineControllerFinalize|kubevirt.io/virtualMachineControllerFinalize>
  generation: 2
  labels:
    <http://harvesterhci.io/creator|harvesterhci.io/creator>: harvester
    <http://harvesterhci.io/os|harvesterhci.io/os>: linux
  name: micro-os-test
  namespace: klesti-testing
  resourceVersion: "77672128"
  uid: 5c88efcb-0a1f-467d-9918-ebae679eff1c
spec:
  runStrategy: RerunOnFailure
  template:
    metadata:
      annotations:
        <http://harvesterhci.io/sshNames|harvesterhci.io/sshNames>: '[]'
      creationTimestamp: null
      labels:
        <http://harvesterhci.io/vmName|harvesterhci.io/vmName>: micro-os-test
    spec:
      affinity: {}
      architecture: amd64
      domain:
        cpu:
          cores: 2
          sockets: 1
          threads: 1
        devices:
          disks:
          - bootOrder: 1
            disk:
              bus: virtio
            name: disk-0
          - disk:
              bus: virtio
            name: cloudinitdisk
          inputs:
          - bus: usb
            name: tablet
            type: tablet
          interfaces:
          - macAddress: d6:0e:1b:cb:1a:f2
            masquerade: {}
            model: virtio
            name: default
        features:
          acpi:
            enabled: true
        machine:
          type: q35
        memory:
          guest: 4Gi
        resources:
          limits:
            cpu: "2"
            memory: 4Gi
          requests:
            cpu: 125m
            memory: 2730Mi
      evictionStrategy: LiveMigrateIfPossible
      hostname: micro-os-test
      networks:
      - name: default
        pod: {}
      terminationGracePeriodSeconds: 120
      volumes:
      - name: disk-0
        persistentVolumeClaim:
          claimName: micro-os-test-disk-0-khqng
      - cloudInitNoCloud:
          networkDataSecretRef:
            name: micro-os-test-bbolz
          secretRef:
            name: micro-os-test-bbolz
        name: cloudinitdisk
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2025-05-02T23:13:52Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: null
    status: "True"
    type: LiveMigratable
  - lastProbeTime: null
    lastTransitionTime: "2025-05-02T23:13:55Z"
    message: a non-live-updatable field was changed in the template spec
    status: "True"
    type: RestartRequired
  - lastProbeTime: "2025-05-02T23:15:03Z"
    lastTransitionTime: null
    status: "True"
    type: AgentConnected
  created: true
  desiredGeneration: 2
  observedGeneration: 2
  printableStatus: Running
  ready: true
  runStrategy: RerunOnFailure
  volumeSnapshotStatuses:
  - enabled: false
    name: disk-0
    reason: 2 matching VolumeSnapshotClasses for longhorn-image-4gcdm
  - enabled: false
    name: cloudinitdisk
    reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]
>
s
I can't remember exactly where I got my qcow2 image from, maybe it was from the suse website directly.. Sorry I can't be much more help, but I do know it works on my machine πŸ˜…
πŸ‘ 1
f
Thanks im working on Leap right now lets see if i get i running with new harvester node docker driver https://github.com/harvester/docker-machine-driver-harvester/releases/tag/v1.0.2
also could you please check if you added any other volumes to the vm
for ex cdrom
or anything
because i know it searches for ignitions/combustion scripts
maybe it searches for cloudinit in there
too
m
the opensuse micro 6.0 and 6.1 worked with ignition and combustion first attempt. I was not able to get it to work with cloud init. Didn't look much into it, had a working ignition and got it working.
f
How did you add the ignition to harvester
@mysterious-animal-29850
Also this is not good for harvester docker node driver
Since it uses cloudinit to add the binarys and scripts to the nodes
My case is that i want to use OpenSUSE microOS images as nodes for my guest clusters
g
i am a bit confused, do you wish to use microOS or Leap?
c
To my knowledge, there is no cloud-init capable MicroOS images
πŸ‘ 1
g
that was my understanding too, which is why i was slightly confused about thread.. it started with microos and mentioned it was running on opensuse leap
h
g
you had to complicate things
c
My treat
f
I wanted to use OpenSUSE microOS but I was not able to then I used leap
But with leap i had issues too
Let me make things more clear I tried to create a rke2 cluster from rancher 2.11 into harvester 1.4.1 Using the OpenSUSE microOS and i was not able to When i checked the vms I noticed that no cloud init was applied Then i switched to OpenSUSE Leap 15.6 noCloud image With Leap i had issues too but no more with cloud init
I would love to have microOS images work Since micrOS is better for container workloads
c
Have you looked at openSUSE Leap Micro ?
❀️ 1
πŸŽ‰ 1
f
Yes
Let me test the latest leapmicro build qcow2 Today
The leapMicor cloudinit is working
IMG_6117.png,IMG_6118.png
I will test it in afternoon and see how It goes
Image from iOS.jpg
πŸ‘ 1
f
Thanks but leap-mikro new release works fine
πŸ‘ 2