Applications can span multiple clusters and this requires configuration.

We are introducing a higher level abstraction called Application that will contain multiple Resource Bundles that are then connected to each other.

A service on cluster A needs the Public IP of cluster B and port to access the service

Egress rules and ingress rules need to be configured.

Spec
metadata:
    #Valid lowercase name with - and . as the allowed characters
    name: distributed-data-analysis
    #owner points to the project ID which is deploying this app
    owner: ddd81f9ab03f45e09196169abceaec6f
spec:
	#Array of Resource Bundles which will be installed
	resourceBundles:

      #name of the resource bundle
	- name: data-collector-1
	  #version of the resource bundle to install
	  version: v1
	  #profile name to be used
      profile: profile1
	  #name of cloud region to install this resource bundle
      #needs to be expanded to support criteria as well as
      #explicit selection
	  cloudRegion: collection-region-1
	  #refer to targets defined in the target section
	  connections:
	  - target: storage-target-1
        #local dns entry that it will be added as 
        mount: mongo-write.svc.cluster.local
	
	- name: data-processor-1
	  version: v1
      profile: profile1
      cloudRegion: process-region-1
	  connections:
	  - target: collector-target-1
        mount: collector.svc.cluster.local

	- name: data-storage-1
      version: v1
      profile: profile1
	  cloudRegion: data-storage-1
	  #No targets for this as this is a destination
      #The orchestrator should make sure any reachability configuration is taken care of automatically.

	#Define a list of targets which will be
    #referred to in each resourceBundle
	targets:
	- targetName: storage-target-1
      rbName: data-storage-1
	  serviceName: mongo-read
	- targetName: collector-target-1
      rbName: data-collector-1
      serviceName: collector
status:
	ready: bool
  • No labels