F5Networks / f5-azure-arm-templates-v2

Azure Resource Manager Templates for quickly deploying BIG-IP services in Azure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Provide bigip version and license as input parameter in template

laul7klau opened this issue · comments

commented

Regarding: https://github.com/F5Networks/f5-azure-arm-templates-v2/tree/master/examples/autoscale/payg

Describe the bug

The parent template does not provide a field for a user to input the bigip version and license. Used to be available in v1 template.
Currently it's coded in the template to
""image": "f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-25m-best-hourly:15.1.200000","
As this is not the latest version in 15.1.2 branch and only 25m, it is highly likely users would like to change this field.

Other than changing this at the parent template, there is another entry in the bigip.json file
"defaultValue": "f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-25m-best-hourly:15.1.200000"",

  • Users would most likely fail to update update.json as well, leading to errors during launch...
    There could be other locations that need to be updated as well.. I found only bigip.json

Expected behavior

Users should be allowed to enter the bigip version and license as an input field similar to the v1 template

Current behavior

Users needs to click "Edit Template" and find the parameter in the template and replace it.
Then update the same text in bigip.json as well.

Possible solution

Perhaps we don't hard code the entry in bigip.json, but have it as a dynamic variable that is passed to it from the parent template
In other words create a new input parameter for the bigip version and license text.

Steps to reproduce

Click the "Deploy to Azure" button.
Then try to deploy a BIG-IP version other than the default 15.1.2.0..

Context

I'm trying to use the template to deploy any of the following which is different from the current default
f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-25m-best-hourly:14.1.400000
f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-25m-best-hourly:15.1.201000
f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-25m-best-hourly:16.0.101000

At the same time, if i may, can i get the following confirmation to confirm if my deployment is correct? Upon successful initial deployment:

  1. The bigip instance should be at state: Active / Standalone...
  2. A user cannot configure the BIG-IP manually from the Configuration utility/tmsh.. Because it's Standalone, so config does not sync to other instances. And new instances launch will not have that config. All bigip config should be done either in the Azure Image or AS3
  3. There is not concept of UCS file. A primary instance that boots up and initialize does not look in the Storage account for a UCS archive.

I ask because these behaviour differ from the previous Azure v1 template and AWS template,

Agree, there should be a parameter for user input to select tmos version. Currently the azuredeploy.json file only contains a variable for 'image'...

"image": "f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-25m-best-hourly:15.1.200000",

To select a different image, you can simply edit the variables block, find image, and update to the version you need. Ideally, there is a parameter.

As for the note of having to edit in multiple spots, this is not the case. Simply edit the parent azuredeploy.json for now in the variables block, and then bigip template link will pull in same value. No need to also update the module bigip json too.

Your questions...

  1. This is autoscale and all devices will be "active". They will respond to ALB health check and all receive traffic as long as instance is healthy.
  2. Configuration changes are recommended to take place in code within the repo. Per README...

This solution leverages more traditional Auto Scale configuration management practices where each instance is created with an identical configuration as defined in the Scale Set's "model". Scale Set sizes are no longer restricted to the small limitations of the cluster. The BIG-IP's configuration, now defined in a single convenient YAML or JSON F5 BIG-IP Runtime Init configuration file, leverages F5 Automation Tool Chain declarations which are easier to author, validate and maintain as code. For instance, if you need to change the configuration on the BIG-IPs in the deployment, you update the instance model by passing a new config file (which references the updated Automation Toolchain declarations) via template's runtimeConfig input parameter. New instances will be deployed with the updated configurations

  1. No UCS backup scripts are occurring. Configs are stored in code for this repo example. You will store your configs in git within the toolchain json files like as3.
commented

Thanks for the clarification. With that, I think i'd need to troubleshoot a few things in my deployment.
Before we close this, can you let me know how to enable debug logging especially in bigIpRuntimeInit.log startup-script.log?
Something like

azuredeploy.json
"commandToExecute": [...] autoscale.log --log-level silly --file $CLOUD_LIB_DIR/f5-cloud-libs-azure/scripts/autoscale.sh --shell /bin/bash --cl-args "--deploymentType ltm --logLevel silly [...]"

that we used in the v1 template.

Head over to the bigip runtime init repo...you'll see a silly log level syntax there.

https://github.com/F5Networks/f5-bigip-runtime-init#logging

"Example of how to set the log level using an environment variable: "

export F5_BIGIP_RUNTIME_INIT_LOG_LEVEL=silly && bash /var/tmp/f5-bigip-runtime-init-1.2.0-1.gz.run -- '--cloud ${CLOUD}'
commented

Thank you

commented

So, after troubleshooting, I made the changes in the following link and launches were more predictable and successful:
F5Networks/f5-bigip-runtime-init#12

With that, this issue would be more a feature request, as stated initially, to provide a field for a user to input the bigip version and license.
Suggestion to re-use some of the code in the v1 templates which worked well:
https://github.com/F5Networks/f5-azure-arm-templates

Thanks for raising this feature request. We are now tracking it internally with ID ESECLDTPLT-2642.

Actually, this is addressed in latest release.

https://github.com/F5Networks/f5-azure-arm-templates-v2/blob/v1.3.1.0/examples/autoscale/payg/azuredeploy.parameters.json#L29

More commonly toggled parameters were exposed.