azimuth-cloud / azimuth Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
when you reboot servers, the table width seems all wrong, and on chrome you don't get scroll bars or any obvious clues, just get buttons hiding on the right hand side.
Maybe we need to fix the width of something better here?
It would be most useful to have the capability of filtering the list of flavours, or otherwise specifying a list of applicable flavours, per appliance type. A trivial examples:
Update
and add another compute node.stackhpc.terraform.infra : Provision infrastructure using Terraform
step was an "OK" (not changed).$ kubectl -n az-rcp-cloud-portal-demo describe clusters.caas.azimuth.stackhpc.com slurm-v1
Status:
Applied Extra Vars:
...
compute_count: 1
...
so looks like this didn't get updated.
This did used to work.
Selected an IP on Arcus when creating a platform with a FIP, creation failedwith a popup:
{"parameter_values":{"cluster_floating_ip":"External IP is not available."}}
Horizon showed the FIP as Active but not mapped to a fixed IP. However the CLI showed it was mapped to a port on the ilab-60 network which was not owned by the project being used.
Redirect from login to Quotas or Platforms (or somewhere else)
For example, if you use the CRD driver, you can delete a cluster type, but still have a cluster of that type, and the whole screen goes blank. There are some react error messages suggesting we are missing some error handlers to pop up a more friendly error message, so we fail more gracefully. These are mostly unexpected cases, like the choices param not being well formed in ui meta causing the screen to go blank.
There are situations where a kubernetes cluster administrator may use the UI to
create / update a cluster that is beyond the scope of the underlying cloud
infrastructure. Such a request may be considered "irreconcilable". Like certain
types of romantic poetry, it is full of subtle longing for things that will
likely never come to pass.
One such situation is where the user submits a request to update the cluster,
and in doing so specifies a set of resources that exceed the given quota for the
tenancy where the cluster is deployed. After such a request has been issued, the
update button for that cluster becomes unusable and the only ways to get back to
a good state is to resolve the issue on the openstack side, delete the
cluster, or intervene using the azimuth cli.
Note that the k8s cluster under management and the applications it runs remain
functional during this blip.
The user has the option to roll back to a previously valid cluster configuration after a timeout.
For instance, after the timeout has been exceeded, the user would be presented with a modal
that gives a choice of either to continue to wait or to revert the cluster to the last known good state.
KubernetesClusterModalForm
and useKubernetesClusterFormState
toinitialState(kubernetesCluster)
before attempting the update.Appliance properties displayed in the UI via nunjucks templates don't update when the appliance is updated. For example, we allow the user to update the number of IPUs their machine has available. If the user changes the number, and updates the appliance, the new IPU count isn't displayed in the UI (the IPU count is also populated into the instance metadata, and is correctly updated there).
There appears to be nothing the user can do to force an update: refreshing the details pane doesn't help; refreshing the main dashboard page doesn't help; logging out and back in doesn't help.
We've had a question from our Azimuth users whether, when an appliance has been selected in the "Create a new platform / Pick a platform type" dialog, can it automatically progress to the "Configure platform" page? This would be rather than the current workflow that requires clicking the "Next" button. Thanks
| Log labelsappazimuthcomponentapicontainerapifilename/var/log/pods/azimuth_azimuth-api-665cccdc4b-m2c7z_c6dc809a-f1b3-4400-9e0a-5a9c276cc828/api/0.loginstanceazimuthjobazimuth/azimuthnamespaceazimuthnode_nameazimuth-cl1-md-0-5e2cfe39-sbz78podazimuth-api-665cccdc4b-m2c7zstreamstdoutDetected fieldsTime1677161437613tsNs1677161437613671193 | Log labels | | app | azimuth | | component | api | | container | api | | filename | /var/log/pods/azimuth_azimuth-api-665cccdc4b-m2c7z_c6dc809a-f1b3-4400-9e0a-5a9c276cc828/api/0.log | | instance | azimuth | | job | azimuth/azimuth | | namespace | azimuth | | node_name | azimuth-cl1-md-0-5e2cfe39-sbz78 | | pod | azimuth-api-665cccdc4b-m2c7z | | stream | stdout | Detected fields | | Time | 1677161437613 | | tsNs | 1677161437613671193
Log labels
| app | azimuth
| component | api
| container | api
| filename | /var/log/pods/azimuth_azimuth-api-665cccdc4b-m2c7z_c6dc809a-f1b3-4400-9e0a-5a9c276cc828/api/0.log
| instance | azimuth
| job | azimuth/azimuth
| namespace | azimuth
| node_name | azimuth-cl1-md-0-5e2cfe39-sbz78
| pod | azimuth-api-665cccdc4b-m2c7z
| stream | stdout
Detected fields
| Time | 1677161437613
| tsNs | 1677161437613671193
| | 2023-02-23 14:10:37 | 172.21.36.128 - - [23/Feb/2023:14:10:37 +0000] "POST /api/tenancies/3a7dd6b6832a4dc2bf0d1cf3784f943b/clusters/ HTTP/1.1" 500 145 "https://portal.apps.gbnwp-cl1.ipu.graphcore.ai/tenancies/3a7dd6b6832a4dc2bf0d1cf3784f943b/platforms" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0"
| | 2023-02-23 14:10:37 | KeyError: 'cluster_name'
| | 2023-02-23 14:10:37 | name = params.pop("cluster_name")
| | 2023-02-23 14:10:37 | File "/application/azimuth/cluster_engine/drivers/awx/driver.py", line 383, in _from_inventory
| | 2023-02-23 14:10:37 | _ = self._from_inventory(inventory, ctx)
| | 2023-02-23 14:10:37 | File "/application/azimuth/cluster_engine/drivers/awx/driver.py", line 550, in create_cluster
| | 2023-02-23 14:10:37 | return f(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/application/azimuth/cluster_engine/drivers/awx/driver.py", line 37, in wrapper
| | 2023-02-23 14:10:37 | cluster = self._driver.create_cluster(
| | 2023-02-23 14:10:37 | File "/application/azimuth/cluster_engine/engine.py", line 280, in create_cluster
| | 2023-02-23 14:10:37 | cluster = cluster_manager.create_cluster(
| | 2023-02-23 14:10:37 | File "/application/azimuth/views.py", line 971, in clusters
| | 2023-02-23 14:10:37 | return view(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/application/azimuth/views.py", line 61, in wrapper
| | 2023-02-23 14:10:37 | return view(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/application/azimuth/views.py", line 113, in wrapper
| | 2023-02-23 14:10:37 | return view(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/application/azimuth/views.py", line 183, in wrapper
| | 2023-02-23 14:10:37 | return view(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/application/azimuth/views.py", line 141, in wrapper
| | 2023-02-23 14:10:37 | return func(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/rest_framework/decorators.py", line 50, in handler
| | 2023-02-23 14:10:37 | response = handler(request, *args, **kwargs)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch
| | 2023-02-23 14:10:37 | raise exc
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
| | 2023-02-23 14:10:37 | self.raise_uncaught_exception(exc)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
| | 2023-02-23 14:10:37 | response = self.handle_exception(exc)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
| | 2023-02-23 14:10:37 | return self.dispatch(request, *args, **kwargs)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/django/views/generic/base.py", line 84, in view
| | 2023-02-23 14:10:37 | return view_func(*args, **kwargs)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
| | 2023-02-23 14:10:37 | response = wrapped_callback(request, *callback_args, **callback_kwargs)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response
| | 2023-02-23 14:10:37 | response = get_response(request)
| | 2023-02-23 14:10:37 | File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
| | 2023-02-23 14:10:37 | Traceback (most recent call last):
| | 2023-02-23 14:10:37 | [ERROR] [2023-02-23 14:10:37,106] [django.request:241] [ThreadPoolExecutor-0_0] Internal Server Error: /api/tenancies/3a7dd6b6832a4dc2bf0d1cf3784f943b/clusters/
| Log labelsappazimuthcomponentapicontainerapifilename/var/log/pods/azimuth_azimuth-api-665cccdc4b-m2c7z_c6dc809a-f1b3-4400-9e0a-5a9c276cc828/api/0.loginstanceazimuthjobazimuth/azimuthnamespaceazimuthnode_nameazimuth-cl1-md-0-5e2cfe39-sbz78podazimuth-api-665cccdc4b-m2c7zstreamstderrDetected fieldsTime1677161437137tsNs1677161437137744717 | Log labels | | app | azimuth | | component | api | | container | api | | filename | /var/log/pods/azimuth_azimuth-api-665cccdc4b-m2c7z_c6dc809a-f1b3-4400-9e0a-5a9c276cc828/api/0.log | | instance | azimuth | | job | azimuth/azimuth | | namespace | azimuth | | node_name | azimuth-cl1-md-0-5e2cfe39-sbz78 | | pod | azimuth-api-665cccdc4b-m2c7z | | stream | stderr | Detected fields | | Time | 1677161437137 | | tsNs | 1677161437137744717
Log labels
| app | azimuth
| component | api
| container | api
| filename | /var/log/pods/azimuth_azimuth-api-665cccdc4b-m2c7z_c6dc809a-f1b3-4400-9e0a-5a9c276cc828/api/0.log
| instance | azimuth
| job | azimuth/azimuth
| namespace | azimuth
| node_name | azimuth-cl1-md-0-5e2cfe39-sbz78
| pod | azimuth-api-665cccdc4b-m2c7z
| stream | stderr
Detected fields
| Time | 1677161437137
| tsNs | 1677161437137744717
| | 2023-02-23 14:10:37 | 172.18.120.192 - - [23/Feb/2023:14:10:37 +0000] "GET /api/tenancies/4f19cf5df697497e9222505361cf75b8/quotas/ HTTP/1.1" 200 370 "https://portal.apps.gbnwp-cl1.ipu.graphcore.ai/tenancies/4f19cf5df697497e9222505361cf75b8/platforms" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Safari/605.1.15"
These links are broken for me:
https://azimuth-cloud.github.io/azimuth-config/ (and https://azimuth-cloud.github.io/azimuth-config/try/)
Button for copying kubeconfig to clipboard doesn't work in Safari or Firefox
Hey folks. Are there any contribution guidelines and/or Azimuth development getting started docs?
While we don't support creating servers with two networks attached, when you see servers created outside of azimuth, they only see to show as having one IP. It might be nice to show a list of IPs in that case? Total edge case though.
"You can check the status of the cluster on the clusters tab." when waiting for a service to become ready. Should be platforms tab?
If you don't read the bit about adding clusters until quite late, you end up trying to add awx as a helm updated. When you do this happens:
Error: UPGRADE FAILED: unable to recognize "": no matches for kind "AWX" in version "awx.ansible.com/v1beta1"
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.