Obs/bin/GMA/Role.xml

<?xml version="1.0" encoding="utf-8"?>
<Role Id="GMATenantJson" NugetName="Microsoft.AzureStack.Observability.GenevaMonitoringAgent" PSClass="content\GMATenantJson.psm1" xmlns:pp="http://schemas.microsoft.com/ece/2015/preprocessor">
  <PublicInfo>
    <Version>[Version]</Version>
    <StreamingDataClient>[STREAMINGDATACLIENT]</StreamingDataClient>
    <PhysicalDriveLetter>C</PhysicalDriveLetter>
    <GMACacheFolderName>GMACache</GMACacheFolderName>
    <MaShimLocalPort Value ="12005" />
    <MaShimProtocol Type="TCP" />
    <MaShimProfile List ="Domain,Private,Public" />
    <MaShimAction Name ="Allow" />
  </PublicInfo>
  <Actions>
    <Action Type="EvaluateGMAConfigurationType">
      <Steps>
          <Step Index="0" Name="Evaluate GMA Configuration type" Description="Evaluates whether GMA should be deployed per node or just on the node provided in the execution context" EceErrorAction="Stop">
            <Task ActionType="CustomAction">
              <!-- Expand as either ConfigureGMAOnAllNodes or ConfigureGMAOnOneNode depending on evaluation. -->
              <Evaluation>
                <Task RolePath="GMATenantJson" InterfaceType="EvaluateGMAConfigurationType" />
              </Evaluation>
            </Task>
          </Step>
      </Steps>
    </Action>
    <Action Type="ConfigureGMAOnAllNodes">
      <Steps>
        <PerNode RolePath ="Cloud\Infrastructure\BareMetal" RoleName="BareMetal" Mode="Parallel">
          <Step Index="0" Name="Generate Tenant Json For Observability" Description="Generates Multi-Tenant Json configs for Observability Geneva Monitoring Agent (GMA)">
            <Task RolePath="GMATenantJson" InterfaceType="GenerateMultiTenantJsonConfigsForObservability">
              <RemoteConfig NodeType="ExecutionContextNode" />
            </Task>
          </Step>
        </PerNode>
      </Steps>
    </Action>
    <Action Type="ConfigureGMAOnOneNode">
      <Steps>
          <Step Index="0" Name="Generate Tenant Json For Observability" Description="Generates Multi-Tenant Json configs for Observability Geneva Monitoring Agent (GMA)">
            <Task RolePath="GMATenantJson" InterfaceType="GenerateMultiTenantJsonConfigsForObservability">
              <RemoteConfig NodeType="ExecutionContextNode" />
            </Task>
          </Step>
      </Steps>
    </Action>
  </Actions>
</Role>