on 01-Jul-2016 16:52
It’s been a long time coming, but I’m pleased to announce a brand new editor for your iRules: F5 Programmability for Eclipse! This editor supports iRules & iRules LX in its initial release, but stay tuned for more features down the road. One of the cool features from my quick glance this afternoon is simultaneous multi-system support.
F5 Programmability for Eclipse version 1.0 allows you to use the Eclipse IDE to manage iRules and iRuleLX development. By using Eclipse, you can connect to one or more BIG-IP devices to view, modify or create iRules or iRuleLX workspaces. The editor functionality includes TCL/iRules and JavaScript language syntax highlighting, code completion, and hover documentation for the iRules API.
Note: This tool is provided via DevCentral as a free tool to help you better leverage iRules, and is in no way officially supported by F5 or F5 Professional Services. All support, questions, comments or otherwise for this editor should be submitted in the Q&A section of DevCentral. Please make sure to tag irules and/or iruleslx, as well as adding a custom editor tag.
The system requirements for the F5 Programmability for Eclipse are:
Eclipse installed – Minimum version: Luna (v4.4) Recommended: Mars (v4.5) or Neon (v4.6)
Java version 1.7 or later installed
Network access to one or more F5 Networks BIG-IP systems (TMOS version 12.1+)
F5 Programmability for Eclipse, version 1.0, has been tested for compatibility with the following configurations:
OS | Eclipse Version | Java Version | TMOS Version |
---|---|---|---|
Linux (CentOS 6.3) | Mars 4.5.1 | 1.7.0_70 | 12.1 |
Linux (CentOS 6.6) | Mars 4.5.1 | 1.7.0_79 | 12.1 |
Linux (CentOS 6.7) | Mars 4.5.2 | 1.7.0_101 | 12.1 |
MacOS (v10.8) | Mars 4.5.2 | 1.8.0_91 | 12.1 |
MacOS (v10.11.5) | Mars 4.5.2 | 1.8.0_91 | 12.1 |
MacOS (v10.11.5) | Neon 4.6 | 1.8.0_91 | 12.1 |
Windows (v7) | Luna 4.4.2 | 1.8.0_91 | 12.1 |
Windows (v7) | Mars 4.5.2 | 1.8.0_91 | 12.1 |
Windows (v7) | Neon 4.6 | 1.8.0_91 | 12.1 |
To install the F5 Programmability for Eclipse plug-in,
Start the version of Eclipse that you installed.
Click on Help > Install New Software…
Verify that the Mars or Neon release URL is listed in the Works with drop down. If you are running the Luna version, or the release URL is not listed,
Click Add…
Type the text “http://download.eclipse.org/releases/mars” into the Location field (omit the quotation marks)
Click OK
Click Add…
Type the text “http://cdn.f5.com/product/f5-eclipse/v1.0.0” into the Location field (omit the quotation marks)
Click OK
After you add the repository, F5 Networks or F5 Programmability for Eclipse should apppear in the Available Software dialog. Check the box next to the F5 item.
Check the Contact all update sites box and click Next
After you review the installation items, click Next.
Read the License Agreement, check I accept the terms of the license agreement, and click Finish
When prompted to restart Eclipse, click Yes
Select the F5 perspective
To use the F5 plug-in, you must activate the F5 perspective. In Eclipse,
Click on Window > Perspective > Open Perspective > Other…
Find and select the F5 perspective
Click OK
Connect to a BIG-IP system
In the F5 perspective you chose there are three views: Explorer pane on the left hand side, Editor pane on the right hand side, and a Log panel along the bottom. The Explorer pane includes a toolbar with 3 buttons. On the iRules & iRuleLX tab,
Click the New BIG-IP Connection toolbar button (at the top of the Explorer pane)
When prompted, provide the IP address and credentials for the BIG-IP system. You may store your credentials in a secure store. If you use the secure store, you must enter a master password for each session.
Click Finish
When you connect to a BIG-IP system, all LTM iRules, GTM iRules, and iRuleLX workspaces are loaded. The process may take a few seconds. When the process completes, you can expand the connection folder and subfolders. You can connect to multiple BIG-IP systems simultaneously. Note that folders exist for provisioned product modules on the BIG-IP system to which you connected. If you have not provisioned GTM or iRuleLX, no folder appears for that module.
Note: To access a Big-IP system remotely via Eclipse, the user account must have been assigned a role of administrator. Every Big-IP system includes a user with the name admin which has an administrator role. For creating additional users with an administrator role, refer to the BIG-IP guide for User Account Administration.
Change the BIG-IP partition
The default partition Common is loaded when you connect to a BIG-IP system. If you would like to use a different partition,
In the Explorer, select the BIG-IP Connection
Click either the Gears toolbar button, or use the context menu (right click) to open the Project Properties dialog.
Select a new partition
Click OK. Content will be loaded from the BIG-IP partition you selected.
Open an iRule or iRuleLX file to view or edit
Add or delete iRules, ILX workspaces, extensions, and files
Saving an iRule or iRuleLX file
Reloading an iRules or iRuleLX file
Reloading all BIG-IP content
The editor used for editing iRules includes code completion and hover documentation for iRule commands and events. Consistent with the default Eclipse behavior, typing Ctrl-Space will check for available completion proposals for the current word being type. Also, completions will be invoked after adding a colon (“:”) to a word. This is handy for completions of namespaced iRule commands, e.g. TCP::. The same completion popup documentation can be seen by hovering over an iRule command or event.
The F5 plug-in does not include the man pages for the standard Tcl commands. To enable hover documentation for those standard Tcl commands, you can download the man pages and link them in to the Tcl and iRule editors. The manual pages can be downloaded from here: Tcl. Once uncompressed, the containing directory can be linked to Eclipse via the global preferences dialog (Window > Preferences for Linux and Windows, Eclipse > Preferences for MacOS). Under the Tcl > Man Pages section, click Configure…, then click Add. Specify a name of your choosing for the documentation set and add the file path to the local directory which contains the docs.
Opening a JavaScript file within an iRuleLX project will invoke a specific JavaScript editor (from the JSDT plug-in). This editor includes syntax highlighting, validation, completions, etc. The editing features can be configured via the global preferences dialog under the JavaScript section (Window > Preferences for Linux and Windows, Eclipse > Preferences for MacOS).
File types other than iRule or JavaScript will be opened with the editor identified by Eclipse to be appropriate. Depending on the file associations you have configured for your operating system, Eclipse may decide to open an external editor. To override this and choose the editor type of your own choosing, you can define a file association via the global preferences dialog under the General > Editors > File Associations section.
I faced an issue while try to use this one. Weird thing is that Eclipse try to connect use TCP Port "7" for some BIG-IP Addresses. I don't know why but it uses Port "443" for some MGMT IP but it also uses Port "7" for some MGMT IP. In case of using port "7", Eclipse was not able to access MGMT IP.
A few answers...
The "Failed to retrieve version info" error occurs when trying to connect to a Big-IP version prior to 11.6, but note that the F5 plugin is currently only compatible with version 12.1.
Walter, yes, you can use a plugin like EGit or SVN Team Provider to source control the resources within a F5 project. You can use the source control plugin perspective, the "Resource" perspective, or once a repository is configured, the "Team" context menu within the F5 perspective. Please note though, resources (iRules and ILX files) don't appear on the local file system (to be source controlled) until an edit buffer is first opened for the resource. Also, the F5 plugin doesn't yet include facilities for importing from a repository into an F5 project - resources either originate from a connected Big-IP or by creating a new resource via Eclipse.
How do we report bugs against the plugin?
When you supply a fqdn as the bigip to attach to, that host name is not used in the Host: header for the REST calls.
In most cases this is not an issue. However, when you have a transparent proxy device in path that plays with IP addresses and makes decisions based on L7 content (idk, something like an LTM perhaps) it can block communication. If an fqdn is supplied as the device destination, it should be provided in the Host: header. It should also be used in the SNI attribute for TLS as well. I didn't check that part though.
The Windows only iRule Editor does properly supply the Host: header with the correct fqdn.
Eclipse IDE plugin (v2) is now available and add supports for iControl LX and iApps LX. New features require BIG-IP 13.1.
 
See https://devcentral.f5.com/s/articles/f5-editor-eclipse-plugin-v2-29402