Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Appcontext Data Format

...

The following figure depicts the hierarchical data store for runtime data. The notes in the figure is additional data stored in each type of node. Rsync uses this information to schedule resources. Status is updated by Rsync.

...

Code Block
languagecpp
titleCreating AppContext
import "github.com/onap/multicloud-k8s/src/orchestrator/pkg/appcontext"
func createAppContextWithOneApp(appName string)	
{
	context := appcontext.AppContext{}
	ctxVal, err := context.InitAppContext()
	if err != nil {
		return nil
	}
	
    handle, err := context.CreateCompositeApp()
	if err != nil {
		return nil
	}
	// This is optional
    err = context.AddCompositeAppMeta(appcontext.CompositeAppMeta{Project: p, CompositeApp: ca, Version: v, Release: rName})
	if err != nil {
		return nil
	}
	
    appHandle, err := context.AddApp(handle, appName)
	if err != nil {
		return nil
	}
	
    // Iterate through cluster list and add all the clusters
	for _, cluster := range clusterList {
		clusterName := strings.Join([]string{cluster.ClusterProvider, "+", cluster.ClusterName}, "")
		clusterHandle, err := context.AddCluster(appHandle, clusterName)

		if err != nil {
			return nil
		}

		// Add resource
		_, err = context.AddResource(clusterHandle, nameofRes1, resYaml1)
		if err != nil {
			return nil
		}
		// Add resource
		_, err = context.AddResource(clusterHandle, nameofRes2, resYaml2)
		if err != nil {
			return nil
		}
		// Add Resource Order 
		resOrder, err := json.Marshal(map[string][]string{"resorder": []string{nameofRes1, nameofRes2}})
		if err != nil {
			return nil
		}
		_, err = context.AddInstruction(clusterHandle, "resource", "order", string(resOrder))
		if err != nil {
			return nil
		}
	}
}

Action Controller flow

...

Action controllers will follow the following pattern to add and update existing resources in AppContext. AppContextId is provided to the action controllers from the orchestrator using gRpc call. Examples are ovnAction controller

...