The renderers package implements a way to encode the userdata depending on the OS and the provider. It currently holds an interface and common functions, while the implementations live in the particular providers.



This section is empty.


This section is empty.


func AddPowershellTags

func AddPowershellTags(udata []byte) []byte

AddPowershellTags adds <powershell>...</powershell> to it's input

func RenderScript

func RenderScript(cfg cloudinit.RenderConfig, ds ...Decorator) ([]byte, error)

RenderScript renders the given cloud-config as a script, and then passes the script through the given decorators.

func RenderYAML

func RenderYAML(cfg cloudinit.RenderConfig, ds ...Decorator) ([]byte, error)

RenderYAML renders the given cloud-config as YAML, and then passes the YAML through the given decorators.

func ToBase64

func ToBase64(data []byte) []byte

ToBase64 just transforms whatever userdata it gets to base64 format

func WinEmbedInScript

func WinEmbedInScript(udata []byte) []byte

WinEmbedInScript for now is used on windows and it returns a powershell script which has the userdata embedded as base64(gzip(userdata))


type Decorator

type Decorator func([]byte) []byte

Decorator is a function that can be used as part of a rendering pipeline.

type ProviderRenderer

type ProviderRenderer interface {
	Render(cloudinit.CloudConfig, os.OSType) ([]byte, error)

ProviderRenderer defines a method to encode userdata depending on the OS and the provider. In the future this might support another method for rendering the userdata differently(bash vs yaml) since some providers might not ship cloudinit on every OS