Commit Graph

32374 Commits

Author SHA1 Message Date
Seth Foster 301807466d Only get receptor.conf lock in k8s environment
- Writing to receptor.conf only takes place in K8S, so only get a
lock if IS_K8S is true
2022-09-23 09:46:15 -04:00
Seth Foster e0c9013d9c Prevent altering certain fields on Instance
- Prevents changing hostname, listener_port, or node_type for instances
that already exist
- API default node_type is execution
- API default node_state is installed
2022-09-23 09:46:15 -04:00
Kia Lam 9c6aa93093 Remove action items from Instance peers list. 2022-09-23 09:46:15 -04:00
Kia Lam 4a41098b24 Add health check toast notification for Instance list and detail views. 2022-09-23 09:46:15 -04:00
Kia Lam 0510978516 Use reusable HealthCheckAlert component. 2022-09-23 09:46:15 -04:00
Kia Lam 6009d98163 Modify proxy config to allow UI to point to named sites. 2022-09-23 09:46:15 -04:00
Alex Corey 532ad777a3 Resolves peers list search bug 2022-09-23 09:46:15 -04:00
Kia Lam b4edfc24ac Add more helper unit tests. 2022-09-23 09:46:14 -04:00
Jeff Bradberry 0e578534fa Update the instance install bundle requirements.yml
to point to the 0.1.0 release of ansible.receptor.
2022-09-23 09:46:14 -04:00
Alex Corey 6619cc39f7 properly deprovisions instance 2022-09-23 09:46:14 -04:00
Kia Lam d4b25058cd Add update node logic; fix JSX formatting on SVG elements. 2022-09-23 09:46:14 -04:00
Kia Lam c1ba769b20 Add enabled and disabled node states to legend. 2022-09-23 09:46:14 -04:00
Kia Lam fd10d83893 Account for node state of 'unavailable' in the UI. 2022-09-23 09:46:14 -04:00
Hao Liu b1168ce77d update receptor collection role name in install bundle 2022-09-23 09:46:14 -04:00
Seth Foster 1fde9c4f0c add firewall rules to control node 2022-09-23 09:46:14 -04:00
Kia Lam 03685e51b5 Fix Instance Detail StatusLabel to show node_state. 2022-09-23 09:46:14 -04:00
Jeff Bradberry 08c18d71bf Move InstanceLink creation and updating to the async tasks
So that they get applied in situations that do not go through the API.
2022-09-23 09:46:14 -04:00
Seth Foster dfe6ce1ba8 remove tests that assume health check runs in view 2022-09-23 09:46:14 -04:00
Seth Foster eaa4f2483f Run instance health check in task container
awx-web container does not have access to receptor socket, and the
execution node health check requires receptorctl.

This change runs the health check asynchronously in the task container.
2022-09-23 09:46:14 -04:00
Jeff Bradberry 68a44529b6 Register pages for the Instance peers and install bundle endpoints
This includes exposing a new interface for Page objects, Page.bytes,
to return the full bytestring contents of the response.
2022-09-23 09:46:14 -04:00
Alex Corey 25afb8477e Adds functionality to deprovision an instance from list and details view 2022-09-23 09:46:14 -04:00
Jeff Bradberry f3a9d4db07 Assign a default queue to wait_for_jobs() 2022-09-23 09:46:14 -04:00
Kia Lam cb49eec2b5 Allow k8s to create Instance Groups. 2022-09-23 09:46:13 -04:00
Kia Lam 3333080616 Remove 'hop' node type from Add Instance form. 2022-09-23 09:46:13 -04:00
Kia Lam e2b9352dad Replace Chip with Label component for IG labels. 2022-09-23 09:46:13 -04:00
Kia Lam da945eed93 Fix node state. 2022-09-23 09:46:13 -04:00
Jeff Bradberry ebd200380a Resolve a deadlock in write_receptor_config() 2022-09-23 09:46:13 -04:00
Jeff Bradberry 1b650d6927 When deprovisioning a node, kick off a task that waits on running jobs
After all jobs on the node are complete, delete the node then
broadcast the write_receptor_config task.

Also, make sure that write_receptor_config updates the state of links
that are in 'adding' state.
2022-09-23 09:46:13 -04:00
Jeff Bradberry b6946c7e35 Update API to support setting instances to Deprovisioning
- allow the node_state to be set to deprovisioning
- set the links that touch the instance to removing
- only allow on K8S
- only allow to be done to execution nodes
2022-09-23 09:46:13 -04:00
Hao Liu 0b1891d82a generate complete install bundle
```
➜  34.213.5.206_install_bundle git:(instance-install-bundle-content) ✗ tree
.
├── install_receptor.yml
├── inventory.yml
├── receptor
│   ├── tls
│   │   ├── ca
│   │   │   └── receptor-ca.crt
│   │   ├── receptor.crt
│   │   └── receptor.key
│   └── work-public-key.pem
└── requirements.yml
```

Signed-off-by: Hao Liu <haoli@redhat.com>
2022-09-23 09:46:13 -04:00
Jeff Bradberry 3bc86ca8cb Follow up on new execution node creation
- hop nodes are descoped
- links need to be created on execution node creation
- expose the 'edit' capabilities on the instance serializer
2022-09-23 09:46:13 -04:00
Kia Lam dba03616f4 Fix unit tests. 2022-09-23 09:46:13 -04:00
Kia Lam a59aa44249 Update status label to reflect instance node states. 2022-09-23 09:46:13 -04:00
Seth Foster 3b024a057f Allow work signing for execution node (#12771)
- work-signing added to the generated receptor config
- During receptor task submission, signwork is True when submitting to
  an execution node
2022-09-23 09:46:13 -04:00
Kia Lam e1c33935fb Properly show Peers tab in UI. 2022-09-23 09:46:13 -04:00
Kia Lam 8ebeeaf148 Add correct permissions for memory capacity slider. 2022-09-23 09:46:13 -04:00
Kia Lam 28f24c8811 Represent enabled field in Topology View:
- use dotted circles to represent `enabled: false`
- use solid circle stroke to represent `enabled: true`
- excise places where `Unavailable` node state is used in the UI.
2022-09-23 09:46:12 -04:00
Kia Lam 89a6162dcd Add new node details; update legend. 2022-09-23 09:46:12 -04:00
Alex Corey 7e627e1d1e Adds Instance Peers Tab and update Instance Details view with more data (#12655)
* Adds InstancePeers tab and updates details view

* attempt to fix failing api tests
2022-09-23 09:46:12 -04:00
Jeff Bradberry 0465a10df5 Deal with exceptions when running execution_node_health_check (#12733) 2022-09-23 09:46:12 -04:00
Hao Liu 5051224781 conditionally show install_bundle link for instances (#12679)
- only show install_bundle link for k8s
- only show install_bundle link for execution and hop nodes
2022-09-23 09:46:12 -04:00
TheRealHaoLiu 7956fc3c31 add instance install bundle endpoint
add scaffolding for instance install_bundle endpoint

- add instance_install_bundle view (does not do anything yet)
- add `instance_install_bundle` related field to serializer
- add `/install_bundle` to instance URL
- `/install_bundle` only available for execution and hop node
- `/install_bundle` endpoint response contain a downloadable tgz with moc data

TODO: add actual data to the install bundle response

Signed-off-by: Hao Liu <haoli@redhat.com>
2022-09-23 09:46:12 -04:00
Shane McDonald 9b034ad574 generate control node receptor.conf
when a new remote execution/hop node is added
regenerate the receptor.conf for all control node to
peer out to the new remote execution node

Signed-off-by: Hao Liu <haoli@redhat.com>
Co-Authored-By: Seth Foster <fosterseth@users.noreply.github.com>
Co-Authored-By: Shane McDonald <me@shanemcd.com>
2022-09-23 09:46:12 -04:00
Kia Lam 4bf9925cf7 Topology changes:
- add new node and link states
    - add directionality to links
    - update icons
2022-09-23 09:46:12 -04:00
Alex Corey d2c63a9b36 Adds tests 2022-09-23 09:46:12 -04:00
Alex Corey 5d3a19e542 Adds Instance Add form 2022-09-23 09:46:12 -04:00
Jeff Bradberry e4518f7b13 Changes in posting constraints due to rescoping to OCP/K8S-only
- node_state is now read only
- node_state gets set automatically to Installed in the create view
- raise a validation error when creating on non-K8S
- allow SystemAdministrator the 'add' permission for Instances
- expose the new listener_port field
2022-09-23 09:46:12 -04:00
Sarabraj Singh 350efc12f5 machinery to allow POSTing payloads to instances/ endpoint 2022-09-23 09:46:12 -04:00
Jeff Bradberry 604fac2295 Update task management to only do things with ready instances 2022-09-23 09:46:11 -04:00
Jeff Bradberry 24bfacb654 Check state when processing receptorctl advertisements
Nodes that show up and were in one of the unready states need to be
transitioned to ready, even if the logic in Instance.is_lost was not
met.
2022-09-23 09:46:11 -04:00