• cloud-init-3.0.0 be8bb9ca7e

    github-actions[bot] released this 2026-02-21 12:32:01 +00:00 | 101 commits to main since this release

    A Helm chart that generates cloud-init config files

    What's Changed

    Full Changelog: https://github.com/cloudymax/kubevirt-community-stack/compare/kubevirt-stack-0.3.0...cloud-init-3.0.0


    This version changes the way user passwords are discovered.

    In cloud-init, users are defined as as list: users[].

    Previously we had been discovering user passwords by looking for the env var ${USERNAME}_PASSWORD

    eg.

    extraEnvVars:
      - name: USERNAME
        value: friend
      - name: FRIEND_PASSWORD
         valueFrom:
           secretKeyRef:
             name: admin-password
             key: password
    

    but this made it difficult to obscure usernames for security purposes and was not very ergonomic when using list-generators in argocd to define multiple VMs with different users.

    eg.

    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    metadata:
      name: bastions-app-set
      namespace: argocd
      annotations:
        argocd.argoproj.io/sync-wave: "1"
    
    spec:
      goTemplate: true
      generators:
        - list:
            elements:
              - vmName: vm0
                passwordSecret: user0-credentials
    
              - vmName: vm1
                passwordSecret: user1-credentials
    

    Now, we look for usernames and passwords according to the index in the users[] list.

    eg.

    extraEnvVars:
      - name: USER0_USERNAME
         valueFrom:
           secretKeyRef:
             name: '{{ .passwordSecret }}'         
             key: username
      - name: USER0_PASSWORD
         valueFrom:
           secretKeyRef:
             name: '{{ .passwordSecret }}' 
             key: password
    
    Downloads