func()

in manager.go [235:273]


func (m *Manager) applyResource(ctx context.Context, resource Resource) *ApplyResult {
	current, err := resource.Get(ctx, m)
	if err != nil {
		return &ApplyResult{
			action:   ActionUnknown,
			resource: resource,
			err:      err,
		}
	}

	if !current.Found(ctx) {
		err := resource.Create(ctx, m)
		return &ApplyResult{
			action:   ActionCreate,
			resource: resource,
			err:      err,
		}
	}

	needsUpdate, err := current.NeedsUpdate(ctx, resource)
	if err != nil {
		return &ApplyResult{
			action:   ActionUnknown,
			resource: resource,
			err:      err,
		}
	}
	if needsUpdate {
		err := resource.Update(ctx, m)
		return &ApplyResult{
			action:   ActionUpdate,
			resource: resource,
			err:      err,
		}
	}

	// No action applied to this resource.
	return nil
}