Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add README.md for describing bootconfig and oc_cli #209

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions bootconfig/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Bootconfig API

The bootconfig service is responsible for the setting of bootstrap configuration for the device after initial Bootz bootstrap.
This message may include both the base device configuration but also the new gNSI artifacts.

While this is service which can be used out of band it also allows for the development of an industry standard CLI for recovery
of devices.

## RPC use case

* From remote rpc client call `gnoi.Bootconfig.Set` using bootconfig message containing elements to override.

## CLI use cases

The CLI should be bundled with the router and exist in the default path.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the cli expected to be called from the vendor cli, or a linux shell?

The CLI must be named `oc_cli` it must have the following heirarchy for calling specific services.

```
oc_cli
gnoi
bootconfig
factoryreset
gnmi
get
set
subscribe
```
Comment on lines +19 to +27
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these real gnmi/gnoi calls, e.g. there's a gnmi and gnoi clients on the node that can be accessed using this brand new cli? And, correspondingly, there's a grpc server that listens for these commands?


### Recovery using bootz.BootConfig.Set

* Access the device CLI using SSH or console.
* Use a CLI command to invoke a gnoi bootconfig.

```
cli> scp remotehost:/filename ./local_bootzdata
cli> oc_cli gnoi bootconfig --reboot ./local_bootzdata
Successfully set boot config to ./local_bootzdata
Are you sure? (y/n): y
Rebooting…
```

### Recovery using gnoi.FactoryReset

* Access the device CLI using SSH or console.
* Use a CLI command to invoke a gnoi factory reset.

```
cli> oc_cli gnoi factoryreset
Are you sure? (y/n): y
Factory reset in progress…
```

* This will cause the device to perform the gnoi.FactoryReset process. The device will return to its factory default configuration and reboot. When booting, the bootz process should be performed, resulting in a gRPC accessible device.
Loading