kubernetes/kops · error

error appending tag to subnet: %v

Error message

error appending tag to subnet: %v

What it means

Updating the tag on an existing subnet (the changed-tag path of apply) failed. The wrapped error identifies the Neutron tagging failure; the subnet's actual state may now diverge from the spec.

Source

Thrown at upup/pkg/fi/cloudup/openstacktasks/subnet.go:180

		}
		v, err := t.Cloud.CreateSubnet(opt)
		if err != nil {
			return fmt.Errorf("Error creating subnet: %v", err)
		}

		err = t.Cloud.AppendTag(openstack.ResourceTypeSubnet, v.ID, fi.ValueOf(e.Tag))
		if err != nil {
			return fmt.Errorf("Error appending tag to subnet: %v", err)
		}

		e.ID = new(v.ID)
		klog.V(2).Infof("Creating a new Openstack subnet, id=%s", v.ID)
		return nil
	} else {
		if changes.Tag != nil {
			err := t.Cloud.AppendTag(openstack.ResourceTypeSubnet, fi.ValueOf(a.ID), fi.ValueOf(changes.Tag))
			if err != nil {
				return fmt.Errorf("error appending tag to subnet: %v", err)
			}
		}
		client := t.Cloud.NetworkingClient()

		opt := subnets.UpdateOpts{}

		if changes.DNSServers != nil {
			dnsNameSrv := make([]string, len(e.DNSServers))
			for i, ns := range e.DNSServers {
				dnsNameSrv[i] = fi.ValueOf(ns)
			}
			opt.DNSNameservers = &dnsNameSrv
		}
		result := subnets.Update(context.TODO(), client, fi.ValueOf(a.ID), opt)
		klog.Infof("Updated %v", opt)
		if result.Err != nil {
			return fmt.Errorf("error updating subnet %v: %v", a.ID, result.Err)
		}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Inspect the wrapped tagging error
  2. Apply the tag manually if the API is flaky
  3. Re-run apply to reconcile
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstacktasks/subnet.go:180 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/709af6184ed9ece3. Report an issue: GitHub.