Best Practices & Troubleshooting (Platform 2.0 Beta)

Overview

The content on this page is intended to help provide the best experience when using the Fugue Platform beta 2.0. These tips should make it easier to take advantage of the capabilities of Fugue Platform beta 2.0 while providing some caveats and limitations that are part of the release.

If you don’t see the information you’re looking for reach out to us at support@fugue.co.

Best Practices

Below are some notes about certain behaviors that may require additional attention or consideration.

  • Killing a process with unexpected resources will remove those resources. For example, if resources are manually added to an existing resource group created by Fugue. While this scenario is not always repeatable it likely stems from the destruction of a resource group in which the resources exist. If you’re unsure of the resources contained in your group we recommend verifying before you use kill.
  • Remediation is not supported for child resources not defined in a parent. Examples includes tags and network security rules. Specifically certain resources, such as virtual networks/subnets, and security groups/security group rules, have a “parent/child” relationship. These “child” resources can be declared in-line as part of the parent, or using a separate resource type. If the separate “child” resource type is used, Platform 2.0 beta is currently unable to remediate resources where additional “child” resources have been manually added via the Azure console (e.g. adding a security group rule to a security group). If you have questions about this particular scenario please reach out to support@fugue.co.
  • The Azure resource handle for the target resource will not match the binding name in Ludwig when you are defining configurations. For example, when the resource below is created, Azure names the resource group “fugue-platform-rg2” instead of using the binding name, “myResourceGroup”.
myResourceGroup: Terraform.Azurerm.ResourceGroup.ResourceGroup {
  name: "fugue-platform-rg2",
  location: "usgovvirginia"
}

Azure Supported Types

The Fugue Platform 2.0 beta package includes a number of Azure types. This content (available under /opt/fugue/lib/Terraform/Azurerm for OSX/Linux and C:\Program Files\Fugue\lib\Terraform\Azurerm for Windows) should be considered a “preview” of upcoming supported types. As of this release the Azure supported types are limited to the following:

  • LocalNetworkGateway
  • ManagedDisk
  • NetworkInterface
  • NetworkSecurityGroup
  • NetworkSecurityRule
  • PublicIp
  • ResourceGroup
  • RouteTable
  • StorageAccount
  • StorageBlob
  • StorageContainer
  • Subnet
  • VirtualMachine
  • VirtualNetwork
  • VirtualNetworkGateway
  • VirtualNetworkGatewayConnection

Platform Differences

Below are some high level differences between Platform 1.8 and Platform 2.0 beta.

In Platform 1.8:

  • Credentials file defaults to your current working directory
  • Log file (fuguecli.log) defaults to your current working directory
  • The Fugue Platform CLI looks for fugue.yaml in your current working directory. For platform specific paths check out details on the Configuration page.

In Platform 2.0 beta:

  • Credentials file defaults to ~/.fugue/fugue2-credentials.yaml.
  • Log file defaults to ~/.fugue/log/platform.log
  • The Fugue Platform 2.0 beta CLI looks for fugue2.yaml in ~/.fugue

Troubleshooting

Issues with Version Mismatch

Error message:

Are you sure you wish to uninstall the Fugue Conductor? [y/N] y
1.15.70 does not have same major and minor version as 1.16.0
There was an error: Version mismatch. Constraint: [~1.16.0]. Found: [1.15.70]

Explanation If a user does not have the correct versions of both the AWS and Azure CLI the system will not allow you to run certain commands. In the example above this applies to fugue2 uninstall

Solution Update your CLI(s) to the supported versions and reissue the command. For AWS the minimum version required is 1.16.0, for Azure the minimum version is 2.0.0.