kubernetes/kops · error

error rendering Instance metadata %q: %v

Error message

error rendering Instance metadata %q: %v

What it means

Wrapped error from Instance.mapToGCE when fi.ResourceAsString fails for one of the instance's metadata entries. The offending key is included; the resource (typically a template or file asset) could not be rendered to a string — e.g. missing template data or a failing asset loader.

Source

Thrown at upup/pkg/fi/cloudup/gcetasks/instance.go:276

	if e.ServiceAccount != nil {
		if e.Scopes != nil {
			var scopes []string
			for _, s := range e.Scopes {
				s = scopeToLongForm(s)
				scopes = append(scopes, s)
			}
			serviceAccounts = append(serviceAccounts, &compute.ServiceAccount{
				Email:  fi.ValueOf(e.ServiceAccount.Email),
				Scopes: scopes,
			})
		}
	}

	var metadataItems []*compute.MetadataItems
	for key, r := range e.Metadata {
		v, err := fi.ResourceAsString(r)
		if err != nil {
			return nil, fmt.Errorf("error rendering Instance metadata %q: %v", key, err)
		}
		metadataItems = append(metadataItems, &compute.MetadataItems{
			Key:   key,
			Value: new(v),
		})
	}

	i := &compute.Instance{
		CanIpForward: *e.CanIPForward,

		Disks: disks,

		MachineType: BuildMachineTypeURL(project, zone, *e.MachineType),

		Metadata: &compute.Metadata{
			Items: metadataItems,
		},

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Look at the wrapped error and the named metadata key to find the failing resource/template
  2. Check that all template variables referenced by the nodeup/config assets are defined in the cluster spec
  3. Regenerate the cluster config if assets were changed out-of-band
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/gcetasks/instance.go:276 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/ba793c3d710652ba. Report an issue: GitHub.