KubePS.format.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
  <ViewDefinitions>
    <View>
      <Name>KubePS Pod</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Pod</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Ready</Label></TableColumnHeader>
          <TableColumnHeader><Label>Status</Label></TableColumnHeader>
          <TableColumnHeader><Label>Restarts</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
          <TableColumnHeader><Label>IpAddress</Label></TableColumnHeader>
          <TableColumnHeader><Label>Ports</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Ready</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Status</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Restarts</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem><PropertyName>IpAddress</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  ($_.Ports | ForEach-Object{ "$($_.Port)/$($_.Protocol)" }) -join ', '
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS Pod AllNamespaces</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Pod.AllNamespaces</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Namespace</Label></TableColumnHeader>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Ready</Label></TableColumnHeader>
          <TableColumnHeader><Label>Status</Label></TableColumnHeader>
          <TableColumnHeader><Label>Restarts</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
          <TableColumnHeader><Label>IpAddress</Label></TableColumnHeader>
          <TableColumnHeader><Label>Ports</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Namespace</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Ready</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Status</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Restarts</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem><PropertyName>IpAddress</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  ($_.Ports | ForEach-Object{ "$($_.Port)/$($_.Protocol)" }) -join ', '
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS Node</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Node</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Status</Label></TableColumnHeader>
          <TableColumnHeader><Label>Roles</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
          <TableColumnHeader><Label>Version</Label></TableColumnHeader>
          <TableColumnHeader><Label>InternalIP</Label></TableColumnHeader>
          <TableColumnHeader><Label>ExternalIP</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Status</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Roles</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  "v$($_.Version.ToString())"
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem><PropertyName>InternalIP</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>ExternalIP</PropertyName></TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS Node Wide</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Node.Wide</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <AutoSize />
        <TableHeaders>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Status</Label></TableColumnHeader>
          <TableColumnHeader><Label>Roles</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
          <TableColumnHeader><Label>Version</Label></TableColumnHeader>
          <TableColumnHeader><Label>InternalIP</Label></TableColumnHeader>
          <TableColumnHeader><Label>ExternalIP</Label></TableColumnHeader>
          <TableColumnHeader><Label>Kernel</Label></TableColumnHeader>
          <TableColumnHeader><Label>OSImage</Label></TableColumnHeader>
          <TableColumnHeader><Label>ContainerRuntime</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Status</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Roles</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  "v$($_.Version.ToString())"
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem><PropertyName>InternalIP</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>ExternalIP</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Kernel</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>OSImage</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>ContainerRuntime</PropertyName></TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS Node Detailed</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Node.Detailed</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem><PropertyName>Name</PropertyName></ListItem>
              <ListItem><PropertyName>Status</PropertyName></ListItem>
              <ListItem><PropertyName>Roles</PropertyName></ListItem>
              <ListItem>
                <Label>Age</Label>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>Version</Label>
                <ScriptBlock>
                  "v$($_.Version.ToString())"
                </ScriptBlock>
              </ListItem>
              <ListItem><PropertyName>InternalIP</PropertyName></ListItem>
              <ListItem><PropertyName>ExternalIP</PropertyName></ListItem>
              <ListItem><PropertyName>Kernel</PropertyName></ListItem>
              <ListItem><PropertyName>OSImage</PropertyName></ListItem>
              <ListItem><PropertyName>ContainerRuntime</PropertyName></ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>KubePS Namespace</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Namespace</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Status</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Status</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS AllocatedResource</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.AllocatedResource</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <AutoSize />
        <TableHeaders>
          <TableColumnHeader><Label>NodeName</Label></TableColumnHeader>
          <TableColumnHeader><Label>Metric</Label></TableColumnHeader>
          <TableColumnHeader><Label>CPU</Label></TableColumnHeader>
          <TableColumnHeader><Label>Memory</Label></TableColumnHeader>
          <TableColumnHeader><Label>EphemeralStorage</Label></TableColumnHeader>
          <TableColumnHeader><Label>HugePages1Gi</Label></TableColumnHeader>
          <TableColumnHeader><Label>HugePages2Mi</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>NodeName</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Metric</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>CPU</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Memory</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>EphemeralStorage</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>HugePages1Gi</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>HugePages2Mi</PropertyName></TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS Deployment</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.Deployment</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Ready</Label></TableColumnHeader>
          <TableColumnHeader><Label>UpToDate</Label></TableColumnHeader>
          <TableColumnHeader><Label>Available</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
          <TableColumnHeader><Label>Containers</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  "$($_.Ready)/$($_.Replicas)"
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem><PropertyName>UpToDate</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Available</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $_.Containers.name -join ', '
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>KubePS ReplicaSet</Name>
      <ViewSelectedBy>
        <TypeName>KubePS.ReplicaSet</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader><Label>Name</Label></TableColumnHeader>
          <TableColumnHeader><Label>Desired</Label></TableColumnHeader>
          <TableColumnHeader><Label>Current</Label></TableColumnHeader>
          <TableColumnHeader><Label>Ready</Label></TableColumnHeader>
          <TableColumnHeader><Label>Age</Label></TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem><PropertyName>Name</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Desired</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Current</PropertyName></TableColumnItem>
              <TableColumnItem><PropertyName>Ready</PropertyName></TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                  $Timestamp = ([DateTimeOffset]::UtcNow - $_.Age).ToString('o')
                  Resolve-ResourceAge -Timestamp $Timestamp
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
  </ViewDefinitions>
</Configuration>