suse-enceladus / blue-horizon Goto Github PK
View Code? Open in Web Editor NEWweb-based user interface to terraforming the public cloud
License: GNU General Public License v3.0
web-based user interface to terraforming the public cloud
License: GNU General Public License v3.0
In a comical series of events...
prettier
for styling JS.prettier
introduced ES6 syntax.Uglifier
[1][1]
rails aborted!
Uglifier::Error: Unexpected token: name (endIndex). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true).
Output of plan is pretty huge , users might want to download it for review
I, [2020-02-13T23:20:45.624277 #697] INFO -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1] Processing by DownloadController#download as HTML
D, [2020-02-13T23:20:45.625076 #697] DEBUG -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1] Source Load (0.3ms) SELECT "sources".* FROM "sources" ORDER BY "sources"."filename" ASC
I, [2020-02-13T23:20:45.627853 #697] INFO -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1] Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.3ms)
F, [2020-02-13T23:20:45.628264 #697] FATAL -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1]
F, [2020-02-13T23:20:45.628296 #697] FATAL -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1] NameError (uninitialized constant DownloadController::Zip):
F, [2020-02-13T23:20:45.628310 #697] FATAL -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1]
F, [2020-02-13T23:20:45.628326 #697] FATAL -- : [b39416f8-7971-4b8c-ac65-ebb2688a63b1] app/controllers/download_controller.rb:25:in `zip_files'
First of all term "Additional data" hard to apply to data which you entering there . Things like subscription ID , client ID and secret are more like core elements ( at least from my understanding ) .
So maybe we should just rename "additional data" to more accurate name . Another option would be to group fields there in smaller groups/steps and split it to several steps
Expected: there could be few possible solutions :
Note: it is clear that reason for this is that before click on "Plan" you need to save data by clicking on "Save plan". But it is not obvious also error message does not explain anything and what is more critical data entered by user is erased
every field when it possible can try to guess what user might enter and try to give a hint to user :
Currently, the Cluster Sizing page is always presented, whether it is used or not.
Instead, it should only be available if the variables ask for it, and should be presented multiple times for multiple sets of variables.
Instead of staying on the 1st 20 lines, there should be a (disable-able) function to scroll automatically as new results come in.
Expected: terraform plan actually produce clear error "Invalid region" , we should propagate it to UI
The log shows that terraform did apply successfully, but in the next AJAX cycle, the error dialog is displayed:
The action button then stays in the running state for about another minute. When it finally exits the 'runnning' state, the "Next Steps" are not enabled. I suspect this is because the last request timed out instead of completing successfully.
During testing of AKS I got into two traps :
Both scenarios easy to cover before even doing plan phase .
dig
on provided DNS name will allow to give user human readable error explaining the problemin logs you can see this :
E, [2020-06-03T08:57:36.487804 #644] ERROR -- : Failed while running 'validate'.
Error: Reference to undeclared local value
on cert-manager.tf line 11, in resource "null_resource" "cert_manager_setup":
11: KUBECONFIG = local.kubeconfig_file_pathddsdsd
A local value with the name "kubeconfig_file_pathddsdsd" has not been
declared.
Every time you enter new key at "Cluster Label" section it cause info section appear at the top of the page saying that value successfully added , this cause web page to scroll to the top . So if you need to enter few values you will need to scroll back to "Cluster Label" after entering every key
Hi all,
I'm doing a small POC with this project to see how we can integrate our SAP/HA deployment project: https://github.com/SUSE/ha-sap-terraform-deployments
I have succeeded deploying the project but I have done some workarounds for that. Besides that, the major inconvenience is that I cannot let the variables as empty values in the variables configuration as all of them are required. We use many variables with this logic. For example, we ask for a resource group name, but if it's not provided (empty string) we create a new one. Things like that.
Would it be possible to allow empty strings for this purpose?
it is common practice to ask user to enter passwords two times , when you not see what you type you may do typo and lost your cluster ...
Initializing provider plugins...
The following providers do not have any version constraints in configuration,
so the latest version was installed.
To prevent automatic upgrades to new major versions that may contain breaking
changes, it is recommended to add version = "..." constraints to the
corresponding provider blocks in configuration, with the constraint strings
suggested below.
* provider.local: version = "~> 1.4"
* provider.null: version = "~> 2.1"
* provider.random: version = "~> 2.2"
need to define versions in tf files
Implement with AASM gem.
Currently selecting new file take some time because after each change there is some validation running . This makes editing session really time consuming and not pleasant . But ofc I clearly see reasons why we need this . To keep CAP repo in workable state but give user more comfortable environment :
HCL checkers only support HCL1, we're supporting HCL2, now, and therefore need to change how we validate.
Once this is done, we can clean up the warnings in cap-terraform scripts.
When changing "Number of instances" by using input with id='count-display' ( by pushing small buttons "more"/"less") - "Total vCPU" and "Total RAM" is not recalculated
Note : when changing them with slider all is fine
kubeconfig file is important for further usage of created cluster . At the end of terraform deploy
we getting it in UI . So we could just consume it and save as separate file . Later we could allow user to download it or as part of archive which generated after each deploy or as single file
EOS Design System v4 has been released, we need to adopt it.
Released kubernetes versions in each CSP move to quickly to use a static variable default. We need to detect supported versions via CSP API and present the user a selection to choose from.
After pressing "Apply" button in deploy step it end up with following error :
helm_release.cert-manager: Still creating... [4m10s elapsed]
helm_release.cert-manager: Still creating... [4m20s elapsed]
helm_release.cert-manager: Still creating... [4m30s elapsed]
helm_release.cert-manager: Still creating... [4m40s elapsed]
helm_release.cert-manager: Still creating... [4m50s elapsed]
helm_release.cert-manager: Still creating... [5m0s elapsed]
Error: timed out waiting for the condition
on cert-manager.tf line 16, in resource "helm_release" "cert-manager":
16: resource "helm_release" "cert-manager" {
The errors I had in the plan stage do not show in the UI.
Variables with 'password' in the description should be rendered with the password input type.
Instead of using a specific list, the zipfile should include everything in Rails.configuration.x.source_export_dir
In the event that the terraform apply
step fails to complete successfully, an option should be presented to the user to perform a terraform destroy
action, and show the results.
When I visit the 'Plan' page there is a delay while terraform plan
is run in the background. The Plan
page should include an explanation of what will occur, and provide an action point (link/button) to execute planning.
Same for the 'Deploy' page.
If the terraform files under vendor/sources are changed, running through the UI and creating a new plan may error out with message such as:
Error: Reference to undeclared resource
on k8sresources.tf line 4, in provider "kubernetes":
4: host = "${azurerm_kubernetes_cluster.k8s.kube_config.0.host}"
A managed resource "azurerm_kubernetes_cluster" "k8s" has not been declared in
the root module.
deleting the contents of blue-horizon/tmp/terraform resolves the problem, but its not obvious to the user that they should do so. Ideally blue-horizon should automatically clean-up the prior content before creating each new plan.
I have been running some custom deployments with the project, and I have noticed that during the deployment the execution logs are not being scrolled automatically. This is quite annoying as I need to be scrolling down all the time.
Could we have some option to set the automatic scrolling?
Fields with description including 'password'
are treated as password fields, but descriptions including 'Password'
are not.
Found in v0.2.0
Hi all,
I have been facing some issues running the unit tests in my system. I have terraform 0.12.26
installed in my system (it is not the latest one neither) and a couple of UT fail because they expect 0.12.24
. This is quite annoying, as it would force me to have this alternative terraform version just to run the test.
The failing tests are in features/plan_spec.rb
( in "Additional Data" use account which does not have enough quota to create a cluster )
Expected: we might show "ruby-terraform.log" in deploy page in case some error happened
blue-horizon should be able to detect if it is running in a proper machine security context (e.g. AWS IAM or Azure MSI) and pass along credentials to a predefined set of terraform variables.
In the event that the proper security context is not detected, a form should be presented requiring appropriate credentials.
Will be nice to have some kind of indication which files user actually modified in expert mode ( a star near file name , different font color etc. )
Next level will be also ability to see full diff of all changes made by user ( a button generating a patch file maybe ? )
Would be nice to have some JSON syntax highlight and maybe collapse/expand node functionality
The terraform plan that is generated and displayed is not editable, so it should not be displayed in an editor.
Same for the terraform log that is displayed on the 'Deploy' page.
BONUS: fix the scrolling.
Hi all,
After running the deployment successfully, I miss some kind of message saying that everything went fine, more than just the plain terraform messages. Otherwise, it's not crystal clear that everything went fine.
If deploy was successful after switching to last step you will see error message - "You cannot make any changes while terraform is running. " . This does not have any functional impact ( at least nothing obvious ) but just confusing
After deploy actually fail with error you still see same page which recommends you how to proceed with working cluster.
Not sure what would be expected behavior here . I see two main possibilities :
terraform plan
terraform plan
will be triggered one more timeExpected: the fact that there is no changes in input data can be easily tracked , in this case no point to make user wait until terraform will generate exactly the same output , so we can just skip execution of terraform plan
and show old JSON version
When running terraform apply
via the Deploy step, errors can occur, and blue-horizon does a nice job of showing there was an error, and listing the terraform log in the UI, but in this instance, the log does not get written back to disk, in the tmp/terraform/ruby-terraform.log .
I assume the captured loggers are getting closed unexpectedly when there is an error.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.