github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/provider/openstack/userdata.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Copyright 2015 Cloudbase Solutions SRL
     3  // Licensed under the AGPLv3, see LICENCE file for details.
     4  
     5  package openstack
     6  
     7  import (
     8  	"github.com/juju/errors"
     9  	"github.com/juju/utils/v3"
    10  
    11  	"github.com/juju/juju/cloudconfig/cloudinit"
    12  	"github.com/juju/juju/cloudconfig/providerinit/renderers"
    13  	"github.com/juju/juju/core/os/ostype"
    14  )
    15  
    16  type OpenstackRenderer struct{}
    17  
    18  func (OpenstackRenderer) Render(cfg cloudinit.CloudConfig, os ostype.OSType) ([]byte, error) {
    19  	switch os {
    20  	case ostype.Ubuntu, ostype.CentOS:
    21  		return renderers.RenderYAML(cfg, utils.Gzip)
    22  	default:
    23  		return nil, errors.Errorf("Cannot encode userdata for OS: %s", os.String())
    24  	}
    25  }